Last active
November 17, 2020 01:48
-
-
Save agodin3z/2db7e3ad724ac4c06bdcc37a9253cd60 to your computer and use it in GitHub Desktop.
Simple sistema de pedidos
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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