Aide pour un exercice en c

Fermé
Sarra1408 Messages postés 4 Date d'inscription mardi 8 mars 2016 Statut Membre Dernière intervention 31 mars 2016 - 30 mars 2016 à 17:09
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 - 1 avril 2016 à 11:12
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)

1 réponse

Nxl Messages postés 1038 Date d'inscription mardi 2 février 2010 Statut Membre Dernière intervention 5 janvier 2017 133
30 mars 2016 à 17:14
Salut,
clairement non.
On peut t'aider sur un bout de code qui marche pas mais on va pas te faire un exo... Surtout simple, si tu veut pas coder arrêtes le C et on en parle plus, sinon essayes de le faire tout seul. Si t'as des problèmes par conter on pourra t'aider !
1
Sarra1408 Messages postés 4 Date d'inscription mardi 8 mars 2016 Statut Membre Dernière intervention 31 mars 2016
Modifié par baladur13 le 31/03/2016 à 14:20
Bonjour.. Ok voilà mon code.. Voilà je sais pas pourquoi il marche pas :(
#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;
   
}

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
0
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 1 092
31 mars 2016 à 14:07
Salut sarra1408,

As-tu écrit ce code source et as-tu essayé de le compiler ?


Dal
0
Sarra1408 Messages postés 4 Date d'inscription mardi 8 mars 2016 Statut Membre Dernière intervention 31 mars 2016
31 mars 2016 à 17:41
Oui
0
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 1 092
31 mars 2016 à 22:28
alors, tu dois savoir que ton code ne compile pas, et génère de très nombreuses erreurs de compilation et avertissement, en t'indiquant les lignes concernées.

si tu ne comprends pas certains messages, dis nous lesquels.


Dal
0
Sarra1408 Messages postés 4 Date d'inscription mardi 8 mars 2016 Statut Membre Dernière intervention 31 mars 2016
31 mars 2016 à 23:07
Bon je veux savoir est ce que cette procédure qui cherche un patient par son numéro et cette fonction qui modifier l adresse et l état civil d un patient à partir de son numéro sont juste ou non ? Mercii ..
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);

}

}
}
0