[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