Aide c : gestion de note et de nom avec en utilisant un tableau de structure

cheza33 Messages postés 4 Date d'inscription mardi 20 janvier 2009 Statut Membre Dernière intervention 27 janvier 2009 - 20 janv. 2009 à 21:00
cheza33 Messages postés 4 Date d'inscription mardi 20 janvier 2009 Statut Membre Dernière intervention 27 janvier 2009 - 27 janv. 2009 à 21:35
Bonjour,

Voilàs j'ai réalisé un programme permettant de gerer des notes : saisi des notes, enregistrement, affichage, calcul de moyenne et lecture des notes. A présent, je souhaite pouvoir par le biai d'une structure contenant le nom et la note de l'étudiant, réaliser le même programme. J'ai consulter le site mais je n'ai pas trouver se que je recherché. De plus, étant débutante en language c, je ne connait pas toutes les fonctions et leurs utilisation. Je me suis renseigné sur les structures mais je n'arrive pas à comprendre comment l'intégrer dans ce programme.
Merci d'avance

Mon programme est :
#include <stdlib.h>
#include <stdio.h>
#include <math.h>




long saisie_note (long, double*);
void enregistrement_note(long,double *,long);
void afficher_note (long, double*, long);
void moyenne_note(long,double *,long);
void lecture_note(long,double*,long);


int main () {


// Declaration des variables
int choix;
long nb_notes;
double *note;
long nb_copie;




printf("\nVeuiller rentrer le nombre de notes que vous souhaitez saisir : ");
scanf("%d",&nb_notes);
 
// Declaration du tableau
note = (double*) malloc (nb_notes*sizeof(double));




printf("\nVeuillez choisir l'une des options suivantes:\n");


 while (choix<1 || choix>5) {


  printf("\nTapez 1 pour saisir les notes\n");
 printf("Tapez 2 pour lire les notes\n");
 printf("Tapez 3 pour enregistrer les notes\n");
 printf("Tapez 4 pour calculer la moyenne\n");
 printf("Tapez 5 pour afficher les notes\n");
 
 
 printf("\nVotre choix est : ");
 scanf("%ld",&choix);
 
 
 switch (choix) {
 
  case 1 :
  nb_copie = saisie_note (nb_notes, note);
  break;
 
          case 2 :
  lecture_note(nb_notes,note,nb_copie);
  break;
 
  case 3:
  enregistrement_note (nb_notes,note,nb_copie);
  break;
 
  case 4:
  moyenne_note (nb_notes,note,nb_copie);
  break;      
 
  case 5:
  afficher_note (nb_notes,note,nb_copie);
  break;       
 
 }
 choix=9;
 }
 }




//===================================================================== 
// Fonction qui permet de saisir les notes


long saisie_note (long nb_notes, double *note)
 {


 // Déclaration des variables
 int i;
 long nb_copie;
 double valeurs;
 i=0;
 valeurs=0;
 nb_copie=0;


 printf ("\nPour sortir, veuillez donner une valeur inferieure a  0. \n\n");
 
 while ((valeurs >=0 && valeurs<= 20) && i<nb_notes-1)
 {


  printf ("Veuillez rentrer une note : ");
  scanf ("%lf",&note[i]);
  valeurs = note[i];
  i++;
 }


 nb_copie=(i-1);
 printf ("le nombre de note que vous avez entree est de : %ld \n",nb_copie);
 return(nb_copie);
}




//===================================================================== 
// lecture des notes


void lecture_note(long nb_notes,double *note,long nb_copie)
{
 int i; 
 double tablo_note,nsaisie;




 FILE *file_pt;
 file_pt=fopen("notes.txt","w+");


 nsaisie=10;i=0;


 while ((nsaisie>=0 && nsaisie<= 20) && i<(nb_copie-1))
 {
  fscanf(file_pt,"%lf",&note[i]);nsaisie=note[i];
  i++;
 }
}




//=====================================================================
//enregistrer les notes


void enregistrement_note(long nb_notes,double *note,long nb_copie)
{
 long i;
 FILE *file_pt;
 file_pt=fopen("notes.txt","w+");


 for (i=0;i<nb_copie;i++)
  {
  fprintf(file_pt,"%lf\n",note[i]);
  }


 fclose(file_pt);
}




//=====================================================================
// calculer la moyenne
void moyenne_note(long nb_notes,double *note,long nb_copie)
{
 double moyenne,somme,S;
 int i;
 
 printf("nb_copie : %ld\n",nb_copie);
 
 for (i=0;i<nb_copie;i++)
 {
  somme=somme+note[i];
 } 
  
  moyenne=somme/(nb_copie);
  printf("La moyenne est de : %lf\n",moyenne);


}


//=====================================================================
// afficher les notes
void afficher_note(long nb_notes, double *note, long nb_copie)
{
 int i;
 
 for (i=0;i<nb_copie;i++)
 {
  printf("%lf\n",note[i]);
 }
}


 

6 réponses

BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
21 janv. 2009 à 09:38
Salut,
Voici une page qui t'explique comment fonctionnent les structures.
En espérant que cela t'aide

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
Rejoignez-nous