Cherche de l'aide en programmation c

Fermé
mounirch Messages postés 1 Date d'inscription vendredi 5 novembre 2010 Statut Membre Dernière intervention 26 janvier 2011 - 26 janv. 2011 à 21:57
Bonjour,
j'ai petit probleme concernant mon programme en langage qui donne la possibilé de d'entrer des elements et de les affichier et de chercher mais je n'arrive pas à supprimer
je souhaite que vous pouriez m'aider , merci
cordialement
voila le code
/////////////////////////////////////////////////////////////////////////////
#include <stdio.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>

typedef struct etudiant{
char nom[20];
char prenom[20];
char cne[12];
char etabli[50];
char email[50];
char gsm[15];
char choix[20];

}eleve;

//--------------------------Lecture etudiant------------------------------------
void lecture(eleve liste[100])
{
int i;
int dim;
FILE *fp;
fp=fopen("Eleve.TXT","a");
if(fp==NULL)
{
printf("fich n\'existe pas");

}
else{
printf("combien voulez vouz vous entrer");
scanf("%d",&dim);
for(i=0;i<dim;i++){
fflush(stdin);
printf("entrer le nom de l\'etudiant\n");
scanf("%s",liste[i].nom);
printf("entrer le prenom de l\'etudiant\n");
scanf("%s",liste[i].prenom);
fflush(stdin);
printf("entrer le CNE de l\'etudiant\n");
scanf("%s",(liste[i].cne));

printf("entrer l\'etablissement\n");
scanf("%s",liste[i].etabli);
fflush(stdin);
printf("entrer l\'email\n");
scanf("%s",liste[i].email);
printf("entrer le GSM\n");
scanf("%s",(liste[i].gsm));
printf("entrer le choix\n");
scanf("%s",liste[i].choix);
printf("\n<---------------->\n\n\n");
fprintf(fp,"\n\n\n%s\n",liste[i].nom);
fprintf(fp,"%s\n",liste[i].prenom);
fprintf(fp,"%s\n",liste[i].cne);
fprintf(fp,"%s\n",liste[i].etabli);
fprintf(fp,"%s\n",liste[i].email);
fprintf(fp,"%s\n",liste[i].gsm);
fprintf(fp,"%s\n",liste[i].choix);

system("cls");
printf("Cet etudiant a ete bien enregistrer\n");
}
}

fclose(fp);


}

//---------------------------Ranger---------------------------------------------
void rangerListe(eleve liste_etudiant[100])
{
struct etudiant aide;
int i,j;
for(i=0;i<10;i++)
{
for(j=i+1;j<10;j++)
{
if(strcmp(liste_etudiant[j].nom,liste_etudiant[i].nom)<=0)
{
if(strcmp(liste_etudiant[j].nom,liste_etudiant[i].nom)<0)
{
aide=liste_etudiant[i];
liste_etudiant[i]=liste_etudiant[j];
liste_etudiant[j]=aide;
}
else
{
if(strcmp(liste_etudiant[j].prenom,liste_etudiant[i].prenom)<0)
{
aide=liste_etudiant[i];
liste_etudiant[i]=liste_etudiant[j];
liste_etudiant[j]=aide;
}
}
}
}
}
}

