Advertisement
Guest User

CCCCCCULO

a guest
Dec 10th, 2016
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.55 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #include <string.h>
  5. #define D 25
  6. #define DIM 1000 //Capienza di persone della banca dati
  7. /*---------------------------------------STRUCT---------------------------------------*/
  8. typedef enum{Paziente, Dipendente}Tipo; //Paziente o dipendente
  9. typedef struct{ //Data
  10. char gg[D+1];
  11. char mm[D+1];
  12. char aa[D+1];
  13. }Data;
  14. typedef struct{ //Cartella clinica
  15. char id[D+1];
  16. char patologia[D+1];
  17. Data ricovero;
  18. Data dimissione;
  19. }Cartella;
  20. typedef struct{ //Dati di una persona
  21. Tipo tipo;
  22. char nome[D+1];
  23. char cognome[D+1];
  24. Data nascita;
  25. Cartella clinica;
  26. }Persona;
  27.  
  28. /*---------------------------------------FUNZIONI---------------------------------------*/
  29. Persona genPaz(void); //Generazione di un paziente
  30. void acqPer(Persona* x); //Acquisizione di una persona
  31. void visualizza(Persona x); //Visualizzazione di una persona
  32.  
  33. /*-----------------------------------------MAIN-----------------------------------------*/
  34. int main()
  35. {
  36. Persona Jimmy;
  37. Persona guy[DIM+1];
  38. int scelta, i, j, pos=0;
  39. srand(time(NULL));
  40. printf("Benvenuto nella banca dati dell'ospedale di Gotham City.\nInserire 1 per acquisire i dati di un nuovo paziente;\nInserire 2 per visualizzare i dati di un paziente;\nInserire 3 per generare un paziente random;\nInserire 4 per uscire.\nScelta: ");
  41. scanf("%d", &scelta);
  42.  
  43. /*----Scelta effettuata dall'utente----*/
  44. do{
  45. switch(scelta){
  46. case 1: //Acquisizione persona
  47. system("cls");
  48. scelta=0;
  49. i=0;
  50. printf("Acquisizione di una persona.\n");
  51. do{
  52. printf("In quale posizione vuoi inserire i dati della persona?\nScelta: ");
  53. scanf("%d", &pos);
  54. acqPer(&guy[pos]);
  55. i++;
  56. printf("\nAcquisire i dati di una nuova persona?\nInserire 1 per continuare;\nInserire 0 per chiudere.\nScelta: ");
  57. scanf("%d", &scelta);
  58. }
  59. while(scelta!=0);
  60. break;
  61. case 2: //Visualizzazione persona
  62. system("cls");
  63. printf("Inserire la posizione dei dati da visualizzare.\nScelta: ");
  64. scanf("%d", &pos);
  65. visualizza(guy[pos]);
  66. break;
  67. case 3: //Generazione casuale
  68. system("cls");
  69. scelta=0;
  70. do{
  71. Jimmy=genPaz();
  72. visualizza(Jimmy);
  73. printf("\nGenerare un nuovo paziente?\nInserire 1 per continuare;\nInserire 0 per chiudere.\nScelta: ");
  74. scanf("%d", &scelta);
  75. }
  76. while(scelta!=0);
  77. break;
  78. case 4: //Chiusura programma
  79. system("cls");
  80. printf("Arrivederci.\n");
  81. break;
  82. default: //Scelta non consentita
  83. system("cls");
  84. printf("Scelta non disponibile.\n");
  85. break;
  86. };
  87. scelta=0;
  88. system("cls");
  89. printf("Inserire 1 per acquisire i dati di un nuovo paziente;\nInserire 2 per visualizzare i dati di un paziente;\nInserire 3 per generare un paziente random;\nInserire 4 per uscire.\nScelta: ");
  90. scanf("%d", &scelta);
  91. }
  92. while(scelta!=4);
  93. return 0;
  94. }
  95.  
  96. /*---------------------------------------FUNZIONI---------------------------------------*/
  97. Persona genPaz(void){ //Generazione casuale di un paziente
  98. Persona ranPaz;
  99. char ranNomi[12][D+1]={ //Possibili nomi assegnabili
  100. "Batman",
  101. "Joker",
  102. "Pinguino",
  103. "Bruce",
  104. "Djanni",
  105. "Enrico",
  106. "Spaventapasseri",
  107. "Jimmy",
  108. "Chompsky",
  109. "Gianni",
  110. "Trapezunzio",
  111. "Alastor"
  112. };
  113.  
  114. char ranCognomi[12][D+1]={ //Possibili cognomi assegnabili
  115. "Wayne",
  116. "Rossi",
  117. "Smith",
  118. "LaPace",
  119. "Puglisi",
  120. "DaVinci",
  121. "Kenway",
  122. "Obama",
  123. "Cobblepot",
  124. "Holmes",
  125. "Watson",
  126. "Moody"
  127. };
  128.  
  129. char anno[12][D+1]={ //Possibili anni
  130. "1843",
  131. "1945",
  132. "1930",
  133. "1987",
  134. "2000",
  135. "2012",
  136. "1492",
  137. "1715",
  138. "1323",
  139. "1915",
  140. "1120",
  141. "1654"
  142. };
  143.  
  144. char mese[12][D+1]={ //Possibili mesi
  145. "Gennaio",
  146. "Febbraio",
  147. "Marzo",
  148. "Aprile",
  149. "Maggio",
  150. "Giugno",
  151. "Luglio",
  152. "Agosto",
  153. "Settembre",
  154. "Ottobre",
  155. "Novembre",
  156. "Dicembre"
  157. };
  158.  
  159. char giorno[12][D+1]={ //Possibili giorni
  160. "1",
  161. "2",
  162. "3",
  163. "4",
  164. "5",
  165. "6",
  166. "7",
  167. "8",
  168. "9",
  169. "10",
  170. "11",
  171. "12",
  172. "13",
  173. "14",
  174. "15",
  175. "16",
  176. "17",
  177. "18",
  178. "19",
  179. "20",
  180. "21",
  181. "22",
  182. "23",
  183. "24",
  184. "25",
  185. "26",
  186. "27",
  187. "28",
  188. "29",
  189. "30",
  190. "31"
  191. };
  192.  
  193. char malattia [12][D+1]={ //Possibili malattie
  194. "Diarrea",
  195. "Emorroidi",
  196. "Influenza",
  197. "Morbillo",
  198. "Tumore",
  199. "Ipocondria",
  200. "Bua",
  201. "Peste",
  202. "Lebbra",
  203. "Tetano",
  204. "Saturnismo",
  205. "Schizofrenia"
  206. };
  207.  
  208. char ID[5][D+1]={ //Possibili ID
  209. "123dghaj",
  210. "h23ihsfo",
  211. "oiu287io",
  212. "09sjchn3",
  213. "125culo3"
  214. };
  215.  
  216. strcpy(ranPaz.nome, ranNomi[rand()%12]); //Assegnamento del nome casuale ad un paziente
  217. strcpy(ranPaz.cognome, ranCognomi[rand()%12]); //Assegnamento del cognome casuale ad un paziente
  218. strcpy(ranPaz.nascita.gg, giorno[rand()%12]); //Assegnamento di un giorno di nascita casuale ad un paziente
  219. strcpy(ranPaz.nascita.mm, mese[rand()%12]); //Assegnamento di un mese di nascita casuale ad un paziente
  220. strcpy(ranPaz.nascita.aa, anno[rand()%12]); //Assegnamento di un anno di nascita casuale ad un paziente
  221. strcpy(ranPaz.clinica.id, ID[rand()%5]); //Assegnamento dun ID casuale ad un paziente
  222. strcpy(ranPaz.clinica.patologia, malattia[rand()%12]); //Assegnamento di una patologia casuale ad un paziente
  223.  
  224. return ranPaz;
  225. }
  226.  
  227. void visualizza(Persona x){ //Visualizza una persona
  228. if(strcmp(x.clinica.patologia,"NULL")==0){
  229. printf("Dipendente ID: %s\n", x.clinica.id);
  230. printf("Nome: %s\nCognome: %s\nData di nascita: %s %s %s\n", x.nome, x.cognome, x.nascita.gg, x.nascita.mm, x.nascita.aa);
  231. system("pause");
  232. }
  233. else{
  234. if(strcmp(x.clinica.dimissione.gg,"NULL")==0){
  235. printf("Paziente ID: %s\n", x.clinica.id);
  236. printf("Nome: %s\nCognome: %s\nData di nascita: %s %s %s\nPatologia: %s\nData ricovero: %s %s %s\n", x.nome, x.cognome, x.nascita.gg, x.nascita.mm, x.nascita.aa, x.clinica.patologia, x.clinica.ricovero.gg, x.clinica.ricovero.mm, x.clinica.ricovero.aa);
  237. }
  238. else{
  239. printf("Paziente ID: %s\n", x.clinica.id);
  240. printf("Nome: %s\nCognome: %s\nData di nascita: %s %s %s\nPatologia: %s\nData ricovero: %s %s %s\nData dimissione: %s %s %s\n", x.nome, x.cognome, x.nascita.gg, x.nascita.mm, x.nascita.aa, x.clinica.patologia, x.clinica.ricovero.gg, x.clinica.ricovero.mm, x.clinica.ricovero.aa, x.clinica.dimissione.gg, x.clinica.dimissione.mm, x.clinica.dimissione.aa);
  241. }
  242. system("pause");
  243. }
  244. }
  245.  
  246. void acqPer(Persona* x){
  247. system("cls");
  248. int scelta;
  249. printf("Acquisizione dei dati di una persona:\nInserire 1 per acquisire un dipendente;\nInserire 2 per i dati di un paziente.\nScelta: ");
  250. scanf("%d", &scelta);
  251. switch(scelta){
  252. case 1: //Dati dipendente
  253. system("cls");
  254. printf("Inserisci ID: ");
  255. scanf("%s", x->clinica.id);
  256. getchar();
  257. printf("Inserisci nome: ");
  258. scanf("%s", x->nome);
  259. getchar();
  260. printf("Inserisci cognome: ");
  261. scanf("%s", x->cognome);
  262. getchar();
  263. printf("\nInserisci data di nascita.\nGiorno: ");
  264. scanf("%s", x->nascita.gg);
  265. getchar();
  266. printf("Mese: ");
  267. scanf("%s", x->nascita.mm);
  268. getchar();
  269. printf("Anno: ");
  270. scanf("%s", x->nascita.aa);
  271. getchar();
  272. strcpy(x->clinica.patologia, "NULL");
  273. break;
  274.  
  275. case 2: //Dati paziente
  276. scelta=0;
  277. system("cls");
  278. printf("Inserisci ID: ");
  279. scanf("%s", x->clinica.id);
  280. getchar();
  281. printf("Inserisci nome: ");
  282. scanf("%s", x->nome);
  283. getchar();
  284. printf("Inserisci cognome: ");
  285. scanf("%s", x->cognome);
  286. getchar();
  287. printf("\nInserisci data di nascita.\nGiorno: ");
  288. scanf("%s", x->nascita.gg);
  289. getchar();
  290. printf("Mese: ");
  291. scanf("%s", x->nascita.mm);
  292. getchar();
  293. printf("Anno: ");
  294. scanf("%s", x->nascita.aa);
  295. getchar();
  296. printf("Inserisci la patologia riscontrata: ");
  297. scanf("%s", x->clinica.patologia);
  298. getchar();
  299. printf("Inserisci data del ricovero.\nGiorno: ");
  300. scanf("%s", x->clinica.ricovero.gg);
  301. getchar();
  302. printf("Mese: ");
  303. scanf("%s", x->clinica.ricovero.mm);
  304. getchar();
  305. printf("Anno: ");
  306. scanf("%s", x->clinica.ricovero.aa);
  307. getchar();
  308. printf("Se il paziente e' stato dimesso inserire 1 altrimenti inserire 0\nScelta: ");
  309. scanf("%d", &scelta);
  310. if(scelta==1){
  311. printf("\nInserisci data dei dimissione.\nGiorno: ");
  312. scanf("%s", x->clinica.dimissione.gg);
  313. getchar();
  314. printf("Mese: ");
  315. scanf("%s", x->clinica.dimissione.mm);
  316. getchar();
  317. printf("Anno: ");
  318. scanf("%s", x->clinica.dimissione.aa);
  319. getchar();
  320. break;
  321. }
  322. else{
  323. strcpy(x->clinica.dimissione.gg,"NULL");
  324. break;
  325. }
  326.  
  327. default:
  328. break;
  329. };
  330. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement