Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Problème de tabeau dans un code orienté objet [ Windows / System ] (Guiiil)

dimanche 2 novembre 2008 à 22:21:38 | Problème de tabeau dans un code orienté objet

Guiiil

Bonsoir, je débute actuellement en C++ orienté objet et je suis bloqué avec ce programme qui doit réaliser un tableau d'élèves, prendre leur moyenne et faire la moyenne de tous cela!

J'ai déjà réalisé le programme suivant :


#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include <string>
using namespace std;


class Eleve
{
private :
    string nom;
    float note;
public :
    void init(string pnom, float pnote);  //initialisation
    string getNom();                    //retourne le nom de l'élève
    float getNote();                        //retourne la note de l'élève
};

class TabEleves
{
    private :
        Eleve ele[36];                        //les élèves mémorisés
        int nb;                                //nombre d'élèves mémorisés
    public :
        void init();                        //initialisation
        int getNb();                        //retourne le nombre d'élèves mémorisés
        void ajouter(Eleve ele);            //ajoute un élève dans le tableau
        Eleve valeur(int i);                //retourne l'élève mémorisé à l'indice i
        void supprimer(int i);                //supprime l'élève mémorisé à l'indice i fin classe
};

void saisirEleve(Eleve & eleve); // prototypage de la procédure
void resultats(Eleve ele[36]);

void Eleve::init(string pnom, float pnote)
{
    nom = pnom;
    note = pnote;
}

string Eleve::getNom()
{
    return nom;
}

float Eleve::getNote()
{
    return note;
}

void TabEleves::init()
{    
    nb = 0;
    int i;
    Eleve elacon;
    elacon.init("",0);    
    for (i = 0; i < 35; i++)
    {
        ele[i] = elacon;
    }
}

int TabEleves::getNb()
{
    return nb;
}

void TabEleves::ajouter(Eleve eleve)
{
     ele[nb] = eleve;
     nb++;
}

Eleve TabEleves::valeur(int i)
{
    return ele[i];
}

void TabEleves::supprimer(int i)
{
    //ele[i] = 0;
}

void saisirEleve(Eleve & eleve) // Implementation de la procedure.
{
    string pnom;
    float pnote;
    cout << "veuillez saisir le nom de l'élève" << endl;
     cin >> pnom;
    cout << endl << "veuillez saisir la note de l'élève" << endl;
    cin >> pnote;
    cout << endl;
    eleve.init(pnom, pnote);
}

void resultats(TabEleves tabele)
{
    float notelaplusbasse = 0;
    float notelaplushaute = 0;
    string nomdufaible;
    string nomdufort;
    float moyenne = 0;
    int j = 0;
    int i;


    for (i=0; i < 35; i++)
    {
        Eleve tabEle1 = tabele.valeur(i);
        float note1 = tabEle1.getNote();


        if (note1 < notelaplusbasse)
        {

            notelaplusbasse = note1;
            nomdufaible = tabEle1.getNom();
        }
        if (note1 > notelaplushaute )
        {
            notelaplushaute = note1;
            nomdufort = tabEle1.getNom();
        }
        moyenne = note1 + moyenne;
        j++;
    }
    moyenne = moyenne / j;
    cout << "Elève le plus nul    :" << notelaplusbasse << " : " << nomdufaible << endl;
    cout << "Elève le plus fort   :" << notelaplushaute << " : " << nomdufort << endl;
    cout << "Moyenne de la classe :" << moyenne << endl;
}


void main (void)
{
    Eleve eleve;
    TabEleves tabele;
    saisirEleve(eleve);
    tabele.ajouter(eleve);
    resultats(tabele);
    system("pause");
}

Le problème, après recherche, se situe au niveau de cette partie du code (je pense) :


void TabEleves::ajouter(Eleve eleve)
{
     ele[nb] = eleve;
     nb++;
}

J'ai tenté quelques modifications, mais rien n'y fait, la boucle ne veut pas se mettre en route...

Pourrais-je, s'il vous plait, avoir votre avis sur la question?



lundi 3 novembre 2008 à 08:27:04 | Re : Problème de tabeau dans un code orienté objet

Lucky92

Tu dois initialiser nb dans le constructeur.

mardi 4 novembre 2008 à 23:23:32 | Re : Problème de tabeau dans un code orienté objet

Guiiil

C'est bon, ça a fini par marché, merci beaucoup pour le conseil ^^.



Cette discussion est classé dans : int, void, float, eleve, tabeleves


Répondre à ce message

Sujets en rapport avec ce message

équation et tableaux [ par cabarrus ] je ne trouve pas l'erreur dans mon programme?#include#includeint deltanul(int);float deltainf(float);float deltasup(float);void main(void){float a,b,c le mode graphique sur dos [ par alen ] alb#include#include#include#include#includeint xgclot,xdclot,yh Errreur [ par RM50Man ] Mon code ne marche pas: Le compilateur devcpp me met build error 1 #include /* contient déjà et */ #include #include #include void reset Pavé tournant [ par nisaloncaje ] Bonjour, je désirais pour commencer en OpenGL sous devc++ faire un programme simulant un pavé tournant autour de l'axe y : voici mon code source :#inc map [ par taieb84 ] salut j'ai une classe caisse class caisse{            float val;        int nbr;            public:            bool exist(float);    void ajouter(floa conversion float to double [ par chalmia2s ] Bonjour,J'ai un probleme de conversion float, double, voila la partie du programme concerné: float *rd, float*rq;  double Simulateur & conduite automatique d'1 voiture [ par sonia393 ] Bonjour, voila, je suis en train de créer un petit simulateur de voiture avec conduite automatique : j'ai un état 1 (position, cap, vitesse, accélérat Algorithme RSA utilisation des floats [ par douss4 ] Bonsoir,J'ai essayé d'écrire un algorithme de cryptage (RSA). Le code à bien marché avec des int. J'ai changé les int par des float. Au moment du décr opération flottante incorrecte ? [ par steph12358 ] Bonjour tout le mondeDésolé pour la question super basique mai j'ai un soucisCe code fonctionnait dans mon projet jusqu'à ce que j'ajoute un contrôle


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version


LG KP501

Entre 9€ et 159€


Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,686 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.