Brunoroman

Untitled

Sep 27th, 2021
883
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. //Funcion del programa
  6. //Sistema para registrar, administrar y consultar prestamos
  7.  
  8. //Variables ALGUNAS SE VAN A USAR EN LAS FUNCIONES Y POR AHORA NO TIENEN USO (WIP)
  9. int opcion; //Variable para comprobar si se elije bien la opcion deseada en los menus
  10. int cantidad_categorias=0;//Variable para saber cuantas categorias hay y en proximas entregas iterar
  11. int cantidad_prestamos=0;//Lo mismo que la anterior para los prestamos
  12. int cantidad_prestatarios=0;//Lo mismo para los prestatarios
  13. int fin; //variable para controlar los while
  14. string eleccion;//Variable para S/N en administracion de prestamos
  15.  
  16. struct c{
  17.      int codigo_categoria;
  18.      string descripcion;
  19. };
  20.  
  21. struct pr{
  22.      int codigo_categoria;
  23.      int prestatario;
  24.      string descripcion;
  25.      bool estado;
  26. };
  27.  
  28. struct pres{
  29.     int codigo_prestatario;
  30.     string apellido;
  31.     string nombre;
  32. };
  33.  
  34. c categorias[1000];
  35. pr prestamos[1000];
  36. pres prestatarios[1000];
  37.  
  38. //Funciones
  39.  
  40. void agregar_categoria(string descripcion); //Agregara una categoria, pidiendo la descripcion de la misma
  41. void modificar_categoria(string descripcion);//Modificara una categoria, pidiendo la descripcion de la misma
  42. void eliminar_categoria(string descripcion); //Eliminara una categoria, pidiendo la descripcion de la misma
  43. void agregar_prestatario(string nombre,string apellido); //Agregara un prestatario, pidiendo su nombre y apellido
  44. void modificar_prestatario(string nombre,string apellido); // Modificara el nombre o apellido de un prestatario, pidiendo el nombre y apellido del mismo
  45. void eliminar_prestatario(string nombre,string apellido); // Eliminara un prestatario, pidiendo lo mismo que las anteriores funciones de prestatarios
  46. void agregar_prestamo(int categoria,int prestatario,string descripcion); // Agrega un prestamo a la lista, teniendo como datos, la categoria, el prestatario y la descripcion del objeto
  47. void modificar_prestamo(string descripcion); //Permitira modificar la descripcion de un prestamo, pidiendo como dato la descripcion anteriormente usada para agregarlo
  48. void eliminar_prestamo(string descripcion); //Permitira eliminar un prestamo, pidiendo como dato la descripcion usada para agregarlo anteriormente
  49. string mayuscula(string cadena);//Permitira convertir strings a mayusculas para comprobar mas facilmente con un if
  50.  
  51. //Codigo principal
  52. int main(){
  53.     do{ //do del menu principal, para permitir volver al menu tras realizada cualquier opcion del menu
  54.     cout << "Bienvenido"<< endl;
  55.     cout << "Elija el numero correspondiente a la opcion que desea"<< endl;
  56.     cout << "1: Administrar y consultar Categorias y Prestatarios"<< endl; //Hace aparecer en pantalla el menu
  57.     cout << "2: Administrar Prestamos"<< endl;
  58.     cout << "3: Consultar Prestamos"<< endl;
  59.     cin>> opcion; //Se ingresa la opcion
  60.     // se comprueba si la opcion ingresada es correcta
  61.     while(opcion!=1 && opcion!=2 && opcion!=3){ //bucle para que aparezcan en pantalla si la opcion ingresada es incorrecta
  62.         cout << "La opcion ingresada es incorrecta"<< endl;
  63.         cout << "Vuelva a ingresar un numero correspondiente a las siguientes opciones"<< endl; //Se comprueba si la opcion ingresada es correcta
  64.         cout << "1: Administrar y consultar Categorias y Prestatarios"<< endl;                 //y en caso de que no se avisa del error y permite ingresar un numero denuevo
  65.         cout << "2: Administrar Prestamos"<< endl;
  66.         cout << "3: Consultar Prestamos"<< endl;
  67.         cin>> opcion; // se ingresa por teclado la opcion deseada
  68.         }
  69.  
  70.     do{ // do de la opcion 1 del menu, funciona igual que el primero
  71.     switch (opcion) { //Switch como principal forma de que funcione el menu
  72.     case 1:{ // case para la opcion 1 del menu principal
  73.         cout << "Administracion y consulta de Categorías y Prestatarios"<< endl;
  74.         cout << "Elija el numero correspondiente a la opcion que desea"<< endl;
  75.         cout << "1: Agregar categoria"<< endl;
  76.         cout << "2: Modificar categoria"<< endl;                             //Se pone en pantalla las opciones del apartado
  77.         cout << "3: Eliminar categoria"<< endl;                             // administracion y consultas de categorias
  78.         cout << "4: Agregar prestatario"<< endl;
  79.         cout << "5: Modificar prestatario"<< endl;
  80.         cout << "6: Eliminar prestatario"<< endl;
  81.         cin>> opcion;
  82.         //comprueba si la opcion ingresada es correcta
  83.         while(opcion!=1 && opcion!=2 && opcion!=3 && opcion!=4 && opcion!=5 && opcion!=6){
  84.             cout << "La opcion ingresada es incorrecta"<< endl;
  85.             cout << "Vuelva a ingresar un numero correspondiente a las siguientes opciones"<< endl;
  86.             cout << "1: Agregar categoria"<< endl;
  87.             cout << "2: Modificar categoria"<< endl;
  88.             cout << "3: Eliminar categoria"<< endl;          //Se ponen en pantalla las opciones devuelta en caso de que la opcion ingresada es incorrecta
  89.             cout << "4: Agregar prestatario"<< endl;
  90.             cout << "5: Modificar prestatario"<< endl;
  91.             cout << "6: Eliminar prestatario"<< endl;
  92.             cin>> opcion; //se ingresa la opcion
  93.         }
  94.         switch(opcion){ //switch para el menu de la opcion 1 del menu principal
  95.         case 1:{
  96.             cout << "Ingrese la categoria a agregar"<< endl; // primera funcion del menu de la opcion 1, imprime en pantalla el mensaje entre comillas, y le píde la descripcion de la categoria a agregar
  97.             //aca estaría la funcionalidad de la opcion WIP
  98.             cout << "Categoria agregada satisfactoriamente"<< endl;
  99.             cout << "Desea volver al menu principal para seguir utilizando el programa?"<< endl; // pregunta al usuario si quiere volver al menu
  100.             cout << "S/N"<<endl;
  101.             cin>> eleccion; //se ingresa la opcion deseada por el usuario
  102.             if(eleccion=="S" || eleccion=="s"){ //caso si, cambia la variable fin a 1, lo que cobra sentido mas al ver la condicion del do while
  103.                 fin=1;
  104.                 continue; //y continua la ejecucion del anterior do while
  105.             }
  106.             else{
  107.                 if (eleccion=="N" || eleccion=="n"){ //Caso no
  108.                     return 0; // return 0, finaliza la ejecucion del programa
  109.                 }
  110.             }
  111.         }
  112.         case 2:{ //caso 2 del menu de la opcion 1 del menu principal
  113.             cout << "Ingrese la categoria a modificar"<< endl; //segunda opcion del menu de la opcion 1, pide la descripcion de la categoria que se desea modificar
  114. //se ingresa la descripcion de la categoria
  115.             //aca estaría la funcionalidad de la opcion WIP
  116.             cout << "Categoria modificada satisfactoriamente!"<< endl;
  117.             cout << "Desea volver al menu principal para seguir utilizando el programa?"<< endl; //realiza lo mismo que antes para volver al menu principal en caso de que se desee hacerlo
  118.             cout << "S/N"<<endl;
  119.             cin>> eleccion;
  120.             if(eleccion=="S" || eleccion=="s"){
  121.                 fin=1;
  122.                 continue;
  123.             }
  124.             else{
  125.                 if (eleccion=="N" || eleccion=="n"){
  126.                     return 0;
  127.                 }
  128.             }
  129.         }
  130.         case 3:{ //case 3 para la opcion 3 del menu de la opcion 1
  131.             cout << "Ingrese la categoria a eliminar"<< endl; //se pone en pantalla el mensaje
  132.  //se ingresa la categoria
  133.             //aca estaría la funcionalidad de la opcion WIP
  134.             cout << "Categoria eliminada satisfactoriamente!"<< endl;
  135.             cout << "Desea volver al menu principal para seguir utilizando el programa?"<< endl;
  136.             cout << "S/N"<<endl;
  137.             cin>> eleccion;
  138.             if(eleccion=="S" || eleccion=="s"){ //realiza lo mismo que antes para volver al menu principal en caso de que se desee hacerlo
  139.                 fin=1;
  140.                 continue;
  141.             }
  142.             else{
  143.                 if (eleccion=="N" || eleccion=="n"){
  144.                     return 0;
  145.                 }
  146.             }
  147.         }
  148.         case 4:{ //case 4 para la opcion 4 de la opcion 1 del menu principal
  149.             cout << "Ingrese el nombre del prestatario a agregar"<< endl;
  150.  
  151.             cout << "Ingrese el apellido del prestatario a agregar"<< endl;
  152.  
  153.             //aca estaría la funcionalidad de la opcion WIP
  154.             cout << "Prestatario agregado satisfactoriamente!"<< endl;
  155.             cout << "Desea volver al menu principal para seguir utilizando el programa?"<< endl;
  156.             cout << "S/N"<<endl;
  157.             cin>> eleccion;
  158.             if(eleccion=="S" || eleccion=="s"){ //realiza lo mismo que antes para volver al menu principal en caso de que se desee hacerlo
  159.                 fin=1;
  160.                 continue;
  161.             }
  162.             else{
  163.                 if (eleccion=="N" || eleccion=="n"){
  164.                     return 0;
  165.                 }
  166.             }
  167.         }
  168.         case 5:{ //case 5 para la opcion 5 de la opcion 1 del menu principal
  169.             cout << "Ingrese el nombre del prestatario a modificar"<< endl;
  170.  
  171.             cout << "Ingrese el apellido del prestatario a modificar"<< endl;
  172.  
  173.             //aca estaría la funcionalidad de la opcion WIP
  174.             cout << "Prestatario modificado satisfactoriamente!"<< endl;
  175.             cout << "Desea volver al menu principal para seguir utilizando el programa?"<< endl;
  176.             cout << "S/N"<<endl;
  177.             cin>> eleccion;
  178.             if(eleccion=="S" || eleccion=="s"){ //realiza lo mismo que antes para volver al menu principal en caso de que se desee hacerlo
  179.                 fin=1;
  180.                 continue;
  181.             }
  182.             else{
  183.                 if (eleccion=="N" || eleccion=="n"){
  184.                     return 0;
  185.                 }
  186.             }
  187.         }
  188.         case 6:{ //case 6 para la opcion 6 de la opcion 1 del menu principal
  189.             cout << "Ingrese el nombre del prestatario a eliminar"<< endl;
  190.  
  191.             cout << "Ingrese el apellido del prestatario a eliminar"<< endl;
  192.  
  193.             //aca estaría la funcionalidad de la opcion WIP
  194.             cout << "Categoria eliminado satisfactoriamente!"<< endl;
  195.             cout << "Desea volver al menu principal para seguir utilizando el programa?"<< endl;
  196.             cout << "S/N"<<endl;
  197.             cin>> eleccion;
  198.             if(eleccion=="S" || eleccion=="s"){ //realiza lo mismo que antes para volver al menu principal en caso de que se desee hacerlo
  199.                 fin=1;
  200.                 continue;
  201.             }
  202.             else{
  203.                 if (eleccion=="N" || eleccion=="n"){
  204.                     return 0;
  205.                 }
  206.             }
  207.         }
  208.         }
  209.     }
  210.     case 2:{ //Menu de la opcion 2 del menu principal
  211.         cout << "Administracion de Préstamos"<< endl;
  212.         cout << "Elija el numero correspondiente a la opcion que desea"<< endl;
  213.         cout << "1: Agregar préstamo"<< endl;
  214.         cout << "2: Modificar préstamo"<< endl;                                   //Se ponen en pantalla las opciones
  215.         cout << "3: Eliminar préstamo"<< endl;
  216.         cout << "4: Devolver préstamo"<< endl;
  217.         cin>> opcion; //Se ingresa la opcion
  218.  //como en las anteriores se comprueba si la opcion ingresada es incorrecta
  219.         while (opcion!=1 && opcion!=2 && opcion!=3 && opcion!=4){ // y se genera un bucle que siempre y cuando la opcion sea incorrecta se mantiene dentro de el, en caso de que se ingrese una opcion correcta se recurre a un break que hace que se vuelva a accionar el switch
  220.             cout << "La opcion ingresada es incorrecta"<< endl;
  221.             cout << "Vuelva a ingresar un numero correspondiente a las siguientes opciones"<< endl;
  222.             cout << "1: Agregar préstamo"<< endl;
  223.             cout << "2: Modificar préstamo"<< endl;                         //Se realiza un proceso parecido al del case 1
  224.             cout << "3: Eliminar préstamo"<< endl;
  225.             cout << "4: Devolver préstamo"<< endl;
  226.             cin>> opcion;
  227.         }
  228.             switch (opcion) { // switch del menu de la opcion 2 del menu principal
  229.             case 1:{ //case 1 para la opcion 1 del menu numero 2
  230.                 cout << "Desea ver las categorias actuales para su Prestamo?"<<endl; //se pregunta al usuario que desea hacer
  231.                 cout << "S/N"<<endl;
  232.                 cin>> eleccion; // se ingresa s o n para si o no respectivamente
  233.                 if (eleccion=="S" || eleccion=="s"){
  234.                     //Se realizaria la muestra de las categorias para los prestamos
  235.                     cout << "Ingrese una categoria para el prestamo"<<endl;
  236.  // se ingresa la categoria en caso de que se haya seleccionado si
  237.                 }
  238.                 else{
  239.                     cout << "Ingrese una categoria para el prestamo"<<endl;
  240.  // se ingresa la categoria pero sin ver las categorias existentes
  241.                 }
  242.                 cout << "Desea ver los prestatarios ya inscriptos?"<<endl;
  243.                 cout << "S/N"<<endl; // se realiza una pregunta parecida a lo anterior
  244.                 cin>> eleccion; // se ingresa la opcion deseada por el usuario
  245.                 if (eleccion=="S" || eleccion=="s"){
  246.                     //Se realizaria la muestra de los prestatarios
  247.                     cout << "Ingrese el nombre del prestatario para el prestamo"<<endl;
  248.  
  249.                     cout << "Ingrese el apellido para el prestamo"<<endl; // se ingresan el nombre y el apellido del prestatario
  250.  
  251.                 }
  252.                 else{
  253.                     cout << "Ingrese el nombre del prestatario para el prestamo"<<endl;
  254.  
  255.                     cout << "Ingrese el apellido para el prestamo"<<endl; //se realiza lo mismo que en el anterior if pero sin mostrar los prestatarios existentes
  256.  
  257.                 }
  258.                 cout << "Ingrese una descripcion para el prestamo"<<endl; // se pide ingresar una descripcion al prestamo
  259.  
  260.  
  261.                 cout << "Desea volver al menu principal para seguir utilizando el programa?"<< endl;
  262.                 cout << "S/N"<<endl;
  263.                 cin>> eleccion;
  264.                 if(eleccion=="S" || eleccion=="s"){ //realiza lo mismo que antes para volver al menu principal en caso de que se desee hacerlo
  265.                     fin=1;
  266.                     continue;
  267.                 }
  268.                 else{
  269.                     if (eleccion=="N" || eleccion=="n"){
  270.                         return 0;
  271.                     }
  272.                 }
  273.  
  274.             }
  275.             case 2:{ // case 2 para la opcion 2 del submenu 2 de la opcion 2 del menu principal
  276.                 cout << "Ingrese la descripcion del prestamo a modificar"<<endl;
  277.  // se ingresa la descripcion del prestamo a modificar
  278.                 //Se realizaria la comprobacion y posterior modificacion
  279.                 cout << "Prestamo modificado satisfactoriamente!"<< endl; //mensaje de que se realizo correctamente, posteriormente se agregara un if con una variable para detectar errores
  280.                 cout << "Desea volver al menu principal para seguir utilizando el programa?"<< endl;
  281.                 cout << "S/N"<<endl;
  282.                 cin>> eleccion;
  283.                 if(eleccion=="S" || eleccion=="s"){ //realiza lo mismo que antes para volver al menu principal en caso de que se desee hacerlo
  284.                     fin=1;
  285.                     continue;
  286.                 }
  287.                 else{
  288.                     if (eleccion=="N" || eleccion=="n"){
  289.                         return 0;
  290.                     }
  291.                 }
  292.             }
  293.             case 3:{
  294.                 cout << "Ingrese la descripcion del prestamo a eliminar"<<endl;
  295.  
  296.                 //Se realizaria la comprobacion si existe un prestamo con esa descripcion, y si presenta el estado true posteriormente eliminacion en caso de que sea asi
  297.                 cout << "Desea volver al menu principal para seguir utilizando el programa?"<< endl;
  298.                 cout << "S/N"<<endl;
  299.                 cin>> eleccion;
  300.                 if(eleccion=="S" || eleccion=="s"){ //realiza lo mismo que antes para volver al menu principal en caso de que se desee hacerlo
  301.                     fin=1;
  302.                     continue;
  303.                 }
  304.                 else{
  305.                     if (eleccion=="N" || eleccion=="n"){
  306.                         return 0;
  307.                     }
  308.                 }
  309.             }
  310.             case 4:{
  311.                 cout << "Ingrese la descripcion del prestamo a devolver"<<endl;
  312.  
  313.                 //Se realizaria lo mismo que con las anteriores opciones aparte de esto se verificaria si el estado del prestamo y se marcaria como false
  314.                 cout << "Desea volver al menu principal para seguir utilizando el programa?"<< endl;
  315.                 cout << "S/N"<<endl;
  316.                 cin>> eleccion;
  317.                 if(eleccion=="S" || eleccion=="s"){ //realiza lo mismo que antes para volver al menu principal en caso de que se desee hacerlo
  318.                     fin=1;
  319.                     continue;
  320.                 }
  321.                 else{
  322.                     if (eleccion=="N" || eleccion=="n"){
  323.                         return 0;
  324.                     }
  325.                 }
  326.             }
  327.             }
  328.         }
  329.     case 3:{
  330.             cout << "Consultas de Préstamos"<< endl;
  331.             cout << "Elija el numero correspondiente a la opcion que desea"<< endl;
  332.             cout << "1: Cantidad de objetos prestados por categoría"<< endl;
  333.             cout << "2: Listado de prestamos por categoría"<< endl;                     //Se ponen en pantalla las opciones
  334.             cout << "3: Listado de préstamos ordenados por categoría o prestatario"<< endl;
  335.             cout << "4: Prestatarios con objetos en prestamo"<< endl;
  336.             cin>> opcion; //Se ingresa el numero de opcion
  337.             while(opcion!=1 && opcion!=2 && opcion!=3 && opcion!=4){
  338.                 cout << "La opcion ingresada es incorrecta"<< endl;
  339.                 cout << "Vuelva a ingresar un numero correspondiente a las siguientes opciones"<< endl;
  340.                 cout << "1: Cantidad de objetos prestados por categoría"<< endl;
  341.                 cout << "2: Listado de prestamos por categoría"<< endl;                            //Se realiza un proceso parecido al de los case 1 y 2
  342.                 cout << "3: Listado de préstamos ordenados por categoría o prestatario"<< endl;
  343.                 cout << "4: Prestatarios con objetos en prestamo"<< endl;
  344.                 cin>> opcion;
  345.             }
  346.                 switch(opcion){           //switch para redirigir debidamente a la opcion deseada por el usuario
  347.                 case 1:{
  348.                     cout << "De que categoria desea saber la cantidad de objetos prestados?"<< endl;
  349.  
  350.                     //Se realizaria la actividad deseada
  351.                     cout << "Desea volver al menu principal para seguir utilizando el programa?"<< endl;
  352.                     cout << "S/N"<<endl;
  353.                     cin>> eleccion;
  354.                     if(eleccion=="S" || eleccion=="s"){ //realiza lo mismo que antes para volver al menu principal en caso de que se desee hacerlo
  355.                         fin=1;
  356.                         continue;
  357.                     }
  358.                     else{
  359.                         if (eleccion=="N" || eleccion=="n"){
  360.                             return 0;
  361.                         }
  362.                     }
  363.                 }
  364.                 case 2:{
  365.                     cout << "Los prestamos por categoria son"<<endl;
  366.                     //Se realizaria la actividad deseada
  367.                     cout << "Desea volver al menu principal para seguir utilizando el programa?"<< endl;
  368.                     cout << "S/N"<<endl;
  369.                     cin>> eleccion;
  370.                     if(eleccion=="S" || eleccion=="s"){ //realiza lo mismo que antes para volver al menu principal en caso de que se desee hacerlo
  371.                         fin=1;
  372.                         continue;
  373.                     }
  374.                     else{
  375.                         if (eleccion=="N" || eleccion=="n"){
  376.                             return 0;
  377.                         }
  378.                     }
  379.                 }
  380.                 case 3:{
  381.                     cout << "Desea ver los prestamos ordenados por categoria o por prestatario?" << endl;
  382.                     cin >>eleccion;
  383.                     if(mayuscula(eleccion)=="CATEGORIA"){
  384.                         //Se realizaria el ordenado por categoria, genera error al todavia no estar definida la funcion mayuscula
  385.                     }
  386.                     else{
  387.                         if(mayuscula(eleccion)=="PRESTATARIO"){
  388.                             //Se realizaria el ordenado por prestatrio, genera error al todavia no estar definida la funcion mayuscula
  389.                         }
  390.                         else{
  391.                             cout <<"Ingreso una opcion no valida, vuelva a ingresar una opcion que si lo sea"<< endl;
  392.                             cout <<"Desea ver los prestamos ordenados por categoria o por prestatario?"<< endl;
  393.  
  394.                         }
  395.                     }
  396.                     cout << "Desea volver al menu principal para seguir utilizando el programa?"<< endl;
  397.                     cout << "S/N"<<endl;
  398.                     cin>> eleccion;
  399.                     if(eleccion=="S" || eleccion=="s"){ //realiza lo mismo que antes para volver al menu principal en caso de que se desee hacerlo
  400.                         fin=1;
  401.                         continue;
  402.                     }
  403.                     else{
  404.                         if (eleccion=="N" || eleccion=="n"){
  405.                             return 0;
  406.                         }
  407.                     }
  408.                 }
  409.                 case 4:{
  410.                     cout << "Los prestatarios con objetos en prestamo son"<< endl;
  411.                     //Se realizaria la opcion deseada
  412.                     cout << "Desea volver al menu principal para seguir utilizando el programa?"<< endl;
  413.                     cout << "S/N"<<endl;
  414.                     cin>> eleccion;
  415.                     if(eleccion=="S" || eleccion=="s"){ //realiza lo mismo que antes para volver al menu principal en caso de que se desee hacerlo
  416.                         fin=1;
  417.                         continue;
  418.                     }
  419.                     else{
  420.                         if (eleccion=="N" || eleccion=="n"){
  421.                             return 0;
  422.                         }
  423.                     }
  424.                 }
  425.                 }
  426.             }
  427.         }
  428.     }while(fin!=1);     //este while permite iterar al menu principal siempre y cuando se requiera, cuando el usuiario eliga voler, la variable fin sera "1" y se reiniciara el programa
  429. }while(fin==1);
  430. }
  431.  
  432. //Cuerpo de las funciones WIP
  433.  
  434. void agregar_categoria(string descripcion){
  435.  
  436. }
  437. void modificar_categoria(string descripcion){
  438.  
  439. }
  440. void eliminar_categoria(string descripcion){
  441.  
  442. }
  443. void agregar_prestatario(string nombre,string apellido){
  444.  
  445. }
  446. void modificar_prestatario(string nombre,string apellido){
  447.  
  448. }
  449. void eliminar_prestatario(string nombre,string apellido){
  450.  
  451. }
  452. void agregar_prestamo(int categoria,int prestatario,string descripcion){
  453.  
  454. }
  455. void modificar_prestamo(string descripcion){
  456.  
  457. }
  458. void eliminar_prestamo(string descripcion){
  459.  
  460. }
  461. string mayuscula(string cadena){
  462.  
  463. }
  464.  
RAW Paste Data