elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Consejo [Comparar]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Consejo [Comparar]  (Leído 4,326 veces)
Magiwuan

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Consejo [Comparar]
« en: 16 Agosto 2012, 23:09 pm »

Saludos amigos, Tengo el siguiente codigo que les anexo:

Código:
#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
Código:
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 Desconectado

Mensajes: 724


Intentando ser mejor cada día :)


Ver Perfil
Re: Consejo [Comparar]
« Respuesta #1 en: 16 Agosto 2012, 23:39 pm »

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í:
Código
  1. if(*paciente1[pos].sexo=='s'){
  2. contadorsexoF++;
  3. }
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 Desconectado

Mensajes: 114


Ver Perfil
Re: Consejo [Comparar]
« Respuesta #2 en: 16 Agosto 2012, 23:51 pm »

Hola Magiwuan.

Proba de este modo:
Código
  1.  
  2.  if (strcmp(paciente1[pos].sexo, "s") == 0)
  3.    contadorsexoF++;
  4.  

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 Desconectado

Mensajes: 724


Intentando ser mejor cada día :)


Ver Perfil
Re: Consejo [Comparar]
« Respuesta #3 en: 16 Agosto 2012, 23:55 pm »

Hola Magiwuan.

Proba de este modo:
Código
  1.  
  2.  if (strcmp(paciente1[pos].sexo, "s") == 0)
  3.    contadorsexoF++;
  4.  

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 Desconectado

Mensajes: 6


Ver Perfil
Re: Consejo [Comparar]
« Respuesta #4 en: 17 Agosto 2012, 00:25 am »

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
Código:
	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:
Código:
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 Desconectado

Mensajes: 724


Intentando ser mejor cada día :)


Ver Perfil
Re: Consejo [Comparar]
« Respuesta #5 en: 17 Agosto 2012, 21:28 pm »


Tengo otra pregunta :)

Yo tengo 1 sola estructura de registro la cual planeo usar para varios arrelgos:
Código:
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í:
Código
  1. struct pac
  2. {
  3. char nombre[20],apellido[20],sexo;//Sexo para que quieres que sea un arreglo , as&#237; lo manejas como un unico car&#225;cter
  4. int edad,cedula;
  5. };
  6. typedef struct pac paciente;
  7. paciente paciente1[8]; //El arreglo de pacientes puedes definirlo tu , no hace falta que sea est&#225;tico.
  8. 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 Desconectado

Mensajes: 6


Ver Perfil
Re: Consejo [Comparar]
« Respuesta #6 en: 17 Agosto 2012, 21:51 pm »

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 Desconectado

Mensajes: 1.639


Ver Perfil
Re: Consejo [Comparar]
« Respuesta #7 en: 18 Agosto 2012, 03:51 am »

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 Desconectado

Mensajes: 6


Ver Perfil
Re: Consejo [Comparar]
« Respuesta #8 en: 18 Agosto 2012, 07:06 am »

 
Lo intente con algo asi para ver que tal.  Gracias por la ayuda de ante mano
Código:
#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 Desconectado

Mensajes: 724


Intentando ser mejor cada día :)


Ver Perfil
Re: Consejo [Comparar]
« Respuesta #9 en: 19 Agosto 2012, 02:16 am »

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
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
comparar Imagenes « 1 2 »
Programación Visual Basic
yalosabes 10 4,413 Último mensaje 23 Marzo 2006, 04:41 am
por LeandroA
Comparar 2 imagenes
Programación Visual Basic
SheKeL_C$ 8 4,054 Último mensaje 22 Diciembre 2007, 00:00 am
por Tughack
Comparar textos
PHP
chicuela66 0 2,353 Último mensaje 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 Último mensaje 27 Marzo 2011, 04:35 am
por Foxy Rider
comparar IP´s
Dudas Generales
darchi 0 3,279 Último mensaje 20 Julio 2011, 17:37 pm
por darchi
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines