Skip to content

Instantly share code, notes, and snippets.

@agodin3z
Last active November 17, 2020 01:48
Show Gist options
  • Save agodin3z/2db7e3ad724ac4c06bdcc37a9253cd60 to your computer and use it in GitHub Desktop.
Save agodin3z/2db7e3ad724ac4c06bdcc37a9253cd60 to your computer and use it in GitHub Desktop.
Simple sistema de pedidos
#include <iostream>
#include <stdlib.h>
#include <cstdlib>
#include <string.h>
using namespace std;
// Varibles Globales
int error = 0, salir = 0, atras = 1;
string admUser="admin", admPass="54321", cajUser="cajero", cocUser="cocina", usrPass="12345";
//Fin Variables Globales
//Borrar pantalla en windows y linux
void clear_screen(){
#ifdef WINDOWS
std::system("cls");
#else
// Assume POSIX
std::system ("clear");
#endif
} // Fin Borrar Pantalla
// Gestionar datos de Restaurante
void admDatosRest(){
int eleccion;
char nombre[50], dir[100], tel[10], nit[20];
clear_screen();
while (eleccion >= 0 && eleccion <= 5) {
do{
error = 0;
cout << "\nAdministración de datos del restaurante\n\n" <<
"01. Modificar datos\n" <<
"02. Ver datos del restaurante\n"
"00. Regresar" << endl;
cin >> eleccion;
if (eleccion == 0){
eleccion = 6;
} else if (eleccion == 1){
clear_screen();
cout << "Modificar datos:\n" <<
"01. Nombre\n" <<
"02. Dirección\n"
"03. Teléfono\n"
"04. N.I.T\n"
"05. Todos\n"
"00. Atras\n" << endl;
cin >> eleccion;
switch(eleccion){
case 1:
cout << "Nombre del Restaurante: ";
cin.getline(nombre,50);
clear_screen();
cout << "Hecho!" << endl;
break;
case 2:
cout << "Dirección del Restaurante: ";
cin.getline(dir,100);
clear_screen();
cout << "Hecho!" << endl;
break;
case 3:
cout << "Telefono del Restaurante: ";
cin.getline(tel,10);
clear_screen();
cout << "Hecho!" << endl;
break;
case 4:
cout << "N.I.T. del Restaurante: ";
cin.getline(nit,100);
clear_screen();
cout << "Hecho!" << endl;
break;
case 5:
cin.ignore(100,'\n');
cout << "Nombre del Restaurante: ";
cin.getline(nombre,50);
cout << "Dirección del Restaurante: ";
cin.getline(dir,100);
cout << "Teléfono del Restaurante: ";
cin.getline(tel,10);
cout << "N.I.T. del Restaurante: ";
cin.getline(nit,20);
clear_screen();
cout << "Hecho!" << endl;
break;
default:
error = 1;
clear_screen();
cout << "Error! Opción inválida." << endl;
break;
}
} else if (eleccion == 2){
clear_screen();
cout << "Datos del Restaurante:\n" <<
"Nombre del Restaurante: " << nombre <<
"\nDirección del Restaurante: " << dir <<
"\nTeléfono del Restaurante: " << tel <<
"\nN.I.T. del Restaurante: " << nit << endl;
} else {
error = 1;
clear_screen();
cout << "\nOpción elegida no válida!" << endl;
}
} while(error == 1);
}
} // Fin Gestionar datos
// Gestionar categorias de platos
void admCatPlatos(){
int eleccion=0, contador = 4, i, numCat;
string categorias[50];
categorias[0] = "Entradas";
categorias[1] = "Pan Pizza";
categorias[2] = "Ensaladas";
categorias[3] = "Masa Delgada";
clear_screen();
while (eleccion >= 0 && eleccion <= 5) {
do{
error = 0;
cout << "\nAdministración de Categorías de Platos\n\n" <<
"01. Modificar nombre de categoria\n" <<
"02. Ver categorias registradas\n"
"00. Regresar" << endl;
cin >> eleccion;
if (eleccion == 0){
eleccion = 6;
} else if (eleccion == 1){
clear_screen();
cout << "Modificar Categorias:\n" <<
"01. Nueva categoria\n" <<
"02. Modificar categoria\n"
"00. Atras\n" << endl;
cin >> eleccion;
switch(eleccion){
case 1:
cin.ignore(100,'\n');
cout << "Nombre de la Categoria: ";
getline(cin, categorias[contador]);
contador++;
clear_screen();
cout << "Hecho!" << endl;
break;
case 2:
i = 1;
cin.ignore(100,'\n');
cout << "Seleccione la Categoria a modificar:" << endl;
for (string cat : categorias){
if (cat == "") { break; }
cout << i << " - " << cat << endl;
i++;
}
cin >> numCat;
if (numCat < 1 && numCat > i){
error = 1;
} else {
cout << "Nuevo nombre para la Categoria " << categorias[numCat-1] << " ";
cin.ignore(100,'\n');
getline(cin, categorias[numCat-1]);
}
clear_screen();
cout << "Hecho!" << endl;
break;
default:
error = 1;
clear_screen();
cout << "Error! Opción inválida." << endl;
break;
}
} else if (eleccion == 2){
clear_screen();
cout << "Categorias Registradas:" << endl;
for (string cat : categorias){
if (cat == "") { break; }
cout << cat << endl;
}
} else {
error = 1;
clear_screen();
cout << "\nOpción elegida no válida!" << endl;
}
} while(error == 1);
}
}// Fin Gestionar categorias
// Gestionar platos
void admPlatos(){}// Fin Gestionar platos
// Gestionar extras
void admExtras(){}// Fin Gestionar extras
// Gestionar inventario de productos
void admInventario(){}// Fin Gestionar inventario
// Gestionar usuarios
void admUsuarios() {}// Fin Gestionar usuarios
// Cobros
void cobros(){}// Fin Cobros
//Pedidos
void pedidos(){}// Fin Pedidos
// Ver Categoria de Platos
void verCatPlatos(){}// Fin ver categoria
// Ver Platos Disponibles
void verPlatos(){}// Fin ver platos
// Ver Extras Disponibles
void verExtras(){}// Fin ver extras
//Menu Principal
void menu(string user){
int eleccion = 0;
clear_screen();
cout << "Bienvenido " << user << endl;
while (eleccion >= 0 && eleccion <= 16) {
do {
error = 0;
if (user == admUser){
cout << "\nSELECCIONE UNA OPCION\n"<<
"GESTIONAR:\n" <<
"01. Datos del restaurante\n" <<
"02. Categorias de Platos\n" <<
"03. Platos\n" <<
"04. Extras\n" <<
"05. Inventario\n" <<
"06. Usuarios\n" <<
"07. Cobros\n" <<
"08. Pedidos\n" <<
"CONSULTAR:\n" <<
"09. Categorías de Platos\n" <<
"10. Platos Disponibles\n" <<
"11. Extras Disponibles\n" <<
"12. Estado de Pedidos\n" <<
"GENERAR:\n"<<
"13. Pedidos\n" <<
"14. Historial de Pedidos\n" <<
"15. Historial de Cobros\n" <<
"SALIR:\n" <<
"16. Cerrar Sesión\n" <<
"00. Salir" << endl;
} else if (user == cajUser){
cout << "\nSELECCIONE UNA OPCION\n"<<
"GESTIONAR:\n" <<
"07. Cobros\n" <<
"08. Pedidos\n" <<
"CONSULTAR:\n" <<
"09. Categorías de Platos\n" <<
"10. Platos Disponibles\n" <<
"11. Extras Disponibles\n" <<
"12. Estado de Pedidos\n" <<
"GENERAR:\n"<<
"13. Pedidos\n" <<
"SALIR:\n" <<
"16. Cerrar Sesión\n" <<
"00. Salir" << endl;
} else {
cout << "\nSELECCIONE UNA OPCION\n"<<
"GESTIONAR:\n" <<
"08. Pedidos\n" <<
"CONSULTAR:\n" <<
"12. Estado de Pedidos\n" <<
"GENERAR:\n"<<
"14. Historial de Pedidos\n" <<
"SALIR:\n" <<
"16. Cerrar Sesión\n" <<
"00. Salir" << endl;
}
cin >> eleccion;
switch(eleccion){
case 0: // Retorna 0
salir = 1;
eleccion = 17;
break;
case 1:
admDatosRest();
break;
case 2:
admCatPlatos();
break;
case 3:
admPlatos();
break;
case 4:
admExtras();
break;
case 5:
admInventario();
break;
case 6:
admUsuarios();
break;
case 7:
cobros();
break;
case 8:
pedidos();
break;
case 9:
verCatPlatos();
break;
case 10:
verPlatos();
break;
case 11:
verExtras();
break;
case 12:
// estadoPedidos();
break;
case 13:
// hacerPedidos();
break;
case 14:
// histoPedidos();
break;
case 15:
// histoCobros();
break;
case 16:
eleccion = 17;
break;
default:
clear_screen();
error = 1;
cout << "Error! Selección Inválida." << endl;
break;
}
} while(error == 1);
}
} // Fin Menu Principal Admin
// Login
void login(){
string username, password;
clear_screen();
cout << "Bienvenido!\n\n";
do {
error = 0;
atras = 1;
cout << "Ingresa el nombre de usuario: ";
cin >> username;
if (username == "-1") { salir = 1; break; }
//cin.ignore(100, '\n'); //Evita que getline() tome como valor el salto de línea.
cout << "Ingresa su contraseña: ";
cin >> password;
if(username == admUser){
if (password == admPass){
menu(username);
} else {
clear_screen();
cout << "\nError! Contraseña incorrecta." << endl;
error = 1;
}
} else if(username == cajUser){
if (password == usrPass){
menu(username);
} else {
clear_screen();
cout << "\nError! Contraseña incorrecta." << endl;
error = 1;
}
} else if (username == cocUser){
if (password == usrPass){
menu(username);
} else {
clear_screen();
cout << "\nError! Contraseña incorrecta." << endl;
error = 1;
}
} else {
clear_screen();
cout << "\nError! Usuario no registrado." << endl;
error = 1;
}
}while(error == 1);
} // Fin Login
//Main
int main(){
do{
login();
} while (salir == 0);
//system("pause");
return 0;
} // Fin Main
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment