[ Foro de C++ ]

Arreglo se sobreescribe

03-Jun-2022 03:37
Invitado (Sm1)
0 Respuestas

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.)