[C con Clase] Programa de ejemplo (control de gastos) código fuente para aprendizaje

Oscar pelucheloko en hotmail.com
Mar Sep 18 13:34:18 CEST 2012


Efectivamente, además quedaría mejor, dado que si el usuario escoge 5 gastos 
se mostraría 1/5 etc, buen apunte.

Un saludo.

-----Mensaje original----- 
From: Marcelo
Sent: Tuesday, September 18, 2012 3:36 AM
To: cconclase en listas.conclase.net
Subject: Re: [C con Clase] Programa de ejemplo (control de gastos) código 
fuente para aprendizaje

El pasado 2012-09-16 17:21:21, Asdrúbal Iván Suárez Rivera escribió:

AISR> El 16 de septiembre de 2012 08:03, Oscar Aparicio Holgado <
AISR> enigma-si en hotmail.com> escribió:
AISR> >   He visto gente iniciada en C++ nueva en la lista de correo; 
incluyo
AISR> > este programa sencillo (es mi primer programa y tendrá mil maneras 
de
AISR> > mejorarlo) pero puede valer para que vean a través de ejemplos como 
he
AISR> > logrado lo que el programa básicamente hace.
AISR> >
AISR> > Estableces un sueldo, conceptos de gastos (ejemplo : coche, luz, 
comida
AISR> > etc) y luego estableces los valores de gastos de cada cosa, luego a 
través
AISR> > del menú te ofrece un mini informe.
AISR> >
AISR> > Espero lo disfruten, se aceptan sugerencias.
AISR> >
AISR> > un saludo.
AISR> >
AISR> >
AISR> Para quienes estén aprendiendo es chévere. Y si lo pones en un 
repositorio
AISR> git? En github o bitbucket?
AISR> >
AISR> >  #include <iostream>
AISR> >
AISR> > using namespace std;
AISR> >
AISR> > class gastos
AISR> > {
AISR> >     private:
AISR> >
AISR> >     int sueldo;
AISR> >     int vgastos;
AISR> >     int ng;
AISR> >
AISR> >     struct gasto {
AISR> >         char concepto[50];
AISR> >         int valor;
AISR> >     };
AISR> >
AISR> >     public:
AISR> >
AISR> >     gasto losgastos[9];
AISR> >
AISR> >     void menu();
AISR> >     void establecerg();
AISR> >     void establecervg();
AISR> >     void informe();
AISR> >     void establecesueldo(int);
AISR> >     int sueldoacero();
AISR> >     int gastosacero();
AISR> > };
AISR> >
AISR> > void gastos::menu()
AISR> > {
AISR> > char eleccion;
AISR> >
AISR> > cout << "Elige la opci\xa2n :" << endl;
AISR> > cout << "---------------------" << endl;
AISR> > cout << "1.- Establecer sueldo." << endl;
AISR> > cout << "2.- Establecer conceptos de gastos." << endl;
AISR> > cout << "3.- Establecer valores de gastos." << endl;
AISR> > cout << "4.- Mostrar informe." << endl;
AISR> > cout << "5.- Salir del programa." << endl;
AISR> >
AISR> > cout << endl;
AISR> >
AISR> > cin >> eleccion;
AISR> >
AISR> >         switch (eleccion)
AISR> >             {
AISR> >             case '1':
AISR> >                 int valor;
AISR> >                 cout << "Introduce el valor del sueldo en euros : "; 
cin
AISR> > >> valor; cout << endl;
AISR> >                 establecesueldo(valor);
AISR> >                 menu();
AISR> >                 break;
AISR> >             case '2':
AISR> >                 if(sueldo == 0)
AISR> >                 {
AISR> >                     cout << "Error, debes establecer un sueldo 
primero.\n";
AISR> >                     menu();
AISR> >                     break;
AISR> >                 }
AISR> >                 else
AISR> >                 {
AISR> >                     establecerg();
AISR> >                     losgastos[0].valor = 1;
AISR> >                     menu();
AISR> >                     break;
AISR> >                 }
AISR> >
AISR> >             case '3':
AISR> >                 if(losgastos[0].valor == 0)
AISR> >                 {
AISR> >                     cout << "Error, debes establecer un concepto de 
gastos
AISR> > primero.\n";
AISR> >                     cout << losgastos[0].valor << endl;
AISR> >                     menu();
AISR> >                     break;
AISR> >                 }
AISR> >                 else
AISR> >                 {
AISR> >                     establecervg();
AISR> >                     menu();
AISR> >                     break;
AISR> >                 }
AISR> >
AISR> >             case '4':
AISR> >                 if(sueldo == 0)
AISR> >                 {
AISR> >                     if(losgastos[0].valor == 0)
AISR> >                     {
AISR> >                         cout << "Error, debes establecer un sueldo,
AISR> > conceptos y valores primero.\n";
AISR> >                         menu();
AISR> >                         break;
AISR> >                     }
AISR> >                 }
AISR> >                 else
AISR> >                 {
AISR> >                     if(losgastos[0].valor == 0 || losgastos[0].valor 
== 1)
AISR> >                     {
AISR> >                         cout << "Error, debes establecer un sueldo,
AISR> > conceptos y valores primero.\n";
AISR> >                         menu();
AISR> >                         break;
AISR> >                     }
AISR> >                     informe();
AISR> >                     menu();
AISR> >                     break;
AISR> >                 }
AISR> >
AISR> >             case '5':
AISR> >                 return;
AISR> >             default:
AISR> >                 cout << "Escoge una opci\xa2n de las que ofrece el
AISR> > men\xa3..." << endl;
AISR> >                 cout << endl;
AISR> >                 menu();
AISR> >                 break;
AISR> >             }
AISR> > }
AISR> >
AISR> > void gastos::establecesueldo(int a)
AISR> > {
AISR> >     sueldo = a;
AISR> > }
AISR> >
AISR> > void gastos::establecerg()
AISR> > {
AISR> >     cout << "\xa8" << "Cu\xa0ntos gastos quieres declarar? escoje un
AISR> > n\xa3mero del 1 al 10 : "; cin >> ng;
AISR> >
AISR> >     if(ng <= 10)
AISR> >         {
AISR> >             int i, j;
AISR> >             for(i = 0, j = 1; i < ng; i++, j++)
AISR> >             {
AISR> >             cout << "Establece un concepto de gasto (" << j << "/10) 
: ";
AISR> > cin >> losgastos[i].concepto; cout << endl;
AISR> >             }
AISR> >         }
AISR> >     else
AISR> >     {
AISR> >         cout << "Error, debes introducir un numero del 1 al 
10...\n";
AISR> >         establecerg();
AISR> >     }
AISR> > }
AISR> >
AISR> > void gastos::establecervg()
AISR> > {
AISR> >     int i;
AISR> >     for(i = 0; i < ng; i++)
AISR> >     {
AISR> >         cout << "Establece valor de gasto en euros para " <<
AISR> > losgastos[i].concepto << " : "; cin >> losgastos[i].valor; cout << 
endl;
AISR> >     }
AISR> >     cout << endl;
AISR> > }
AISR> >
AISR> > void gastos::informe()
AISR> > {
AISR> >     cout << "Gastos de este mes :" << endl;
AISR> >     cout << "--------------------" << endl;
AISR> >     cout << endl;
AISR> >
AISR> >     int i;
AISR> >     for(i = 0; i < ng; i++)
AISR> >     {
AISR> >         cout << losgastos[i].concepto; cout << " : "; cout <<
AISR> > losgastos[i].valor; cout << endl;
AISR> >     }
AISR> >
AISR> >     vgastos = 0;
AISR> >
AISR> >     for(i = 0; i < ng; i++)
AISR> >     {
AISR> >         vgastos += losgastos[i].valor;
AISR> >     }
AISR> >
AISR> >     cout << endl;
AISR> >     cout << "Sueldo : " << sueldo << endl;
AISR> >     cout << "Gastos : " << vgastos << endl;
AISR> >     cout << "Te sobra : " << (sueldo - vgastos) << endl;
AISR> >     cout << endl;
AISR> >
AISR> > }
AISR> >
AISR> > int gastos::sueldoacero()
AISR> > {
AISR> >     return sueldo = 0;
AISR> >     losgastos[0].valor = 0;
AISR> > }
AISR> >
AISR> > int gastos::gastosacero()
AISR> > {
AISR> >     return losgastos[0].valor = 0;
AISR> > }
AISR> >
AISR> > int main()
AISR> > {
AISR> >     gastos objetodeclase;
AISR> >
AISR> >     objetodeclase.sueldoacero();
AISR> >     objetodeclase.gastosacero();
AISR> >
AISR> >     objetodeclase.menu();
AISR> >
AISR> >     return 0;
AISR> > }
AISR> >
AISR> >
AISR> > *Oscar*
AISR> > Administrador de sistemas Linux.
AISR> >
AISR> > _______________________________________________
AISR> > Lista de correo Cconclase Cconclase en listas.conclase.net
AISR> > 
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
AISR> > Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
AISR> >
AISR> -- 
AISR> Asdrúbal Iván Suárez Rivera
AISR> *Si quieres aprender, enseña. *Marco Tulio Cicerón.
AISR> *
AISR> *
AISR> *¿Tienes twitter?*
AISR> *Sígueme: @asdrubalivan*
AISR> _______________________________________________
AISR> Lista de correo Cconclase Cconclase en listas.conclase.net
AISR> 
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
AISR> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ

Está muy bueno el programa. Recien me inicio en C++ y hay un detalle ínfimo. 
Luego que pides la cantidad de gastos y donde pides ingresar el concepto 
siempre te pide que ingreses x de 10.
No se si es posible, pero tal vez reemplazando en el cout correspondiente 
"/10" por la variable que usaste para ingresar la cantidad de conceptos que 
creo es ng se mostraría con la cantidad ingresada por el usuario. 
Felicitaciones por tu esfuerzo y espero llegar pronto.
_______________________________________________
Lista de correo Cconclase Cconclase en listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ 





Más información sobre la lista de distribución Cconclase