Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/01/2009, 15:17
Raykro
 
Fecha de Ingreso: enero-2009
Mensajes: 7
Antigüedad: 16 años
Puntos: 0
Respuesta: Evaluenme programa hecho en C++

Aqui esta:


Cabecera.hpp:
Código:
//Cabecera.hpp

#include <iostream>

enum ELEGIR { //Constante elegir del menu
	Sumar = 1,
	Restar,
	Multiplicar,
	Dividir,
	Potencia,
	LimpiarPantalla,
	AcercaDe,
	Salir};

class Operaciones //Clase de operaciones aritmeticas
{
public:
	/*=============Accesores=============*/
	//Configurar
	//Valores Aritmeticos
	void ConfigurarPrimerValor(double Valor){PrimerValor = Valor;} //Inline
	void ConfigurarSegundoValor(double Valor){SegundoValor = Valor;} //Inline	

	//Valores de Potencias
	void ConfigurarPotenciaValor(double Valor){PotenciaValor = Valor;} //Inline
	void ConfigurarPotenciaElevador(double Valor){PotenciaElevador = Valor;} //Inline

	//Resultado
	void ConfigurarResultado(double Valor){suResultado = Valor;} //Inline

	//Obtener
	//Valores aritmeticos
	double& ObtenerPrimerValor() {return PrimerValor;} //Inline
	double& ObtenerSegundoValor() {return SegundoValor;} //Inline

	//Valores de Potencias
	double& ObtenerPotenciaValor() {return PotenciaValor;} //Inline
	double& ObtenerPotenciaElevador() {return PotenciaElevador;} //Inline

	//Resultado
	double& ObtenerResultado() {return suResultado;} //Inline
	/*============Fin Accesores==========*/

	/*==========Metodos generales=========*/
	//Aritmeticos
	double aSumar(double &rPrimerValor,double &rSegundoValor); //Suma dos valores
	double aRestar(double &rPrimerValor,double &rSegundoValor); //Resta dos valores
	double aMultiplicar(double &rPrimerValor,double &rSegundoValor); //Multiplica dos valores
	double aDividir(double &rPrimerValor,double &rSegundoValor); //Divide dos valores

	//Potencias
	double aPotencia();

	//Preguntar número valores
	int PreguntarNumeroValores();
	/*=========Fin Metodos generales==========*/
private:
	//Variables miemro valores aritmeticos
	double PrimerValor;
	double SegundoValor;

	//Numero Valores
	int NumeroValores;

	//Variables miembro valores de potencias
	double PotenciaValor;
	double PotenciaElevador;

	//Resultado
	double suResultado;
};



Funciones.hpp:
Código:
/*=============Funciones============*/
void HacerBienvenida();
void HacerMenu(short &Elegido);
void HacerAcercaDe();
void MostrarResultado(Operaciones &ObjetoResultado);



Calculadora.cpp:
Código:
//Calculadora.cpp

#include "Cabecera.hpp"
#include "Funciones.hpp"

using namespace std;

