Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: samchg en 01 de Junio 2012, 16:24
-
Ayudenme con este programita por favor!! Necesito pasarlo a programacion modular!! c++
class calculadora
{
float numero,total,anterior;
char op;
public:
void vacia();
void opcion();
void operaciones();
calculadora(float n, float t, float ta)
{
numero=n;
total=t;
anterior=ta;
}
};
void calculadora::opcion()
{
char opcion;
cin>>opcion;
op=opcion;
}
void calculadora::vacia()
{
float n;
cin>>n;
total=n;
}
void calculadora::operaciones()
{
float n;
do
if (op=='+')
{
system("cls");
anterior=total;
cin>>n;
total=total+n;
cout<<"= "<<total;
n=0;
cin>>op;
}
else
if (op=='-')
{
system("cls");
anterior=total;
cin>>n;
total=total-n;
cout<<"= "<<total;
n=0;
cin>>op;
}
else
if (op=='*')
{
system("cls");
anterior=total;
cin>>n;
total=total*n;
cout<<"= "<<total;
n=0;
cin>>op;
}
else
if (op=='/')
{
system("cls");
anterior=total;
cin>>n;
if (n==0)
{
cout<<"Prohibido dividir entre cero, ingrese otro numero "<<endl;
cin>>n;
}
else
{
total=total/n;
cout<<"= "<<total;
n=0;
cin>>op;
}
}
else
if (op=='e')
{
system("cls");
total=anterior;
cout<<"= "<<total;
cin>>op;
}
else
if (op=='c')
{
system("cls");
total=0;
cout<<"= "<<total;
cin>>op;
}
while((op=='+')||(op=='-')||(op=='*')…
}
int main()
{
cout<<"Calculadora: Ingrese las operaciones que desea realizar"<<endl;
cout<<"Pulse c para borrar ultima operacion "<<endl;
cout<<"Pulse e para borrar todo "<<endl;
cout<<"Pulse cualquier otra tecla para salir "<<endl;
calculadora c(0,0,0);
c.vacia();
c.opcion();
c.operaciones();
cout<<" "<<endl;
}
-
Hola samchg, para hacer esto necesitas saber programar bajo programación "tradicional" imperativa o estructurada, así como con programación orientada a objetos.
La forma más fácil que veo es: los campos de la clase calculadora ya no serán campos de una clase, sino variables globales.
Los métodos de la clase ya no serán métodos, sino funciones o procedimientos.
Ya no crearás un objeto en el main ni invocarás sus métodos, sino simplemente invocarás procedimientos o funciones. El código sería algo así (no lo he probado, habría que probarlo):
/* Los campos de la clase los escribimos como variables */
float numero,total,anterior;
char op;
/* Los métodos de la clase los definiremos como funciones */
/* El procedimiento calculadora recibe valores y los asigna a variables */
calculadora(float n, float t, float ta)
{
numero=n;
total=t;
anterior=ta;
}
};
/* El procedimiento opcion */
void opcion()
{
char opcion;
cin>>opcion;
op=opcion;
}
/* El procedimiento vacia */
void vacia()
{
float n;
cin>>n;
total=n;
}
/* El procedimiento operaciones */
void operaciones()
{
float n;
do
if (op=='+')
{
system("cls");
anterior=total;
cin>>n;
total=total+n;
cout<<"= "<<total;
n=0;
cin>>op;
}
else
if (op=='-')
{
system("cls");
anterior=total;
cin>>n;
total=total-n;
cout<<"= "<<total;
n=0;
cin>>op;
}
else
if (op=='*')
{
system("cls");
anterior=total;
cin>>n;
total=total*n;
cout<<"= "<<total;
n=0;
cin>>op;
}
else
if (op=='/')
{
system("cls");
anterior=total;
cin>>n;
if (n==0)
{
cout<<"Prohibido dividir entre cero, ingrese otro numero "<<endl;
cin>>n;
}
else
{
total=total/n;
cout<<"= "<<total;
n=0;
cin>>op;
}
}
else
if (op=='e')
{
system("cls");
total=anterior;
cout<<"= "<<total;
cin>>op;
}
else
if (op=='c')
{
system("cls");
total=0;
cout<<"= "<<total;
cin>>op;
}
while((op=='+')||(op=='-')||(op=='*')…
}
/* El main del programa */
int main()
{
cout<<"Calculadora: Ingrese las operaciones que desea realizar"<<endl;
cout<<"Pulse c para borrar ultima operacion "<<endl;
cout<<"Pulse e para borrar todo "<<endl;
cout<<"Pulse cualquier otra tecla para salir "<<endl;
calculadora (0,0,0);
vacia();
opcion();
operaciones();
cout<<" "<<endl;
-
Hola, lo primero que tengo que pedirte es que no repitas la misma consulta en distintos sitios del foro. Resulta molesto encontrar las cosas repetidas.
Este programa que te pongo aquí debajo a mí sí me corre, ¿te has parado a estudiar por qué no te corría o simplemente ves que no corre y pretendes que alguien te lo resuelva?
#include <iostream.h>
#include <stdlib.h>
//using namespace std;
float numero,total,anterior;
char op;
void calculadora(float n, float t, float ta)
{
numero=n;
total=t;
anterior=ta;
}
void opcion()
{
char opcion;
cin>>opcion;
op=opcion;
}
void vacia()
{
float n;
cin>>n;
total=n;
}
void operaciones()
{
float n;
do
if (op=='+')
{
system("cls");
anterior=total;
cin>>n;
total=total+n;
cout<<"= "<<total;
n=0;
cin>>op;
}
else
if (op=='-')
{
system("cls");
anterior=total;
cin>>n;
total=total-n;
cout<<"= "<<total;
n=0;
cin>>op;
}
else
if (op=='*')
{
system("cls");
anterior=total;
cin>>n;
total=total*n;
cout<<"= "<<total;
n=0;
cin>>op;
}
else
if (op=='/')
{
system("cls");
anterior=total;
cin>>n;
if (n==0)
{
cout<<"Prohibido dividir entre cero, ingrese otro numero "<<endl;
cin>>n;
}
else
{
total=total/n;
cout<<"= "<<total;
n=0;
cin>>op;
}
}
else
if (op=='e')
{
system("cls");
total=anterior;
cout<<"= "<<total;
cin>>op;
}
else
if (op=='c')
{
system("cls");
total=0;
cout<<"= "<<total;
cin>>op;
}
while((op=='+')||(op=='-')||(op=='*')||(op=='/')||(op=='c')||(op=='e')||(op=='c'));
}
int main()
{
cout<<"Calculadora: Ingrese las operaciones que desea realizar"<<endl;
cout<<"Pulse c para borrar ultima operacion "<<endl;
cout<<"Pulse e para borrar todo "<<endl;
cout<<"Pulse cualquier otra tecla para salir "<<endl;
calculadora (0,0,0);
vacia();
opcion();
operaciones();
cout<<" "<<endl;
cout<<"Hasta luego "<<endl;
system("pause");
}