Madcat - un simulateur de chat (dev-c++ 5)

Description

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 .

Codes Sources

A voir également

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.