john8585 | Bonjour, je suis étudiant à la rochelle en DUT info et j'avais a presenter pour avant les vacances un programme qui en fonction des resultats de matchs de football que l'on rentrait, pouvait nous donner le classement des buteuses et le classement general.
Seulement pour le classement general, la methode est la suivante j'ai une multimpap de la forme multimap<int, pair<string,Equipe> > ou l'entier est le nombre de points de l'equipe, le string le nom de l'equipe et Equipe une instance d'equipe.
Actuellement le programme fait une itération sur la map et affiche une equipe dans le classement lorsque le nombre de points de celle ci(l'entier) est égal a un nombre que je décremente au fur et a mesure.
Seulement avec cette méthode si 2 équipe ont le meme nombre de points, aucune distinction n'est faite hors dans la réalité le classement regarde des attributs des equipes (la difference de but des equipes) et les classes en fonction de cela , je cheche donc comment pourrais je introduire cette verification dans mon iteration Merci.
PS : je ne sais pas si c'est tres clair j'ai encore du mal a expliquer aux autres ce que je programme donc si vous avez des questions n'hésitez pas.
voila ce qui se passe actuellement : je orecise que terminal est une classe qui nous a ete fourni par les profs de l'IUT, en gros elle remplace cout et cin
Code :
- void ClassementEquipes::afficherClassementEquipesDOM()
- {
- std::ifstream feClEquipes(Configuration().ficClassementEquipesA().c_str());
- chargerMultimap(feClEquipes);
- std::multimap<int,std::pair<std::string,Equipe> >::const_iterator itDOM;
- int pos=1;
- terminal.afficheMessage("\n \t \t \t \t \t \t Classement a Domicile \n \n " );
- terminal.afficheMessage("\t \t \t POS - Equipe \t \tPts \t \t MG \t \tMN \t \tMP \t \tBM \t \tBP \t \tDif \n", false);
- terminal.afficheMessage("\t \t \t \
- -----------------------------------------------------------------------------------------------------------------------------" );
- for( int b=88 ; b>=0 ; b=b-1)
- {
- for(itDOM=MultimapClassEquipes.begin();itDOM!=MultimapClassEquipes.end();itDOM++)
- {
- if((*itDOM).second.second.nbPointsEquipeDOMA()==b)
- {
- terminal.afficheMessage("\t \t \t \t ",false);
- terminal.afficheInt(pos,false);
- terminal.afficheMessage(" - ", false);
- terminal.afficheMessage((*itDOM).second.first, false);
- terminal.afficheMessage("\t \t", false);
- terminal.afficheInt((*itDOM).second.second.nbPointsEquipeDOMA(),false);
- terminal.afficheMessage(" \t \t ",false);
- terminal.afficheInt((*itDOM).second.second.nbMatchsGagnesDOMA(),false);
- terminal.afficheMessage(" \t \t",false);
- terminal.afficheInt((*itDOM).second.second.nbMatchsNulsDOMA(),false);
- terminal.afficheMessage(" \t \t",false);
- terminal.afficheInt((*itDOM).second.second.nbMatchsPerdusDOMA(),false);
- terminal.afficheMessage(" \t \t",false);
- terminal.afficheInt((*itDOM).second.second.nbbutsMisDOMA(),false);
- terminal.afficheMessage(" \t \t",false);
- terminal.afficheInt((*itDOM).second.second.nbbutsPrisDOMA(),false);
- terminal.afficheMessage(" \t \t",false);
- terminal.afficheInt((*itDOM).second.second.difButsDOMA(),false);
- terminal.afficheMessage(" \n" );
- pos++;
- }
- }
- }
- }
|
voila ce que je voudrais mais a mon avis ce que je suis en trainde faire est pas la bonne methode
Code :
- void ClassementEquipes::afficherClassementEquipes()
- {
- std::ifstream feClEquipes(Configuration().ficClassementEquipesA().c_str());
- chargerMultimap(feClEquipes);
- std::multimap<int,std::pair<std::string,Equipe> >::const_iterator it;
- std::multimap<int,std::pair<std::string,Equipe> >::const_iterator it2;
- int pos=1;
- terminal.afficheMessage("\n \t \t \t \t \t \t Classement a Domicile \n \n " );
- terminal.afficheMessage("\t \t \t POS - Equipe \t \tPts \t \t MG \t \tMN \t \tMP \t \tBM \t \tBP \t \tDif \n", false);
- terminal.afficheMessage("\t \t \t \
- -----------------------------------------------------------------------------------------------------------------------------" );
- for( int b=88 ; b>=0 ; b=b-1)
- {
- for(it=MultimapClassEquipes.begin();it!=MultimapClassEquipes.end();it++)
- {
- if((*it).second.second.nbPointsEquipeA()==b)
- {
- for(it2=MultimapClassEquipes.begin();it2!=MultimapClassEquipes.end();it2++)
- {
- if((*it2).second.second.nbPointsEquipeA()==b && ((*it2).second.first)!=((*it).second.first) )
- {
- //il y a des egalites
- //departageDifButs();
- }
- else
- {
- terminal.afficheMessage("\t \t \t \t ",false);
- terminal.afficheInt(pos,false);
- terminal.afficheMessage(" - ", false);
- terminal.afficheMessage((*it).second.first, false);
- terminal.afficheMessage("\t \t", false);
- terminal.afficheInt((*it).second.second.nbPointsEquipeA(),false);
- terminal.afficheMessage(" \t \t ",false);
- terminal.afficheInt((*it).second.second.nbMatchsGagnesA(),false);
- terminal.afficheMessage(" \t \t",false);
- terminal.afficheInt((*it).second.second.nbMatchsNulsA(),false);
- terminal.afficheMessage(" \t \t",false);
- terminal.afficheInt((*it).second.second.nbMatchsPerdusA(),false);
- terminal.afficheMessage(" \t \t",false);
- terminal.afficheInt((*it).second.second.nbbutsMisA(),false);
- terminal.afficheMessage(" \t \t",false);
- terminal.afficheInt((*it).second.second.nbbutsPrisA(),false);
- terminal.afficheMessage(" \t \t",false);
- terminal.afficheInt((*it).second.second.difButsA(),false);
- terminal.afficheMessage(" \n" );
- pos++;}
- }
- }
- else
- {
- }
- }
- }
- }
|
Message édité par john8585 le 27-04-2004 à 17:40:11
|