[ Foro de C++ ]
Al registrar datos solamente termina encontrando el ultimo dato al buscarlo
este es el codigo:
#include<iostream>
#include<stdlib.h>
#include<fstream>
using namespace std;
class Hospital
{
private:
string nombre;
public:
Hospital(string _nombre)
{
nombre=_nombre;
}
string Registronombre()
{
cout<<"Hospital comunitario\n";
cout<<"Introduzca el nombre del Doctor que ingresa al sistema\n";
cin>>nombre;
cout<<"---------------------------------------\n";
return nombre;
}
void MostrarNombre()
{
cout<<nombre<<"\n";
cout<<"---------------------------------------\n";
}
};
class Paciente:Hospital
{
private:
int procedimiento;
public:
Paciente(string _nombre,int _procedimiento) : Hospital(_nombre)
{
procedimiento=_procedimiento;
}
int Cuenta(int _procedimiento)
{
cout<<"El total a pagar es de: "<<_procedimiento<<endl;
}
};
main()
{
string nom[100],tipo[100],_nombre,nomb,fecha[100];
float total,_procedimiento,cant;
int op,contra,edad[100],opc,visitas[100]={0},cont=0,radio,operaciones,med,tr,to,tm;
ofstream archivo2("Recibo.txt");
Hospital objh=Hospital(_nombre);
Paciente objp=Paciente(_nombre,_procedimiento) ;
do
{
cout<<"-------------------------------------------------------\n";
cout<<"Ingrese su PIN, o pulse 5 para salir\n";
cin>>contra;
cout<<"-------------------------------------------------------\n";
if(contra==1323)
{
objh.Registronombre();
do
{
cout<<"--------------------------------------\n";
cout<<"Doctor: ";
objh.MostrarNombre();
cout<<"----------Bienvenido------------------\n";
cout<<"Teclea 1: para registrar un paciente\n";
cout<<"Teclea 2: para consultar un paciente\n";
cout<<"Teclea 3: para hacer la cuenta de los servicios brindados al paciente\n";
cout<<"Teclea 4: para imprimir el ticket\n";
cout<<"Teclea 5: para salir\n";
cin>>op;
switch(op)
{
case 1:
cout<<"-------------------------------------------------------\n";
cout<<"Ingrese cantidad de pacientes a registrar\n";
cin>>cant;
cout<<"Ingrese nombre del paciente\n";
for(int x=0; x<=cant-1; x++)
{
cin>>nom[x];
}
for(int y=0; y<=cant-1; y++)
{
cout<<"Ingrese la edad de "<<nom[y]<<endl;
cin>>edad[y];
}
for(int z=0; z<=cant-1; z++)
{
cout<<"Ingrese el tipo de sangre de "<<nom[z]<<endl;
cin>>tipo[z];
}
for(int w=0; w<=cant-1; w++)
{
cout<<"ingrese la fecha: \n";
cin>>fecha[w];
visitas[w]=visitas[w]+1;
}
cout<<"Pacientes registrados con exito\n";
cout<<"-------------------------------------------------------\n";
break;
case 2:
cout<<"-------------------------------------------------------\n";
cout<<"Ingrese el nombre del Paciente\n";
cin>>nomb;
cont=0;
for(int w=0; w<=cant-1; w++)
{
if((nom[w]==nomb)&&(visitas[w]>=1))
{
cont=0;
cout<<"Esta persona ha visitado el hospital "<<visitas[w]<<" veces \n";
cont++;
cout<<"Sus datos son: "<<endl;
cout<<"Nombre: "<<nom[w]<<endl<<"Edad: "<<edad[w]<<endl<<"Tipo sanguineo: "<<tipo[w]<<endl;
cout<<"Desea registrar esta visita?(1 si)(2 no)\n";
cin>>opc;
if(opc==1)
{
visitas[w]=visitas[w]+1;
cout<<"Registrado con exito\n";
}
else
{
cout<<"VOlviendo al menu\n";
}
}
}
if(cont<=0)
{
cout<<"Esta persona no esta registrada\n";
cont=0;
}
break;
case 3:
cout<<"Cantidad de radiografias\n";
cin>>radio;
cout<<"Cantidad de operaciones\n";
cin>>operaciones;
cout<<"Cantidad de medicamentos\n";
cin>>med;
tr=radio*50;
to=operaciones*2500;
tm=med*100;
_procedimiento=tr+to+tm;
objp.Cuenta(_procedimiento);
break;
case 4:
cout<<"Ingrese el nombre del Paciente\n";
cin>>nomb;
for(int y=0; y<=cant-1; y++)
{
if(nom[y]==nomb)
{
cont=0;
cout<<"Archivo creado\n";
cont++;
archivo2<<"----------Hospital comunitario------\n";
archivo2<<"Nombre del paciente: "<<nom[y]<<endl;
archivo2<<"Edad: "<<edad[y]<<endl;
archivo2<<"Tipo de sangre: "<<tipo[y]<<endl;
archivo2<<"Con un total de: "<<_procedimiento<<endl;
archivo2<<"Nochistlan de Mejia Zacatecas\n";
archivo2.close();
}
if(nom[y]!=nomb)
{
cout<<"Esta persona no esta registrada\n";
}
break;
}
}
}
while(op!=5);
}
else
{
cout<<"Contraseña incorrecta, intente nuevamente\n";
cout<<"-------------------------------------------------------\n";
}
}
while(contra!=5);
{
cout<<"Hasta luego\n";
}
}
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)