Un exercice langage C urgent
Fermé
khal22
Messages postés
3
Date d'inscription
jeudi 2 mai 2013
Statut
Membre
Dernière intervention
2 mai 2013
-
2 mai 2013 à 22:07
khal22 Messages postés 3 Date d'inscription jeudi 2 mai 2013 Statut Membre Dernière intervention 2 mai 2013 - 2 mai 2013 à 23:06
khal22 Messages postés 3 Date d'inscription jeudi 2 mai 2013 Statut Membre Dernière intervention 2 mai 2013 - 2 mai 2013 à 23:06
A voir également:
- Un exercice langage C urgent
- Langage ascii - Guide
- Débuter langage batch windows - Guide
- Langage binaire - Guide
- Symboles langage sms - Forum Samsung
- Comment trouver la correction d'un exercice ✓ - Forum Programmation
3 réponses
blux
Messages postés
26013
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
26 avril 2024
3 289
2 mai 2013 à 22:08
2 mai 2013 à 22:08
Salut,
tu le veux en TAMP ?
tu le veux en TAMP ?
khal22
Messages postés
3
Date d'inscription
jeudi 2 mai 2013
Statut
Membre
Dernière intervention
2 mai 2013
2 mai 2013 à 22:19
2 mai 2013 à 22:19
oui svp c trés urgent
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 835
2 mai 2013 à 22:21
2 mai 2013 à 22:21
Plutôt que de réciter ton exercice et de dire que tu le trouves difficile, dis-nous ce que tu as compris, ce que tu as commencé à faire, et ce que tu n'arrives pas à faire. Sans ce préalable, tu n'auras aucune aide...
blux
Messages postés
26013
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
26 avril 2024
3 289
2 mai 2013 à 22:31
2 mai 2013 à 22:31
TAMP = Travaille A Ma Place...
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 835
2 mai 2013 à 22:41
2 mai 2013 à 22:41
C'est pas à moi qui faut le dire ^^. Je lui expliquais ce qu'on attendait de lui :-)
khal22
Messages postés
3
Date d'inscription
jeudi 2 mai 2013
Statut
Membre
Dernière intervention
2 mai 2013
2 mai 2013 à 23:06
2 mai 2013 à 23:06
j'ai fais ça mais je suis sure qu'il est faux :/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void saisir_fichier(FILE* fp_etudiant);
void menu();
int verif_lettre(char* c);
int verif_cin(char *ncin,FILE *fp);
int chiffre(char* c);
void ajouter_etudiant();
FILE* moyenne_etudiant(FILE* fp_etudiant);
void modifier_note(FILE* fp);
void recherche_par_cin(FILE* fp);
void rattrapage();
void main()
{
FILE *fp_etudiant=NULL;
int choix;
do
{
menu();
do
{
scanf("%d",&choix);
if(choix<0||choix>6)
printf("choix invalide\n");
}while(choix<0||choix>6);
switch (choix)
{
case 1 : saisir_fichier(fp_etudiant); break;
case 2 : moyenne_etudiant(fp_etudiant); break;
case 3 : modifier_note(fp_etudiant); break;
case 4 : rattrapage(); break;
case 0 : exit(0);
}
}while(1);
}
void menu()
{
printf("1.saisir les donnees d'un etudiant\n");
printf("2.liste de ratrappage\n");
printf("3.modifier la note d'un etudiant\n");
printf("4.afficher (l'/les)etudiant(s) qui (est/sont) 1er(s) dans la matiere\n");
printf("5.recherche num. d'inscri d'un etudiant\n");
printf("6.trier les etudiant par ordre alphabetique\n");
}
void saisir_fichier(FILE* fp_etudiant)
{
char ch[200]="",ch2[200]="";
char cin[8]="";
char num_inscri[8]="",classe[10]="",matiere[10]="";
float note_control,note_exam;
char prenom[15]="";
char nom[15]="";
int i;
printf("entrer le cin de l'etudiant : ");
do
{
scanf("%s",cin);
}while(strlen(cin)!=8||!chiffre(cin)||!verif_cin(cin,fp_etudiant));
fp_etudiant=fopen("etudiant.txt","r+");
if(fp_etudiant!=NULL)
{
while(fgetc(fp_etudiant)!=EOF);
fputc('\n',fp_etudiant);
fputs(cin,fp_etudiant);
fclose(fp_etudiant);
}
printf("\nentrer le prenom de l'etudiant : ");
do
{
scanf("%s",prenom);
}while(strlen(prenom)>15||strlen(prenom)<1||!verif_lettre(prenom));
printf("\nentrer le nom de l'etudiant : ");
do
{
scanf("%s",nom);
}while(strlen(nom)>15||strlen(nom)<1||!verif_lettre(nom));
printf("\nentrer le num. d'inscri de l'etudiant : ");
do
{
scanf("%s",num_inscri);
}while(strlen(num_inscri)!=8||!chiffre(num_inscri)||!verif_cin(num_inscri,fp_etudiant));
printf("\nentrer la classe de l'etudiant : ");
do
{
scanf("%s",classe);
}while(strlen(classe)<1||strlen(classe)>10);
printf("\nentrer la matiere: ");
do
{
scanf("%s",matiere);
}while(!verif_lettre(matiere)||strlen(matiere)<1||strlen(matiere)>10);
printf("\nentrer le note de controle de l'etudiant : ");
do
{
scanf("%f",¬e_control);
}while(note_control<0||note_control>20);
printf("\nentrer le note de l'exam de l'etudiant : ");
do
{
scanf("%f",¬e_exam);
}while(note_exam<0||note_exam>20);
sprintf(ch," %-20s %-20s %8s %-10s %-10s %-10f %-10f",nom,prenom,num_inscri,classe,matiere,note_control,note_exam);
fp_etudiant=fopen("etudiant.txt","a");
if(fp_etudiant!=NULL)
{
fputs(ch,fp_etudiant);
fclose(fp_etudiant);
}
}
int verif_cin(char *ncin,FILE *fp)
{
char ch[200];
rewind(fp);
while(fgets(ch,199,fp))
{
if(!memcmp(ch,ncin,8))
{
printf("CIN existe deja \n ");
return(0);
}
}
return(1);
}
int verif_lettre(char* c)
{
int i;
for(i=0;i<strlen(c);i++)
{
if((c[i]<='z'&&c[i]>='a')||(c[i]<='Z'&&c[i]>='A'))
return 1;
}
return 0;
}
int chiffre(char* c)
{
int i;
for(i=0;i<strlen(c);i++)
{
if(c[i]<='9'&&c[i]>='0')
return 1;
}
return 0;
}
FILE* moyenne_etudiant(FILE* fp_etudiant)
{
float a[2]={0},m=0; int i=0,b=95,p=-1,l;
char ch_moy[100]="",ch_boucl[150]="",c;
FILE* fp;
fp_etudiant=fopen("etudiant.txt","r");
if(fp_etudiant!=NULL)
{
rewind(fp_etudiant);
c=fgetc(fp_etudiant);
while(c!=EOF)
{
p++;
l=p;
i=0;
fgets(ch_moy,51,fp_etudiant);
printf("%s\n",ch_moy);
while(c!=EOF&&i<32)
{
c=fgetc(fp_etudiant);
i++;
}
fscanf(fp_etudiant,"%f",&a[0]);
printf("%f",a[0]);
rewind(fp_etudiant);
c=fgetc(fp_etudiant);
while(l>0&&fgets(ch_boucl,150,fp_etudiant)!=NULL)
{
l--;
}
i=0;
while(c!=EOF&&i<93)
{
c=fgetc(fp_etudiant);
i++;
}
fscanf(fp_etudiant,"%f",&a[1]);
printf(" %f",a[1]);
printf("\n");
m=(a[0]*3+a[1]*7)/10;
fp=fopen("moyenne_etudiant.txt","a");
if(fp!=NULL)
{
fputs(ch_moy,fp);
fprintf(fp,"%f",m);
fputc('\n',fp);
fclose(fp);
}
while(c!=EOF&&c!='\n')
{
c=fgetc(fp_etudiant);
}
}
fclose(fp_etudiant);
}
}
void modifier_note(FILE* fp)
{
int i=0,b;
float n;
char chaine[150]="", rnom[10]="",cpnom[10]="",c;
int l=0,m;
printf("saisir le nom a chercher : ");
scanf("%s",rnom);
fp=fopen("etudiant.txt","r+");
if(fp!=NULL)
{
rewind(fp);
c=fgetc(fp);
while(fgets(chaine,150,fp)!=NULL)
{
l++;
sscanf(chaine,"%8s %20s",cpnom,cpnom);
if(!strcmp(cpnom,rnom))
{
m=l-1;
i++;
printf("%s",chaine);
}
}
rewind(fp);
c=fgetc(fp);
if(i==1)
{
while(fgets(chaine,150,fp)!=NULL&&m>0)
{
m--;
}
}
if(i>1)
{
recherche_par_cin(fp);
}
printf("saisir la note a modifier : ");
printf("1.ds 2.exam : ");
scanf("%d",&b);
printf("saisir la nouvelle note : ");
scanf("%f",&n);
switch(b)
{
case 1 : fseek(fp,-23,SEEK_CUR); fprintf(fp,"%f",n); break;
case 2 : fseek(fp,-12,SEEK_CUR); fprintf(fp,"%f",n); break;
default: printf("choix invalide\n"); break;
}
fclose(fp);
}
}
void recherche_par_cin(FILE* fp)
{
char chaine[150]="", rcin[8]="",cpcin[8]="",c;
int i=0,m,l=0;
printf("saisir le num de cin a chercher : ");
scanf("%s",rcin);
fp=fopen("etudiant.txt","r");
if(fp!=NULL)
{
rewind(fp);
c=fgetc(fp);
while(fgets(chaine,150,fp)!=NULL)
{
l++;
sscanf(chaine,"%8s",cpcin);
if(!strcmp(cpcin,rcin))
{
m=l-1;
printf("%s",chaine);
}
}
rewind(fp);
c=fgetc(fp);
while(fgets(chaine,150,fp)!=NULL&&m>0)
{
m--;
}
fclose(fp);
}
}
void rattrapage()
{
FILE* fp=NULL;
float a;
char ch[100]="",c;
fp=fopen("moyenne_etudiant.txt","r");
if (fp!=NULL)
{
printf("La liste des etudiants qui vont passer l'exam de rattrapage : \n\n");
while(fgets(ch,100,fp)!=NULL)
{
fseek(fp,-11,SEEK_CUR);
fscanf(fp,"%f",&a);
if(a<10)
printf("%s",ch);
c=fgetc(fp);
while(c!='\n'&&c!=EOF)
{
c=fgetc(fp);
}
}
fclose(fp);
printf("\n");
}
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void saisir_fichier(FILE* fp_etudiant);
void menu();
int verif_lettre(char* c);
int verif_cin(char *ncin,FILE *fp);
int chiffre(char* c);
void ajouter_etudiant();
FILE* moyenne_etudiant(FILE* fp_etudiant);
void modifier_note(FILE* fp);
void recherche_par_cin(FILE* fp);
void rattrapage();
void main()
{
FILE *fp_etudiant=NULL;
int choix;
do
{
menu();
do
{
scanf("%d",&choix);
if(choix<0||choix>6)
printf("choix invalide\n");
}while(choix<0||choix>6);
switch (choix)
{
case 1 : saisir_fichier(fp_etudiant); break;
case 2 : moyenne_etudiant(fp_etudiant); break;
case 3 : modifier_note(fp_etudiant); break;
case 4 : rattrapage(); break;
case 0 : exit(0);
}
}while(1);
}
void menu()
{
printf("1.saisir les donnees d'un etudiant\n");
printf("2.liste de ratrappage\n");
printf("3.modifier la note d'un etudiant\n");
printf("4.afficher (l'/les)etudiant(s) qui (est/sont) 1er(s) dans la matiere\n");
printf("5.recherche num. d'inscri d'un etudiant\n");
printf("6.trier les etudiant par ordre alphabetique\n");
}
void saisir_fichier(FILE* fp_etudiant)
{
char ch[200]="",ch2[200]="";
char cin[8]="";
char num_inscri[8]="",classe[10]="",matiere[10]="";
float note_control,note_exam;
char prenom[15]="";
char nom[15]="";
int i;
printf("entrer le cin de l'etudiant : ");
do
{
scanf("%s",cin);
}while(strlen(cin)!=8||!chiffre(cin)||!verif_cin(cin,fp_etudiant));
fp_etudiant=fopen("etudiant.txt","r+");
if(fp_etudiant!=NULL)
{
while(fgetc(fp_etudiant)!=EOF);
fputc('\n',fp_etudiant);
fputs(cin,fp_etudiant);
fclose(fp_etudiant);
}
printf("\nentrer le prenom de l'etudiant : ");
do
{
scanf("%s",prenom);
}while(strlen(prenom)>15||strlen(prenom)<1||!verif_lettre(prenom));
printf("\nentrer le nom de l'etudiant : ");
do
{
scanf("%s",nom);
}while(strlen(nom)>15||strlen(nom)<1||!verif_lettre(nom));
printf("\nentrer le num. d'inscri de l'etudiant : ");
do
{
scanf("%s",num_inscri);
}while(strlen(num_inscri)!=8||!chiffre(num_inscri)||!verif_cin(num_inscri,fp_etudiant));
printf("\nentrer la classe de l'etudiant : ");
do
{
scanf("%s",classe);
}while(strlen(classe)<1||strlen(classe)>10);
printf("\nentrer la matiere: ");
do
{
scanf("%s",matiere);
}while(!verif_lettre(matiere)||strlen(matiere)<1||strlen(matiere)>10);
printf("\nentrer le note de controle de l'etudiant : ");
do
{
scanf("%f",¬e_control);
}while(note_control<0||note_control>20);
printf("\nentrer le note de l'exam de l'etudiant : ");
do
{
scanf("%f",¬e_exam);
}while(note_exam<0||note_exam>20);
sprintf(ch," %-20s %-20s %8s %-10s %-10s %-10f %-10f",nom,prenom,num_inscri,classe,matiere,note_control,note_exam);
fp_etudiant=fopen("etudiant.txt","a");
if(fp_etudiant!=NULL)
{
fputs(ch,fp_etudiant);
fclose(fp_etudiant);
}
}
int verif_cin(char *ncin,FILE *fp)
{
char ch[200];
rewind(fp);
while(fgets(ch,199,fp))
{
if(!memcmp(ch,ncin,8))
{
printf("CIN existe deja \n ");
return(0);
}
}
return(1);
}
int verif_lettre(char* c)
{
int i;
for(i=0;i<strlen(c);i++)
{
if((c[i]<='z'&&c[i]>='a')||(c[i]<='Z'&&c[i]>='A'))
return 1;
}
return 0;
}
int chiffre(char* c)
{
int i;
for(i=0;i<strlen(c);i++)
{
if(c[i]<='9'&&c[i]>='0')
return 1;
}
return 0;
}
FILE* moyenne_etudiant(FILE* fp_etudiant)
{
float a[2]={0},m=0; int i=0,b=95,p=-1,l;
char ch_moy[100]="",ch_boucl[150]="",c;
FILE* fp;
fp_etudiant=fopen("etudiant.txt","r");
if(fp_etudiant!=NULL)
{
rewind(fp_etudiant);
c=fgetc(fp_etudiant);
while(c!=EOF)
{
p++;
l=p;
i=0;
fgets(ch_moy,51,fp_etudiant);
printf("%s\n",ch_moy);
while(c!=EOF&&i<32)
{
c=fgetc(fp_etudiant);
i++;
}
fscanf(fp_etudiant,"%f",&a[0]);
printf("%f",a[0]);
rewind(fp_etudiant);
c=fgetc(fp_etudiant);
while(l>0&&fgets(ch_boucl,150,fp_etudiant)!=NULL)
{
l--;
}
i=0;
while(c!=EOF&&i<93)
{
c=fgetc(fp_etudiant);
i++;
}
fscanf(fp_etudiant,"%f",&a[1]);
printf(" %f",a[1]);
printf("\n");
m=(a[0]*3+a[1]*7)/10;
fp=fopen("moyenne_etudiant.txt","a");
if(fp!=NULL)
{
fputs(ch_moy,fp);
fprintf(fp,"%f",m);
fputc('\n',fp);
fclose(fp);
}
while(c!=EOF&&c!='\n')
{
c=fgetc(fp_etudiant);
}
}
fclose(fp_etudiant);
}
}
void modifier_note(FILE* fp)
{
int i=0,b;
float n;
char chaine[150]="", rnom[10]="",cpnom[10]="",c;
int l=0,m;
printf("saisir le nom a chercher : ");
scanf("%s",rnom);
fp=fopen("etudiant.txt","r+");
if(fp!=NULL)
{
rewind(fp);
c=fgetc(fp);
while(fgets(chaine,150,fp)!=NULL)
{
l++;
sscanf(chaine,"%8s %20s",cpnom,cpnom);
if(!strcmp(cpnom,rnom))
{
m=l-1;
i++;
printf("%s",chaine);
}
}
rewind(fp);
c=fgetc(fp);
if(i==1)
{
while(fgets(chaine,150,fp)!=NULL&&m>0)
{
m--;
}
}
if(i>1)
{
recherche_par_cin(fp);
}
printf("saisir la note a modifier : ");
printf("1.ds 2.exam : ");
scanf("%d",&b);
printf("saisir la nouvelle note : ");
scanf("%f",&n);
switch(b)
{
case 1 : fseek(fp,-23,SEEK_CUR); fprintf(fp,"%f",n); break;
case 2 : fseek(fp,-12,SEEK_CUR); fprintf(fp,"%f",n); break;
default: printf("choix invalide\n"); break;
}
fclose(fp);
}
}
void recherche_par_cin(FILE* fp)
{
char chaine[150]="", rcin[8]="",cpcin[8]="",c;
int i=0,m,l=0;
printf("saisir le num de cin a chercher : ");
scanf("%s",rcin);
fp=fopen("etudiant.txt","r");
if(fp!=NULL)
{
rewind(fp);
c=fgetc(fp);
while(fgets(chaine,150,fp)!=NULL)
{
l++;
sscanf(chaine,"%8s",cpcin);
if(!strcmp(cpcin,rcin))
{
m=l-1;
printf("%s",chaine);
}
}
rewind(fp);
c=fgetc(fp);
while(fgets(chaine,150,fp)!=NULL&&m>0)
{
m--;
}
fclose(fp);
}
}
void rattrapage()
{
FILE* fp=NULL;
float a;
char ch[100]="",c;
fp=fopen("moyenne_etudiant.txt","r");
if (fp!=NULL)
{
printf("La liste des etudiants qui vont passer l'exam de rattrapage : \n\n");
while(fgets(ch,100,fp)!=NULL)
{
fseek(fp,-11,SEEK_CUR);
fscanf(fp,"%f",&a);
if(a<10)
printf("%s",ch);
c=fgetc(fp);
while(c!='\n'&&c!=EOF)
{
c=fgetc(fp);
}
}
fclose(fp);
printf("\n");
}
}