Accueil > Forum > > > > comment gerer ce projet pour que deux etudiants n'aient pas le meme code
comment gerer ce projet pour que deux etudiants n'aient pas le meme code
mardi 12 mai 2009 à 05:33:09 |
comment gerer ce projet pour que deux etudiants n'aient pas le meme code

desco182
|
Salut a tous j'aimerais bien que quelqu'un m'aide . #include<iostream.h> #include<conio.h> #include<string.h> #ifndef ETUDIANT_H #define ETUDIANT_H class etudiant { int code; char nom[10]; char prenom[10]; public: etudiant (int c , char*n ,char*p); //constructeur ~etudiant(); void getetudiant(); void comparer(); }; #endif part 2 #include"gestetud.h" etudiant::etudiant(int c,char*n,char*p) { // implementation code=c; strcpy(nom,n); strcpy(prenom,p); } etudiant::~etudiant() { cout<<"La destruction de l'objet\n "; } void etudiant::getetudiant() { cout<<" le code :"<<code; cout<<"le nom:"<<nom; cout<<" le prenom:"<<prenom; } void etudiant::comparer() {if( code==code ) cout<<"le code existe deja"; } part 3 #include"gestetud.h" void main (void) { clrscr(); int co,newc ; char no[20]; char pr[20]; for(int i=0;i<=2;i++) { cout<<"entrez le code:"; cin>>co; cout<<"entrez le nom:"; cin>>no; cout<<"entrez le prenom:"; cin>>pr; etudiant obj (newc,no,pr); obj.getetudiant(); obj.comparer(); } getch(); }
|
|
mardi 12 mai 2009 à 10:28:59 |
Re : comment gerer ce projet pour que deux etudiants n'aient pas le meme code

LucyUnDemi
|
Réponse acceptée !
Bonjour desco182, Pour faire que deux étudiants n'aient pas le même code, il est possible de créer un fichier qui est rechargé à chaque ouverture du programme, il a l'avantage de ne pas être détruit à chaque sortie du programme. ce fichier écrira une ligne par étudiant, avec son code, son nom et son prénom. A l'appel de la fonction ce fichier lit et la derniere ligne et ajoute a la suite, les etudiants crées durant cette session. Une methode est disponible sur MSDN pour écrir et lire dans un fichier. Je te rassure elle n'est pas compliquer à utiliser et à adapter.
Tu peux aussi créer un numéro aléatoir mais il risque de générer les mêmes codes au bout d'un moment.
En espérant t'avoir aidé.
|
|
mardi 12 mai 2009 à 11:28:09 |
Re : comment gerer ce projet pour que deux etudiants n'aient pas le meme code

