En fait, c'est un programme que j'ai fait pour m'initier à l'utilisation des classes, je pense pas qu'il y est autre chose à redire la dessus a part que c'est compilé e DEV-C++ 4.9.8.7.
C'est en mode texte mais l'interface est plutôt bien soigné (texte en couleur, efface l'écran a chaque nouvelle action ...)
Source / Exemple :
/* ----------------------------- MadCat 1.0 ------------------------------------
Editeur : Mat06
Version : 1.0
Language : C++
Compilateur : Dev-C++ 4.9.8.7
------------------------------------------------------------------------------*/
/* Preprocesseur -------------------------------------------------------------*/
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <conio.c>
using namespace std;
/* Types de données ----------------------------------------------------------*/
typedef unsigned short int NUMS ;
typedef signed long int NUML ;
/* Variables statiques -------------------------------------------------------*/
static char H_LINE = 196 ; // Valeur ASCII de '-'
static char V_LINE = 179 ; // Valeur ASCII de 'S'
static char StringC ; // Variable de Write
static NUMS i = 0 ; // Variable de boucle
static NUMS j = 0 ; // Variable de boucle
static NUMS CCat ; // 1 si un chat existe
static NUMS CQuit ; // Break le while si 1
static NUMS Choix ; // Variable de switch
static char strChoix[1] ; // Variable de choix [O-N]
// Bloc de code : Temp
static char TempName[11] ;
static char TempType[11] ;
static char TempColor[11] ;
static NUMS TempAge ;
static double TempWeight ;
/* Classe Cat ----------------------------------------------------------------*/
class Cat
{
public: // Membre public de Cat
Cat(void) ; // Constructeur
~Cat(void) ; // Destructeur
void SetAge(NUMS Age) ; // Defini wAge
NUMS GetAge(void) ; // Récupère wAge
void SetWeight(double Weight) ; // Défini wWeight
double GetWeight(void) ; // Récupère wWeight
void Miauler(void) ; // Fait miauler le chat
void Caresser(void) ; // Caresse le chat
private: // Membre privé de Cat
char wName[11] ;
char wType[11] ;
char wColor[11] ;
NUMS wAge ;
double wWeight ;
};
/* Constructeur et destructeur de Cat ----------------------------------------*/
Cat::Cat(void)
{
CCat = 1 ; // Indique au programme qu'un chat existe
}
Cat::~Cat(void)
{
CCat = 0 ; // Détruit le chat existant
}
/* Fonction membre de Cat ----------------------------------------------------*/
void Cat::SetAge(NUMS Age)
{
wAge = Age ; // Défini l'age
}
NUMS Cat::GetAge(void)
{
return wAge ; // Retourne l'age
}
void Cat::SetWeight(double Weight)
{
wWeight = Weight ; // Défini le poid
}
double Cat::GetWeight(void)
{
return wWeight ; // Retourne le poid
}
void Cat::Miauler(void)
{
textcolor(10) ; // Texte en Vert
cout << TempName << " : " ; // Joue un son
textcolor(14) ; // Texte en Jaune
cout << "Miou! Miaou!\a" ;
}
void Cat::Caresser(void)
{
textcolor(14) ; // Texte en Jaune
cout << "Vous caressez " << TempName << endl ;
textcolor(10) ; // Texte en Vert
cout << TempName ;
textcolor(14) ; // Texte en jaune
cout << " : frrrrt ! frrrrt\a" ; // Joue un son
}
/* Création du chat ----------------------------------------------------------*/
static Cat Chat ;
/* Fonction WriteC -----------------------------------------------------------*/
void WriteC(char StringC, NUML Number, NUMS Color, NUMS Line)
{
textcolor(Color) ;
for (i = 0; i < Number; i++)
cout << StringC ;
if (Line)
cout << "\n" ;
}
/* Fonction Main -------------------------------------------------------------*/
int main(int argc, char *argv[])
{
CCat = 0 ; // Initialise CCat
while(true) // Boucle la fonction main
{
clrscr() ;
textcolor(11) ; // Texte bleu clair
cout << "\t\t\t\t"
<< "MadCat 1.0\n" ; // Affiche l'entête de MadCat
{ // Options
WriteC(H_LINE, 80, 14, 0) ; // Affiche une ligne jaune
textcolor(10) ; // Texte vert
cout << "[1] Creer un chat\n" ;
cout << "[2] Faire miauler le chat\n" ;
cout << "[3] Caresser le chat\n" ;
cout << "[4] Faire une evaluation du chat\n" ;
cout << "[5] Relacher le chat\n" ;
cout << "[6] A propos de MadCat\n" ;
cout << "[7] Quitter\n" ;
WriteC(H_LINE, 80, 14, 1) ; // Affiche une ligne jaune
}
textcolor(9) ; // Texte bleu foncé
cout << "Votre choix [1-7] : " ;
textcolor(14) ; // Texte en Vert
cin >> Choix ;
switch(Choix) // Teste a choix multiple
{
case 0:
textcolor(12) ; // Texte rouge
cout << "Veuillez entrez une valeur entre 1 et 7\n\n" ;
textcolor(12) ; // Texte en rouge
system("PAUSE") ; // Crée une pause
break ;
case 1: // Définition des propriété de Chat
if (CCat)
{
textcolor(12) ; // Texte en rouge
cout << "\nVous avez deja un chat !\n\n" ;
system("PAUSE") ; // Crée une pause
break ;
}
CCat = 1 ; // Le chat est créé
textcolor(14) ; // Alternace du texte Jaune-Vert
cout << "\nEntrez le nom du chat : " ;
textcolor(10) ;
cin >> TempName ;
textcolor(14) ;
cout << "Entrez la race du chat : " ;
textcolor(10) ;
cin >> TempType ;
textcolor(14) ;
cout << "Entrez la couleur du chat : " ;
textcolor(10) ;
cin >> TempColor ;
textcolor(14) ;
cout << "Entrez l'age du chat : " ;
textcolor(10) ;
cin >> TempAge ;
Chat.SetAge(TempAge) ;
textcolor(14) ;
cout << "Entrez le poid du chat : " ;
textcolor(10) ;
cin >> TempWeight ;
Chat.SetWeight(TempWeight) ;
textcolor(12) ;
cout << "\nMadCat dispose toutes les information "
<< "dont il a besoin.\n\n" ;
textcolor(12) ; // Texte en rouge
system("PAUSE") ; // Crée une pause
break ;
case 2: // Execute Chat.Miauler(void) ;
if (CCat == 0) // Break si CCat = 0
{
textcolor(12) ; // Texte en rouge
cout << "Vous n'avez pas de chat!\n\n" ;
system("PAUSE") ;
break ;
}
cout << "\n" ;
Chat.Miauler() ; // Fait miauler le chat
cout << "\n\n" ;
textcolor(12) ; // Texte en rouge
system("PAUSE") ; // Crée une pause
break ;
case 3:
if (CCat == 0)
{
textcolor(12) ; // Texte en rouge
cout << "Vous n'avez pas de chat!\n\n" ;
system("PAUSE") ; // Crée une pause
break ;
}
cout << "\n" ;
Chat.Caresser() ; // Execute Chat.Caresser(void) ;
cout << "\n\n" ;
textcolor(12) ; // Affiche le texte en rouge
system("PAUSE") ;
break ;
case 4: // Affiche les propriété de Chat
if(CCat == 0)
{
textcolor(12) ; // Texte en rouge
cout << "Vous n'avez pas de chat!\n\n" ;
system("PAUSE") ;
break ;
}
textcolor(10) ;
cout << "\n" ;
cout << TempName << " est un " << TempType
<< " de " << Chat.GetAge() << " ans\n" ;
cout << TempName << " fait " << Chat.GetWeight() << " Kg et "
<< TempName << " est " << TempColor << "\n" ;
if (Chat.GetAge() > 13)
cout << TempName << " est vieux\n" ;
else
cout << TempName << " est jeune\n" ;
if (Chat.GetWeight() > 5)
cout << "C'est un gros chat!\n\n" ;
else
cout << "Ce chat est parfaitement normal!\n\n" ;
textcolor(12) ; // Texte en rouge
system("PAUSE") ;
break ;
case 5: // Détruit l'objet Chat
CCat = 0 ;
cout << "\n" ;
textcolor(14) ;
cout << "Vous avez relache " << TempName << "\n\n" ;
textcolor(12) ; // Texte en rouge
system("PAUSE") ; // Crée une pause
break ;
case 6: // Affiche des infos sur MadCat 1.0
textcolor(11) ;
cout << "\nEditeur : Mat06\n" ;
cout << "Version : 1.0.0\n" ;
cout << "Language : C++\n" ;
cout << "Compilateur : Dev-C++ 4.9.8.7\n" ;
cout << "Compile le 20.04.2004\n" ;
cout << "Description : Simulateur de chat\n\n" ;
textcolor(12) ; // Texte en rouge
system("PAUSE") ;
break ;
case 7:
CQuit = 1 ; // Quitte à la fin du switch
break ;
default:
textcolor(12) ; // Texte rouge
cout << "Veuillez entrer une valeur entre 1 et 7\n" ;
system("PAUSE") ; // Crée une pause
break ;
;}
if (CQuit) // Si 1, quitte
break ;
}
textcolor(12) ;
cout << "\n" ;
system("PAUSE") ; // Crée une pause
clrscr() ;
return 0 ;
}
Conclusion :
Ya plein de bug a ce que j'ai vus, surtout, ne fermez pas ce programme en cliquant sur la croix en a droite (chez moi sa fait tous merder), et ne vous amusez pas a entrez des lettre quand il faut entrez un chiffre pour la selection de l'action. Je crois que c'est tous ce qu'il fallait préciser .
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.