//----------------------------------afficher------------------------------------
void affiche(eleve liste[])
{
int j,dim=20;
FILE *fp;
fp=fopen("Eleve.TXT","r+");
printf("La liste des etudiants elligibles est:\n");
rangerListe(liste);

for(j=0;j<dim;j++)

{
printf("\n");
if(j==0)
printf("\n\tLes informations du premier etudiant de la liste sont");
else
printf("\n\tLes informations du %d eme etudiant de la liste sont",j+1);



fscanf(fp,"%s",liste[j].nom);
fscanf(fp,"%s",liste[j].prenom);
fscanf(fp,"%s",(liste[j].cne));
fscanf(fp,"%s",liste[j].etabli);
fscanf(fp,"%s",liste[j].email);
fscanf(fp,"%s",(liste[j].gsm));
fscanf(fp,"%s",liste[j].choix);
printf("\n\n\n\n");
printf("\n --> Nom: %s",liste[j].nom);
printf("\n --> Prenom: %s",liste[j].prenom);
printf("\n --> CNE: %s",liste[j].cne);
printf("\n --> Etablissement: %s",liste[j].etabli);
printf("\n --> E-mail: %s",liste[j].email);
printf("\n --> GSM: %s",liste[j].gsm);
printf("\n --> Choix: %s",liste[j].choix);

printf("\n\n----------------<\n\n");
}
}
//-----------------------Suppression--------------------------------------------
void suprim(eleve en_liste_etudiant[100])
{

int a=-1,i,j,existe=0;
char en_nom[20],en_prenom[20],affirmation[10];
int dim=20;

printf("\n\tVOUS ETES SUR LE POINT DE SUPPRIMER UN ETUDIANT\n");
printf("\t-----------------------------------------------\n");
printf("\n * Donner le nom de l etudiant qui ne fait plus partir de l etabblissement: ");
fflush(stdin);
gets(en_nom);
FILE *fp;
fp=fopen("Eleve.TXT","a");
for(j=0;j<dim;j++)

{

fscanf(fp,"%s",en_liste_etudiant[j].nom);
fscanf(fp,"%s",en_liste_etudiant[j].prenom);
fscanf(fp,"%s",(en_liste_etudiant[j].cne));
fscanf(fp,"%s",en_liste_etudiant[j].etabli);
fscanf(fp,"%s",en_liste_etudiant[j].email);
fscanf(fp,"%s",(en_liste_etudiant[j].gsm));
fscanf(fp,"%s",en_liste_etudiant[j].choix);}

for(i=0;(i<10)&&(a==-1);i++)
{
if(strcmp(en_nom,en_liste_etudiant[i].nom)!=0)
{
existe++;

}
else
{
printf("\n * Donner le prenom de l etudiant qui ne fait plus partir de votre etablissement: ");
gets(en_prenom);
fflush(stdin);
if((strcmp(en_prenom,en_liste_etudiant[i].prenom)==0))
a=i;
}
}
if((existe==0)&&(a!=-1))
{
printf("\n * L\'etudiant que vous voulez supprimer est regulier dans l etablissement");
printf("\n * Voulez vous vraiment le supprimez cet etudiant de l etablissement;entrez oui ou non: ");
gets(affirmation);
if((strcmp(affirmation,"oui")==0)||(strcmp(affirmation,"OUI")==0))

{






for(i=a;i<dim;i++)
{en_liste_etudiant[i]=en_liste_etudiant[i] ;
fprintf(fp,"\n\n\n%s\n",en_liste_etudiant[i].nom);
fprintf(fp,"%s\n",en_liste_etudiant[i].prenom);
fprintf(fp,"%s\n",en_liste_etudiant[i].cne);
fprintf(fp,"%s\n",en_liste_etudiant[i].etabli);
fprintf(fp,"%s\n",en_liste_etudiant[i].email);
fprintf(fp,"%s\n",en_liste_etudiant[i].gsm);
fprintf(fp,"%s\n",en_liste_etudiant[i].choix);

}dim--;

printf("\n * Cet etudiant a bien ete supprimer.\n\n\t");
}
else
printf(" * %s %s est en pocetion d un livre de la bibliotheque qu il n a pas remi, il ne peut pas etre supprime.\n\n\t",en_nom,en_prenom);

}
else
printf("\n * Cet etudiant n\'est pas dans la liste des etudiants reguliers de l\'etablissement\n\n\t");
system("pause");
system("cls");
fclose(fp);
}
//--------------------------------Chercher Administrateur-----------------------
void cherchera(eleve liste[])
{
int i,j,pos=-1,existe=0,dime=20,a;
char scne[12];
char snom[20],sprenom[20],affirmation[10];
FILE *fp;
fp=fopen("Eleve.TXT","r");
fflush(stdin);
printf("Entrez le CNE de l\'eleve:\n");
gets(scne);
for(j=0;j<10;j++)

{

fscanf(fp,"%s",liste[j].nom);
fscanf(fp,"%s",liste[j].prenom);
fscanf(fp,"%s",(liste[j].cne));
fscanf(fp,"%s",liste[j].etabli);
fscanf(fp,"%s",liste[j].email);
fscanf(fp,"%s",liste[j].gsm);
fscanf(fp,"%s",liste[j].choix);


if(strcmp(liste[j].cne,scne)==0) a=j;}
printf("%s\n",liste[a].nom);
printf("%s\n",liste[a].prenom);
printf("%s\n",liste[a].etabli);
printf("%s\n",liste[a].email);
printf("%s\n",liste[a].gsm);
printf("%s\n",liste[a].choix);

system("pause");
system("cls");
}
//-------------------------------Administrateur---------------------------------
void administrateur(eleve liste[])
{
int choix;
FILE *fp;
fp=fopen("Eleve.TXT","a");
do{printf("\t**************Menu d\'administration*************\n");
printf("\t********************BIENVENUE********************\n");
printf("\t*************************************************\n\n\n");
printf("1-->Ajouter des etudiants\n");
printf("2-->Afficher la liste des etudiants elligibles\n");
printf("3-->Chercher un etudiant\n");
printf("4-->Suppression d\'un etudiant\n");
scanf("%d",&choix);

switch(choix){
case 1: lecture(liste);break;
case 2: affiche(liste);break;
case 3: cherchera(liste);break;
case 4: suprim(liste);break;
case 'Q': fclose(fp);break;
default: printf("Entrez un choix valide\n");
}}while(choix='Q');
system("pause");
system("cls");

}