CptPingu
|
Réponse acceptée !
@LucyUnDemi: Solution sale, et peu efficace. L'utilisation d'un design pattern FlyWeight est ici mieux adapté. Je t'invite à faire quelques recherches dessus.
Plusieurs remarques: #include<iostream.h> #include<conio.h> #include<string.h> Pourquoi ? Je ne peux que te conseiller d'utiliser les headers standards, ceux-ci étant dépréciés. #include<iostream> #include<conio> // En revanche, je suis sous linux, donc cette bibliothèque, propre à Windows, je ne sais pas si elle existe tel quel. #include<string>
Pourquoi utiliser char nom[10], au lieu du type chaîne de caractère fournit par la STL en C++ ?
Donc char nom[10] => std::string nom;
void getetudiant() => Maladroit comme notation. Mélange anglais et français, et surtout get veut dire récupérer. Toi, tu affiches, donc il serait plus judicieux de nommer cette méthode: void displayStudent();
Je te propose une solution, simple qui consiste à utiliser un set statique à la classe Etudiant. Ce set contient tout les codes déjà entrés. Pour ajouter un code la liste, il faut appeler la méthode addCurrentStudentToSet() et pour vider cette liste, il faut appeler la méthode clearSet(), la méthode compare(), va vérifier si le code de l'étudiant est présent ou non dans cette liste.
Voici ma version de cette idée:
Student.hh
ifndef STUDENT_HH_ # define STUDENT_HH_
# include <iostream> # include <set>
class Student { public: Student(int code, const std::string& firstName, const std::string& lastName); ~Student(); void displayStudent() const; void compare() const; void addCurrentStudentToSet();
static void clearSet(); private: int _code; std::string _firstName; std::string _lastName; static std::set<int> _set; };
#endif /* !STUDENT_HH_ */
Student.cc
#include "student.hh" #include <iostream>
std::set<int> Student::_set;
Student::Student(int code, const std::string& firstName, const std::string& lastName) : _code(code), _firstName(firstName), _lastName(lastName) { }
Student::~Student() { std::cout << "La destruction de l'objet" << std::endl; }
void Student::displayStudent() const { std::cout << "Le code : " << _code << std::endl << "Le nom : " << _firstName << std::endl << "Le prenom : " << _lastName << std::endl; }
void Student::compare() const { if (_set.find(_code) != _set.end()) std::cout << "Le code existe deja" << std::endl; else std::cout << "Le code n'existait pas avant" << std::endl; }
void Student::addCurrentStudentToSet() { _set.insert(_code); }
void Student::clearSet() { _set.clear(); }
main.cc
#include "student.hh" #include <iostream> //#include <conio.h>
int main() { //clrscr(); int code; std::string firstname; std::string lastname;
for(int i = 0; i <= 2; i++) { std::cout << "Entrez le code: "; std::cin>>code; std::cout << "Entrez le nom: "; std::cin >> firstname; std::cout << "Entrez le prenom: "; std::cin >> lastname; std::cout << std::endl;
Student obj (code, firstname, lastname); obj.displayStudent(); obj.compare(); obj.addCurrentStudentToSet(); }
Student::clearSet(); std::cout << "Entrez le code: "; std::cin>>code; std::cout << "Entrez le nom: "; std::cin >> firstname; std::cout << "Entrez le prenom: "; std::cin >> lastname; std::cout << std::endl;
Student obj (code, firstname, lastname); obj.displayStudent(); obj.compare(); obj.addCurrentStudentToSet();
//getch(); return 0; }
En sortie, cela donnera ceci:
Entrez le code: 45 Entrez le nom: toto Entrez le prenom: tutu
Le code : 45 Le nom : toto Le prenom : tutu Le code n'existait pas avant La destruction de l'objet Entrez le code: 45 Entrez le nom: titi Entrez le prenom: toto
Le code : 45 Le nom : titi Le prenom : toto Le code existe deja La destruction de l'objet Entrez le code: 48 Entrez le nom: popo Entrez le prenom: papa
Le code : 48 Le nom : popo Le prenom : papa Le code n'existait pas avant La destruction de l'objet Entrez le code: 45 Entrez le nom: riri Entrez le prenom: fifi
Le code : 45 Le nom : riri Le prenom : fifi Le code n'existait pas avant La destruction de l'objet
|
|
mardi 12 mai 2009 à 11:48:42 |
Re : comment gerer ce projet pour que deux etudiants n'aient pas le meme code

LucyUnDemi
|
Bonjour CptPingu, Je ne connaissai pas le Flyweight pattern, c'est en effet plus simple et moins couteux en ressource. Merci pour l'astuce.
|
|
mardi 12 mai 2009 à 11:53:39 |
Re : comment gerer ce projet pour que deux etudiants n'aient pas le meme code

CptPingu
|
@LucyUnDemi: Je t'en prie :). A noter que ta solution serait tout à fait envisageable dans le cas ou il faudrait se souvenir des "codes" entre différentes exécutions. Auquel cas il faudrait ajouter deux méthodes statiques save() et load() à la classe Student.
|
|
Cette discussion est classée dans : code, include, void, char, etudiant
Répondre à ce message
Sujets en rapport avec ce message
PROBLEME NETSEND [ par zzzzzz ]
En fait j'essaye d'envoyer un message par la fonction net send via internet a ordi qui posssede xp. Si je mjet mon ip ca marche et si je met l'ip de q
Erreur DeviceIoControl ??? pk acces refusé ? [ par akk ]
Bonjour,Voila lorsque j'execute ce code :(on passe le nom du lecteur en parametre exemple : main C)#include #include <iostre
Erreurs de compilations bizarres avec Visual C++ 6 [ par VTS_35 ]
Bonjour,G encore des problèmes de compilation avec mon programme. Je me suis rendu compte que le programme allait devenir balaise, alors j'ai décidé d
problème de char [ par minet03 ]
Coucoutout le monde, tout d'abord voilà mon code :#include #include #include #include #include #include char *bin_dec(char *binai
Pb avec les classes [ par Rouliann ]
Bonjour tout le monde!Alors comme je sais pas trop d'où vient le pb je vais afficher ma source et les erreurs qu'elle génère! lol//joueur.h#include <s
Membres amies [ par gdefrance ]
Bonsoir à tous, débutant en C++, j'ai besoin de votre aide pour trouver mon bug dans le programme.Voilà, je dois faire un exo avec un membre friend et
Prob avec les variables [ par Ilsundal ]
Bonjour a tous,voila mon probleme, j'ai declaré une variable, mais quand je lui assigne par exemple : MAISON, il m'affiche que M. comment faire pour
methode system() [ par sperate ]
Bonjour,je code sur visual studio 2005 une simple application en mode console.j'utilise la methode "system()" pour envoyer des commandes simples genre
aide morse [ par cobra176 ]
bonjour a tousje dois faire un programme qui changer les lettres normal en morse et inversementvoici le debut de mon code# include # include # includ
tableau de caractère [ par sakjimh ]
salut à tous voila j'ai un petit problème: je veux crée un tableau de caractère avec une boucle for et l'afficher caractère par caractère:#include #in
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Arnault Nouvel et Antoine Dongois Le processus à prendre : Apprendre (découvrir la plateforme) Préparer (documenter l'historique et choisir la méthode de MAJ) Test (Test de MAJ) Implémenter (Effectuer la MAJ) Valid...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
WIN APIWIN API par omarino_007
Cliquez pour lire la suite par omarino_007
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|