OVH Cloud OVH Cloud

fonction printLn() affiche tab de pointeur / prog objet

2 réponses
Avatar
stephane
Bonjour,

Je dois faire la méthode printLn de la classe Thoraire.

voici ce que j'ai fait: (mes deux classes sont au-dessous)

void Thoraire::printLn() const
{
cout<<m_nomEnseignant<<endl ;

for(int i=0;i<m_nbCases;i++)

m_cases[i]->printLn() ;
}
Est-ce que cela vous semble juste ou y a-t-il des abérations?

(Je dois déclarer les chaînesde caractère de cette manière je ne peux pas
faire autrement, et je ne peux pas utiliser enum pour déclarer les
constantes non plus)


# ifndef CASE_H
# define CASE_H
#include <iostream>
#include <iomanip>
#include <cstring>
using namespace std ;

const int Clundi = 1 ;
const int Cmardi = 2 ;
const int Cmercredi = 3 ;
const int Cjeudi = 4 ;
const int Cvendredi = 5 ;
const int Csamedi = 6 ;
const int Cdimanche = 7 ;

class Tcase{

public :

Tcase (int numSemaine, int numJour, double heureDebut, double duree,char
matiere[], char classe[]= " ", char salle[]= " ") ;

int getNumSemaine() const ;
double getDuree() const ;
void printLn() const ;

private :

//attributs obligatoires
int m_numSemaine ; //1..53
int m_numJour ; //1..7
double m_heureDebut ; //13h30 = 13.5
double m_duree ; //2h45 = 2.75
char m_matiere[10] ; //p ex. prog7



//attributs optionnels
char m_classe[10] ; //p. ex. 3IG-EE
char m_salle[10] ; //p. ex A46A

}
#endif

# ifndef HORAIRE_H
# define HORAIRE_H
# include <iostream>
# include <cstring>

using namespace std ;
#include « case.h »

class TenseignantError{} ; // l'enseignant ne correspond pas

class Toverflow{} ; //dépassement de capacité
//Nombre maximum de cases horaires pour un enseignant

const int CcasesMax = 1000 ;
class Thoraire{

public :

//crée un horaire vide
Thoraire (const char nomEnseignant[]) ;

//ajout d'une case horaire

void ajouteCase (Tcase* caseHor) throw (Toverflow) ;

//calcule de la charge horaire totale

double chargeHoraire() const ;

//retourne un extrait de l'horaire
//ne contient que les cases de la semaines spécifiée
//retourne un horaire vide si la semaine n'existe pas
Thoraire horaireHebdomadaire (int numSem) const ;



/*

Crée un nouvel horaire résultat de la fusion de deux horaires
Lève une exception de la classe TenseignantError si les horaires
N'ont pas le même nom d'enseignant
Lève une exception de la classe Toverflow si la fusion entraîne
Un dépassement de capacité (> CcasesMax) */

Thoraire operator+ (const Thoraire & hor) const throw
(TenseignantError,Toverflow) ;
Void printLn() ;

Private :

Char m_nomEnseignant [30] ; // obligatoire
Tcase* m_cases[CcasesMax] ;
Int m_nbCases ;
} ;
#endif

2 réponses

Avatar
Alexandre
Je dois faire la méthode printLn de la classe Thoraire.

voici ce que j'ai fait: (mes deux classes sont au-dessous)

void Thoraire::printLn() const
{
cout<<m_nomEnseignant<<endl ;

for(int i=0;i<m_nbCases;i++)

m_cases[i]->printLn() ;
}
Est-ce que cela vous semble juste ou y a-t-il des abérations?


si tu es sur que m_cases[i] est valide, pas de souci. S'il peut arriver
qu'il soit nul, alors un petit test avant serait le bienvenu...

(Je dois déclarer les chaînesde caractère de cette manière je ne peux pas
faire autrement, et je ne peux pas utiliser enum pour déclarer les
constantes non plus)


ça sent le sujet de TD ça ;-)

Avatar
stephane
TD c'est Travail de Diplôme? en fait c'est pas pour un travail de diplôme
mais c'est pour préparer un exa...
Tu veux dire un test comme ça ?
if( m_nbCases = = 0)

cout<<"message" <<endl ;



"Alexandre" a écrit dans le message de news:
420c857b$0$30623$
Je dois faire la méthode printLn de la classe Thoraire.

voici ce que j'ai fait: (mes deux classes sont au-dessous)

void Thoraire::printLn() const
{
cout<<m_nomEnseignant<<endl ;

for(int i=0;i<m_nbCases;i++)

m_cases[i]->printLn() ;
}
Est-ce que cela vous semble juste ou y a-t-il des abérations?


si tu es sur que m_cases[i] est valide, pas de souci. S'il peut arriver
qu'il soit nul, alors un petit test avant serait le bienvenu...

(Je dois déclarer les chaînesde caractère de cette manière je ne peux
pas


faire autrement, et je ne peux pas utiliser enum pour déclarer les
constantes non plus)


ça sent le sujet de TD ça ;-)