Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #include <string.h>
- #define D 25
- #define DIM 1000 //Capienza di persone della banca dati
- /*---------------------------------------STRUCT---------------------------------------*/
- typedef enum{Paziente, Dipendente}Tipo; //Paziente o dipendente
- typedef struct{ //Data
- char gg[D+1];
- char mm[D+1];
- char aa[D+1];
- }Data;
- typedef struct{ //Cartella clinica
- char id[D+1];
- char patologia[D+1];
- Data ricovero;
- Data dimissione;
- }Cartella;
- typedef struct{ //Dati di una persona
- Tipo tipo;
- char nome[D+1];
- char cognome[D+1];
- Data nascita;
- Cartella clinica;
- }Persona;
- /*---------------------------------------FUNZIONI---------------------------------------*/
- Persona genPaz(void); //Generazione di un paziente
- void acqPer(Persona* x); //Acquisizione di una persona
- void visualizza(Persona x); //Visualizzazione di una persona
- /*-----------------------------------------MAIN-----------------------------------------*/
- int main()
- {
- Persona Jimmy;
- Persona guy[DIM+1];
- int scelta, i, j, pos=0;
- srand(time(NULL));
- 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: ");
- scanf("%d", &scelta);
- /*----Scelta effettuata dall'utente----*/
- do{
- switch(scelta){
- case 1: //Acquisizione persona
- system("cls");
- scelta=0;
- i=0;
- printf("Acquisizione di una persona.\n");
- do{
- printf("In quale posizione vuoi inserire i dati della persona?\nScelta: ");
- scanf("%d", &pos);
- acqPer(&guy[pos]);
- i++;
- printf("\nAcquisire i dati di una nuova persona?\nInserire 1 per continuare;\nInserire 0 per chiudere.\nScelta: ");
- scanf("%d", &scelta);
- }
- while(scelta!=0);
- break;
- case 2: //Visualizzazione persona
- system("cls");
- printf("Inserire la posizione dei dati da visualizzare.\nScelta: ");
- scanf("%d", &pos);
- visualizza(guy[pos]);
- break;
- case 3: //Generazione casuale
- system("cls");
- scelta=0;
- do{
- Jimmy=genPaz();
- visualizza(Jimmy);
- printf("\nGenerare un nuovo paziente?\nInserire 1 per continuare;\nInserire 0 per chiudere.\nScelta: ");
- scanf("%d", &scelta);
- }
- while(scelta!=0);
- break;
- case 4: //Chiusura programma
- system("cls");
- printf("Arrivederci.\n");
- break;
- default: //Scelta non consentita
- system("cls");
- printf("Scelta non disponibile.\n");
- break;
- };
- scelta=0;
- system("cls");
- 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: ");
- scanf("%d", &scelta);
- }
- while(scelta!=4);
- return 0;
- }
- /*---------------------------------------FUNZIONI---------------------------------------*/
- Persona genPaz(void){ //Generazione casuale di un paziente
- Persona ranPaz;
- char ranNomi[12][D+1]={ //Possibili nomi assegnabili
- "Batman",
- "Joker",
- "Pinguino",
- "Bruce",
- "Djanni",
- "Enrico",
- "Spaventapasseri",
- "Jimmy",
- "Chompsky",
- "Gianni",
- "Trapezunzio",
- "Alastor"
- };
- char ranCognomi[12][D+1]={ //Possibili cognomi assegnabili
- "Wayne",
- "Rossi",
- "Smith",
- "LaPace",
- "Puglisi",
- "DaVinci",
- "Kenway",
- "Obama",
- "Cobblepot",
- "Holmes",
- "Watson",
- "Moody"
- };
- char anno[12][D+1]={ //Possibili anni
- "1843",
- "1945",
- "1930",
- "1987",
- "2000",
- "2012",
- "1492",
- "1715",
- "1323",
- "1915",
- "1120",
- "1654"
- };
- char mese[12][D+1]={ //Possibili mesi
- "Gennaio",
- "Febbraio",
- "Marzo",
- "Aprile",
- "Maggio",
- "Giugno",
- "Luglio",
- "Agosto",
- "Settembre",
- "Ottobre",
- "Novembre",
- "Dicembre"
- };
- char giorno[12][D+1]={ //Possibili giorni
- "1",
- "2",
- "3",
- "4",
- "5",
- "6",
- "7",
- "8",
- "9",
- "10",
- "11",
- "12",
- "13",
- "14",
- "15",
- "16",
- "17",
- "18",
- "19",
- "20",
- "21",
- "22",
- "23",
- "24",
- "25",
- "26",
- "27",
- "28",
- "29",
- "30",
- "31"
- };
- char malattia [12][D+1]={ //Possibili malattie
- "Diarrea",
- "Emorroidi",
- "Influenza",
- "Morbillo",
- "Tumore",
- "Ipocondria",
- "Bua",
- "Peste",
- "Lebbra",
- "Tetano",
- "Saturnismo",
- "Schizofrenia"
- };
- char ID[5][D+1]={ //Possibili ID
- "123dghaj",
- "h23ihsfo",
- "oiu287io",
- "09sjchn3",
- "125culo3"
- };
- strcpy(ranPaz.nome, ranNomi[rand()%12]); //Assegnamento del nome casuale ad un paziente
- strcpy(ranPaz.cognome, ranCognomi[rand()%12]); //Assegnamento del cognome casuale ad un paziente
- strcpy(ranPaz.nascita.gg, giorno[rand()%12]); //Assegnamento di un giorno di nascita casuale ad un paziente
- strcpy(ranPaz.nascita.mm, mese[rand()%12]); //Assegnamento di un mese di nascita casuale ad un paziente
- strcpy(ranPaz.nascita.aa, anno[rand()%12]); //Assegnamento di un anno di nascita casuale ad un paziente
- strcpy(ranPaz.clinica.id, ID[rand()%5]); //Assegnamento dun ID casuale ad un paziente
- strcpy(ranPaz.clinica.patologia, malattia[rand()%12]); //Assegnamento di una patologia casuale ad un paziente
- return ranPaz;
- }
- void visualizza(Persona x){ //Visualizza una persona
- if(strcmp(x.clinica.patologia,"NULL")==0){
- printf("Dipendente ID: %s\n", x.clinica.id);
- 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);
- system("pause");
- }
- else{
- if(strcmp(x.clinica.dimissione.gg,"NULL")==0){
- printf("Paziente ID: %s\n", x.clinica.id);
- 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);
- }
- else{
- printf("Paziente ID: %s\n", x.clinica.id);
- 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);
- }
- system("pause");
- }
- }
- void acqPer(Persona* x){
- system("cls");
- int scelta;
- printf("Acquisizione dei dati di una persona:\nInserire 1 per acquisire un dipendente;\nInserire 2 per i dati di un paziente.\nScelta: ");
- scanf("%d", &scelta);
- switch(scelta){
- case 1: //Dati dipendente
- system("cls");
- printf("Inserisci ID: ");
- scanf("%s", x->clinica.id);
- getchar();
- printf("Inserisci nome: ");
- scanf("%s", x->nome);
- getchar();
- printf("Inserisci cognome: ");
- scanf("%s", x->cognome);
- getchar();
- printf("\nInserisci data di nascita.\nGiorno: ");
- scanf("%s", x->nascita.gg);
- getchar();
- printf("Mese: ");
- scanf("%s", x->nascita.mm);
- getchar();
- printf("Anno: ");
- scanf("%s", x->nascita.aa);
- getchar();
- strcpy(x->clinica.patologia, "NULL");
- break;
- case 2: //Dati paziente
- scelta=0;
- system("cls");
- printf("Inserisci ID: ");
- scanf("%s", x->clinica.id);
- getchar();
- printf("Inserisci nome: ");
- scanf("%s", x->nome);
- getchar();
- printf("Inserisci cognome: ");
- scanf("%s", x->cognome);
- getchar();
- printf("\nInserisci data di nascita.\nGiorno: ");
- scanf("%s", x->nascita.gg);
- getchar();
- printf("Mese: ");
- scanf("%s", x->nascita.mm);
- getchar();
- printf("Anno: ");
- scanf("%s", x->nascita.aa);
- getchar();
- printf("Inserisci la patologia riscontrata: ");
- scanf("%s", x->clinica.patologia);
- getchar();
- printf("Inserisci data del ricovero.\nGiorno: ");
- scanf("%s", x->clinica.ricovero.gg);
- getchar();
- printf("Mese: ");
- scanf("%s", x->clinica.ricovero.mm);
- getchar();
- printf("Anno: ");
- scanf("%s", x->clinica.ricovero.aa);
- getchar();
- printf("Se il paziente e' stato dimesso inserire 1 altrimenti inserire 0\nScelta: ");
- scanf("%d", &scelta);
- if(scelta==1){
- printf("\nInserisci data dei dimissione.\nGiorno: ");
- scanf("%s", x->clinica.dimissione.gg);
- getchar();
- printf("Mese: ");
- scanf("%s", x->clinica.dimissione.mm);
- getchar();
- printf("Anno: ");
- scanf("%s", x->clinica.dimissione.aa);
- getchar();
- break;
- }
- else{
- strcpy(x->clinica.dimissione.gg,"NULL");
- break;
- }
- default:
- break;
- };
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement