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 y cout).
  • conio.h: Proporciona funciones como getch, getche, y clrscr (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, como strcmp para comparar cadenas.
  • fstream: Permite el manejo de archivos, incluyendo la función eof (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 y system("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.

Entradas relacionadas: