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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / [C++] Ayuda con programa para examen en: 20 Enero 2017, 23:48 pm
Hola, soy nuevo en el foro  ;D por lo que no se muy bien como es esto :huh: como dice el titulo queria pedir ayuda con un programa que debo hacer para un examen, en el debo hacer lo siguiente:


Un medico almacena los siguientes datos de sus pacientes:

  • Nombre
  • Telefono
  • Direccion
  • Alergias

1. Trabajar el ejercicio con Funciones.
2. Ingresar los datos hasta que el usuario decida terminar (Ojo: a efectos de la dimension del vector(Array) puede haber como maximo 100 pacientes).
3. Imprimir el listado de la informacion ingresada ordenada por nombre.
4. Listar los pacientes con alergias (Usar Puntero para ello).
5. Ingresar una letra y mostrar todos los pacientes cuyo nombre comience con ella.

Código
  1. /*declaracion de preprocesador*/
  2. #include<stdio.h>
  3. #include<string.h>
  4. #include<stdlib.h>
  5. #include<iostream>
  6. #define I 99
  7. #define J 21
  8. using namespace std;
  9.  
  10. /*declaracion de variables globales*/
  11. int m,n,o,p,q,r,s,t,cont,opcion;
  12. char letra;
  13.  
  14. /*declaracion de la estructura 'datos'*/
  15. struct datos
  16. {
  17. char nombre[20]; /*nombre del paciente, se pueden escribir hasta 20 caracteres*/
  18. int telefono; /*telefono del paciente*/
  19. char direccion[20]; /*direccion del paciente*/
  20. char alergias[20]; /*alergias del paciente*/
  21. };
  22.  
  23. /*declaracion del la funcion void 'ingresar_letra'*/
  24. void ingresar_letra(datos *dat3[I])
  25. {
  26. do /*hacer*/
  27. {
  28. if (letra==dat3[m]->nombre[0]) /*si la letra ingresada es igual a la inicial del nombre del paciente...*/
  29. {
  30. printf("%20s %d %20s %20s\n",dat3[m]->nombre, dat3[m]->telefono, dat3[m]->direccion, dat3[m]->alergias); /*imprimir datos del paciente*/
  31. m=m+1;
  32. }
  33. else
  34. {
  35. m=m+1;
  36. }
  37. }while(m=0 && m<=I); /*mientras 'm' sea igual a '0' y sea igual o menor a 'I', es decir 99*/
  38. if(dat3[I]->nombre[0]!=letra) /*si ningun nombre coincide con la letra ingresada...*/
  39. {
  40. printf("No hay pacientes cuyo nombre empiece con la letra que ingreso."); /*imprimir mensaje indicando que no coinciden los pacientes*/
  41. }
  42. return;
  43. }
  44. /*fin funcion 'ingresar_letra'*/
  45.  
  46. /*declaracion de la funcion void 'listar_alergias'*/
  47. void listar_alergias(datos *dat4[I])
  48. {
  49. for(n=0;n<=I;n++)
  50. {
  51. if(dat4[n]->alergias!='n') /*si el miembro 'alergias' en dat4[] es diferente a 'no'... ERROR*/
  52. {
  53. printf("%20s %d %20s %20s\n",dat4[n]->nombre, dat4[n]->telefono, dat4[n]->direccion, dat4[n]->alergias); /*imprimir datos del paciente*/
  54. }
  55. }
  56. return;
  57. }
  58.  
  59. /*funcion main*/
  60. int main()
  61. {
  62. datos dat1[I],temp[I]; /*declaracion de variables de estructuras locales*/
  63. printf("Pulse Enter para iniciar");
  64. getchar();
  65. system("cls");
  66.    printf("INGRESOS:\n");
  67. for(o=0;o<=I;o++)
  68.   {
  69. printf("Ingrese nombre del paciente:");
  70. scanf("%s",dat1[o].nombre);
  71. printf("Ingrese Numero de Telefono:");
  72. scanf("%d",&dat1[o].telefono);
  73. printf("Ingrese Direccion del paciente:");
  74. scanf("%20s",dat1[o].direccion);
  75. printf("¿El paciente tiene alergias? Ingrese <no> si no las tiene:");
  76. scanf("%20s",dat1[o].alergias);
  77. printf("¿Quieres ingresar otro paciente?<1=si/0=no>");
  78. scanf("%d",&cont);
  79. if(cont==0) /*si 'cont' es igual a '0'...*/
  80. {
  81. o=1000; /*la variable 'o' tendra el valor de '1000', saliendo asi del bucle*/
  82. }
  83. }
  84. printf("Espere por favor mientras se ordena la lista...\n"); /*ordenamiento de burbuja*/
  85. for (p=0;p<=I;p++)
  86. {
  87. for (q=0;q<=I;q++)
  88. {
  89. if (dat1[q].nombre > dat1[q+1].nombre) /*si el nombre actual es alfabeticamente mayor que el siguiente...*/
  90. {
  91. temp[q] = dat1[q];
  92. dat1[q] = dat1[q+1];
  93. dat1[q+1] = temp[q];
  94. }
  95. }
  96. }
  97. getchar();
  98. printf("Esta es la lista de todos los pacientes:\n");
  99. printf("Nombre: Telefono: Direccion: Alergias:\n");
  100. for(r=0;r<=I;r++)
  101. {
  102. /*imprimir los datos de todos los pacientes*/
  103. printf("%s %d %s %s\n",dat1[r].nombre, dat1[r].telefono, dat1[r].direccion, dat1[r].alergias);
  104. }
  105. getchar();
  106. menu: /*regreso a un menu mediante 'goto'*/
  107. system("cls");
  108. printf("¿Que quiere hacer?\n");
  109. printf("====================================\n");
  110. printf("1.Listar pacientes con alergias\n");
  111. printf("2.Buscar pacientes por letra\n");
  112. printf("0.Salir\n");
  113. printf("====================================\n");
  114. scanf("%d",&opcion);
  115. switch(opcion)
  116. {
  117. case 1:
  118. {
  119. printf("LISTADO DE PACIENTES CON ALERGIAS:\n");
  120. for(s=0;s<=A;s++)
  121. {
  122. printf("Nombre: Telefono: Direccion: Alergias:\n");
  123. cout<<listar_alergias(dat1[s])<<endl; /*ERROR*/
  124. }
  125. getchar;
  126. goto menu; /*volver al menu*/
  127. }
  128. case 2:
  129. {
  130. printf("Ingrese una Letra:");
  131. scanf("%s",&letra);
  132. printf("\nPacientes con la letra: <%s> \n",letra);
  133. for(t=0;t<=B;t++)
  134. {
  135. cout<<ingresar_letra(dat2[t])<<endl; /*ERROR*/
  136. }
  137. getchar();
  138. goto menu;
  139. }
  140. case 0:
  141. {
  142. return 0;
  143. goto fin; /*ir al final del codigo y terminar el programa*/
  144. }
  145. default:
  146. {
  147. printf("Opcion Invalida.");
  148. getchar();
  149. goto menu;
  150. }
  151. }
  152. fin:
  153. return 0;
  154. }/*cierra main*/
  155.  

Estos son los errores que aparecen en el compilador (g++):
Citar
LineaColumnaMensaje
In function 'void listar_alergias(datos**)':
4725[Error] ISO C++ forbids comparison between pointer and integer [-fpermissive]
In function 'int main()':
12534[Error] cannot convert 'datos' to 'datos**' for argument '1' to 'void listar_alergias(datos**)'
13733[Error] cannot convert 'datos' to 'datos**' for argument '1' to 'void ingresar_letra(datos**)'

Mas o menos se lo que significan los errores, pero no se como resolverlos, si el codigo es ilegible, solo avisenme y tratare de ayudar con eso.

Desde ya muchas gracias  ;D
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines