Sistema de Gestión en C++ para InkAtops Shop: Registro de Usuarios, Productos y Ventas
Clasificado en Informática
Escrito el en español con un tamaño de 5,84 KB
Sistema de Gestión en C++ para InkAtops Shop: Registro de Usuarios, Productos y Ventas
Este código C++ proporciona una base para la gestión de una tienda, permitiendo registrar usuarios, productos y ventas. Utiliza funciones básicas de entrada/salida y manejo de archivos.
Librerías Utilizadas
iostream
: Habilita las funciones de entrada y salida estándar (cin
ycout
).conio.h
: Proporciona funciones comogetch
,getche
, yclrscr
(Nota:conio.h
es una librería no estándar y puede no ser portable a todos los sistemas).string.h
: Incluye funciones para la manipulación de cadenas de caracteres, comostrcmp
para comparar cadenas.fstream
: Permite el manejo de archivos, incluyendo la funcióneof
(end-of-file).stdlib.h
: Ofrece funciones para la gestión de memoria dinámica, entre otras utilidades.
Funciones Principales
presentar()
Muestra el menú principal de opciones al usuario:
#include <iostream> // Habilita funciones de entrada y salida como cin y cout
#include <conio.h> // Para funciones como getch, getche, o clrscr (Nota: conio.h no es estándar)
#include <string.h> // Funciones como strcmp para comparar cadenas
#include <fstream> // Función eof para verificar el final del archivo
#include <stdlib.h> // Gestión de memoria dinámica
using namespace std;
int opcion;
void presentar() {
cout << "\t\tINKATOPS SHOP OPTIONS\n\n";
cout << "1. Registrar usuario" << endl;
cout << "2. Lista de usuarios\n";
cout << "3. Registrar Productos\n";
cout << "4. Ver datos del Usuario\n";
cout << "5. Lista de productos\n";
cout << "6. Registrar Venta\n";
cout << "7. Salir\n\n";
cout << "Elija su opcion: ";
fflush(stdin); // Limpia el buffer de entrada
cin >> opcion; // Lee la opción del usuario
system("cls"); // Limpia la pantalla (Nota: system("cls") no es estándar)
}
RegistrarVentas()
Registra las ventas de un usuario, asociándolas a su código. El proceso finaliza cuando se ingresa "all" o "ALL".
void RegistrarVentas() {
char usuarioCodigo[10];
char producto[3];
bool b = false; // Variable para controlar el bucle
ofstream escribir; // Variable para escribir en el archivo
escribir.open("boleta de consumo.txt", ios::app); // Abre el archivo en modo 'append'
cout << "RegistrarVentas\n";
cout << "Ingrese codigo de usuario: ";
fflush(stdin);
cin >> usuarioCodigo;
escribir << "Usuario " << usuarioCodigo << "\n";
cout << "Ingresar consumo: ";
do {
cout << "\nCod: ";
fflush(stdin);
cin >> producto;
if (strcmp(producto, "all") == 0 || strcmp(producto, "ALL") == 0) {
b = true;
escribir << "\n\n";
} else {
escribir << producto << "\n"; // Escribe el producto en el archivo
}
} while (b == false); // Repite hasta que b sea true
escribir.close(); // Cierra el archivo
}
RegistrarUsuario()
Registra un nuevo usuario, solicitando su código, nombre y apellido. Guarda la información en un archivo llamado "Usuarios.txt".
void RegistrarUsuario() {
char nuevoCodigo[10];
char nuevoNombre[20];
char nuevoApellido[20];
cout << "RegistrarUsuario\n";
ofstream escribir;
escribir.open("Usuarios.txt", ios::app); //Abre en modo append
cout << "Ingrese nuevo codigo de registro: ";
fflush(stdin);
cin.getline(nuevoCodigo, 10);
cout << "Ingrese nombre: ";
fflush(stdin);
cin.getline(nuevoNombre, 20);
cout << "Ingrese apellido : ";
fflush(stdin);
cin.getline(nuevoApellido, 30);
fflush(stdin);
escribir << nuevoCodigo << "\n" << nuevoNombre << "\n" << nuevoApellido << "\n" << "\n" << "\n\n";
cout << "Nuevo usuario registrado con éxito\n";
escribir.close();
cout << "Presiona Enter para continuar...";
getchar();
system("cls");
}
UsuarioDatos()
Función para buscar y mostrar los datos de un usuario (incompleta en el código original).
void UsuarioDatos() {
char codigoBuscado[30];
char codigoCliente[30];
char nombre[30];
char apellido[30];
// Falta implementación para buscar y mostrar los datos
}
Consideraciones
- Portabilidad: El código utiliza
conio.h
ysystem("cls")
, que no son funciones estándar de C++. Esto puede generar problemas de portabilidad a otros sistemas operativos o compiladores. Se recomienda usar alternativas más portables si se requiere compatibilidad. - Manejo de errores: El código carece de manejo de errores robusto. Por ejemplo, no verifica si los archivos se abren correctamente, ni si las entradas del usuario son válidas.
- Búsqueda de usuarios: La función
UsuarioDatos()
está incompleta. Se necesita implementar la lógica para buscar un usuario por código y mostrar sus datos. - Estructura de datos: Para una gestión más eficiente, se recomienda utilizar estructuras de datos (como structs) para organizar la información de usuarios y productos.
- Modularidad: El código podría beneficiarse de una mayor modularidad, separando las diferentes funcionalidades en funciones más pequeñas y específicas.