Facebook
From Sole Mockingbird, 3 Years ago, written in C++.
Embed
Download Paste or View Raw
Hits: 136
  1. #include <ctype.h>
  2. #include <string.h>
  3. #include <iostream>
  4. # include <stdio.h>
  5. # include <conio.h>
  6. # include <stdlib.h>
  7.  
  8. using namespace std;
  9.  
  10. void intro();
  11. void modif();
  12. void borra();
  13. void consu();
  14. void error();
  15. void espacios(int);
  16. void menu();
  17.  
  18. struct hospital
  19. {
  20. int codmedico;
  21. int numpaciente;
  22. int edadpaciente;
  23. int pesopaciente;
  24. int telmedico;
  25. int telpaciente;
  26. int fechainicio;
  27. int fechaprox;
  28. char nombremedico[50];
  29. char apellidomedico[50];
  30. char especialidad[50];
  31. char nombrepaciente[50];
  32. char apellidopaciente[50];
  33. char diagnostico[50];
  34. }datos;
  35.  
  36. FILE *fichero;
  37.  
  38. char nom[30];
  39. int tama;
  40. void espacios(int final){
  41.     for(int i=1; i<final; i++)
  42. cout<<" ";
  43. }
  44.  
  45. /* grabar registros */
  46. void intro()
  47. {
  48. int s;
  49. int w=1, opc;
  50. datos.nombremedico[0]='\0';
  51. datos.apellidomedico[0]='\0';
  52. datos.especialidad[0]='\0';
  53. datos.nombrepaciente[0]='\0';
  54. datos.apellidopaciente[0]='\0';
  55. datos.diagnostico[0]='\0';
  56.  
  57. if((fichero=fopen("c:\\Hospital.dat","ab"))==NULL)error();
  58.  
  59. do{
  60. espacios(50);
  61. cout <<"Registrar Medico: "<<endl;
  62. cout <<endl;
  63. cout <<"Nombre del medico:"<<endl;
  64. cin >>datos.nombremedico;
  65. cout <<endl;
  66. cout<<"Apellido del medico:"<<endl;
  67. cin>>datos.apellidomedico;
  68. cout<<endl;
  69. cout<<"Especialidad:"<<endl;
  70. cin>>datos.especialidad;
  71. cout<<endl;
  72.  
  73. cout<<"Codigo medico:"<<endl;
  74. cin>>datos.codmedico;
  75. cout<<endl;
  76. cout<<"Telefono del medico:"<<endl;
  77. cin>>datos.telmedico;
  78. cout<<endl;
  79. cout<<endl;
  80.  
  81. cout <<"Registrar Paciente: "<<endl;
  82. cout <<endl;
  83. cout <<"Nombre del paciente:"<<endl;
  84. cin >>datos.nombrepaciente;
  85. cout <<endl;
  86. cout<<"Apellido del paciente:"<<endl;
  87. cin>>datos.apellidopaciente;
  88. cout<<endl;
  89. cout<<"Diagnostico:"<<endl;
  90. cin>>datos.diagnostico;
  91. cout<<endl;
  92.  
  93. cout<<"Numero paciente:"<<endl;
  94. cin>>datos.numpaciente;
  95. cout<<endl;
  96. cout<<"Edad del paciente:"<<endl;
  97. cin>>datos.edadpaciente;
  98. cout<<"Peso del paciente"<<endl;
  99. cin>>datos.pesopaciente;
  100. cout<<"Telefono del paciente"<<endl;
  101. cin>>datos.telpaciente;
  102. cout<<"Fecha de inicio"<<endl;
  103. cin>>datos.fechainicio;
  104. cout<<"Fecha de proxima cita"<<endl;
  105. cin>>datos.fechaprox;
  106. cout<<endl;
  107. cout<<endl;
  108. cout<<"Datos correctos (1=Si/0=No):"<<endl;
  109. cin >>opc;
  110. if(opc==1){
  111.  
  112.     fwrite(&datos,sizeof(datos),1,fichero);
  113.  }
  114. cout<<endl;
  115. cout<<"Desea agregar otro puesto (1=Si/0=No):"<<endl;
  116. cin >> w;
  117. }while (w==1);
  118. fclose(fichero);
  119. }
  120.  
  121. /* modificar registros*/
  122. void modif()
  123. {
  124.  int opc=0;
  125. nom[0]='\0';
  126. tama=sizeof(datos);
  127. if((fichero=fopen("c:\\Hospital.dat","r+b"))==NULL)error();
  128. espacios(15);cout<<"Introduce nombre a modificar:"<<endl;
  129. cin>>nom;
  130. while(!feof(fichero))
  131. {
  132. fread(&datos,sizeof(datos),1,fichero);
  133. if(strcmp(datos.nombremedico,nom)==0)
  134. {
  135. espacios(15);cout<<"1.-  Nombre : "<<datos.nombremedico<<endl;
  136. espacios(15);cout<<"2.-  Apellido: "<<datos.apellidomedico<<endl;
  137. espacios(15);cout<<"3.-  Especialidad: "<<datos.especialidad<<endl;
  138. espacios(15);cout<<"4.-  Codigo del medico: "<<datos.codmedico<<endl;
  139. espacios(15);cout<<"5.-  Telefono: "<<datos.telmedico<<endl;
  140. espacios(15);cout<<"6.-  Nombre del paciente: "<<datos.nombrepaciente<<endl;
  141. espacios(15);cout<<"7.-  Apellido del paciente: "<<datos.apellidopaciente<<endl;
  142. espacios(15);cout<<"8.-  Diagnostico: "<<datos.diagnostico<<endl;
  143. espacios(15);cout<<"9.-  Numero: "<<datos.numpaciente<<endl;
  144. espacios(15);cout<<"10.- Edad: "<<datos.edadpaciente<<endl;
  145. espacios(15);cout<<"11.- Peso: "<<datos.pesopaciente<<endl;
  146. espacios(15);cout<<"12.- Telefono: "<<datos.telpaciente<<endl;
  147. espacios(15);cout<<"13.- Primera cita: "<<datos.fechainicio<<endl;
  148. espacios(15);cout<<"14.- Proxima cita: "<<datos.fechaprox<<endl;
  149. espacios(15);cout<<"15.- Salir de las modificaciones:"<<endl<<endl;
  150. while(opc!=15)
  151. {
  152. espacios(18);cout<<"Campo a modificar"<<endl;
  153. cin >>opc;
  154. switch(opc)
  155. {
  156. case 1 :cout<<"Ingrese el nuevo dato: "<<endl;
  157.     strcpy(datos.nombremedico,"");
  158.     cin >>datos.nombremedico;
  159.     break;
  160. case 2 :cout<<"Ingrese el nuevo dato: "<<endl;
  161.     cin>>datos.apellidomedico;break;
  162. case 3 :cout<<"Ingrese el nuevo dato: "<<endl;
  163.     cin>>datos.especialidad;break;
  164. case 4 :cout<<"Ingrese el nuevo dato: "<<endl;
  165.     cin>>datos.codmedico;break;
  166. case 5 :cout<<"Ingrese el nuevo dato: "<<endl;
  167.     cin >> datos.telmedico;break;
  168. case 6 :cout<<"Ingrese el nuevo dato: "<<endl;
  169.     cin>>datos.nombrepaciente;break;
  170. case 7 :cout<<"Ingrese el nuevo dato: "<<endl;
  171.     cin>>datos.apellidopaciente;break;
  172. case 8 :cout<<"Ingrese el nuevo dato: "<<endl;
  173.     cin>>datos.diagnostico;break;
  174. case 9 :cout<<"Ingrese el nuevo dato: "<<endl;
  175.     cin>>datos.numpaciente;break;
  176. case 10 :cout<<"Ingrese el nuevo dato: "<<endl;
  177.     cin >> datos.edadpaciente;break;
  178. case 11 :cout<<"Ingrese el nuevo dato: "<<endl;
  179.     cin>>datos.pesopaciente;break;
  180. case 12 :cout<<"Ingrese el nuevo dato: "<<endl;
  181.     cin>>datos.telpaciente;break;
  182. case 13 :cout<<"Ingrese el nuevo dato: "<<endl;
  183.     cin>>datos.fechainicio;break;
  184. case 14 :cout<<"Ingrese el nuevo dato: "<<endl;
  185.     cin>>datos.fechaprox;break;
  186. case 15  :fseek(fichero,-tama,SEEK_CUR);
  187. fwrite(&datos,sizeof(datos),1,fichero);break;
  188. default:break;
  189. }
  190.  
  191. }
  192.  
  193. break;
  194. }
  195.  
  196. }
  197.  
  198. fclose(fichero);
  199. }
  200.  
  201. /* borrar registros */
  202. void borra()
  203. {
  204.  
  205.  int opc2;
  206. nom[0]='\0';
  207. tama=sizeof(datos);
  208. if((fichero=fopen("c:\\Hospital.dat","r+b"))==NULL)error();
  209. espacios(15);cout<<"Introduce nombre a borrar:"<<endl;
  210. cin >>nom;
  211. while(!feof(fichero))
  212. {
  213.     fread(&datos,sizeof(datos),1,fichero);
  214.     if(strcmp(datos.nombremedico,nom)==0)
  215. {
  216.     espacios(15);cout<<"1.-  Nombre : "<<datos.nombremedico<<endl;
  217.     espacios(15);cout<<"2.-  Apellido: "<<datos.apellidomedico<<endl;
  218.     espacios(15);cout<<"3.-  Especialidad: "<<datos.especialidad<<endl;
  219.     espacios(15);cout<<"4.-  Codigo del medico: "<<datos.codmedico<<endl;
  220.     espacios(15);cout<<"5.-  Telefono: "<<datos.telmedico<<endl;
  221.     espacios(15);cout<<"6.-  Nombre del paciente: "<<datos.nombrepaciente<<endl;
  222.     espacios(15);cout<<"7.-  Apellido del paciente: "<<datos.apellidopaciente<<endl;
  223.     espacios(15);cout<<"8.-  Diagnostico: "<<datos.diagnostico<<endl;
  224.     espacios(15);cout<<"9.-  Numero: "<<datos.numpaciente<<endl;
  225.     espacios(15);cout<<"10.- Edad: "<<datos.edadpaciente<<endl;
  226.     espacios(15);cout<<"11.- Peso: "<<datos.pesopaciente<<endl;
  227.     espacios(15);cout<<"12.- Telefono: "<<datos.telpaciente<<endl;
  228.     espacios(15);cout<<"13.- Primera cita: "<<datos.fechainicio<<endl;
  229.     espacios(15);cout<<"14.- Proxima cita: "<<datos.fechaprox<<endl;
  230.     espacios(15);cout<<"Estas seguro de querer borrarlo (1=Si/0=No)"<<endl;
  231.     cin >> opc2;
  232. if(opc2==1)
  233. {
  234. strcpy(datos.nombremedico,"*");
  235. fseek(fichero,-tama,SEEK_CUR);
  236. fwrite(&datos,sizeof(datos),1,fichero);
  237. break;
  238. }
  239. }
  240. }
  241. fclose(fichero);
  242. }
  243.  
  244. /*consultar un registro*/
  245. void consu()
  246. {
  247. strcpy(nom,"");
  248. if((fichero=fopen("c:\\Hospital.dat","rb"))==NULL)error();
  249. espacios(15);cout<<"Introduce nombre a consultar:"<<endl;
  250. cin>>nom;
  251. while(!feof(fichero))
  252. {
  253.     fread(&datos,sizeof(datos),1,fichero);
  254.     if(strcmp(datos.nombremedico,nom)==0)
  255. {
  256.     espacios(15);cout<<"1.-  Nombre : "<<datos.nombremedico<<endl;
  257.     espacios(15);cout<<"2.-  Apellido: "<<datos.apellidomedico<<endl;
  258.     espacios(15);cout<<"3.-  Especialidad: "<<datos.especialidad<<endl;
  259.     espacios(15);cout<<"4.-  Codigo del medico: "<<datos.codmedico<<endl;
  260.     espacios(15);cout<<"5.-  Telefono: "<<datos.telmedico<<endl;
  261.     espacios(15);cout<<"6.-  Nombre del paciente: "<<datos.nombrepaciente<<endl;
  262.     espacios(15);cout<<"7.-  Apellido del paciente: "<<datos.apellidopaciente<<endl;
  263.     espacios(15);cout<<"8.-  Diagnostico: "<<datos.diagnostico<<endl;
  264.     espacios(15);cout<<"9.-  Numero: "<<datos.numpaciente<<endl;
  265.     espacios(15);cout<<"10.- Edad: "<<datos.edadpaciente<<endl;
  266.     espacios(15);cout<<"11.- Peso: "<<datos.pesopaciente<<endl;
  267.     espacios(15);cout<<"12.- Telefono: "<<datos.telpaciente<<endl;
  268.     espacios(15);cout<<"13.- Primera cita: "<<datos.fechainicio<<endl;
  269.     espacios(15);cout<<"14.- Proxima cita: "<<datos.fechaprox<<endl;
  270.     cout<<"Presione una tecla para salir ......"<<endl;
  271.     getch();
  272.     break;
  273.     }
  274.   }
  275.  fclose(fichero);
  276. }
  277.  
  278. /* error en apertura */
  279. void error()
  280. {
  281. cout<<"Error no puedo abrir el fichero"<<endl;
  282. getch();
  283. exit(0);
  284. }
  285.  
  286. void menu(){
  287.  int opc=0;
  288.  do{
  289.     espacios(35);cout<<"Menu principal"<<endl;
  290.     espacios(29);cout<<"1.- Ingresar Puestos"<<endl;
  291.     espacios(29);cout<<"2.- Modificar Puestos"<<endl;
  292.     espacios(29);cout<<"3.- Borrar Puestos"<<endl;
  293.     espacios(29);cout<<"4.- Consultar"<<endl;
  294.     espacios(29);cout<<"5.- Finalizar"<<endl;
  295.     espacios(29);cout<<"Escoge una opcion..."<<endl;
  296.     cin >> opc;
  297. switch(opc)
  298. {
  299.     case 1:intro();break;
  300.     case 2:modif();break;
  301.     case 3:borra();break;
  302.     case 4:consu();break;
  303.     case 5:exit(0);
  304.     default: break;
  305.     }
  306. }while (opc != 5);
  307. }
  308.  
  309. int main()
  310. {
  311.  menu();
  312.  
  313.  return 0;
  314. }