/*	En-tête du programme
	====================
	Programme:	menu
	Autheur:	Martin Robinson
	Conception:	20/01/2012
	But:		programme avec un menu

	Directives du préprocesseur
	===========================*/

#include <iostream>

using namespace std;

/*	Programme principal
	===================*/

int main()
{
//test louche
	system("cls");
	int a = 0;
	cout << "integer contenant " << a << " operateur NOT sur le même integer " << !a << endl;
	a++;
	cout << "integer contenant " << a << " operateur NOT sur le même integer " << !a << endl;
	a++;
	cout << "integer contenant " << a << " operateur NOT sur le même integer " << !a << endl;
	char c = 65;
	cout << "character contenant " << c << " operateur NOT sur ce dernier " << !c << endl;
	c = 0;
	cout << "character contenant " << c << " operateur NOT sur ce dernier " << !c << endl;
	cout << "fin du test louche \n\n\n\n";
	system("pause");
//test louche

	//initialisation
	system("cls");
	int nb;		//nombre de symbole
	char symb,	//symbole
		 choix;	//choix du menu

	//saisie du nombre de symbole
	cout << "Entrez le nombre de symboles a reproduire : ";
	cin >> nb;
	//saisie du symbole
	cout << "\nEntrez le symbole a reproduire nombre : ";
	cin >> symb;

	//boucle principale
	do{
		system("cls");
		cin.clear();
		
		//menu choix
		cout << "\nChoisissez la forme que vous voulez reproduire parmi les suivantes :\n"
			 << "	a. ligne\n"
			 << "	b. cube plein\n"
			 << "	c. cube vide\n"
			 << "	d. triangle rectangle\n"
			 << "	e. quitter le programme\n\n";
		cin >> choix;
		choix = toupper(choix);
		if (choix < 65 && choix > 90)
		{
			cout << "\n\nvotre choix est invalide\n\n";
			continue;
		}

		//resultat du choix
		switch(choix)
		{
		case 'A':		//ligne
			cout << "\nvoici une ligne\n";
			for (int i = 0; i<nb;i++)
			{
				cout << symb;
			}
			cout << endl;
			break;
		case 'B':		//cube plein
			cout << "\nvoici un cube plein\n";
			for (int i = 0; i<nb;i++)
			{
				for (int j=0;j<nb;j++)
				{
					cout << symb;
				}
				cout << endl;
			}
			break;
		case 'C':		//cube vide
			cout << "\nvoici un cube vide\n";
			for (int i = 0; i<nb;i++)
			{
				for (int j=0;j<nb;j++)
				{
					if (i>0 && i<nb-1 && j>0 && j<nb-1)
						cout << ' ';
					else
						cout << symb;
				}
				cout << endl;
			}
			break;
		case 'D':		//triangle rectangle
			cout << "\nvoici un triangle\n";
			for (int i = 0; i<nb;i++)
			{
				for (int j=0;j<=i;j++)		//se sert de i comme limite
				{
					cout << symb;
				}
				cout << endl;
			}
			break;
		}

		//cout << "\nAppuyer sur une touche pour continuer.\n";
		system("pause");
	}while(choix != 'E');

	//system("pause");
	return 0;
}