#include <iostream.h> #include <stdlib.h> struct datos { double molaridad; double normalidad; double grsoluto; double pesosolu; double pesovol; double pesopeso; double densidad; double pesomolec; double numcargas; }*a; //funciones prototipo void menu(int *); void inicializar(struct datos *); void ingresar(struct datos *, int ); void calcular(struct datos *); void resultados(struct datos *); //funcion principal int main() { a = new datos; inicializar(a); int opc; do{ menu(&opc); if(opc!=9&&opc!=10) { ingresar(a, opc); } else if(opc==9) { calcular(a); resultados(a); } }while(opc!=10); delete a; return 0; } //funciones void menu(int *o) { system("cls"); cout<<"Ingrese un numero segun los datos que dispone :"<<endl; cout<<"1 - Molaridad"<<endl;cout<<"2 - Normalidad"<<endl; cout<<"3 - Peso molecular (gr/mol)"<<endl;cout<<"4 - Densidad (gr/ml)"<<endl; cout<<"5 - Gramos de soluto"<<endl;cout<<"6 - Gramos de solucion"<<endl; cout<<"7 - Peso/Volumen de solucion (ml)"<<endl;cout<<"8 - Numero de cargas, protones u oxidrilos"<<endl; cout<<"9 - Resultados"<<endl;cout<<"10 - Salir"<<endl; cin>>*o; if(*o!=9||*o!=10) system("cls"); } void inicializar(struct datos *s) { s->molaridad=NULL; s->normalidad=NULL; s->pesovol=NULL; s->pesopeso=NULL; s->grsoluto=NULL; s->pesosolu=NULL; s->densidad=NULL; s->pesomolec=NULL; s->numcargas=NULL; } void ingresar(struct datos *b, int op) { switch(op) { case 1: cout<<"Ingrese la molaridad de la solucion :"<<endl; cin>>b->molaridad; break; case 2: cout<<"Ingrese la normalidad de la solucion :"<<endl; cin>>b->normalidad; break; case 3: cout<<"Ingrese el peso molecular del compuesto :"<<endl; cin>>b->pesomolec; break; case 4: cout<<"Ingrese la densidad de la solucion :"<<endl; cin>>b->densidad; break; case 5: cout<<"Ingrese los gramos de soluto en la solucion :"<<endl; cin>>b->grsoluto; break; case 6: cout<<"Ingrese el peso de la solucion :"<<endl; cin>>b->pesosolu; break; case 7: cout<<"Ingrese el peso volumen de la solucion :"<<endl; cin>>b->pesovol; break; case 8: cout<<"Ingrese el numero de cargas, protones u oxidrilos del compuesto"<<endl; cin>>b->numcargas; break; } } void calcular(struct datos *c) { if(!c->molaridad) { if(c->normalidad!=NULL&&c->numcargas!=NULL) c->molaridad= c->normalidad/c->numcargas; else if(c->grsoluto!=NULL&&c->pesomolec!=NULL) c->molaridad= c->grsoluto/c->pesomolec; } if(!c->normalidad) { if(c->molaridad!=NULL&&c->numcargas!=NULL) c->normalidad=c->molaridad*c->numcargas; } if(!c->grsoluto) { if(c->pesosolu!=NULL) c->grsoluto= c->pesosolu*10; else if(c->molaridad!=NULL&&c->pesomolec!=NULL) c->grsoluto=c->molaridad*c->pesomolec; } if(!c->pesosolu) { if(c->densidad!=NULL) c->pesosolu=c->densidad*1000; } if(!c->pesovol) { if(c->grsoluto!=NULL) c->pesovol= c->grsoluto/10; } if(!c->pesopeso) { if(c->grsoluto!=NULL&&c->pesosolu!=NULL) c->pesopeso= (c->grsoluto/c->pesosolu) *100; } if(!c->densidad) { if(c->pesosolu!=NULL) c->densidad=c->pesosolu*1000; } if(!c->numcargas) { if(c->normalidad!=NULL&&c->molaridad!=NULL) c->numcargas= c->normalidad/c->molaridad; } } void resultados(struct datos *d) { system("cls"); cout<<"Los datos calculables son los siguientes:"<<endl; if(d->molaridad) { cout<<"Molaridad = "<<d->molaridad<<endl; } if(d->normalidad) { cout<<"Normalidad = "<<d->normalidad<<endl; } if(d->grsoluto) { cout<<"Gramos de soluto = "<<d->grsoluto<<endl; } if(d->pesosolu) { cout<<"Peso de la solucion = "<<d->pesosolu<<endl; } if(d->pesovol) { cout<<"Concentracion P/V = "<<d->pesovol<<endl; } if(d->pesopeso) { cout<<"Concentracion P/P = "<<d->pesopeso<<endl; } if(d->densidad) { cout<<"Densidad(gr/ml) = "<<d->densidad<<endl; } if(d->numcargas) { cout<<"Numero de cargas, oxidrilos o protones = "<<d->numcargas<<endl; } system("pause"); }
Para enviar comentarios debes estar registrado.
(c) ElRincondelC.com
Un proyecto de Urlan Heat : proyectos de Internet y soporte para el comercio electrónico.