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


Tema destacado: ¿Eres usuario del foro? Ahora tienes un Bot con IA que responde preguntas. Lo puedes activar en tu Perfil


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / Duda acerca de imprimir (en impresora) en: 6 Junio 2018, 19:58 pm
Hola buenos dias, tardes o noches...

Queria saber si alguien me puede ayudar con un codigo para imprimir (con impresora) ya que he estado buscando pero no encuentro uno funcional para c++ :-(
Es para un proyecto final de programacion y solo me falta el que se pueda imprimir los datos, ayuda! ;)
2  Programación / Programación C/C++ / Ayuda para hacer filtro en: 1 Junio 2018, 00:34 am
Necesito ayuda para aplicar filtro por departamentos, no se me ocurre la manera para hacerlo, ya que no logro ordenarlos :-( espero puedan ayudarme...
Es mi proyecto de final de semestre  :(
Posdata: es de un hospital y aun esta en proceso, llevo mas o menos 1 semana y no logro hacer el filtro
aqui abajo dejo el codigo, estoy usando dev-c++
Código
  1.  
  2. #include <iostream>
  3. #include <conio.h>
  4. #include <string.h>
  5. #include <fstream>
  6. #include <stdlib.h>
  7. #include <stdio.h>
  8.  
  9. using namespace std;
  10.  
  11. struct datos{
  12. long long cui; //la funcion long long sirve para ingresar un numero extremadamente grande, que supere los 10 numeros
  13. char nombre[254];
  14. char apellido[254];
  15. struct fecha{
  16. int dia;
  17. int mes;
  18. int año;
  19. }fecha;
  20. char tipos[254];
  21. int cel;
  22. char nfamiliar[254];
  23. struct direccion{
  24. char departamento[254];
  25. char municipio[254];
  26. char zona[254];
  27. }direccion;
  28. }datos;
  29.  
  30. struct rp{ //rp = Registro de paciente
  31. long long cui;
  32. struct fecha{ //fecha de ingreso
  33. int dia;
  34. int mes;
  35. int año;
  36. }fecha;
  37. int nufam;
  38. char ti[254];
  39. char descripcion[1000]; //descripcion del por que ingresa
  40. char medico[254]; //medico tratante
  41. int hingreso; //hora ingreso
  42. int mingreso;//minutos ingreso
  43. char diagnostico[1000]; //diagnostico medico
  44. char rmedica[600];//receta medica
  45. char titulo[254];
  46. struct fechas{ //fecha salida
  47. int dia;
  48. int mes;
  49. int año;
  50. }fechas;
  51. int hsalida; //hora salida
  52. int msalida;//minutos salida
  53. }rp;
  54.  
  55. void principio();//contiene el primer menu en el que pregunta si se ha usado el programa anteriormente
  56. void menu();//Contiene el menu de inicio
  57. void crear();//void para crear el archivo de texto
  58. void ingresar();//Ingresar pacientes
  59. void mini(); //mini busqueda
  60. void registro();
  61. void breporte();
  62. void mini2();//mini busqueda en el void ingresar
  63. void rgpaciente(); //Registro general de paciente
  64. /*void rgpfecha(); //Registro general de pacientes filtrado por rango y fecha
  65. void rpsangre(); //Registro de paciente por tipo de sangre
  66. void diagnostico(); //Reporte de paciente por diagnostico*/
  67. void pdepartamento(); //Reporte de pacientes por departamento
  68. /*void ddepartamento(); //Reporte de diagnostico por departamento
  69. void historial(); //Historial clinico del paciente
  70. void rdt(); //Reporte de descendente de total de ingreso de pacientes por día
  71. void pmedico(); //Reporte de pachiente por medico
  72. */
  73. long long auxccui=0;
  74. void ingresar(){
  75. char c[254],ddia[254],mes[254],cel[254],corr[254],año[254];
  76. int m=0,dia=0,ce=0,x=0,dc=0,aanio=0,xx=0;
  77. int vn=0,va=0,vs=0,vnf=0,vd=0,vm=0,vz=0;//validaciones para los bucles while en la variable nombre,apellido.
  78. long long a; //la funcion long long sirve para ingresar un numero extremadamente grande, que supere los 10 numeros
  79. cout<<"\t\t\tINGRESE LA SIGUIENTE INFORMACION "<<endl;
  80. cout<<"________________________________________________________________________________________"<<endl;
  81. cout<<" CUI del paciente: ";
  82. cin>>c;
  83. a= atof(c);// la funcion atoi(variable) sirve para convertir a variable tipo "int" caracteres ingresados en una variable tipo "char"
  84. if (a<1000000000000){//si la variable a es menor a 13 digitos que muestre un error
  85. cout<<" El cui es invalido, ingreselo nuevamente";
  86. getch();
  87. system ("cls"); //limpiar pantalla
  88. ingresar();//empezar de nuevo el programa
  89.  
  90. }else{
  91. if (a>9999999999999){//Si la variable a es mayor a 13 digitos que muestre error
  92. cout<<" El cui es invalido, ingreselo nuevamente";
  93. getch();
  94. system ("cls"); //limpiar pantalla
  95. ingresar();//empezar de nuevo el programa
  96. }
  97. }
  98. auxccui=a;
  99. if(datos.cui==auxccui){
  100. mini2();
  101. }
  102.  
  103. datos.cui=a;//Si la variable a contiene 13 digitos que se guarde en la estructura datos en cui
  104. cin.ignore();//Para evitar que omita el ingresar nombre
  105. do{
  106. cout<<" Nombre del paciente: ";
  107. // cin.ignore();
  108. cin.getline(datos.nombre,254,'\n');
  109. strupr(datos.nombre);
  110. vn=0;//inpedimos que el while sea infinito
  111. if((*datos.nombre==NULL) || (*datos.nombre==' ') ){
  112. cout<<" NO PUEDE DEJAR ESTE CAMPO EN BLANCO, INTENTELO NUEVAMENTE."<<endl;
  113. vn=1;//activamos el while
  114. }
  115. }while(vn==1);
  116.  
  117. // cin.ignore();//Para evitar que omita el ingresar apellido, eliminar "//" para activar la funcion
  118. do{
  119. cout<<" Apellido del paciente: ";
  120. cin.getline(datos.apellido,254,'\n');
  121. strupr(datos.apellido);
  122. va=0;//inpedimos que el while sea infinito
  123. if((*datos.apellido==NULL) || (*datos.apellido==' ')){
  124. cout<<" NO PUEDE DEJAR ESTE CAMPO EN BLANCO, INTENTELO NUEVAMENTE."<<endl;
  125. va=1;//activamos el while
  126. }
  127. }while(va==1);
  128.  
  129.  
  130. cout<<"\t\t\tFECHA DE NACIMIENTO:\t\t\t\t\t\t EJEMPLO: 01/01/2000"<<endl;
  131. do{
  132. cout<<" Ingrese la fecha:\n";
  133. xx=0;
  134. cin.getline(ddia,254,'/');
  135. cin.getline(mes,254,'/');
  136. cin.getline(año,254,'\n');
  137. dia=atoi(ddia);
  138. m=atoi(mes);
  139. aanio=atoi(año);
  140. if((dia==0) || (dia>31)){
  141. cout<<" DIA INVALIDO, VUELVA A INTENTARLO\n";
  142. xx=1;
  143. }else{
  144. if((m==0) || (m>12)){
  145. cout<<" MES INVALIDO, VUELVA A INTENTARLO\n";
  146. xx=1;
  147. }else{
  148. if((aanio<1950) || (aanio>2018)){
  149. cout<<" año INVALIDO, VUELVA A INTENTARLO\n";
  150. xx=1;
  151. }else{
  152. if((dia>29) && (m=2)){
  153. cout<<" RECUERDE QUE FEBRERO SOLO TIENE 29 DIAS EN AÑO BISIESTO\n";
  154. xx=1;
  155. }
  156. }
  157. }
  158. }
  159.  
  160. }while(xx==1);
  161. datos.fecha.dia=dia;
  162. datos.fecha.mes=m;
  163. datos.fecha.año=aanio;
  164.  
  165.  
  166. // cin.ignore();
  167. do{
  168.  
  169. cout<<" Ingrese el tipo de sangre: ";
  170. vs=0;//inpedimos que el while sea infinito
  171. cin.getline(datos.tipos,254,'\n');
  172. strupr(datos.tipos);
  173. if((*datos.tipos=='A') || (*datos.tipos=='AB') || (*datos.tipos=='B') || (*datos.tipos=='O')){
  174.  
  175. }else{
  176. cout<<" TIPO DE SANGRE NO VALIDO, VUELVA A INTENTARLO.\n\n";
  177. cout<<" Recuerde que solo hay tipos de sangre a+,a-,b+,b-,ab+,ab-,o+,o-.\n";
  178. vs=1;
  179. }
  180. }while(vs==1);
  181.  
  182. do{
  183. do{
  184. do{
  185. cout<<" Ingrese el Numero celular de un familiar del paciente: ";
  186. cin.getline(cel,254,'\n');
  187. ce=atoi(cel);
  188. if (ce==0){
  189. cout<<" El numero ingresado es invalido, intente nuevamente."<<endl;
  190. ce=0;
  191. }else{
  192.  
  193. if (ce<29999999){
  194. cout<<" El numero ingresado es invalido, intente nuevamente. "<<endl;
  195. ce=0;
  196. }else{
  197. if (ce>60000000){
  198. cout<<" El numero ingresado es invalido, intente nuevamente. "<<endl;
  199. ce=0;
  200. }
  201. }
  202. }
  203. }while(ce>60000000);
  204. }while(ce==0);
  205. }while(ce<29999999);
  206. datos.cel=ce;
  207.  
  208. // cin.ignore(); //Si en caso llega a omitir la parte de ingresar este dato solo borrar las "//" del inicio
  209. do{
  210. cout<<" Ingrese el Nombre de un familiar del cliente: ";
  211. cin.getline(datos.nfamiliar,40,'\n');
  212. strupr(datos.nfamiliar);
  213. vnf=0;//inpedimos que el while sea infinito
  214. if((*datos.nfamiliar==NULL) || (*datos.nfamiliar==' ') /*|| (*datos.nfamiliar=='\n')*/){
  215. cout<<" NO PUEDE DEJAR ESTE CAMPO EN BLANCO, INTENTELO NUEVAMENTE."<<endl;
  216. vnf=1;//activamos el while
  217. }
  218. }while(vnf==1);
  219.  
  220. // cin.ignore(); //Si en caso llega a omitir la parte de ingresar este dato solo borrar las "//" del inicio
  221. do{
  222. cout<<" Departamento: ";
  223. cin.getline(datos.direccion.departamento,30,'\n');
  224. strupr(datos.direccion.departamento);
  225. vd=0;//inpedimos que el while sea infinito
  226. if((*datos.direccion.departamento==NULL) || (*datos.direccion.departamento==' ') /*|| (*datos.nfamiliar=='\n')*/){
  227. cout<<" NO PUEDE DEJAR ESTE CAMPO EN BLANCO, INTENTELO NUEVAMENTE."<<endl;
  228. vd=1;//activamos el while
  229. }
  230. }while(vd==1);
  231.  
  232. // cin.ignore(); //Si en caso llega a omitir la parte de ingresar este dato solo borrar las "//" del inicio
  233. do{
  234. cout<<" Municipio: ";
  235. cin.getline(datos.direccion.municipio,30,'\n');
  236. strupr(datos.direccion.municipio);
  237. vm=0;//inpedimos que el while sea infinito
  238. if((*datos.direccion.municipio==NULL) || (*datos.direccion.municipio==' ') /*|| (*datos.nfamiliar=='\n')*/){
  239. cout<<" NO PUEDE DEJAR ESTE CAMPO EN BLANCO, INTENTELO NUEVAMENTE."<<endl;
  240. vm=1;//activamos el while
  241. }
  242. }while(vm==1);
  243.  
  244. // cin.ignore(); //Si en caso llega a omitir la parte de ingresar este dato solo borrar las "//" del inicio
  245. do{
  246. cout<<" Zona: ";
  247. cin.getline(datos.direccion.zona,30,'\n');
  248. vz=0;//inpedimos que el while sea infinito
  249. if((*datos.direccion.zona==NULL) || (*datos.direccion.zona==' ') /*|| (*datos.nfamiliar=='\n')*/){
  250. cout<<" NO PUEDE DEJAR ESTE CAMPO EN BLANCO, INTENTELO NUEVAMENTE."<<endl;
  251. vz=1;//activamos el while
  252. }
  253. }while(vz==1);
  254. system("cls");
  255. cout<<"\t\t\t DATOS INGRESADOS:\n";
  256. cout<<"_______________________________________________________________________________________________"<<endl;
  257. cout<<" CUI del paciente: "<<datos.cui<<endl;
  258. cout<<" Nombre del paciente: "<<datos.nombre<<endl;
  259. cout<<" Apellido del paciente: "<<datos.apellido<<endl;
  260. cout<<" Fecha de nacimiento:"<<datos.fecha.dia<<"/"<<datos.fecha.mes<<"/"<<datos.fecha.año<<endl;
  261. cout<<" Tipo de sangre: "<<datos.tipos<<endl;
  262. cout<<" Numero celular del familiar: "<<datos.cel<<endl;
  263. cout<<" Nombre de un familiar del cliente: "<<datos.nfamiliar<<endl;
  264. cout<<" Departamento: "<<datos.direccion.departamento<<endl;
  265. cout<<" Municipio: "<<datos.direccion.municipio<<endl;
  266. cout<<" Zona: "<<datos.direccion.zona<<endl;
  267. cout<<"_______________________________________________________________________________________________"<<endl;
  268.  
  269. cout<<" LOS DATOS SON CORRECTOS?\n";
  270. cout<<" 1. SI.\t\t 2. NO.\n OPCION[ ]\b\b";
  271. cin.getline(corr,254,'\n');
  272. strupr(corr);
  273. dc=atoi(corr);
  274. if((dc==2)||(corr=="NO")||(corr=="NO.")){
  275. system("cls");
  276. ingresar();
  277. }
  278.  
  279. FILE*archivo;
  280. archivo=fopen("hospital.txt","at+"); //abrimos el archivo
  281. fwrite(&datos,sizeof(datos),1,archivo); //escribimos los datos ingresados en el archivo
  282. fclose(archivo);//cerramos el archivo
  283. cout<<" DATOS INGRESADOS CORRECTAMENTE"; //Mensaje para corroborar que se ingresaron los archivos
  284. getch();
  285. menu();
  286.  
  287. }
  288.  
  289. void breporte(){
  290. FILE*archivo;
  291. archivo=fopen("registro.txt", "r+");
  292. while(fread(&rp,sizeof(rp),1,archivo)==1)
  293. {
  294. if((datos.cui==rp.cui) /*&& (rp.fecha.dia!=0)*/ && (datos.cel==rp.nufam)){
  295. cout<<"_______________________________________________________________________________________________"<<endl;
  296. cout<<"\t\t\tREPORTE\n";
  297. cout<<"_______________________________________________________________________________________________"<<endl;
  298. cout<<" Fecha de ingreso: "<<rp.fecha.dia<<"/"<<rp.fecha.mes<<"/"<<rp.fecha.año<<".\n";
  299. cout<<" Descripcion de ingreso: "<<rp.ti<<endl;
  300. cout<<" Hora de ingreso: "<<rp.hingreso<<":"<<rp.mingreso<<".\n";
  301. cout<<" Medico tratante:"<<rp.medico<<endl;
  302. cout<<" Diagnostico medico: \n\t\t\t"<<rp.titulo<<endl<<rp.diagnostico<<endl;
  303. cout<<" Receta medica: "<<rp.rmedica<<endl;
  304. cout<<" Fecha de salida: "<<rp.fechas.dia<<"/"<<rp.fechas.mes<<"/"<<rp.fechas.año<<".\n";
  305. cout<<" Hora de salida: "<<rp.hsalida<<":"<<rp.msalida;
  306. cout<<"\n_______________________________________________________________________________________________"<<endl;
  307. cout<<"\n Presione cualquier tecla para continuar.";
  308. getch();
  309.  
  310.  
  311. }
  312. }
  313. fclose(archivo);
  314.  
  315.  
  316. }
  317.  
  318. void rgpaciente(){
  319. FILE*archivo;
  320. FILE*archivo2;
  321. archivo2=fopen("registro.txt", "r+");
  322. archivo=fopen("hospital.txt", "r+");
  323.  
  324. int opc=0,opco=0,x=0;
  325. char opci[254];
  326.  
  327. cout<<"\t\t\tREPORTE GENERAL DE PACIENTES:"<<endl;
  328. cout<<"_______________________________________________________________________________________________"<<endl;
  329.  
  330.  
  331. while(fread(&datos,sizeof(datos),1,archivo)==1)
  332. {
  333.  
  334. fread(&rp,sizeof(rp),1,archivo2);
  335.  
  336.  
  337. cout<<" CUI del paciente: "<<datos.cui<<endl;
  338. cout<<" Nombre del paciente: "<<datos.nombre<<endl;
  339. cout<<" Apellido del paciente: "<<datos.apellido<<endl;
  340. cout<<" Fecha de nacimiento:"<<datos.fecha.dia<<"/"<<datos.fecha.mes<<"/"<<datos.fecha.año<<endl;
  341. cout<<" Tipo de sangre: "<<datos.tipos<<endl;
  342. cout<<" Numero celular del familiar: "<<datos.cel<<endl;
  343. cout<<" Nombre de un familiar del cliente: "<<datos.nfamiliar<<endl;
  344. cout<<" Departamento: "<<datos.direccion.departamento<<endl;
  345. cout<<" Municipio: "<<datos.direccion.municipio<<endl;
  346. cout<<" Zona: "<<datos.direccion.zona<<endl;
  347. cout<<"_______________________________________________________________________________________________"<<endl;
  348. // getch();
  349.  
  350.  
  351. do{
  352. x=0;
  353. if((datos.cui==rp.cui ) && (datos.cel==rp.nufam) ){
  354. cout<<" Desea ver el reporte?\n";
  355. cout<<" 1. SI\t\t2. NO\n";
  356. cout<<" OPCION [ ]\b\b";
  357. cin>>opci;
  358. x=0;
  359. opco=atoi(opci);
  360. if ((opco==0) || (opco>2)){
  361. cout<<" OPCION NO VALIDA VUELVA A INTENTARLO.\n";
  362.  
  363. x=1;
  364. }else{
  365. opc=opco;
  366. }
  367.  
  368. }else{
  369. cout<<" NO TIENE REPORTE CLINICO.\n";
  370. cout<<"_______________________________________________________________________________________________"<<endl;
  371. getch();
  372. }
  373. }while(x==1);
  374.  
  375. if((opc==1)){
  376. breporte();
  377.  
  378.  
  379.  
  380. }
  381.  
  382. // getch();
  383.  
  384. //}  
  385.  
  386. }
  387. fclose(archivo);
  388. fclose(archivo2);
  389.  
  390.  
  391. getch();
  392. }
  393.  
  394. void pdepartamento(){ //falta aplicar el filtro
  395. FILE*archivo;
  396. archivo=fopen("hospital.txt", "r+");
  397. string auxdep;
  398. cout<< "\t\t\tFILTRAR POR DEPARTAMENTO: "<<endl;
  399. cout<<"_______________________________________________________________________________________________"<<endl<<endl;
  400.  
  401. system("cls");
  402. while(fread(&datos,sizeof(datos),1,archivo)==1)
  403. {
  404. auxdep=datos.direccion.departamento;
  405. if(datos.direccion.departamento==auxdep)
  406. {
  407. cout<< "\t\t\tDEPARTAMENTO: "<<datos.direccion.departamento<<endl;
  408. cout<<"_______________________________________________________________________________________________"<<endl<<endl;
  409. cout<<" CUI del paciente: "<<datos.cui<<endl;
  410. cout<<" Nombre del paciente: "<<datos.nombre<<endl;
  411. cout<<" Apellido del paciente: "<<datos.apellido<<endl;
  412. cout<<" Fecha de nacimiento:"<<datos.fecha.dia<<"/"<<datos.fecha.mes<<"/"<<datos.fecha.año<<endl;
  413. cout<<" Tipo de sangre: "<<datos.tipos<<endl;
  414. cout<<" Numero celular del familiar: "<<datos.cel<<endl;
  415. cout<<" Nombre de un familiar del cliente: "<<datos.nfamiliar<<endl;
  416. cout<<" Municipio: "<<datos.direccion.municipio<<endl;
  417. cout<<" Zona: "<<datos.direccion.zona<<endl;
  418. cout<<"_______________________________________________________________________________________________"<<endl;
  419. auxdep=datos.direccion.departamento;
  420. }else{
  421. cout<<" Se ha producido un error a la hora de buscar por ese departamento, intentelo nuevamente."<<endl;
  422. getch();
  423.  
  424. }
  425.  
  426. }
  427. fclose(archivo);
  428. getch();
  429.  
  430.  
  431. }
  432.  
  433. void menu(){
  434. crear();
  435. char opci[254];
  436. int opc=0,opco=0;
  437. while (opc!= 12){
  438. system("cls");
  439. cout<<"________________________________________________________________________________________"<<endl;
  440. cout<<"\n\t\t\t\t\tMENU "<<endl;
  441. cout<<"________________________________________________________________________________________"<<endl;
  442. cout<<"\n\t\t\tENUMERE LA OPCION QUE DESEA UTILIZAR: "<<endl<<endl;
  443. cout<<"\t1. Ingresar paciente."<<endl;
  444. cout<<"\t2. Registrar paciente."<<endl;
  445. cout<<"\t3. Reporte general de pacientes."<<endl;
  446. cout<<"\t4. Reporte general de pacientes filtrado por fecha."<<endl;
  447. cout<<"\t5. Reporte general de pacientes por tipo de sangre."<<endl;
  448. cout<<"\t6. Reporte general de pacientes por diagnostico."<<endl;
  449. cout<<"\t7. Reporte general de pacientes por departamento."<<endl;
  450. cout<<"\t8. Reporte de diagnostico por departamento."<<endl;
  451. cout<<"\t9. Reporte de historial clinico por paciente."<<endl;
  452. cout<<"\t10. Reporte decendente de total de ingreso de pacientes por dia."<<endl;
  453. cout<<"\t11. Reporte de pacientes por medico."<<endl;
  454. cout<<"\t12. Salir."<<endl;
  455. cout<<"________________________________________________________________________________________"<<endl;
  456. cout<<"\n\t OPCION:[  ]\b\b\b";
  457. cin>>opci;
  458. opco=atoi(opci);
  459. if((opco==0) || (opco>12)){
  460. cout<<" OPCION NO VALIDA, INTENTELO DE NUEVO.";
  461. getch();
  462. menu();
  463. }else{
  464. opc=opco;
  465. }
  466.  
  467. switch(opc){
  468. case 1:
  469. system("cls");
  470. ingresar();
  471. break;
  472.  
  473. case 2:
  474. registro();
  475. break;
  476.  
  477. case 3:
  478. system("cls");
  479. rgpaciente(); //Registro general de paciente
  480. break;
  481.  
  482. /* case 4:
  483. rgpfecha(); //Registro general de pacientes filtrado por rango y fecha
  484. break;
  485.  
  486. case 5:
  487. rpsangre(); //Registro de paciente por tipo de sangre
  488. break;
  489.  
  490. case 6:
  491. diagnostico(); //Reporte de paciente por diagnostico
  492. break;
  493. */
  494. case 7:
  495. pdepartamento(); //Reporte de paciente por departamento
  496. break;
  497. /*
  498. case 8:
  499. ddepartamento(); //Reporte de diagnostico por departamento
  500. break;
  501.  
  502. case 9:
  503. historial(); //Historial clinico del paciente
  504. break;
  505.  
  506. case 10:
  507. rdt(); //Reporte de descendente de total de ingreso de pacientes por día
  508. break;
  509.  
  510. case 11:
  511. pmedico(); //Reporte de pachiente por medico
  512. break;
  513. */
  514. case 12:
  515. cout<<"\tQUE TENGA UN LINDO DIA!"<<endl;
  516. break;
  517.  
  518. default:
  519. cout<<"\tOPCION NO VALIDA, INTENTELO DE NUEVO. ";
  520. getch();
  521. menu();
  522. break;
  523.  
  524.  
  525. }
  526.  
  527.  
  528. }
  529.  
  530. }
  531.  
  532. void crear(){
  533. FILE*archivo;
  534. FILE*archivo2;
  535. archivo=fopen("hospital.txt","a+");
  536. archivo2=fopen("registro.txt","a+");
  537. fclose(archivo);
  538. fclose(archivo2);
  539. }
  540.  
  541. void principio(){
  542. int a=1;
  543. int b=0;
  544. system("cls");
  545. cout<<" Es primera vez que utiliza este programa? \n 1. Si. \t\t\t\t 2. No."<<endl;
  546. cin>>b;
  547. if(b>2){
  548. cout<<" OPCION NO VALIDA, INTENTELO NUEVAMENTE.";
  549. getch();
  550. principio();
  551. }
  552. if(a=b){
  553. crear();
  554. menu();
  555. }else{
  556.  
  557. menu();
  558. }
  559.  
  560. }
  561.  
  562. int main(){
  563. menu();
  564. }
  565.  
  566. void mini(){
  567. FILE*archivo;
  568. FILE*archivo2;
  569. archivo=fopen("hospital.txt", "r+");
  570. system("cls");
  571. long long auxcui;
  572. int xn=0,vw=0;
  573. cout<<"_______________________________________________________________________________________________"<<endl<<endl;
  574. cout<<"\tIngrese el CUI del paciente: ";
  575. cin>>auxcui;
  576. cout<<"\n_______________________________________________________________________________________________"<<endl<<endl;
  577.  
  578.  
  579. while((fread(&datos,sizeof(datos),1,archivo)==1)&&(vw!=1))
  580. {
  581.  
  582. if (datos.cui==auxcui){
  583. system("cls");
  584. cout<<"_______________________________________________________________________________________________"<<endl<<endl;
  585. cout<<" CUI del paciente: "<<datos.cui<<endl;
  586. cout<<" Nombre del paciente: "<<datos.nombre<<" "<<datos.apellido <<". "<<endl;
  587. cout<<" Fecha de nacimiento:"<<datos.fecha.dia<<"/"<<datos.fecha.mes<<"/"<<datos.fecha.año<<endl;
  588. cout<<" Tipo de sangre: "<<datos.tipos<<endl;
  589. cout<<" Numero celular del familiar: "<<datos.cel<<endl;
  590. cout<<" Nombre de un familiar del cliente: "<<datos.nfamiliar<<endl;
  591. cout<<"_______________________________________________________________________________________________"<<endl;
  592. }
  593. do{
  594. int res;
  595. char respuesta[254];
  596. cout<<" Es el paciente correcto? "<<endl;
  597. cout<<"1. SI. \t\t 2. NO."<<endl;
  598. cin>>respuesta;
  599. res=atoi(respuesta);
  600. if (res==1){
  601. rp.cui=datos.cui;
  602. vw=1;
  603. rp.nufam=datos.cel;
  604. // cout<<rp.nufam;
  605. // getch();
  606. }else{
  607. if(res==2){
  608. xn=0;
  609. }else{
  610. cout<<" OPCION NO VALIDA, VUELVA A INTENTARLO.";
  611. getch();
  612. xn=1;
  613. }
  614. }
  615. }while(xn==1);
  616. }
  617.  
  618. archivo2=fopen("registro.txt","at+");
  619. fwrite(&rp,sizeof(rp),1,archivo2);
  620. fclose(archivo);
  621.  
  622. fclose(archivo2);
  623. // cout<<" Guardado";
  624.  
  625. }
  626.  
  627. void registro(){
  628. int dia=0,m=0,aanio=0,xx=0,h=0,min=0,hir=0,min2=0,h2=0,hir2=0,dia2=0,m2=0,aanio2=0,xx2=0;
  629. char ddia[254],mes[254],año[254],ho[5],mi[5];
  630. char ddia2[254],mes2[254],anio2[254],ho2[5],mi2[5];
  631. int vme,vt,vd,vi,vm,vit;
  632.  
  633. mini();
  634. system("cls");
  635. cout<<"\t\t\t INGRESE LA SIGUIENTE INFORMACION: "<<endl;
  636. do{
  637. cout<<" Fecha de ingreso:\n";
  638. xx=0;
  639. cin.getline(ddia,254,'/');
  640. cin.getline(mes,254,'/');
  641. cin.getline(año,254,'\n');
  642. dia=atoi(ddia);
  643. m=atoi(mes);
  644. aanio=atoi(año);
  645. if((dia==0) || (dia>31)){
  646. cout<<" DIA INVALIDO, VUELVA A INTENTARLO\n";
  647. xx=1;
  648. }else{
  649. if((m==0) || (m>12)){
  650. cout<<" MES INVALIDO, VUELVA A INTENTARLO\n";
  651. xx=1;
  652. }else{
  653. if((aanio<1950) || (aanio>2018)){
  654. cout<<" año INVALIDO, VUELVA A INTENTARLO\n";
  655. xx=1;
  656. }else{
  657. if((dia>29) && (m==2)){
  658. cout<<" RECUERDE QUE FEBRERO SOLO TIENE 29 DIAS EN AÑO BISIESTO\n";
  659. xx=1;
  660. }else{
  661. rp.fecha.dia=dia;
  662. rp.fecha.mes=m;
  663. rp.fecha.año=aanio;
  664. }
  665. }
  666. }
  667. }
  668.  
  669. }while(xx==1);
  670.  
  671. cout<<"\t\t\tDESCRIPCION DE INGRESO: "<<endl;
  672. do{
  673.  
  674. cout<<" Encabezado/titulo:\t\t";
  675. cin.getline(rp.ti,254,'\n');
  676. strupr(rp.ti);
  677. vit=0;//inpedimos que el while sea infinito
  678. if((*rp.ti==NULL) || (*rp.ti==' ') /*|| (*datos.nombre=='\n')*/){
  679. cout<<" NO PUEDE DEJAR ESTE CAMPO EN BLANCO, INTENTELO NUEVAMENTE."<<endl;
  680. vit=1;//activamos el while
  681. }
  682. }while(vit==1);
  683.  
  684. do{
  685. cout<<" Descripcion:\n";
  686. cin.getline(rp.descripcion,1000,'\n');
  687. strupr(rp.descripcion);
  688. vi=0;//inpedimos que el while sea infinito
  689. if((*rp.descripcion==NULL) || (*rp.descripcion==' ') /*|| (*datos.nombre=='\n')*/){
  690. cout<<" NO PUEDE DEJAR ESTE CAMPO EN BLANCO, INTENTELO NUEVAMENTE."<<endl;
  691. vi=1;//activamos el while
  692. }
  693. }while(vi==1);
  694.  
  695. do{
  696. cout<<" Hora de ingreso: "<<endl;
  697. cin.getline(ho,5,':');
  698. cin.getline(mi,5,'\n');
  699. min=atoi(mi);
  700. h=atoi(ho);
  701. if (h>23){
  702. cout<<" Hora invalida, vuelva a intentarla."<<endl;
  703. h=0;min=0;
  704. hir=1;
  705. }else{
  706.  
  707. if(min>59){
  708. cout<<" Minutos invalidos, vuelva a ingresar la hora"<<endl;
  709. h=0;min=0;
  710. hir=1;
  711. }else{
  712. rp.hingreso=h;
  713. rp.mingreso=min;
  714. }
  715.  
  716.  
  717. }
  718. }while(hir==1);
  719.  
  720. do{
  721. vme=0;
  722. cout<<" Medico tratante: ";
  723. cin.getline(rp.medico,254,'\n');
  724. strupr(rp.medico);
  725. vme=0;//inpedimos que el while sea infinito
  726. if((*rp.medico==NULL) || (*rp.medico==' ') /*|| (*datos.nombre=='\n')*/){
  727. cout<<" NO PUEDE DEJAR ESTE CAMPO EN BLANCO, INTENTELO NUEVAMENTE."<<endl;
  728. vme=1;//activamos el while
  729. }
  730. }while(vme==1);
  731.  
  732. cout<<"\t\t\tDIAGNOSTICO MEDICO: "<<endl;
  733.  
  734. do{
  735. cout<<" Encabezado/Titulo:\t\t";
  736. cin.getline(rp.titulo,254,'\n');
  737. strupr(rp.titulo);
  738. vt=0;//inpedimos que el while sea infinito
  739. if((*rp.titulo==NULL) || (*rp.titulo==' ') /*|| (*datos.nombre=='\n')*/){
  740. cout<<" NO PUEDE DEJAR ESTE CAMPO EN BLANCO, INTENTELO NUEVAMENTE."<<endl;
  741. vt=1;//activamos el while
  742. }
  743. }while(vt==1);
  744.  
  745. do{
  746. cout<<" Diagnostico:\n";
  747. cin.getline(rp.diagnostico,1000,'\n');
  748. strupr(rp.diagnostico);
  749. vd=0;//inpedimos que el while sea infinito
  750. if((*rp.diagnostico==NULL) || (*rp.diagnostico==' ') /*|| (*datos.nombre=='\n')*/){
  751. cout<<" NO PUEDE DEJAR ESTE CAMPO EN BLANCO, INTENTELO NUEVAMENTE."<<endl;
  752. vd=1;//activamos el while
  753. }
  754. }while(vd==1);
  755.  
  756. do{
  757. cout<<" RECETA MEDICA:\n";
  758. cin.getline(rp.rmedica,600,'\n');
  759. strupr(rp.rmedica);
  760. vm=0;//inpedimos que el while sea infinito
  761. if((*rp.rmedica==NULL) || (*rp.rmedica==' ') /*|| (*datos.nombre=='\n')*/){
  762. cout<<" NO PUEDE DEJAR ESTE CAMPO EN BLANCO, INTENTELO NUEVAMENTE."<<endl;
  763. vm=1;//activamos el while
  764. }
  765. }while(vm==1);
  766.  
  767.  
  768.  
  769. cout<<"\t\t\tFECHA DE SALIDA\n";
  770. do{
  771. cout<<" FECHA: ";
  772. xx2=0;
  773. cin.getline(ddia2,254,'/');
  774. cin.getline(mes2,254,'/');
  775. cin.getline(anio2,254,'\n');
  776. dia2=atoi(ddia2);
  777. m2=atoi(mes2);
  778. aanio2=atoi(anio2);
  779. if((dia2==0) || (dia2>31)){
  780. cout<<" DIA INVALIDO, VUELVA A INTENTARLO\n";
  781. xx2=1;
  782. }else{
  783. if((m2==0) || (m2>12)){
  784. cout<<" MES INVALIDO, VUELVA A INTENTARLO\n";
  785. xx2=1;
  786. }else{
  787. if((aanio2<1950) || (aanio2>2018)){
  788. cout<<" año INVALIDO, VUELVA A INTENTARLO\n";
  789. xx2=1;
  790. }else{
  791. if((dia2>29) && (m2==2)){
  792. cout<<" RECUERDE QUE FEBRERO SOLO TIENE 29 DIAS EN AÑO BISIESTO\n";
  793. xx=1;
  794. }else{
  795. rp.fechas.dia=dia2;
  796. rp.fechas.mes=m2;
  797. rp.fechas.año=aanio2;
  798. }
  799. }
  800. }
  801. }
  802.  
  803. }while(xx2==1);
  804.  
  805. do{
  806. cout<<" Hora de salida: "<<endl;
  807. cin.getline(ho2,5,':');
  808. cin.getline(mi2,5,'\n');
  809. min2=atoi(mi2);
  810. h2=atoi(ho2);
  811. if (h2>23){
  812. cout<<" Hora invalida, vuelva a intentarla."<<endl;
  813. h2=0;min2=0; cout<<" Hora de ingreso: "<<endl;
  814. cin.getline(ho2,5,':');
  815. cin.getline(mi2,5,'\n');
  816. min2=atoi(mi2);
  817. h2=atoi(ho2);
  818. hir2=1;
  819. }else{
  820.  
  821. if(min2>59){
  822. cout<<" Minutos invalidos, vuelva a ingresar la hora"<<endl;
  823. h2=0;min2=0; cout<<" Hora de ingreso: "<<endl;
  824. cin.getline(ho2,5,':');
  825. cin.getline(mi2,5,'\n');
  826. min2=atoi(mi2);
  827. h2=atoi(ho2);
  828. hir2=1;
  829. }else{
  830. rp.hsalida=h2;
  831. rp.msalida=min2;
  832. }
  833.  
  834.  
  835. }
  836. }while(hir2==1);
  837.  
  838.  
  839.  
  840.  
  841. FILE*archivo2;
  842. archivo2=fopen("registro.txt","at+"); //abrimos el archivo
  843. fwrite(&rp,sizeof(rp),1,archivo2); //escribimos los datos ingresados en el archivo
  844. fclose(archivo2);//cerramos el archivo
  845. cout<<" DATOS INGRESADOS CORRECTAMENTE"; //Mensaje para corroborar que se ingresaron los archivos
  846. getch();
  847. menu();
  848.  
  849. }
  850.  
  851. void mini2(){
  852. FILE*archivo;
  853. FILE*archivo2;
  854. archivo=fopen("hospital.txt", "r+");
  855. int ce,vnf=0;
  856. char cel[254];
  857. long long auxcui;
  858. cout<<"_______________________________________________________________________________________________"<<endl<<endl;
  859. auxcui=auxccui;
  860.  
  861.  
  862. while(fread(&datos,sizeof(datos),1,archivo)==1)
  863. {
  864.  
  865. if (datos.cui==auxcui){
  866. system("cls");
  867. cout<<"\t\t\t DATOS INGRESADOS:\n";
  868. cout<<"_______________________________________________________________________________________________"<<endl;
  869. cout<<" CUI del paciente: "<<datos.cui<<endl;
  870. cout<<" Nombre del paciente: "<<datos.nombre<<endl;
  871. cout<<" Apellido del paciente: "<<datos.apellido<<endl;
  872. cout<<" Fecha de ingreso:"<<datos.fecha.dia<<"/"<<datos.fecha.mes<<"/"<<datos.fecha.año<<"."<<endl;
  873. cout<<" Tipo de sangre: "<<datos.tipos<<endl;
  874. cout<<" Departamento: "<<datos.direccion.departamento<<endl;
  875. cout<<" Municipio: "<<datos.direccion.municipio<<endl;
  876. cout<<" Zona: "<<datos.direccion.zona<<endl;
  877. cout<<"_______________________________________________________________________________________________"<<endl;
  878. }
  879.  
  880. }
  881. int respuesta;
  882. cout<<" Es el paciente correcto? "<<endl;
  883. cout<<"1. SI. \n 2. NO."<<endl;
  884. cin>>respuesta;
  885. if (respuesta==1){
  886. rp.cui=datos.cui;
  887. }else{
  888. mini2();
  889. }
  890.  
  891. cin.ignore();
  892. do{
  893. do{
  894. do{
  895. cout<<" Ingrese el Numero celular de un familiar del paciente: ";
  896. cin.getline(cel,254,'\n');
  897. ce=atoi(cel);
  898. if (ce==0){
  899. cout<<" El numero ingresado es invalido, intente nuevamente."<<endl;
  900. ce=0;
  901. }else{
  902.  
  903. if (ce<29999999){
  904. cout<<" El numero ingresado es invalido, intente nuevamente. "<<endl;
  905. ce=0;
  906. }else{
  907. if (ce>60000000){
  908. cout<<" El numero ingresado es invalido, intente nuevamente. "<<endl;
  909. ce=0;
  910. }
  911. }
  912. }
  913. }while(ce>60000000);
  914. }while(ce==0);
  915. }while(ce<29999999);
  916. datos.cel=ce;
  917.  
  918. // cin.ignore(); //Si en caso llega a omitir la parte de ingresar este dato solo borrar las "//" del inicio
  919. do{
  920. cout<<" Ingrese el Nombre de un familiar del cliente: ";
  921. cin.getline(datos.nfamiliar,40,'\n');
  922. strupr(datos.nfamiliar);
  923. vnf=0;//inpedimos que el while sea infinito
  924. if((*datos.nfamiliar==NULL) || (*datos.nfamiliar==' ') /*|| (*datos.nfamiliar=='\n')*/){
  925. cout<<" NO PUEDE DEJAR ESTE CAMPO EN BLANCO, INTENTELO NUEVAMENTE."<<endl;
  926. vnf=1;//activamos el while
  927. }
  928. }while(vnf==1);
  929.  
  930. archivo2=fopen("hospital.txt","at+");
  931. fwrite(&datos,sizeof(datos),1,archivo2);
  932. fclose(archivo);
  933.  
  934. fclose(archivo2);
  935. cout<<" DATOS ACTUALIZADOS.";
  936. getch();
  937. menu();
  938. }
  939.  
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines