FORUM Tom's Hardware » Programmation » C / C++ / Java » aide sur projet en langage c
 

aide sur projet en langage c

Il y a 161 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici

 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : aide sur projet en langage c
 
Plus d'informations

Bonjour,
j'ai deja posté de l'aide sur le forum mais depuis j'ai avancé,mais il me reste un dernier probleme: les moyennes des etudiants sont identiques, c'est la derniere qui est affiché plusieurs fois.J'ai donc mis dans la structure etudiant "note[]" mais ça ne marche toujours pas j'ai des erreurs, je pense que ça vient que je ne sache pas comment on calcule la moyenne de chaque etudiant. Merci d'avance pour votre aide.
Voici l'enoncé du projet:
On considere un fichier qui contient les notes d'un groupe d'etudiant.Pour chaque etudiant nous avons son nom,son prenom,et une liste correspondant à ses notes obtenus pour 6 matieres.
Pour chaque matiere on a 2 informations:le coefficient(à utiliser pour calculer la moyenne generale) et la note.
_Realiser une application qui permet de:
_Remplir le fichier
_Calculer la moyenne de chaque etudiant
_Afficher un tableau recapitulatif dans lequel on donne pour chaque etudiant sa moyenne generale et son rang dans le groupe.
 
Voici mon programme:
 
[cpp]
 //Fichiers en tete
 #include<stdio.h>
 #include<conio.h>
 #include<stdlib.h>
 
 
   typedef struct
   {
   char nom[20];
   char prenom[20];
   float note[10];
   }etudiant;
 
  //Declaration des fonctions
  float moyenne(etudiant t[],float coef[]);
  float max(float[],int);
  int ind_min(float[],int);
  void tri(float[],float[],int);
 
 
 
  //Fonction principale
  main()
    {
      etudiant W[50],a;
      int j,i,N,n,ind,X;
      float M,coef[50],m,w[50],V[50];
      FILE* st;
       
 
 
 
   //Saisie du nompbre d'etudiant
       printf("entrer le nombre d'etudiant\n" );
       scanf("%d",&N);
    if(N<=0)
       printf("erreur" );
 
   //Saisie des informations pour les N étudiants
    for (j=0;j<N;j++)
     {
       printf("Entrer le nom et le prenom de l'etudiant %d\n",j+1);
       scanf("%s %s",&W[j].nom,&W[j].prenom);
     }
   
     
   //Saisie des coef
   for(i=0;i<=5;i++)
    {
      printf("entrer le coef de la matiere %d\n",i+1);
      scanf("%f",&coef[i]);
    }
   if(coef<=0)
      printf("Erreur" );
 
 
   //Saisie des notes
 
   for(j=0;j<N;j++)
    {
      printf("Notes de l etudiant %d\n",j+1);
     for(i=0;i<=5;i++)
       {
         printf("entrer la note de la matiere %d:\n",i+1);
         scanf("%f",&W[i].note);
           //if((note[i]<0) ||(note[i]>20))
            // printf("Erreur" );
       }
    }
 
   //Appel de la fct moyenne
   
         
   for(i=0;i<N;i++)
       {
        M = moyenne(W,coef);
        V[i]=M;
        printf("la moyenne de l etudiant %d est %f\n",i+1,V[i]);
        }
 
       
   //Creer un fichier appelé etudiant.txt
        st = fopen ("Notes_etudiant.txt","w" );
   
   //enregistrement du fichier
        for(j=N,X=0;j>1;j--)
            X=X+j;    
        for(i=0;i<N;i++)
            fprintf(st,"%s %s %f  rang:%d\n",W[i].nom,W[i].prenom,V[i],X);
       
   //appel a la fonction max
       m=max(V,N);
 
   //appel a la fonction ind-min
       ind=ind_min(V,N);
       
   //appel a la fonction tri
        tri(V,w,N);
 
   //Affichage du tableau récapitulatif
                   
         for(i=0;i<N;i++)
           printf(" %s  %s  %f  rang:%d\n",W[i].nom,W[i].prenom,V[i],X);
     
    getch();
    }
 
    //Fin de la fonction principale
 
    //Def de la fonction moyenne
     float moyenne(etudiant t[],float coef[])
     {
        float R,Z,M;
        int i,j,N;
        R=0;
        Z=0;
                   
             for(i=0,j=0;j<N,i<=5;j++,i++)
              {  
                R=R+(t[i].note*coef[i]);
                Z=Z+coef[i];
              }
            M=R/Z;
            return (M);
           }
         
       
    //definition de la fonction max
      float max(float V[],int N)
      {
       
        float m;  
        int i;
        i=2;
        m= V[1];
        for(i=1;i<N;i++)
          {
             if(V[i]>m);
             m=V[i];
          }
        return(m);
      }
       
      //definition de la fonction ind_min
         
      int ind_min(float V[],int N)
         {
              float m;
              int i,ind;
              m=V[0];
              ind=0;
              for(i=1;i<N;i++)
                {
                  if(V[i]<m)
                  {
                    m=V[i];
                    ind=i;
                  }
                }
             return (ind);
        }
         
       //definition de l fonction tri
          void tri(float V[],float w[],int N)
          {
             int i,j,ind,m;
             m=max(V,N);
             for(j=0;j<N;j++)
                 {
                   ind=ind_min(V,N);
                   w[j]=V[ind];
                   V[ind]=m;
                 }
          }
 

Profil : Pointeur
Plus d'informations

tu peux editer tes messages : http://forum.presence-pc.com/themes_static/images_forum/1/edit.gif


---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u

Aller à :
  FORUM Tom's Hardware » Programmation » C / C++ / Java » aide sur projet en langage c
 

Annonces Google
Publicité
Les ressources relatives
Les téléchargements