begin process at 2012 05 28 11:25:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Base de données

 > 

Autre

 > 

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


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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

mardi 20 janvier 2009 à 21:00:05 | aide c : gestion de note et de nom avec en utilisant un tableau de structure

cheza33

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]);
 }
}

 

mercredi 21 janvier 2009 à 09:38:16 | Re : aide c : gestion de note et de nom avec en utilisant un tableau de structure

buno

Administrateur CodeS-SourceS
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...
jeudi 22 janvier 2009 à 20:22:24 | Re : aide c : gestion de note et de nom avec en utilisant un tableau de structure

cheza33

Merci mais je voulais surtout savoir si dans le programme principal, quand on rempli les champs du tableau note et nom si il y avait une instruction particulière permettant de stocké les valeurs contenues dans les tableau directement dans la sturcture ou si cela se fesait automatiquement.
vendredi 23 janvier 2009 à 09:31:00 | Re : aide c : gestion de note et de nom avec en utilisant un tableau de structure

buno

Administrateur CodeS-SourceS
Euh..j'ai pas bien compris la question.
Tu as le paragraphe 3.1.5 du lien qui parle des initialisations. Après, pour accéder à un membre, tu fais:
taStruct.tonMembre = taValeur;

Ai-je répondu à ta question?

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
samedi 24 janvier 2009 à 14:37:23 | Re : aide c : gestion de note et de nom avec en utilisant un tableau de structure

cheza33

le problème c que je n'ai pas une valeur unique car les valeurs sont contenues dans un tableau d'allocation dynamique et quand je tape taStruct.tonMembre = taValeur; il y a une erreur. Je suis vraiment bloqué car le programme fonctionne sans cette structure.

Merci du temps que vous m'accordez
lundi 26 janvier 2009 à 10:15:21 | Re : aide c : gestion de note et de nom avec en utilisant un tableau de structure

buno

Administrateur CodeS-SourceS
Montes-moi ton code avec les structures, je verrais où est le problème...

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
mardi 27 janvier 2009 à 21:35:02 | Re : aide c : gestion de note et de nom avec en utilisant un tableau de structure

cheza33

Bonjour,
J'ai finalement réussi à avancer merci beaucoup cependant j'ai un problème au niveau du calcul de la moyenne, en effet, le résultat est faux et je ne comprend pas mon erreur.
Merci beaucoup de vos réponsse.
Mon programme est le suivant :

#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>

#define pi 3.14


//structre note
typedef struct{
        double note;
        char nom[20];
        }
        fiche;


//protocole des fonction
long saisie_note (long  , fiche*);
void lecture_note(long , fiche*,long);
void enregistrement_note(long ,fiche*,long );
void moyenne_note(fiche*,long);
void afficher_note(long ,fiche*,long);


using namespace std;
//programme pincipale
int main()

