#include <stdio.h>
#include <stdlib.h>
#define MAXCHAR 18
void inseriscinuovomedico(int *numeromedici);
void inseriscinuovopaziente(int *numeropazienti);
void assegnazionemedicopaziente(int numeromedici,int numeropazienti);
int contapazienti(char matricola[MAXCHAR],int numeropazienti);
int esistenzapaziente(char codice_fiscale[MAXCHAR],int numeropazienti);
void visualizzazionemedici(int numeromedici);
void visualizzazionepazienti(int numeropazienti);
struct medico{
char nome[MAXCHAR];
char cognome[MAXCHAR];
char matricola[MAXCHAR];
}medici[50];
struct paziente{
char nome[MAXCHAR];
char cognome[MAXCHAR];
char codice_fiscale[MAXCHAR];
char assegnazione[MAXCHAR];
}pazienti[50];
void mainmenu();
int main()
{
mainmenu();
return 0;
}
void mainmenu(){
int numeromedici=0;
int numeropazienti=0;
int azione;
do {
printf("Gestione medici \n\n");
printf("1 - Inserisci nuovo medico\n");
printf("2 - Inserisci nuovo paziente\n");
printf("3 - Assegna medico a paziente\n");
printf("4 - Visualizza Medici\n");
printf("5 - Visualizzazione Paziente\n");
printf("0 - Esci\n");
printf("Inserisci la scelta -> ");
scanf("%d", &azione);
//Controllo scelta
switch(azione) {
case 0:
printf("Arrivederci!");
break;
case 1:
system("cls");
inseriscinuovomedico(&numeromedici);
break;
case 2:
system("cls");
inseriscinuovopaziente(&numeropazienti);
break;
case 3:
system("cls");
assegnazionemedicopaziente(numeromedici,numeropazienti);
break;
case 4:
system("cls");
visualizzazionemedici(numeromedici);
break;
case 5:
system("cls");
visualizzazionepazienti(numeropazienti);
break;
default:
printf("Azione non valida");
}
} while (azione != 0);
}
void inseriscinuovomedico(int *numeromedici){
fflush(stdin);
printf("inserisci cognome ");
gets(medici[*numeromedici].cognome);
printf("inserisci nome ");
gets(medici[*numeromedici].nome);
printf("inserisci matricola ");
gets(medici[*numeromedici].matricola);
printf("medico inserito correttamente");
*numeromedici+=1;
system("PAUSE");
system("cls");
}
void inseriscinuovopaziente(int *numeropazienti){
fflush(stdin);
printf("inserisci cognome ");
gets(pazienti[*numeropazienti].cognome);
printf("inserisci nome ");
gets(pazienti[*numeropazienti].nome);
printf("inserisci codice fiscale ");
gets(pazienti[*numeropazienti].codice_fiscale);
printf("paziente inserito correttamente");
*numeropazienti+=1;
system("PAUSE");
system("cls");
}
void assegnazionemedicopaziente(int numeromedici,int numeropazienti){
char matricola[MAXCHAR];
char codice_fiscale[MAXCHAR];
int i;
char azione;
int indicepaziente;
fflush(stdin);
printf("inserisci matricola medico ");
gets(matricola);
printf("inserisci codice fiscale paziente ");
gets(codice_fiscale);
for(i=0;i<numeromedici;i++){
if(strcmp(matricola,medici[i].matricola)==0){
printf("COGNOME MEDICO:%s,NOME MEDICO:%s",medici[i].cognome,medici[i].nome);
}
}
for(i=0;i<numeropazienti;i++){
if(strcmp(codice_fiscale,pazienti[i].codice_fiscale)==0){
printf("\nCOGNOME PAZIENTE:%s,NOME PAZIENTE:%s",pazienti[i].cognome,pazienti[i].nome);
}
}
indicepaziente=esistenzapaziente(codice_fiscale,numeropazienti);
printf("confermi i dati?Y o n? ");
scanf("%c",&azione);
if(azione=='y'){
if(contapazienti(matricola,numeropazienti)<=2){
if(strlen(pazienti[indicepaziente].assegnazione)==0){
strcpy(pazienti[indicepaziente].assegnazione,matricola);
printf("assegnazione avvenuta correttamente!");
system("PAUSE");
system("cls");
}else {
printf("Paziete ha gia' il medico");
system("PAUSE");
system("cls");
}
}else{
printf("Questo medico massimo 2 pazienti puo' curare");
system("PAUSE");
system("cls");
}
}
else if(azione=='n'||azione=='N'){
printf("non hai confermato i dati");
system("PAUSE");
system("cls");
}else{
printf("carattere non ammesso");
system("PAUSE");
system("cls");
}
}
int contapazienti(char matricola[MAXCHAR],int numeropazienti){
int i;
int conta=0;
for(i=0;i<numeropazienti;i++){
if(strcmp(matricola,pazienti[i].assegnazione)==0){
conta=conta+numeropazienti;
}
}
return conta;
}
int esistenzapaziente(char codice_fiscale[MAXCHAR],int numeropazienti){
int i;
for(i=0;i<numeropazienti;i++){
if(strcmp(codice_fiscale,pazienti[i].codice_fiscale)==0){
return i;
}
}
return 0;
}
void visualizzazionemedici(int numeromedici){
int i;
for(i=0;i<numeromedici;i++)
printf("NOME MEDICO:%s,COGNOME MEDICO:%s",medici[i].nome,medici[i].cognome);
system("PAUSE");
system("cls");
}
void visualizzazionepazienti(int numeropazienti){
char codice[MAXCHAR];
int i;
fflush(stdin);
printf("inserisci codice fiscale ");
gets(codice);
for(i=0;i<numeropazienti;i++){
if(strcmp(codice,pazienti[i].codice_fiscale)==0){
printf("COGNOME PAZIENTE:%s NOME PAZIENTE:%s",pazienti[i].cognome,pazienti[i].nome);
system("PAUSE");
system("cls");
}
}
/*for(i=0;i<numeropazienti;i++){
if(strcmp(,pazienti[i].assegnazione)==0){
printf("COGNOME PAZIENTE:%s NOME PAZIENTE:%s");
system("PAUSE");
system("cls");
}
}*/
}