Sistema de Gestión de Inventario en C++
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 5,97 KB
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
string token(string, string, int);
void agregar();
void agregaringre();
void listar();
void listar2();
int main() {
int menu;
cout << "\tmenu\n1.Salir\n2.Agregar un nuevo producto al inventario\n3.Listar";
cin >> menu;
switch (menu) {
case 1:
system("pause");
return 0;
break;
case 2:
system("cls");
agregar();
system("pause");
break;
case 3:
system("cls");
int submenu;
cout << "Listar\n1.Listar todos los productos (nombre y la existencia)\n2.Listar todos los productos (nombre del pdt, nombre de ingre)\n3.Listar un producto por el usuario\n4.Regresar al menu";
cin >> submenu;
switch (submenu) {
case 1:
system("cls");
listar();
system("pause");
break;
case 2:
system("cls");
listar2();
system("pause");
break;
case 3:
break;
}
break;
}
system("pause");
return 0;
}
void agregar() {
ofstream inventario;
inventario.open("Producto.txt", ios::app);
int codigo, precio, peso, existe;
string nombre, ingre_1, ingre_2;
int calorias;
string sabor;
cout << "Introduzca el codigo del producto: ";
cin >> codigo;
cout << "Introduzca el nombre del producto: ";
cin >> nombre;
cout << "Introduzca el peso del producto: ";
cin >> peso;
cout << "Introduzca el precio del producto: ";
cin >> precio;
cout << "Introduzca el primer ingrediente: ";
cin >> ingre_1;
cout << "Introduzca el segundo ingrediente: ";
cin >> ingre_2;
cout << "Introduzca el sabor: ";
cin >> sabor;
cout << "Introduzca las calorias: ";
cin >> calorias;
cout << "Introduzca el inventario: ";
cin >> existe;
inventario << codigo << ";" << nombre << ";" << peso << ";" << precio << ";" << ingre_1 << "," << ingre_2 << ";" << existe << "!" << sabor << "," << calorias << endl;
inventario.close();
system("pause");
}
void agregaringre() {
ofstream ingre;
ingre.open("Producto.txt", ios::app);
int calorias;
string sabor;
cout << "Introduzca el sabor: ";
cin >> sabor;
cout << "Introduzca las calorias: ";
cin >> calorias;
ingre << sabor << "," << calorias << endl;
ingre.close();
system("pause");
}
void listar() {
fstream leer;
string l;
leer.open("Producto.txt");
while (!leer.eof()) {
getline(leer, l);
cout << token(l, ";", 2) + " " + token(l, ";", 7) << endl;
}
leer.close();
system("pause");
}
void listar2() {
fstream leer;
string l;
leer.open("Producto.txt");
while (!leer.eof()) {
getline(leer, l);
cout << token(l, ";", 2) + " " + token(l, ";", 5) + " " + token(l, ",", 6) << endl;
}
leer.close();
system("pause");
}
string token(string cadena, string divisor, int pos) {
if (cadena.size() != 0) {
char oracion[cadena.size()];
for (int i = 0; i <= cadena.size(); i++) {
oracion[i] = cadena[i];
}
char ptrtoken;
int num = 1;
const char d = divisor.c_str();
ptrtoken = strtok(oracion, d);
while (ptrtoken) {
if (num == pos) {
return ptrtoken;
}
ptrtoken = strtok(NULL, d);
num++;
}
return "";
} else {
return "";
}
}
Descripción del Código
Este código en C++ implementa un sistema básico de gestión de inventario. Permite al usuario agregar nuevos productos al inventario y listarlos de diferentes maneras.
Funcionalidades
El programa ofrece las siguientes funcionalidades a través de un menú:
- **Agregar un nuevo producto al inventario:** Permite al usuario ingresar los detalles de un nuevo producto, como código, nombre, peso, precio, ingredientes, sabor, calorías y existencia. Estos datos se almacenan en un archivo de texto llamado "Producto.txt".
- **Listar todos los productos (nombre y existencia):** Muestra el nombre y la existencia de todos los productos almacenados en el archivo "Producto.txt".
- **Listar todos los productos (nombre, ingredientes):** Muestra el nombre del producto, los ingredientes y el sabor de todos los productos almacenados en el archivo "Producto.txt".
Conceptos Clave
- **Archivos de Texto:** El programa utiliza un archivo de texto ("Producto.txt") para almacenar la información del inventario.
- **Manipulación de Strings:** La función
token
se utiliza para dividir una cadena en partes (tokens) utilizando un delimitador específico. Esto es útil para extraer información específica de las líneas del archivo de texto. - **Flujos de Entrada/Salida:** Se utilizan flujos de entrada (
cin
) para obtener información del usuario y flujos de salida (cout
) para mostrar información en la consola. Los flujos de archivo (ofstream
,fstream
) se utilizan para interactuar con el archivo de texto.