#include <iostream> #include <sstream> #include <fstream> #include <string> #include <limits> namespace { const double version = 1.4; const std::string filename = "carnet.txt"; template <typename T> // Adapte le type automatiquement T ask(const std::string& message) { T res = 0; std::cout << message; std::cin >> res; std::cin.clear(); std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); return res; } std::string askText(const std::string& message) { std::string res; std::cout << message; std::getline(std::cin, res); std::cin.clear(); return res; } void pause_until_presskey() { std::cout << "Appuyez sur une touche pour continuer..." << std::endl; std::cin.get(); } int menu(const std::string& message, int nb_menu) { int choice = 0; while (choice <= 0 || choice > nb_menu) { choice = ask<int>(message); if (choice <= 0 || choice > nb_menu) std::cout << choice << " est un choix invalide!" << std::endl; } return choice; } int mainMenu() { std::ostringstream buff; buff << " ********** Programme v" << version << " **********\n" << " 1) Calculatrice\n" << " 2) Carnet\n" << " 3) Version/Info\n" << " 4) Quitter" << std::endl; return menu(buff.str(), 4); } int calcMenu() { return menu("Fonction calculatrice\n" " 1) Addition\n" " 2) Soustraction\n" " 3) Division\n" " 4) Multiplication\n" " 5) Retour menu\n", 5); } void compute(int type) { double a = ask<double>("Entrez deux nombres entiers ou decimaux\nNb1= "); double b = ask<double>("Nb2= "); switch (type) { case 1: std::cout << a << " + " << b << " = " << a + b << "\n" << std::endl; break; case 2: std::cout << a << " - " << b << " = " << a - b << "\n" << std::endl; break; case 3: if (b == 0) std::cout << "Division par 0 impossible!\n" << std::endl; else std::cout << a << " / " << b << " = " << a / b << "\n" << std::endl; break; case 4: std::cout << a << " * " << b << " = " << a * b << "\n" << std::endl; break; default: ; } } void calculatrice() { int choix = 1; while (choix > 0 && choix <= 4) { choix = calcMenu(); if (choix > 0 && choix <= 4) compute(choix); } } void carnet() { std::cout << "Vous pouvez ecrire puis envoyer en appuyant sur entrer\n" << "Un fichier \"" << filename << "\" sera cree dans le repertoire courant.\n" << "Quand vous envoyez un texte sur la console, il s'enregistre automatiquement a la suite du fichier\n" << std::endl; const std::string text = askText("--------- Votre Texte ---------\n"); std::ofstream file(filename.c_str(), std::ios::app); if (!file) std::cerr << "Impossible d'ecrire dans " << filename << "!" << std::endl; else file << text << std::endl; } } // namespace int main() { int choix = 1; while (choix >= 1 && choix <= 3) { choix = mainMenu(); switch (choix) { case 1: calculatrice(); break; case 2: carnet(); break; case 3: std::cout << "Ce programme est actuellement en version: " << version << "\n" << "Pour signaler des bugs, veuillez nous contacter a\n" << "---------- nicolas.buchot@hotmail.fr ----------\n" << std::endl; break; default: std::cout << "bye" << std::endl; pause_until_presskey(); } } return 0; }
Améliorer votre expérience CodeS-SourceS avec ce plugin:
http://codes-sources.commentcamarche.net/forum/affich-10000111-plugin-better-cs-2#cptpingu-signature
#include <iostream> #include <string> using namespace std; class Calculatrice { public : double A; double B; double resultat; void addition() { resultat = A + B; cout << A << " + " << B << " = " << resultat << endl; } void rep1() { cin >> A; } void rep2() { cin >> B; } private : }; int main() { Calculatrice calc; cout << "entrez deux nombres entier ou decimaux a additionner. " << endl; cout << " Premier nombre entier ou decimal : " << endl; calc.rep1(); cout << " Deuxieme nombre entier ou decimal : " << endl; calc.rep2(); calc.addition(); return 0; }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionc'est surtout comme tu a appris tout ça
OpenClassroom, je sais ça peut pas être le meilleurs site
C'est pour ça que je demande sans cesse de l'aide
Mon programme portera sur un RPG écrit sur console
c'est quoi le niveau technique
je sais que tu aime pas trop (je crois) car je doit déjà m'entraîner sur les fonctions
Améliorer votre expérience CodeS-SourceS avec ce plugin:
http://codes-sources.commentcamarche.net/forum/affich-10000111-plugin-better-cs-2#cptpingu-signature