• 0

الكود لا يُظهر النتيجة المطلوبة [لغة C] ما الحل؟

السلام  عليكم

 لا  أدري أين  هو الخطأ  هنا رغم أن كل شيء كما هو  إلا أنه لا تظهر لي النتيجة صحيحة ما العمل؟ و أين الخطأ؟  أرجو أن تساعدوني، جزاكم  الله  خيرا و شكرا 

#include<stdlib.h>
#include<stdio.h>

struct etudiants{
    int num;
    char nom[100];
    char prenom[100];
    char filier[50];
};

struct etudiants etud;
/*---------fonction de chercher----*/
int rech(int numrech)
{
    FILE*F;
    F=fopen("etudiants.txt","r");
    do{
        fscanf(F,"%d ; %s; %s; %s",&etud.num,etud.nom,etud.prenom,etud.filier);
        if (etud.num==numrech)
        {
            fclose(F);
            return 1;
        }
    }
    while(!feof(F));
    fclose(F);
    return -1;
}
/*----ajoute---*/
void ajouteretudiant()
{
    int num;
    FILE*F;
    F=fopen("etudiants.txt","a");
    printf("\n entre le numero du nouveau etudiant:");
    scanf("%d",&num);
    fflush(stdin);
    if (rech(num)==-1)
    {
        etud.num=num;
        printf("\n entre le nom :");
        fgets(etud.nom,255,stdin);
        fflush(stdin);
        printf("\n entre le prenom :");
        fgets(etud.prenom,255,stdin);
        fflush(stdin);
        printf("\n entre la filier :");
        fgets(etud.filier,255,stdin);
        fflush(stdin);
        fprintf(F,"%d ; %s ; %s %s",etud.num,etud.nom,etud.prenom,etud.filier);
        fflush(stdin);
        
    }
    else
    {
        printf("\n cet etudiant exsiste deja");
        
    }
    fclose(F);
}
/*---------recherche et affichage------*/
void recherche()
{
    int numR;
    printf("entrer le numero d'etudiant a rechercher ");
    scanf("%d",&numR);
    FILE*F;
    F=fopen("etudiants.txt","r");
    do{
        fscanf(F,"%d ; %s ; %S ; %s",&etud.num,etud.nom,etud.prenom,etud.filier);
        if(numR==etud.num){
            printf("-----information dur le stagiaire:-------\n\n");
            printf("numero : %d\n",etud.num);
                printf("nom : %s\n",etud.nom);
                printf("prenom : %s\n",etud.prenom);
                printf("filier : %s\n",etud.filier);
        }
    }
    while(!feof(F));
    fclose(F);
    
    
}
/*------- suppression---*/
void supprimeretudiant()
{
    char rep;
    int numrech;
    printf("entrez le numero d'etudiant a supprimer :");
    scanf("%d",&numrech);
    fflush(stdin);
    if(rech(numrech)==1)
    {
        printf("\n volez vous vraimment supprimer o/n ?");
        scanf("%c",&rep);
        fflush(stdin);
        if( rep=='o'|| rep=='O')
        {
            FILE*Fich,*F;
            F=fopen("etudiants.txt","r");
            Fich=fopen("tempetudiant.txt","a");
            do{
                fscanf(F," %d ; %s ; %s ; %s",&etud.num,etud.nom,etud.prenom,etud.filier);
                if(numrech !=etud.num)
                {
                    fprintf(Fich,"%d ; %s ; %s; %s\n",etud.num,etud.nom,etud.prenom,etud.filier);
                    
                }}
                while(!feof(F));
                fclose(Fich);
                fclose(F);
                remove("etudiants.txt");
                rename("tempetudiant.txt","etudiants.txt");
                printf("suppression effectuez ave succees");
            }
            
        }
        else{
            printf("\nce numero d'etudiant n'exsite pas");
        }
    }
    /*--------procedure modifier etudiants-------*/
    void modifieretudiant()
    {
        FILE*F,*Fich; 
        int num,i;
        char rep;
        printf("\n entre le numero de l'etudiant a modifier :");
        scanf("%d",&num);
        fflush(stdin);
        if(rech(num)==1)
        {
            printf("\n voulez vous vraimment modifier o/n ?");
            scanf("%c",&rep);
            fflush(stdin);
            if(rep=='o'||rep=='O')
            {
                F=fopen("etudiants.txt","r");
                Fich=fopen("tempetudiant.txt","a");
                do{
                    fscanf(F,"%d ; %s ; %s ; %s",&etud.num,etud.nom,etud.prenom,etud.filier);
                    if(num==etud.num)
                    {
                        etud.num=num;
                        printf("\n entre le nouveau nom :");
                        fgets(etud.nom, 255, stdin);
                        printf("\n entre le nouveau prenom :");
                        fgets(etud.prenom,255, stdin);
                        printf("entre le nouvelle filier :");
                        fgets(etud.filier,255,stdin);
                        printf("\n la modification a reussi");
                    
                    }
                    fprintf(F,"%d ; %s ; %s ; %s\n\n",etud.num,etud.nom,etud.prenom,etud.filier);
                    
                }
                while(!feof(F));
                fclose(F);
                fclose(Fich);
                remove("etudiants.txt");
                rename("tempetudiant.txt" , "etudiants.txt");    
            }
            else{
                printf("\n le modification a et annule \n");    
            }        
        }
        /*else {
            printf("\n ce numero d'etudiant n'existe pas \n");*/
        }
        
        /*-------procedure afficher--------*/
        void affichertt()
        {
            FILE*F;
            F=fopen("etudiants.txt","r");
            printf("la liste des etudiants est :\n\n");
            do{
            fscanf(F,"%d ; %s ; %s ; %s",&etud.num,etud.nom,etud.prenom,etud.filier);
            fflush(stdin);
            printf("%d;%s;%s;%s\n\n",etud.num,etud.nom,etud.prenom,etud.filier);
            }
            while(!feof(F));
            fclose(F);
                    }
                    /*-------menu principale----*/
                     main(){
                        system("COLOR F4");
                        int choix; char rep;
                        do{
                            system("cls");
                            printf("**********MENU*******\n\n\n");
                            printf("         1-ajouter un etidiant \n");
                            printf("         2-rechercher unetudiant\n");
                            printf("         3-supprimer un etudiant\n");
                            printf("         4-modifier un etudiant\n");
                            printf("         affiche tous le etudiants\n");
                            printf("         6-quitter\n\n");
                            do{
                                printf("\n -etre votre choix :");
                                scanf("%d",&choix);
                            }
                            while(choix<1 || choix>6);
                            switch(choix)
                            {
                                case 1:ajouteretudiant();
                                break;
                                case 2:recherche();
                                break;
                                case 3:supprimeretudiant();
                                break;
                                case 4:modifieretudiant();
                                break;
                                case 5:affichertt();
                                break;
                                case 6:break;
                                
                            }
                            printf("\n voulez-vous continuez o/n :");
                            scanf("%s",&rep);
                            fflush(stdin);
                        }
                        while(rep=='o'||rep=='O');}

النتيجة  تظهر لي هكذا  و يقف البرنامج  رغم  أني أضغط 

Screenshot_1.png

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 2

صديقي نصيحة عندما ترغب بطرح مشكلة برمجية إبدأ بذكر اللغة البرمجية المستخدمة في نصّ العنوان كي يدخل الأشخاص ممن يملكون خبرة بموضوع سؤالك، ثم في نصّ السؤال بيّن ما هي وظيفة الكود كيّ تُسهّل علينا قراءته، واذكر أيضًا السلوك الذي تتوقعه من البرنامج وأخيرًا السلوك الفعلي.. بهذا تحصل على جواب مثالي

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 1

هل أنت متأكد من المشكلة؟ لأن البرنامج يعمل لدي بدون مشاكل.

mo.png

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

 هذه لغة c أريد أن تظهر لي القائمة كلها ، بينما هي الآن تقف في النصف  عندما أكتب  رقم التلميذ،  و يقف البرنامج 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

سبحاان الله  ! ،  أنا  أعمل  في dev c++  و لا  يظهر كما ينبغي  

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن