#include <stdio.
h>
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>
typedef struct{
int matricule;
char nom[20];
char prenom[25];
int age;
char email[55];
}ETUDIANT;
int menu(){
int i;
printf("1 : Enregistrer un étudiants\n\n");
printf("2 : Afficher les étudiants\n\n");
printf("3 : Rechercher un étudiants\n\n");
printf("4 : Modifier un étudiants\n\n");
printf("5 : Quitter\n\n");
printf("Choisir une option......\n\n");
scanf("%d",&i);
return i;
}
void Enregistrer(ETUDIANT *E){
char NomFichier[50];
char matricule[50];
char nom[50];
int i,n;
printf("Entrer le nom du fichier de sauvegarde\n");
scanf("%s",&NomFichier);
strcpy( NomFichier , strcat(NomFichier,".txt"));
printf("%s",NomFichier);
printf("Entrez la taille de la classe\n");
scanf("%d",&n);
E = (ETUDIANT*)malloc((n+1)*sizeof(ETUDIANT));
for(i =1;i<=n;i++){
printf("Entrez le matricule de l'étudiant %d\n",i);
scanf("%s",matricule);
strcpy(&E[i].matricule,matricule);
printf("Entrez le nom de l'étudiant %d\n",i);
scanf("%s",nom);
strcpy(&E[i].nom,nom);
printf("Entrez le prénom de l'étudiant %d\n",i);
scanf("%s",& E[i].prenom);
printf("Entrez l'âge de l'étudiant %d\n",i);
scanf("%s",& E[i].age);
printf("Entrez l'email de l'étudiant %d\n",i);
scanf("%s",& E[i].email);
}
/*
char choix[10];
printf("Voulez vous enregistrer ? \n");
printf("y / n\n");
scanf("%s",&choix);
if(strcmp(choix,"y")){
*/
FILE *fichier;
fichier = fopen(NomFichier ,"a");
if(fichier == NULL){
printf("Erreur d'ouverture");
}
for(i = 1 ;i <= n;i++){
fprintf(fichier," matricule : %s ,Nom : %s, Prénom : %s, âge = %s, Email :
%s",& E[i].matricule,& E[i].nom,& E[i].prenom,& E[i].age,& E[i].email);
}
fclose(fichier);
/*}else{
if(strcmp(choix,"y")){
printf("bye");
}
}*/
}
void Afficher(){
char Nomfichier[55];
char ligne[256];
printf("Entrez le nom du fichier de sauvegarde");
scanf("%s",&Nomfichier);
strcpy(Nomfichier , strcat(Nomfichier,".txt"));
FILE *fichier = fopen(Nomfichier ,"r");
if(fichier == NULL){
printf("Impossible de lire ce fichier veillez essayer un autre");
}else{
while(fgets(ligne,sizeof(ligne),fichier) != NULL){
printf("%s", ligne);}
}
fclose(fichier);
}
void Recherche(){
char Nomfichier[55];
char matricule[55];
char ligne[256];
printf("Entrez le nom du fichier de sauvegarde");
scanf("%s",&Nomfichier);
printf("Entrez le matricule de l'étudiant à rechercher");
scanf("%s",&matricule);
strcpy(Nomfichier , strcat(Nomfichier,".txt"));
FILE *fichier = fopen(Nomfichier ,"r");
if(fichier == NULL){
printf("Impossible de lire ce fichier veuillez essayer un autre");
}else{
while(fgets(ligne,sizeof(ligne),fichier) != NULL){
if(strstr(ligne,matricule)!=NULL){
printf("%s", ligne);
}
}
}
fclose(fichier);
}
void Modifier(){
char Nomfichier[55];
char matricule[55];
char ligne[256];
printf("Entrez le nom du fichier de sauvegarde");
scanf("%s",&Nomfichier);
printf("Entrez le matricule de l'étudiant à modifier");
scanf("%s",&matricule);
strcpy(Nomfichier , strcat(Nomfichier,".txt"));
FILE *fichier = fopen(Nomfichier ,"a");
FILE *fichiertemp = fopen("[Link]" ,"a");
if(fichier == NULL){
printf("Impossible de lire ce fichier veuillez essayer un autre");
}else{
if(fgets(ligne,sizeof(ligne),fichier) != NULL){
if(strstr(ligne,matricule)== NULL){
fprintf(fichiertemp,"%s", ligne);
}
}
fclose(fichier);
ETUDIANT *E;
char nom[55];
strcpy(E->matricule,matricule);
printf("Entrez le nouveau nom de l'étudiant %d\n");
scanf("%s",nom);
strcpy(E->nom,nom);
printf("Entrez le nouveau prénom de l'étudiant %d\n");
scanf("%s", E->prenom);
printf("Entrez le nouvel âge de l'étudiant %d\n");
scanf("%s", E->age);
printf("Entrez le nouvel email de l'étudiant %d\n");
scanf("%s", E->email);
fprintf(fichiertemp,"%s", E->matricule);
fprintf(fichiertemp,"%s \t", E->nom);
fprintf(fichiertemp,"%s\t",E->prenom);
fprintf(fichiertemp,"%s\t", E->age);
fprintf(fichiertemp,"%s\t", E->email);
fclose(fichiertemp);
remove(Nomfichier);
rename("[Link]",Nomfichier);
}
}
int main()
{
int i;
i = menu();
ETUDIANT *E;
switch (i){
case 1:{
Enregistrer(E);
break;
}
case 2:{
Afficher();
break;
}
case 3:{
Recherche();
break;
}
case 4:{
Modifier();
break;
}
case 5:{
return 0;
}default:
printf("Faite un choix parmi le menu !\n");
break;
}
return 0;
}