//--------------------------------Chercher etudiant-----------------------------
void chercheru(eleve liste[])
{
int i,j,pos=-1,existe=0,dime=10,a;
char scne[12];

char snom[20],sprenom[20],affirmation[10];
FILE *fp;
fp=fopen("Eleve.TXT","r");
fflush(stdin);
printf("Entrez votre CNE :\n");
gets(scne);
for(j=0;j<dime;j++)

{

fscanf(fp,"%s",liste[j].nom);
fscanf(fp,"%s",liste[j].prenom);
fscanf(fp,"%s",(liste[j].cne));
fscanf(fp,"%s",liste[j].etabli);
fscanf(fp,"%s",liste[j].email);
fscanf(fp,"%s",liste[j].gsm);
fscanf(fp,"%s",liste[j].choix);


if(strcmp(liste[j].cne,scne)==0) a=j;}
printf("Vous etes elligible\n");
printf(">--Nom : %s\n",liste[a].nom);
printf(">--Prenom : %s\n",liste[a].prenom);
printf(">--Etablissement: %s\n",liste[a].etabli);
printf(">--Email : %s\n",liste[a].email);
printf(">--GSM : %s\n",liste[a].gsm);
printf(">--Choix : %s\n",liste[a].choix);

system("pause");
system("cls");
}


////////////////////////////////////////////////////////////////////////////////
int main()
{

int cho;
int mp;
int choix;
FILE *fp;
fp=fopen("Eleve.TXT","a");
eleve liste[100];
printf("\t****************************************\n");
printf("\t*--------------------------------------*");
printf("\n\t*BIENVENUE DANS LE MENU DE INJAZ v.2010*\n");
printf("\t*--------------------------------------*\n");
printf("\t****************************************\n");
printf("\n--> tapez 1 pour Administrateur.");
printf("\n--> tapez 2 pour Utilisateur.");
do
{
printf("\n --> ENTRER UN CHOIX VALIDE: ");
scanf("%d",&cho);
}while((cho<=0)||(cho>2));
system("cls");
switch(cho)
{
case 1: printf("Entrez le mot de passe:\n");
scanf("%d",&mp);
system("cls");
if(mp==1234) administrateur(liste);
else printf("Le mot de passe est invalide\n");
break;

case 2: chercheru(liste);break;
default: printf("\n\n\n\n\n\n\n\t**** Votre choix est invalid ****\n\n\n\n");
}


getchar();
getchar();
}