C++面向对象课程设计-1
2019-06-04 18:06
253 查看
C++面向对象课程设计一一 之1
教学游戏:
#include <iostream> #include <string> #include <ctime> using namespace std; void rand_seed() { int seed = static_cast<int>(time(0)); srand(seed); } int rand_int(int a, int b) { return a + rand() % (b - a + 1); } class Player { public: Player(); Player(string player_name, int initial_level); void increment_score(); int get_score() const; int get_level() const; string get_name() const; private: string name; int score; int level; }; Player::Player() { name = ""; score = 0; level = 1; } Player::Player(string player_name, int initial_level) { name = player_name; score = 0; level = initial_level; } void Player::increment_score() { score++; if (score % 5 == 0 && level < 4) level++; } int Player::get_level() const { return level; } int Player::get_score() const { return score; } string Player::get_name() const { return name; } class Game { public: Game(); void play(); void read_player_information(); void play_round(); int get_guess(int v1, int v2, int answer, string operation); private: Player player; }; Game::Game() { player = Player(); } void Game::play() { read_player_information(); string response; do { play_round(); cout << "你想继续挑战吗? 如果继续挑战请输入y,否则输入n退出游戏\n"; cin >> response; } while (response == "y"); } void Game::read_player_information() { cout << "请输入你的名字:"; string name; cin >> name; int initial_level = 0; do { cout << "请选择所需挑战的难度(1-4):"; cin >> initial_level; } while (initial_level < 1 || initial_level > 4); player = Player(name, initial_level); } void Game::play_round() { int i1 = 0; int i2 = 0; int answer = 0; if (player.get_level() == 1) do { i1 = rand_int(1, 9); i2 = rand_int(1, 9); answer = i1 + i2; } while (answer > 9); else if (player.get_level() == 2) { i1 = rand_int(1, 9); i2 = rand_int(1, 9); answer = i1 + i2; } else if (player.get_level() == 3) do { i1 = rand_int(1, 9); i2 = rand_int(1, 9); answer = i1 - i2; } while (answer < 0); else if (player.get_level() == 4) { i1 = rand_int(10, 99); i2 = rand_int(10, 99); answer = i1 + i2; } int guess; if (player.get_level()!=3) guess = get_guess(i1, i2, answer, " + "); else guess = get_guess(i1, i2, answer, " - "); if (answer == guess) { player.increment_score(); cout << "恭喜!" << player.get_name() << "你答对了!" << "\n"; } else { cout << "抱歉! " << player.get_name() << "你回答错误!" << answer << ".\n"; } cout << "你的分数为:" << player.get_score() << "\n"; } int Game::get_guess(int v1, int v2, int answer, string operation) { int guess; int tries = 2; do { cout << "请输入: " << v1 << operation << v2 << " 的答案: " <<player.get_name()<< "你的挑战等级为:" << player.get_level() << endl; cin >> guess; if (answer == guess) return guess; else cout << "抱歉,你答错了,请在尝试一次:\n"; tries--; } while (tries > 0); return guess; } int main() { Game mathquiz; rand_seed(); mathquiz.play(); return 0; }
运行测试如下:
相关文章推荐
- C++面向对象课程设计 通信录
- C++精品视频课程推荐-开启面向对象世界的大门!
- C#面向对象设计模式纵横谈系列课程-单键模式(Singleton)
- 面向对象课程 - 寒假第三次作业 - C++计算器项目初始部分
- C++面向对象高级开发课程(第二周)
- 2012 面向对象程序设计 课程设计题目及要求
- 2017 程序设计实习之C++部分作业题汇总 - B:面向对象基础
- 2014大三面向对象课程设计——音乐播放器
- C++面向对象设计
- C++学习-02-面向对象设计和使用
- 采用C++面向对象的程序设计方法开发基于ATM的个人银行账户管理系统,根据大家的日常经验进行设计
- 设计模式C++学习笔记之二十(完结篇 & 面向对象原则)设计模式C++实例下载
- Webcast:C#面向对象设计模式纵横谈系列课程
- C++面向对象高级开发课程(第三周)
- Webcast:C#面向对象设计模式纵横谈系列课程
- 你好,C++(31)我终于找到对象啦!6.1 从结构化设计到面向对象程序设计
- C++面向对象高级开发课程(第一周)
- 第十二章 C++ 面向对象设计方法概述
- C++ 设计模式 02:面向对象 SOLID 设计原则
- java面向对象课程设计