Autor
|
Tema: Consejo [Comparar] (Leído 4,326 veces)
|
Magiwuan
Desconectado
Mensajes: 6
|
Saludos amigos, Tengo el siguiente codigo que les anexo: #include <iostream> #include <cstdlib>//Libreria reservada para uso de System(); #include<conio.h> //Libreria reservada para getch();
using namespace std; const int nMax_n=1; //Variables char respuesta; char respuesta1; char res; char cSeguir; int pos=0; //Esta variable me determina la posicion del registro del paciente int contAtendidos=0;//Contador de pacientes atendidos
struct paciente { char nombre[20],apellido[20],sexo[1]; int edad,cedula; }; typedef paciente arreglo [nMax_n]; //Arrglos arreglo paciente1; //Valida cola int vacia(){ if (pos==0) return 1; else return 0; } //FUNCION QUE LLENA LA PRIMERA COLA DEL CONSULTORIO OFTALMOLOGICO void llenarcola1(arreglo paciente1){ int pregunta=0; do{//HACER ... if(pos<=nMax_n){//Valida que el tamaño del arreglo no sea mayor al constante //sino se valida repite el ciclo pero no guarda mas registros system("cls"); cout<<"***************************************"<<endl; cout<<"******* DATOS DEL PACIENTE *******"<<endl; cout<<"***************************************"<<endl; cout<<endl; cout<<"Nombre: "; cin>>paciente1[pos].nombre; cout<<endl; cout<<"Apellido: "; cin>>paciente1[pos].apellido; cout<<endl; cout<<"Sexo: "; cin>>paciente1[pos].sexo; cout<<endl; cout<<"Edad: "; cin>>paciente1[pos].edad; cout<<endl; cout<<"Cedula: "; cin>>paciente1[pos].cedula; cout<<endl; cout<<endl; pregunta=nMax_n-pos; cout<<endl<<"Total de citas Restantes:"<<pregunta; cout<<endl; cout<<endl; pos++; //incremento la posicion if(pregunta==0){//VALIDA QUE SI SE LLENO EL ARREGLO CAMBIE LA PREGUNTA FINAL cout<<endl; cout<<endl<<"No hay mas Citas por hoy."<<endl; getch();//Presionar una Tecla para continuar res='n'; }else{ cout<<endl<<"Desea ingresar otro Paciente S/N?"; cin>>res; } system("cls"); cout<<endl; }else{ //VALIDA QUE EL USUARIO NO INGRESE USUARIOS SI ESTA FULL EL REGISTROs system("cls"); cout<<endl<<"No hay mas Citas por hoy."<<endl; cout<<endl; getch();//Presionar una Tecla para continuar system("cls"); res='n'; } }while(res=='s' || res=='S'); // .. MIENTRAS LA RESPUESTA SEA IGUAL A S } // CONSULTA DE PACIENTES DE OFTALMOLOGIA void consultarPacientes1(arreglo paciente1){ if(contAtendidos==0){ cout<<endl; cout<<"No se han Atendidos Pacientes"<<endl; cout<<endl; cout<<"***************************************"<<endl; }else{ cout<<endl; cout<<"Cantidad de Pacientes Atendidos: "<<contAtendidos<<endl; cout<<endl; cout<<"***************************************"<<endl; } if(vacia()==1){// SI LA FUNCION VACIA RETORNA VALOR 1, ESTA VACIA cout<<endl; cout<<"No hay pacientes Registrados"<<endl; cout<<endl; cout<<"***************************************"<<endl; cout<<endl; getch();//Presionar una Tecla para continuar system("cls"); }else{//SINO ESTA VACIA PROCESE A IMPRIMIR TODOS LOS REGISTROS RELACIONADOS cout<<"***************************************"<<endl; cout<<"******* PACIENTES POR ATENDER ********"<<endl; cout<<"***************************************"<<endl; cout<<endl; for (int i=0;i<pos;i++) //EL TAMAÑO DEL FOR SERA EL CONTADOR DE REGISTRO { cout<<"Nombre: "<<paciente1[i].nombre<<endl; cout<<endl; cout<<"Apellido: "<<paciente1[i].apellido<<endl; cout<<endl; cout<<"Sexo: "<<paciente1[i].sexo<<endl; cout<<endl; cout<<"Edad: "<<paciente1[i].edad<<endl; cout<<endl; cout<<"Cedula: "<<paciente1[i].cedula<<endl; cout<<endl; cout<<"*************************************"<<endl; cout<<endl; } cout<<"*************************************"<<endl; getch();//Presionar una Tecla para continuar//Presionar una Tecla para continuar system("cls"); } }
//ATENDER UN PACIENTE ES DECIR SACARLO DE LA Cola void AtenderPaciente1(arreglo paciente1){ char atendido; int i=0; if(vacia()==1){// SI LA FUNCION VACIA RETORNA VALOR 1, ESTA VACIA cout<<endl; cout<<"No hay pacientes Registrados"<<endl; cout<<endl; getch();//Presionar una Tecla para continuar system("cls"); }else{//SINO ESTA VACIA PROCESE A IMPRIMIR TODOS LOS REGISTROS RELACIONADOS cout<<endl; cout<<"***** DATOS DEL PACIENTE *****"<<endl; cout<<"***************************************"<<endl; cout<<endl; for (i=0;i<1;i++) //EL TAMAÑO DEL FOR SERA EL CONTADOR DE REGISTRO { cout<<"Nombre: "<<paciente1[i].nombre<<endl; cout<<endl; cout<<"Apellido: "<<paciente1[i].apellido<<endl; cout<<endl; cout<<"Sexo: "<<paciente1[i].sexo<<endl; cout<<endl; cout<<"Edad: "<<paciente1[i].edad<<endl; cout<<endl; cout<<"Cedula: "<<paciente1[i].cedula<<endl; cout<<endl; cout<<"*************************************"<<endl; cout<<endl; cout<<"Desea Atender Paciente ? S/N "; cin>>atendido; //este proceso elimina&destruye la posicion 1 del registro y rueda los demas if(atendido=='s' || atendido=='S'){ //recorre el arreglo para destruir la primera posicion[0] moviendo los registros for(int j=0; j<pos-1; j++) paciente1[j] = paciente1[j+1]; pos--; /* Decrementa pos */ contAtendidos++; } if(atendido=='n' || atendido=='N'){ cout<<endl; cout<<"Al paciente "<<paciente1[i].nombre<<" "<<paciente1[i].apellido<<" le fue cancelada la cita"; //recorre el arreglo para destruir la primera posicion[0] moviendo los registros for(int j=0; j<pos-1; j++) paciente1[j] = paciente1[j+1]; pos--; /* Decrementa pos */ getch(); } } system("cls"); } } // MENU DEL CONSULTO DE OFTALMOLOGIA Y SUS CASOS int submenu1(){ do{ cout<<endl; cout<<"****** CONSULTORIO DE OFTALMOLOGIA ******"<<endl; cout<<"** **"<<endl; cout<<"** A.- Cita **"<<endl; cout<<"** B.- Atender Pacientes **"<<endl; cout<<"** C.- Consulta de Pacientes **"<<endl; cout<<"** D.- Menu Principal **"<<endl; cout<<"** **"<<endl; cout<<"******************************************"<<endl; cout<<endl<<" Que Operacion Desea Realizar: "; cin>>respuesta1; if(respuesta1!='A' || respuesta1!='B' || respuesta1!='C'){ system("cls"); } //SWITCH DEL CONSULTO DE OFTALMOLOGIA switch (respuesta1){ case 'A': llenarcola1(paciente1); break; case 'B': system("cls"); AtenderPaciente1(paciente1); break; case 'C': system("cls"); consultarPacientes1(paciente1); break; case 'D': system("cls");//Simula volver al menu principal. break; } }while(respuesta1!='D'); return 0; } // ESPACIO DE CODIGO PARA TRABAJAR EL SEGUNDO MODULO // ESPACIO DE CODIGO PARA TRABAJAR EL SEGUNDO MODULO // ESPACIO DE CODIGO PARA TRABAJAR EL SEGUNDO MODULO // ESPACIO DE CODIGO PARA TRABAJAR EL SEGUNDO MODULO
//Primero que nada el Menu Principal que llevara los Consultorios int menuPrincipal(){ do{ system("color B"); cout<<endl; cout<<"******* CLINICA EL VALLE **********"<<endl; cout<<"* *"<<endl; cout<<"* A.- Oftalmologia *"<<endl; cout<<"* B.- Ginecologo *"<<endl; cout<<"* C.- Odontologia *"<<endl; cout<<"* D.- Medicina General *"<<endl; cout<<"* E.- Emergencia *"<<endl; cout<<"* F.- Consulta Total *"<<endl; // Supuestamente seran todos los pacientes atentidos cout<<"* G.-Salir / Exit *"<<endl; cout<<"* *"<<endl; cout<<"**********************************"<<endl; cout<<endl<<" Digite su Opcion por favor: "; cin>>respuesta; //si la Respuesta es Diferente de estos valores solo limpia y muestra el menuPrincipal if(respuesta!='A' || respuesta!='B' || respuesta!='C' || respuesta!='D' || respuesta!='E' || respuesta!='F'){ system("cls"); } switch (respuesta){ case 'A': submenu1(); break; case 'B': break; case 'G': cout<<endl; cout<<" Hasta Pronto!! "<<endl; cout<<endl; break; } }while(respuesta!='G');//Mostrara el menu Mientras la respuesta no sea F return 0; }
int main(int argc, char *argv[]){ //Pantalla principal con datos generales del proyecto: cout<<"\n\n \t ****************************************\n"; cout<<" \t *** ***\n"; cout<<" \t *** ESTRUCTURA DE DATOS ***\n"; cout<<" \t *** ***\n"; cout<<" \t ****************************************\n"; cout<<" \n\n\t MATERIA: Algoritmo y Programacion"; cout<<" \n\n\t PROFESOR: \t"; cout<<" \n\n\t\t"; getch(); system("cls"); menuPrincipal(); return 0; }
Es un registro sencillo.. pero presento un problema, cuando intento comparar if(paciente1[pos].sexo=='s'){ contadorsexoF++; } me da eror.. Estoy tratando de saber cuantos pacientes Femeninos y masculinos se Atendienron o si alguien conoce otra manera de hacerlo, se los agradezco de ante manos. A por cierto el error es este: comparison between pointer and integer! He leido mucho y no logro comprender como solucionar el poder usar un contador cuando se use el paciente pensando, pensando y bueno quisiera otro punto de vista a ver
|
|
« Última modificación: 16 Agosto 2012, 23:27 pm por Magiwuan »
|
En línea
|
|
|
|
avesudra
Desconectado
Mensajes: 724
Intentando ser mejor cada día :)
|
Mmmm , es así , tu lo que intentas comparar es el contenido de paciente1[pos].sexo el cual es un puntero entonces tienes que usar el operador de indireccion *. Te quedaría así: if(*paciente1[pos].sexo=='s'){ contadorsexoF++; }
PD: Publica el codigo con etiquetas GeSHi por favor
|
|
« Última modificación: 16 Agosto 2012, 23:49 pm por avesudra »
|
En línea
|
Regístrate en
|
|
|
ecfisa
Desconectado
Mensajes: 114
|
Hola Magiwuan. Proba de este modo: if (strcmp(paciente1[pos].sexo, "s") == 0) contadorsexoF++;
Saludos. Edito: No había visto la respuesta de avesudra que también te funcionará.
|
|
« Última modificación: 16 Agosto 2012, 23:55 pm por ecfisa »
|
En línea
|
|
|
|
avesudra
Desconectado
Mensajes: 724
Intentando ser mejor cada día :)
|
Hola Magiwuan. Proba de este modo: if (strcmp(paciente1[pos].sexo, "s") == 0) contadorsexoF++;
Saludos. Ese modo vale pero me parece innecesario tener que llamar a una función ¿no? pues es solo un caracter.Aunque Magiwuan podría haber declarado el sexo en la estructura como un unico char , no como un array..
|
|
« Última modificación: 16 Agosto 2012, 23:57 pm por avesudra »
|
En línea
|
Regístrate en
|
|
|
Magiwuan
Desconectado
Mensajes: 6
|
Wow. varias respuestas que bueno.. Muchas gracias por su apoyo ambas maneras sirvieron.. en cuanto al código esta bueno no ? cuando lo termine en su totalidad lo publico todo. Gracias nuavemente. Quedo de la siguiente manera if(*paciente1[i].sexo=='f' || *paciente1[i].sexo=='F'){ contadorsexoF++; } if(*paciente1[i].sexo=='m' || *paciente1[i].sexo=='M'){ contadorsexoM++; } Tengo otra pregunta Yo tengo 1 sola estructura de registro la cual planeo usar para varios arrelgos: struct paciente { char nombre[20],apellido[20],sexo[1]; int edad,cedula; }; typedef paciente arreglo[nMax_n]; arreglo paciente1; arreglo paciente2; es una manera optima o tengo q usar otra ? para el arreglo paciente2, xq si intento sacar los datos del segundo arreglo cuando consulto el arreglo 1 se pierden los datos de la posicion que saque.
|
|
« Última modificación: 17 Agosto 2012, 01:36 am por Magiwuan »
|
En línea
|
|
|
|
avesudra
Desconectado
Mensajes: 724
Intentando ser mejor cada día :)
|
Tengo otra pregunta Yo tengo 1 sola estructura de registro la cual planeo usar para varios arrelgos: struct paciente { char nombre[20],apellido[20],sexo[1]; int edad,cedula; }; typedef paciente arreglo[nMax_n]; arreglo paciente1; arreglo paciente2; es una manera optima o tengo q usar otra ? para el arreglo paciente2, xq si intento sacar los datos del segundo arreglo cuando consulto el arreglo 1 se pierden los datos de la posicion que saque. Personalmente la estructura la preferiría dejar así: struct pac { char nombre[20],apellido[20],sexo;//Sexo para que quieres que sea un arreglo , así lo manejas como un unico carácter int edad,cedula; }; typedef struct pac paciente; paciente paciente1[8]; //El arreglo de pacientes puedes definirlo tu , no hace falta que sea estático. paciente paciente2[24]//Por poner numeros;
Y en cuanto a lo del problema no te entendí bien que quieres decir.
|
|
|
En línea
|
Regístrate en
|
|
|
Magiwuan
Desconectado
Mensajes: 6
|
Gracias por responder, me explico:
El ejercicio es una clínica, con varios consultorios.. cada consultorio tendría un arreglo de pacientes.
con 1 solo arreglo me funciona bien, pero cuando trabajo con 2 es decir paciente1 y paciente2 y los lleno ambos y luego vació el arreglo de paciente2, en pocas palabras los pacientes de ese arreglo fueron atendidos, me extrae valores del arreglo paciente1 y cuando me dirijo a consultar los datos del arreglo paciente1 la ultima posición no tiene nada.
Que estaré haciendo mal? mientras tanto estoy leyendo y probando algunos métodos.
|
|
« Última modificación: 17 Agosto 2012, 21:54 pm por Magiwuan »
|
En línea
|
|
|
|
rir3760
Desconectado
Mensajes: 1.639
|
Que estaré haciendo mal? mientras tanto estoy leyendo y probando algunos métodos. Publica el programa con las modificaciones. Un saludo
|
|
|
En línea
|
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language
|
|
|
Magiwuan
Desconectado
Mensajes: 6
|
Lo intente con algo asi para ver que tal. Gracias por la ayuda de ante mano #include <iostream> #include <cstdlib>//Libreria reservada para uso de System(); #include<conio.h> //Libreria reservada para getch(); #include<string.h> #include<cstdio> using namespace std; const int nMax_n=1; //Variables char respuesta; char respuesta1; char respuesta2; char res; char cSeguir; int pos=0,pos2=0; //Esta variable me determina la posicion del registro del paciente int contAtendidos=0,contAtendidos2=0;//Contador de pacientes atendidos int pregunta=0,pregunta2=0; int contadorsexoF=0, contadorsexoM=0; struct paciente { char nombre[20],apellido[20],sexo[1]; int edad,cedula; }; typedef paciente arreglo[nMax_n]; arreglo paciente1; arreglo paciente2; //Valida cola int vacia(){ if (pos==0) return 1; else return 0; }
//FUNCION QUE LLENA LA PRIMERA COLA DEL CONSULTORIO OFTALMOLOGICO void llenarcola1(arreglo paciente1){ char res; do{//HACER ... if(pos<=nMax_n){//Valida que el tamaño del arreglo no sea mayor al constante //sino se valida repite el ciclo pero no guarda mas registros system("cls"); cout<<"***************************************"<<endl; cout<<"******* DATOS DEL PACIENTE *******"<<endl; cout<<"***************************************"<<endl; cout<<endl; cout<<"Nombre: "; cin>>paciente1[pos].nombre; cout<<endl; cout<<"Apellido: "; cin>>paciente1[pos].apellido; cout<<endl; cout<<"Sexo(F/M): "; cin>>paciente1[pos].sexo; cout<<endl; cout<<"Edad: "; cin>>paciente1[pos].edad; cout<<endl; cout<<"Cedula: "; cin>>paciente1[pos].cedula; cout<<endl; for (int i=0;i<pos;i++) { //si la cedula se repite manda un mensaje de alerta if(paciente1[i].cedula==paciente1[pos].cedula){ cout<<endl; int cced=0; cout<<" Numero de Cedula repetido "<<endl; cout<<endl; pos--; //resta la X para que el tamaño de la constate no incremente do{ cout<<" INGRESA NUEVAMENTE LA CEDULA "; cin>>paciente1[pos].cedula; cced++; cout<<endl; }while(cced<=2); if(cced>2){ cout<<" has llegado al limite de intentos "; } } } cout<<endl; pregunta=nMax_n-pos; cout<<endl<<"Total de citas Restantes:"<<pregunta; cout<<endl; cout<<endl; pos++; //incremento la posicion if(pregunta==0){//VALIDA QUE SI SE LLENO EL ARREGLO CAMBIE LA PREGUNTA FINAL cout<<endl; cout<<endl<<"No hay mas Citas por hoy."<<endl; getch();//Presionar una Tecla para continuar res='n'; }else{ cout<<endl<<"Desea ingresar otro Paciente S/N?"; cin>>res; } system("cls"); cout<<endl; }else{ //VALIDA QUE EL USUARIO NO INGRESE USUARIOS SI ESTA FULL EL REGISTROs system("cls"); cout<<endl<<"No hay mas Citas por hoy."<<endl; cout<<endl; getch();//Presionar una Tecla para continuar system("cls"); res='n'; } }while(res=='s' || res=='S'); // .. MIENTRAS LA RESPUESTA SEA IGUAL A S } // CONSULTA DE PACIENTES DE OFTALMOLOGIA void consultarPacientes1(arreglo paciente1){ if(contAtendidos==0){ cout<<endl; cout<<"No se han Atendidos Pacientes"<<endl; cout<<endl; cout<<"***************************************"<<endl; }else{ cout<<endl; cout<<"Cantidad de Pacientes Atendidos: "<<contAtendidos<<endl; cout<<endl; cout<<"***************************************"<<endl; } if(vacia()==1){// SI LA FUNCION VACIA RETORNA VALOR 1, ESTA VACIA cout<<endl; cout<<"No hay pacientes Registrados"<<endl; cout<<endl; cout<<"***************************************"<<endl; cout<<endl; getch();//Presionar una Tecla para continuar system("cls"); }else{//SINO ESTA VACIA PROCESE A IMPRIMIR TODOS LOS REGISTROS RELACIONADOS cout<<"***************************************"<<endl; cout<<"******* PACIENTES POR ATENDER ********"<<endl; cout<<"***************************************"<<endl; cout<<endl; for (int i=0;i<pos;i++) //EL TAMAÑO DEL FOR SERA EL CONTADOR DE REGISTRO { cout<<"Nombre: "<<paciente1[i].nombre<<endl; cout<<endl; cout<<"Apellido: "<<paciente1[i].apellido<<endl; cout<<endl; cout<<"Sexo: "<<paciente1[i].sexo<<endl; cout<<endl; cout<<"Edad: "<<paciente1[i].edad<<endl; cout<<endl; cout<<"Cedula: "<<paciente1[i].cedula<<endl; cout<<endl; cout<<"*************************************"<<endl; cout<<endl; } cout<<"*************************************"<<endl; getch();//Presionar una Tecla para continuar//Presionar una Tecla para continuar system("cls"); } }
//ATENDER UN PACIENTE ES DECIR SACARLO DE LA Cola void AtenderPaciente1(arreglo paciente1){ char atendido; int i=0; if(vacia()==1){// SI LA FUNCION VACIA RETORNA VALOR 1, ESTA VACIA cout<<endl; cout<<"No hay pacientes Registrados"<<endl; cout<<endl; getch();//Presionar una Tecla para continuar system("cls"); }else{//SINO ESTA VACIA PROCESE A IMPRIMIR TODOS LOS REGISTROS RELACIONADOS cout<<endl; cout<<"***** DATOS DEL PACIENTE *****"<<endl; cout<<"***************************************"<<endl; cout<<endl; for (i=0;i<1;i++) //EL TAMAÑO DEL FOR SERA EL CONTADOR DE REGISTRO { cout<<"Nombre: "<<paciente1[i].nombre<<endl; cout<<endl; cout<<"Apellido: "<<paciente1[i].apellido<<endl; cout<<endl; cout<<"Sexo: "<<paciente1[i].sexo<<endl; cout<<endl; cout<<"Edad: "<<paciente1[i].edad<<endl; cout<<endl; cout<<"Cedula: "<<paciente1[i].cedula<<endl; cout<<endl; cout<<"*************************************"<<endl; cout<<endl; cout<<"Desea Atender Paciente ? S/N "; cin>>atendido; //este proceso elimina&destruye la posicion 1 del registro y rueda los demas if(atendido=='s' || atendido=='S'){ //recorre el arreglo para destruir la primera posicion[0] moviendo los registros for(int j=0; j<pos-1; j++) paciente1[j] = paciente1[j+1]; pos--; /* Decrementa pos */ contAtendidos++; if(*paciente1[i].sexo=='f' || *paciente1[i].sexo=='F'){ contadorsexoF++; } if(*paciente1[i].sexo=='m' || *paciente1[i].sexo=='M'){ contadorsexoM++; } } if(atendido=='n' || atendido=='N'){ cout<<endl; cout<<"Al paciente "<<paciente1[i].nombre<<" "<<paciente1[i].apellido<<" le fue cancelada la cita"; //recorre el arreglo para destruir la primera posicion[0] moviendo los registros for(int j=0; j<pos-1; j++) paciente1[j] = paciente1[j+1]; pos--; /* Decrementa pos */ getch(); } } system("cls"); } } // MENU DEL CONSULTO DE OFTALMOLOGIA Y SUS CASOS int submenu1(){ do{ cout<<endl; cout<<"****** CONSULTORIO DE OFTALMOLOGIA ******"<<endl; cout<<"** **"<<endl; cout<<"** A.- Cita **"<<endl; cout<<"** B.- Atender Pacientes **"<<endl; cout<<"** C.- Consulta de Pacientes **"<<endl; cout<<"** D.- Menu Principal **"<<endl; cout<<"** **"<<endl; //cout<<"Sexo F: "<<contadorsexoF<<endl; //cout<<"Sexo M: "<<contadorsexoM<<endl; cout<<"******************************************"<<endl; cout<<endl<<" Que Operacion Desea Realizar: "; cin>>respuesta1; if(respuesta1!='A' || respuesta1!='B' || respuesta1!='C'){ system("cls"); } //SWITCH DEL CONSULTO DE OFTALMOLOGIA switch (respuesta1){ case 'A': llenarcola1(paciente1); break; case 'B': system("cls"); AtenderPaciente1(paciente1); break; case 'C': system("cls"); consultarPacientes1(paciente1); break; case 'D': system("cls");//Simula volver al menu principal. break; } }while(respuesta1!='D'); return 0; } // ESPACIO DE CODIGO PARA TRABAJAR EL SEGUNDO MODULO
// ESPACIO DE CODIGO PARA TRABAJAR EL SEGUNDO MODULO // ESPACIO DE CODIGO PARA TRABAJAR EL SEGUNDO MODULO // ESPACIO DE CODIGO PARA TRABAJAR EL SEGUNDO MODULO //FUNCION QUE LLENA LA PRIMERA COLA DEL CONSULTORIO OFTALMOLOGICO int vacia2(){ if (pos2==0) return 1; else return 0; } void llenarcola2(arreglo paciente2){ int pregunta2=0; do{//HACER ... if(pos2<=nMax_n){//Valida que el tamaño del arreglo no sea mayor al constante //sino se valida repite el ciclo pero no guarda mas registros system("cls"); cout<<"***************************************"<<endl; cout<<"******* DATOS DEL PACIENTE *******"<<endl; cout<<"***************************************"<<endl; cout<<endl; cout<<"Nombre: "; cin>>paciente2[pos2].nombre; cout<<endl; cout<<"Apellido: "; cin>>paciente2[pos2].apellido; cout<<endl; cout<<"Sexo: "; cin>>paciente2[pos2].sexo; cout<<endl; cout<<"Edad: "; cin>>paciente2[pos2].edad; cout<<endl; cout<<"Cedula: "; cin>>paciente2[pos2].cedula; cout<<endl; cout<<endl; pregunta2=nMax_n-pos2; cout<<endl<<"Total de citas Restantes:"<<pregunta2; cout<<endl; cout<<endl; pos2++; //incremento la posicion if(pregunta2==0){//VALIDA QUE SI SE LLENO EL ARREGLO CAMBIE LA PREGUNTA FINAL cout<<endl; cout<<endl<<"No hay mas Citas por hoy."<<endl; getch();//Presionar una Tecla para continuar res='n'; }else{ cout<<endl<<"Desea ingresar otro Paciente S/N?"; cin>>res; } system("cls"); cout<<endl; }else{ //VALIDA QUE EL USUARIO NO INGRESE USUARIOS SI ESTA FULL EL REGISTROs system("cls"); cout<<endl<<"No hay mas Citas por hoy."<<endl; cout<<endl; getch();//Presionar una Tecla para continuar system("cls"); res='n'; } }while(res=='s' || res=='S'); // .. MIENTRAS LA RESPUESTA SEA IGUAL A S } void consultarPacientes2(arreglo paciente2){ if(contAtendidos2==0){ cout<<endl; cout<<"No se han Atendidos Pacientes"<<endl; cout<<endl; cout<<"***************************************"<<endl; }else{ cout<<endl; cout<<"Cantidad de Pacientes Atendidos: "<<contAtendidos2<<endl; cout<<endl; cout<<"***************************************"<<endl; } if(vacia2()==1){// SI LA FUNCION VACIA RETORNA VALOR 1, ESTA VACIA cout<<endl; cout<<"No hay pacientes Registrados"<<endl; cout<<endl; cout<<"***************************************"<<endl; cout<<endl; getch();//Presionar una Tecla para continuar system("cls"); }else{//SINO ESTA VACIA PROCESE A IMPRIMIR TODOS LOS REGISTROS RELACIONADOS cout<<"***************************************"<<endl; cout<<"******* PACIENTES POR ATENDER ********"<<endl; cout<<"***************************************"<<endl; cout<<endl; for (int i=0;i<pos2;i++) //EL TAMAÑO DEL FOR SERA EL CONTADOR DE REGISTRO { cout<<"Nombre: "<<paciente2[i].nombre<<endl; cout<<endl; cout<<"Apellido: "<<paciente2[i].apellido<<endl; cout<<endl; cout<<"Sexo: "<<paciente2[i].sexo<<endl; cout<<endl; cout<<"Edad: "<<paciente2[i].edad<<endl; cout<<endl; cout<<"Cedula: "<<paciente2[i].cedula<<endl; cout<<endl; cout<<"*************************************"<<endl; cout<<endl; } cout<<"*************************************"<<endl; getch();//Presionar una Tecla para continuar//Presionar una Tecla para continuar system("cls"); } }
void AtenderPaciente2(arreglo paciente2){ char atendido2; int i; if(vacia2()==1){// SI LA FUNCION VACIA RETORNA VALOR 1, ESTA VACIA cout<<endl; cout<<"No hay pacientes Registrados"<<endl; cout<<endl; getch();//Presionar una Tecla para continuar system("cls"); }else{//SINO ESTA VACIA PROCESE A IMPRIMIR TODOS LOS REGISTROS RELACIONADOS cout<<endl; cout<<"***** DATOS DEL PACIENTE *****"<<endl; cout<<"***************************************"<<endl; cout<<endl; for (i=0;i<nMax_n;i++) //EL TAMAÑO DEL FOR SERA EL CONTADOR DE REGISTRO { cout<<"Nombre: "<<paciente2[i].nombre<<endl; cout<<endl; cout<<"Apellido: "<<paciente2[i].apellido<<endl; cout<<endl; cout<<"Sexo: "<<paciente2[i].sexo<<endl; cout<<endl; cout<<"Edad: "<<paciente2[i].edad<<endl; cout<<endl; cout<<"Cedula: "<<paciente2[i].cedula<<endl; cout<<endl; cout<<"*************************************"<<endl; cout<<endl; cout<<"Desea Atender Paciente ? S/N "; cin>>atendido2; //este proceso elimina&destruye la posicion 1 del registro y rueda los demas if(atendido2=='s' || atendido2=='S'){ //recorre el arreglo para destruir la primera posicion[0] moviendo los registros for(int j=0; j<pos2-1; j++){ paciente2[j] = paciente2[j+1]; pos2--; /* Decrementa pos */ } contAtendidos2++; if(*paciente1[i].sexo=='f' || *paciente1[i].sexo=='F'){ contadorsexoF++; } if(*paciente1[i].sexo=='m' || *paciente1[i].sexo=='M'){ contadorsexoM++; } } if(atendido2=='n' || atendido2=='N'){ cout<<endl; cout<<"Al paciente "<<paciente2[i].nombre<<" "<<paciente2[i].apellido<<" le fue cancelada la cita"; //recorre el arreglo para destruir la primera posicion[0] moviendo los registros for(int j=0; j<pos2-1; j++){ paciente2[j] = paciente2[j+1]; pos2--; /* Decrementa pos */ } getch(); } } system("cls"); } } int submenu2(){ do{ cout<<endl; cout<<"****** CONSULTORIO DE GINECOLOGIA ******"<<endl; cout<<"** **"<<endl; cout<<"** A.- Cita **"<<endl; cout<<"** B.- Atender Pacientes **"<<endl; cout<<"** C.- Consulta de Pacientes **"<<endl; cout<<"** D.- Menu Principal **"<<endl; cout<<"** **"<<endl; cout<<"******************************************"<<endl; cout<<endl<<" Que Operacion Desea Realizar: "; cin>>respuesta2; if(respuesta2!='A' || respuesta2!='B' || respuesta2!='C'){ system("cls"); } //SWITCH DEL CONSULTO DE OFTALMOLOGIA switch (respuesta2){ case 'A': llenarcola2(paciente2); break; case 'B': system("cls"); AtenderPaciente2(paciente2); break; case 'C': system("cls"); consultarPacientes2(paciente2); break; case 'D': system("cls");//Simula volver al menu principal. break; } }while(respuesta2!='D'); return 0; } void ConsultaTotal(){ if(pos==0 || pos2==0){ cout<<endl; cout<<"No hay pacientes Registrados"<<endl; cout<<endl; getch();//Presionar una Tecla para continuar system("cls"); }else{ cout<<"**********************************"<<endl; cout<<endl; cout<<"Total de Pacientes Atendidso: "<<contAtendidos+contAtendidos2<<endl; cout<<endl; cout<<"Total de Pacientes Atendidos en OF: "<<contAtendidos<<endl; cout<<endl; cout<<"Total de Pacientes Atendidos en Gi: "<<contAtendidos2<<endl; cout<<endl; cout<<"Total de Pacientes Atendidos Del Sexo F: "<<contadorsexoF<<endl; cout<<endl; cout<<"Total de Pacientes Atendidos Del Sexo M: "<<contadorsexoM<<endl; cout<<endl; cout<<"**********************************"<<endl; getch(); } } //Primero que nada el Menu Principal que llevara los Consultorios int menuPrincipal(){ do{ system("color B"); cout<<endl; cout<<"******* CLINICA EL VALLE **********"<<endl; cout<<"* *"<<endl; cout<<"* A.- Oftalmologia *"<<endl; cout<<"* B.- Ginecologo *"<<endl; cout<<"* C.- Odontologia *"<<endl; cout<<"* D.- Medicina General *"<<endl; cout<<"* E.- Emergencia *"<<endl; cout<<"* F.- Consulta Total *"<<endl; // Supuestamente seran todos los pacientes atentidos cout<<"* G.-Salir / Exit *"<<endl; cout<<"* *"<<endl; cout<<"**********************************"<<endl; cout<<endl<<" Digite su Opcion por favor: "; cin>>respuesta; //si la Respuesta es Diferente de estos valores solo limpia y muestra el menuPrincipal if(respuesta!='A' || respuesta!='B' || respuesta!='C' || respuesta!='D' || respuesta!='E' || respuesta!='F'){ system("cls"); } switch (respuesta){ case 'A': submenu1(); break; case 'B': submenu2(); break; case 'F': ConsultaTotal(); break; case 'G': cout<<endl; cout<<" Hasta Pronto!! "<<endl; cout<<endl; break; } }while(respuesta!='G');//Mostrara el menu Mientras la respuesta no sea F return 0; }
int main(int argc, char *argv[]){ //Pantalla principal con datos generales del proyecto: cout<<"\n\n \t ****************************************\n"; cout<<" \t *** ***\n"; cout<<" \t *** ESTRUCTURA DE DATOS ***\n"; cout<<" \t *** ***\n"; cout<<" \t ****************************************\n"; cout<<" \n\n\t MATERIA: Algoritmo y Programacion"; cout<<" \n\n\t\t"; getch(); system("cls"); menuPrincipal(); return 0; }
|
|
|
En línea
|
|
|
|
avesudra
Desconectado
Mensajes: 724
Intentando ser mejor cada día :)
|
Solucionado : Estas pasando argumentos innecesarios , deberias depurar más ese código , hay funciones que sobran, dejo el código:
Me he equivocado
|
|
« Última modificación: 19 Agosto 2012, 15:41 pm por avesudra »
|
En línea
|
Regístrate en
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
comparar Imagenes
« 1 2 »
Programación Visual Basic
|
yalosabes
|
10
|
4,413
|
23 Marzo 2006, 04:41 am
por LeandroA
|
|
|
Comparar 2 imagenes
Programación Visual Basic
|
SheKeL_C$
|
8
|
4,054
|
22 Diciembre 2007, 00:00 am
por Tughack
|
|
|
Comparar textos
PHP
|
chicuela66
|
0
|
2,353
|
12 Febrero 2008, 16:30 pm
por chicuela66
|
|
|
Microsoft: comparar IE9 y Firefox 4 es como comparar “manzanas y naranjas”
« 1 2 »
Noticias
|
wolfbcn
|
15
|
7,956
|
27 Marzo 2011, 04:35 am
por Foxy Rider
|
|
|
comparar IP´s
Dudas Generales
|
darchi
|
0
|
3,279
|
20 Julio 2011, 17:37 pm
por darchi
|
|