{
 int choix;
 long nb_note,nb_reel;
    fiche *tablo_note;
    nb_reel=0;// nombre de note reellement entre
   
    printf("\nBienvenue dans le programme vous permettant de saisir les notes de vos eleves\n");
 printf("\n\nVeuiller rentrer une evaluation du nombre de notes que vous souhaitez saisir : \n");
 scanf("%ld",&nb_note);
 
 // creation du tableau de notes surevalué
 tablo_note=(fiche*)malloc(nb_note*sizeof(fiche));
   
 do
 {
  printf("\nVeuillez choisir l'une des options suivantes:\n");
  printf("Tapez 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("Tapez 0 pour quitter le programme\n");
  
        printf("\nVotre choix est : ");
        scanf("%d",&choix);
  
      switch (choix)
      {
          
          
          case 1 :
          nb_reel = saisie_note(nb_note,tablo_note);
          choix=9;
          break;
       
          case 2:
          lecture_note(nb_note,tablo_note,nb_reel);
          choix=9;
          break;
          
          case 3:
          enregistrement_note(nb_note,tablo_note,nb_reel);
          choix=9;
          break;
       
          case 4:
          moyenne_note(tablo_note,nb_reel);
          choix=9;
          break;
       
          case 5:
          afficher_note(nb_note,tablo_note,nb_reel);
          choix=9;
          break;
          
          default:
          printf("au revoir \n");
          choix=0;
          break;
      }

 
    }
    while ( choix<0 || choix>5  );
    free(tablo_note);
    system("PAUSE");
    return EXIT_SUCCESS;

}

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

long saisie_note (long  nb_note,fiche *Y)
{
 long nb_reel;
 int  i;
 double notes;
    char nom[20];
 i=0;
 printf("\nVeuillez rentrer les notes de vos eleve : une seule note par eleve\n");
 printf("Pour sortir, veuillez donner une note inferieure a 0. \n\n");
 
 //initialisation
 notes=0;
 nb_reel=0;
 
 while ( (notes>=0 && notes<=20) && i<nb_note-1)
  {
   printf("taper le nom : ",i+1);
            scanf("%s",&Y[i].nom);
            printf("taper la note : ",i+1);
            scanf("%lf",&Y[i].note);
      notes =Y[i].note;
   
   i++;
  }
 nb_reel=(i-1);
 printf ("\nle nombre de note que vous avez entree est de : %ld \n",nb_reel);
 return(nb_reel);
}

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

void lecture_note(long  nb_note,fiche *Y,long nb_reel)
{
 int  i;
 double notes ;
 char nom[20];
 FILE *file_pt ;
 file_pt=fopen("notes.txt","r");
 notes =20;

    for (i=0;i<nb_reel;i++)
  {
   
   fscanf(file_pt,"%s %lf\n",&Y[i].nom,&Y[i].note);
  
  }

 fclose(file_pt);

}

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

void enregistrement_note(long  nb_note,fiche *Y,long nb_reel)
{
 int i;
 double note;
 FILE *file_pt ;
 file_pt=fopen("notes.txt","w+");

 for (i=0;i<nb_reel;i++)
  {
   fprintf(file_pt,"%s\t %.2lf\n",Y[i].nom,Y[i].note);
  }
 fclose(file_pt);
 printf("L'enregistrement a bien ete effectue dans le fichier texte notes.txt\n");
}

//=====================================================================
// calculer la moyenne

void moyenne_note(fiche *Y,long nb_reel)
{
 int  i;
 double a,somme,moyenne,note;
 i=0;
 note=0;
 for (i=0;i<nb_reel;i++)
  {
   note=Y[i].note;
   somme=somme + note;

  }
 moyenne=somme/(nb_reel);
 printf("\nLa moyenne de la classe est de : %lf \n",moyenne);
 
}

//=====================================================================
// afficher les notes

void afficher_note(long  N,fiche *Y,long nb_reel)
{
 int  i;
 for (i=0;i<nb_reel;i++)
  {
   printf("%s\t %.2lf\n",Y[i].nom,Y[i].note);
   
  }
  }


 



Cette discussion est classée dans : long, copie, nb, notes, note


Répondre à ce message

Sujets en rapport avec ce message

Copie de fichiers de nom long avec Visual C++ sous Windows98 [ par ABT ] Salut, Je développe une application avec Visual C++, l'une de ses est de copier des fichiers à partir d'un répertoire vers un autre. J'utilise pour ce Calcul de moyenne de note en C [ par tinkiete78 ] BOnjour, j'ai réussi a créer un petit programme permettant de calculer des moyennes de notes en rentrant N élève, et lors de la saisie des notes des N Bloqué avec un programme C [ par Masternono ] salut, voila, je bloque sur un algo donc si quelqu'un pourrait m'aider ça serait sympa. Ecrire un programme en C permettant de saisir les notes (entie besoin d'aide sur un programme de calcul de moyenne [ par Eaglevmt4 ] bonjour a tous je débute en programmation, je suis en première année de bts iris et j'ai un petit programme a rendre mais j'avoue avoir pas mal de dif Problème avec memset [ par ndubien ] Bonjour, je dispose d'une fonction qui alloue de la mémoire à un tableau puis le remplie de 0 grâce à memset(), mais le problème est que se remplissag Gestion des long int [ par kiira31 ] Bonjour, Je code en ce moment la fonction printf. Je suis en train de gerer l affichage d'un nombre mais j'ai un souci pour gerer les long. Voici mo projet d'un debutant (classement) [ par emilienheude ] bonjour à tous, je suis debutant dans la programmation en c et mes enseignents on eu la bonne idée de nous faire travailler sur un projet de sondage. sizeof bizarre [ par khayyam ] bonjour, j'ai la structure suivante : typedef struct { unsigned char sign1, sign2; unsigned long size_totale, reserve,offset; un calcule de moyenne d'un etudiant [ par smailhou ] Bonjourvoila je suis debutant en programmation et j ai un tp a rendre alors j aimerais bien que vous m aidiez merci voila l exercise. On désire créer flux et manipulateurs [ par leprov ] salut a tous.j'ai un probleme que je n'arrive pas a m'expliquer, j'espere qu'on pourra m'aider. j'ai un fichier dont je dois extraire des chiffres qui


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales