Foros del Web » Programación para mayores de 30 ;) » Programación General »

Necesito ayuda con un programa de C

Estas en el tema de Necesito ayuda con un programa de C en el foro de Programación General en Foros del Web. Estoy practicando pero encontre un problema qno se hacer Dice lo siguiente Es una base de datos de hospital donde uno tiene q usar estructuras ...
  #1 (permalink)  
Antiguo 29/11/2004, 12:20
 
Fecha de Ingreso: junio-2004
Mensajes: 299
Antigüedad: 19 años, 10 meses
Puntos: 0
Pregunta Necesito ayuda con un programa de C

Estoy practicando pero encontre un problema qno se hacer
Dice lo siguiente
Es una base de datos de hospital donde uno tiene q usar estructuras para hacerlo
donde uno tiene q colocar nombre, edad , sexo, domicilio telefono y seguro


La cosa es q logro introducir todos los datos no en un array de estructuras para lograr almacenar todos los datos pero entonces el libro me pide que debo poder introducir el nombre para obtener los datos de la persona... osea si fuera con el numero de seguro fuera facilisimo la cosa es q con el nombre pues no tengo idea y se tiene q hacer asi y la verdad no se
Aqui les dejo lo q he hecho ( Acuerdense q soy un principiantes apenas estoy aprendiendo asi que es un programa malo pero funciona ) :)

Alguien tiene alguna sugerencia de como puedo hacer esto?? se los agradeceria mucho osea seria bueno que me mencionaran como HACERLO no disque pon esto y ya porque la idea mia es q quiero aprender no q me lo hagan y ya. :/


#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int cont1=0,cont2=0,cont3=0,cont4=0,cont5=0,cont6=0,co nt7=0;
struct hospital
{
char nombre[50];
int edad;
char sexo[5];
int telefono;
char seguro[5];
}pacientes;

struct domicilio
{
char calle[30];
int numero;
char ciudad[50];
}direccion;

int main()
{
struct hospital pacientes[100];
struct domicilio direccion[100];
int a,z=1;
char nombre1[50];
while(z==1)
{

printf("1.Para introducir un nuevo paciente\n2.Obtener Datos de algun paciente\n3.Salir\n");
do
{
a=getch();
}while(!((a==49)||(a==50)||(a==51)));

if(a==49)
{
cont1=cont1+cont2;
printf("Introduzca su nombre\n");
scanf("%s",pacientes[cont1].nombre);
++cont1;
cont2=cont1;
cont1=0;

cont1=cont1+cont3;
puts("Escriba la edad del paciente");
scanf("%d",&pacientes[cont1].edad);
++cont1;
cont3=cont1;
cont1=0;

cont1=cont1+cont4;
puts("Escriba el sexo del paciente escriba F para femenino y M para masculino");
scanf("%s",pacientes[cont1].sexo);
++cont1;
cont4=cont1;
cont1=0;

cont1=cont1+cont5;
puts("Escriba el nombre de la Calle");
scanf("%s",direccion[cont1].calle);
++cont1;
cont4=cont1;
cont1=0;

cont1=cont1+cont6;
puts("Escriba el numero de la casa");
scanf("%d",&direccion[cont1].numero);
++cont1;
cont5=cont1;
cont1=0;

cont1=cont1+cont7;
puts("Escriba el nombre de la ciudad");
scanf("%s",direccion[cont1].ciudad);
++cont1;
cont5=cont1;
cont1=0;
clrscr();

z=1;
}
  #2 (permalink)  
Antiguo 29/11/2004, 12:26
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 19 años, 11 meses
Puntos: 74
Podes usar stricmp(cadena1, cadena2) que hace una comparación de cadenas sin tener en cuenta mayusculas, si el resultado es cero entonces son iguales.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #3 (permalink)  
Antiguo 29/11/2004, 13:15
 
Fecha de Ingreso: junio-2004
Mensajes: 299
Antigüedad: 19 años, 10 meses
Puntos: 0
Waoh hey eternal idol te agradezco mucho!!! ya ahora si funciona bien lo q quiero hacer
  #4 (permalink)  
Antiguo 29/11/2004, 13:59
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 19 años, 11 meses
Puntos: 74
De nada, me alegro de que te haya servido.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #5 (permalink)  
Antiguo 01/12/2004, 19:26
 
Fecha de Ingreso: junio-2004
Mensajes: 299
Antigüedad: 19 años, 10 meses
Puntos: 0
Mira tengo un problema con esa funcion mira que la use y entonces si ponen un nombre que no es
mira aqui esta la parte mira que use un if para si sale 0 pues me ponga el nombre pero
sino sale 0 pues que me imprima q no esta en la base de datos pero no lo hace namas se traba el programa y nose no entiendo :/

if(a==50)
{
getch();
system("cls");
puts("Introduzca el nombre del paciente al cual se le quieren ver los datos");
scanf("%s",nombre1);
cont1=0;
do
{
comprobacion=stricmp(nombre1,pacientes[cont1].nombre);
++cont1;
}while(!(comprobacion==0));

if(comprobacion==0)
{

printf("Nombre: %s\n",pacientes[cont1-1].nombre);
printf("Edad: %d\n",pacientes[cont1-1].edad);
printf("Sexo: %s\n",pacientes[cont1-1].sexo);
printf("Calle: %s\n",direccion[cont1-1].calle);
printf("Numero de la casa: %d\n",direccion[cont1-1].numero);
printf("Ciudad: %s\n",direccion[cont1-1].ciudad);
printf("telefono: %s\n",pacientes[cont1-1].telefono);
printf("Seguro?: %s\n",pacientes[cont1-1].seguro);
getch();
system("cls");
}

else
{
printf("Ese nombre no esta en la base de datos del hospital\n");
getch();
system("cls");
}
z=1;
cont1=0;
  #6 (permalink)  
Antiguo 02/12/2004, 01:51
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 19 años, 11 meses
Puntos: 74
¿Y el contador? ¿Donde comprobas que cont1 no sea mayor que el último elemento del array (pacientes)?
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:56.