/*=============Función main===============*/
int main()
{
	Operaciones ObjSumar;
	Operaciones ObjRestar;
	Operaciones ObjMultiplicar;
	Operaciones ObjDividir;
	Operaciones ObjPotencia;

	//Variables
	short Elegir = Sumar;
	bool fSalir = false;
	int Retorno = 0;

	HacerBienvenida();

	do	
		while (!fSalir)
		{
			HacerMenu(Elegir);
			if(Elegir != -1)
			{
			if(Elegir < Sumar || Elegir > Salir)
				{
					cout << "ERROR:El valor '" << Elegir << "' no es valido." << endl << endl;
					system("pause > nul");
					Retorno = 1;
					Elegir = 0;
					break;
				}
			}
			
				switch(Elegir)
				{
					case Sumar:
						ObjSumar.PreguntarNumeroValores();
						ObjSumar.aSumar(ObjSumar.ObtenerPrimerValor(),ObjSumar.ObtenerSegundoValor());

						MostrarResultado(ObjSumar);

						Retorno = 1;
						break;

					case Restar:
						ObjRestar.PreguntarNumeroValores();
						ObjRestar.aRestar(ObjRestar.ObtenerPrimerValor(),ObjRestar.ObtenerSegundoValor());

						MostrarResultado(ObjRestar);

						Retorno = 1;
						break;

					case Multiplicar:
						ObjMultiplicar.PreguntarNumeroValores();
						ObjMultiplicar.aMultiplicar(ObjMultiplicar.ObtenerPrimerValor(),ObjMultiplicar.ObtenerSegundoValor());

						MostrarResultado(ObjMultiplicar);

						Retorno = 1;
						break;

					case Dividir:
						ObjDividir.PreguntarNumeroValores();
						ObjDividir.aDividir(ObjDividir.ObtenerPrimerValor(),ObjDividir.ObtenerSegundoValor());					

						MostrarResultado(ObjDividir);

						Retorno = 1;
						break;

					case Potencia:
						ObjPotencia.ConfigurarResultado(ObjPotencia.aPotencia());

						MostrarResultado(ObjPotencia);

						Retorno = 1;
						break;

					case LimpiarPantalla:
						system("cls");

						Retorno = 1;
						break;

					case AcercaDe:
						HacerAcercaDe();

						Retorno = 1;
						break;

					case Salir:
						fSalir = true;
						cout << "Saliendo..." << endl;

						Retorno = 0;
						break;

					default:
						cout << "ERROR:El valor ingresado no es valido." << endl << endl;
						system("pause > nul");

						Retorno = 0;
						break;
				} //Fin switch
				break;
		} //Fin while
	while(Retorno == 1);
		return 0;
} //Fin main

//Difiniciones de Metodos

double Operaciones::aSumar(double &rPrimerValor,double &rSegundoValor) //Suma dos valores
{	
	cout << endl << "Primer valor: ";
	cin >> rPrimerValor;
	cout << endl << endl << "Segundo valor: ";
	cin >> rSegundoValor;
	cout << endl;

	suResultado = rPrimerValor + rSegundoValor;
	cout << "Resultado actual: " << suResultado << endl << endl;

	if(NumeroValores > 0)
	{
		for(;NumeroValores > 2;NumeroValores--)
		{
			rPrimerValor = suResultado;
			cout << endl << "Siguiente Valor: ";
			cin >> rSegundoValor;
			cout << endl;

			suResultado = rPrimerValor + rSegundoValor;

			if(NumeroValores >= 3)
			{
				cout << "Resultado actual: " << suResultado << endl << endl;
			}
		}
	}

	return (rPrimerValor + rSegundoValor);
}

double Operaciones::aRestar(double &rPrimerValor,double &rSegundoValor) //Resta dos valores
{	
	cout << endl << "Primer valor: ";
	cin >> rPrimerValor;
	cout << endl << endl << "Segundo valor: ";
	cin >> rSegundoValor;
	cout << endl;

	suResultado = rPrimerValor - rSegundoValor;
	cout << "Resultado actual: " << suResultado << endl << endl;

	if(NumeroValores > 0)
	{
		for(;NumeroValores > 2;NumeroValores--)
		{
			rPrimerValor = suResultado;
			cout << endl << "Siguiente Valor: ";
			cin >> rSegundoValor;
			cout << endl;

			suResultado = rPrimerValor - rSegundoValor;

			if(NumeroValores >= 3)
			{
				cout << "Resultado actual: " << suResultado << endl << endl;
			}
		}
	}

	return (rPrimerValor - rSegundoValor);
}

double Operaciones::aMultiplicar(double &rPrimerValor,double &rSegundoValor) //Multiplica dos valores
{	
	cout << endl << "Primer valor: ";
	cin >> rPrimerValor;
	cout << endl << endl << "Segundo valor: ";
	cin >> rSegundoValor;
	cout << endl;

	suResultado = rPrimerValor * rSegundoValor;
	cout << "Resultado actual: " << suResultado << endl << endl;

	if(NumeroValores > 0)
	{
		for(;NumeroValores > 2;NumeroValores--)
		{
			rPrimerValor = suResultado;
			cout << endl << "Siguiente Valor: ";
			cin >> rSegundoValor;
			cout << endl;

			suResultado = rPrimerValor * rSegundoValor;

			if(NumeroValores >= 3)
			{
				cout << "Resultado actual: " << suResultado << endl << endl;
			}
		}
	}

	return (rPrimerValor * rSegundoValor);
}

double Operaciones::aDividir(double &rPrimerValor,double &rSegundoValor) //Divide dos valores
{	
	cout << endl << "Primer valor: ";
	cin >> rPrimerValor;
	cout << endl << endl << "Segundo valor: ";
	cin >> rSegundoValor;
	cout << endl;

	suResultado = rPrimerValor / rSegundoValor;
	cout << "Resultado actual: " << suResultado << endl << endl;

	if(NumeroValores > 0)
	{
		for(;NumeroValores > 2;NumeroValores--)
		{
			rPrimerValor = suResultado;
			cout << "Siguiente Valor: ";
			cin >> rSegundoValor;
			cout << endl << endl;

			suResultado = rPrimerValor / rSegundoValor;

			if(NumeroValores >= 3)
			{
				cout << "Resultado actual: " << suResultado << endl << endl;
			}
		}
	}

	return (rPrimerValor / rSegundoValor);
}

double Operaciones::aPotencia()
{
	double Resultado;

	cout << endl << "El valor a aplicar la potencia: ";
	cin >> PotenciaValor;
	cout << endl << endl << "Elevado a: ";
	cin >> PotenciaElevador;
	cout << endl;

	Resultado = PotenciaValor;

	for(;PotenciaElevador > 1;PotenciaElevador--)
	{
		Resultado *= PotenciaValor;
	}

	return Resultado;
}

int Operaciones::PreguntarNumeroValores()
{
	char siNo;
	NumeroValores = 0;

	cout << endl << "\xa8La operaci\xa2n sera con mas de dos operandos? (S/N): ";
	cin >> siNo;
	cout << endl << endl;
	
	if(siNo == 's' || siNo == 'S')
	{
		cout << "\xa8.Cuantos operandos.?: ";
		cin >> NumeroValores;
		cout << endl << endl;
	}

	return NumeroValores;
}

//Definición de Funciones
void HacerBienvenida()
{
	cout << "		========================================" << endl;
	cout << "		|Bienvenido a la calculadora 'Calculer'|" << endl;
	cout << "		|Espero que te sirva                   |" << endl;
	cout << "		|                           Por Raykro |" << endl;
	cout << "		========================================" << endl << endl << endl;
}

void HacerMenu(short &Elegido) //Crea el menu
{
	Elegido = -1;

	cout << "*****Menu*****" << endl;
	cout << "(1) Sumar" << endl;
	cout << "(2) Restar" << endl;
	cout << "(3) Multiplicar" << endl;
	cout << "(4) Dividir" << endl;
	cout << "(5) Potencia" << endl;
	cout << "(6) Limpiar Pantalla" << endl;
	cout << "(7) Acerca de Calculer..." << endl;
	cout << "(8) Salir" << endl;

	cin >> Elegido;
}

void HacerAcercaDe() //Muestra en pantalla la información de la aplicación
{
	system("cls");
	cout << endl << "Calculer v1.0" << endl;
	cout << "Creado por Raykro" << endl;
	cout << "P\xa0gina..." << endl;
	cout << "[email protected]" << endl;
	cout << endl << "Software de libre distribuci\xa3n" << endl << endl;
	system("pause > nul");
}

void MostrarResultado(Operaciones &ObjetoResultado) //Muestra el resultado en pantalla
{
	cout << endl << "Resultado: " << ObjetoResultado.ObtenerResultado() << endl << endl;
}

/*=============================Fin del Programa==================================*/

Última edición por Raykro; 26/01/2009 a las 21:22