Aide pour un exercice en c
Sarra1408
Messages postés
6
Statut
Membre
-
[Dal] Messages postés 6373 Statut Contributeur -
[Dal] Messages postés 6373 Statut Contributeur -
Bonjour, svp aider moi je suis débutant en c et je sais pas comment programmer pouvez vous me répondre sur cet exercice et merci..
Un médecin veut informatiser la gestion de son cabinet. On se propose de l’aider à travers
un programme permettant d’effectuer les tâches suivantes :
· Ajouter un nouveau patient
· Supprimer un patient existant
· Chercher un patient donné par son numéro
· Modifier un patient existant par son adresse/état civil
· Afficher la liste des patients
· Attribuer un RDV pour un patient donné
· Afficher la liste des patients ayant un RDV à une date donnée et il est valide ou annulé(modifier sa date)
· Quitter l’application
Sachant qu’un patient est caractérisé par :
- Un numéro de dossier
- Un nom_prénom
- Une date de naissance (jour, mois, année)
- Une adresse
- Un état civil(étudiant,éléve,citoyen,etc..)
- Une date du prochain RDV (jour, mois, année)
Un médecin veut informatiser la gestion de son cabinet. On se propose de l’aider à travers
un programme permettant d’effectuer les tâches suivantes :
· Ajouter un nouveau patient
· Supprimer un patient existant
· Chercher un patient donné par son numéro
· Modifier un patient existant par son adresse/état civil
· Afficher la liste des patients
· Attribuer un RDV pour un patient donné
· Afficher la liste des patients ayant un RDV à une date donnée et il est valide ou annulé(modifier sa date)
· Quitter l’application
Sachant qu’un patient est caractérisé par :
- Un numéro de dossier
- Un nom_prénom
- Une date de naissance (jour, mois, année)
- Une adresse
- Un état civil(étudiant,éléve,citoyen,etc..)
- Une date du prochain RDV (jour, mois, année)
A voir également:
- Aide pour un exercice en c
- Transmath 3eme exercice - Forum Loisirs / Divertissements
- Corrigés 350 exercices niveau moyen ✓ - Forum Loisirs / Divertissements
- Cahier transmath 3° ex 6p37, 6et7p27 et 5p65 svp c'est urgent! ✓ - Forum Études / Formation High-Tech
- Le corrigé de cet exercice - Forum Programmation
- Fleur d'encre 5eme corrigé exercice ✓ - Forum PDF
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<malloc.h> #include<windows.h> #include<time.h> struct patient { int num; char np[20]; char adr[30]; int d; char linais[10]; char etciv[25]; int v; }; struct date { int jj; int mm; int aa; }; struct medicament { int code; char nom[20]; float qte_stock; }; struct rendv { int j; int m; int a; }; /* [/contents/453-fichier-ts ts] fcts de Gestion des patients */ patient saisie_patient() { patient p; date d; printf("\n\n"); printf(" Gestion des Patients \n"); printf("\n"); printf(" Num%cro du Patient: ",130); scanf("%d ",&p.num); printf(" Nom et Pr%cnom du Patient : ",130); scanf("%s",&p.np); printf(" Adresse du Patient: "); scanf("%s",&p.adr); printf("\n La date de naissance du Patient JJ/MM/AAAA : ",130); scanf("%d %d %d",&d.jj,&d.mm,&d.aa); scanf("%d",&p.d); printf("\n"); if ((d.aa >1583 && d.aa <2483) || (d.mm >1 && d.mm <12) || (d.jj >1 && d.jj <31)); printf ("\t\tLa date saisie est valide" ); switch (d.mm) { case 2: if (d.aa %400 ==0 || (d.aa%100!=0 && d.aa%4==0)) printf (" Ce mois contient 29 jours",d.mm); else printf (" Ce mois contient 28 jours",d.mm); break; case 4: case 6: case 9: case 11: printf(" Ce mois contient 30 jours \n", d.mm); break; case 1: case 3: case 5: case 7: case 8: case 10: case 12: printf(" Ce mois contient 31 jours \n",d.mm); break; } printf("\n"); printf(" Lieu de naissance du Patient : "); scanf("%s",&p.linais); printf("\n"); printf(" Etat Civil du Patient : "); scanf("%s",&p.etciv); printf("\n \n"); } void affiche_patient(patient p) { printf(" Num%cro du Patient %d \n",p.num,130); printf(" Nom Et Pr%cnom du Patient %s %s \n",p.np,130); printf(" Adresse du Patient %s \n",p.adr); printf(" Date de naissance du Patient %s \n",p.d); printf(" Lieu de naissance du Patient %s \n",p.linais); printf(" Etat Civil du Patient %s \n",p.etciv); } void ecrire_patient() { FILE*k; int rep; patient p; k=fopen("patient.txt","a"); do { p=saisie_patient(); fwrite(&p,sizeof(patient),1,k); printf("Voulez vous ajouter un autre Patient ? Si Oui tapez 1 Si Non tapez 0 ! "); scanf("%d",&rep); } while(rep==1); fclose(k); } void lire_patient() { FILE*k; int rep; patient p; k=fopen("patient.txt","r"); fread(&p,sizeof(patient),1,k); printf("\n\n"); printf(" * Gestion des Patients * \n"); while(!feof(k)) { affiche_patient(p); printf("\n\n"); fread(&p,sizeof(patient),1,k); } fclose(k); } /* void recherche_patient() { patient p; int numr; printf("Entrer le num%cro de patient à rechercher:\n"); scanf("%d",&numr); FILE*k; k=fopen("patient.txt","r"); do { fscanf(k,"%d;%s;%s;%s;%d;%s;%s",&p.num,p.np,p.d,p.linais,p.etciv); if(numr==p.num) { printf("------ Informations du patient ------"); printf(" Num%cro du Patient %d \n",p.num,130); printf(" Nom Et Pr%cnom du Patient %s %s\n",p.np,130); printf(" Adresse du Patient %s \n",p.adr); printf(" Date de naissance du Patient %s \n",p.d); printf(" Lieu de naissance du Patient %s \n",p.linais); printf(" Etat Civil du Patient %s \n",p.etciv); } } while (!feof(k)); fclose(k); } void modifier_patient() { FILE*k,*fich; patient p; int num,i,numr; char rip; printf("Le num%cro à modifier :",130); scanf("%d",&p.num); fflush(stdin); if(numr==1) { printf(" Voulez vous vraiment modifier o/n ?"); scanf("%c",&rip); fflush(stdin); if(rip=='o'|| rip=='O') { k=fopen("patient.txt","r"); fich=fopen("nvpatient.txt","a"); do { fscanf(k,"%s;%s",&p.adr,p.etciv); if(num==p.num) { p.num==num; printf("Nouvelle Adresse du Patient: "); gets(p.adr); printf("Nouvelle Etat Civil du Patient : "); gets(p.etciv); printf("La modification a %ct%c r%cussi \n",130,130,130); fprintf(k,"%s;%s",&p.adr,p.etciv); } }while(!feof(k)); fclose(k); fclose(fich); remove("patient.txt"); rename("nvpatient.txt","patient.txt"); } else { printf("La modification à %ct%c annuler car le num%cro n'existe pas ! \n",130,130,130); } } } /*ts fcts de Gestion des rendez-vous */ rendv saisie_rendv() { rendv v; patient p; printf(" Date du rendez-vous\n"); scanf("%d %d %d",&v.j,&v.m,&v.a); scanf("%d",&p.v); if ((v.a >1583 && v.a <2483)||(v.m >1 && v.m <12)||(v.j >1 && v.j <31)); printf ("La date saisie est valide" ); switch (v.m) { case 2: if (v.a %400 ==0 || (v.a%100!=0 && v.a%4==0)) printf (" Ce mois contient 29 jours",v.m); else printf (" Ce mois contient 28 jours",v.m); break; case 4: case 6: case 9: case 11: printf(" Ce mois contient 30 jours \n", v.m); break; case 1: case 3: case 5: case 7: case 8: case 10: case 12: printf(" Ce mois contient 31 jours \n",v.m); break; default : printf("\n La date saisie est invalide" ); } scanf("%d",&p.v); return v; } void affiche_rendv(rendv v) { printf(" Date du rendez-vous jj/mm/aaaa : \n"); } void ecrire_rendv() { FILE*k; int rep; rendv v; k=fopen("rendv.txt","a"); do { v=saisie_rendv(); fwrite(&v,sizeof(rendv),1,k); printf("Voulez vous ajouter? Si Oui tapez 1 Si Non tapez 0 "); scanf("%d",&rep); } while(rep==1); fclose(k); } void lire_rendv() { FILE*k; int rep; rendv v; k=fopen("rendv.txt","r"); fread(&v,sizeof(rendv),1,k); printf("\n\n"); printf(" * Gestion des Rendez-vous * \n"); while(!feof(k)) { affiche_rendv(v); printf("\n\n"); fread(&v,sizeof(rendv),1,k); } fclose(k); } main() { /* lire l'heure courante */ time_t now = time (NULL); /* la convertir en heure locale */ struct tm tm_now = *localtime (&now); /* Creer une chaine JJ/MM/AAAA HH:MM:SS */ char s_now[sizeof "JJ/MM/AAAA HH:MM:SS"]; strftime (s_now, sizeof s_now, "%d/%m/%Y %H:%M:%S", &tm_now); /* afficher le resultat : */ printf ("'%s'\n\n\n", s_now); printf("\t\t\tGestion d'un Cabinet M%cdical\n\n",130); ecrire_patient(); lire_patient(); recherche_patient() modifier_patient(); ecrire_rendv(); printf("\n\n") lire_rendv(); printf("\n\n"); return 0; }Explications disponibles ici : ICI
Merci d'y penser dans tes prochains messages.
As-tu écrit ce code source et as-tu essayé de le compiler ?
Dal
si tu ne comprends pas certains messages, dis nous lesquels.
Dal
void recherche_patient()
{
patient p;
int numr;
printf("Entrer le num%cro de patient à rechercher:\n");
scanf("%d",&numr);
FILE*k;
k=fopen("patient.txt","r");
do
{
fscanf(k,"%d;%s;%s;%s;%d;%s;%s",&p.num,p.np,p.d,p.linais,p.etciv);
if(numr==p.num)
{
printf("------ Informations du patient ------");
printf(" Num%cro du Patient %d \n",p.num,130);
printf(" Nom Et Pr%cnom du Patient %s %s\n",p.np,130);
printf(" Adresse du Patient %s \n",p.adr);
printf(" Date de naissance du Patient %s \n",p.d);
printf(" Lieu de naissance du Patient %s \n",p.linais);
printf(" Etat Civil du Patient %s \n",p.etciv);
}
}
while (!feof(k));
fclose(k);
}
void modifier_patient()
{
FILE*k,*fich;
patient p;
int num,i,numr;
char rip;
printf("Le num%cro à modifier :",130);
scanf("%d",&p.num);
fflush(stdin);
if(numr==1)
{
printf(" Voulez vous vraiment modifier o/n ?");
scanf("%c",&rip);
fflush(stdin);
if(rip=='o'|| rip=='O')
{
k=fopen("patient.txt","r");
fich=fopen("nvpatient.txt","a");
do
{
fscanf(k,"%s;%s",&p.adr,p.etciv);
if(num==p.num)
{
p.num==num;
printf("Nouvelle Adresse du Patient: ");
gets(p.adr);
printf("Nouvelle Etat Civil du Patient : ");
gets(p.etciv);
printf("La modification a %ct%c r%cussi \n",130,130,130);
fprintf(k,"%s;%s",&p.adr,p.etciv);
}
}while(!feof(k));
fclose(k);
fclose(fich);
remove("patient.txt");
rename("nvpatient.txt","patient.txt");
}
else
{
printf("La modification à %ct%c annuler car le num%cro n'existe pas ! \n",130,130,130);
}
}
}