没有合适的资源?快使用搜索试试~ 我知道了~
C++猜单词游戏课程设计报告(完整版).doc
1 下载量 133 浏览量
2022-11-30
11:35:30
上传
评论 1
收藏 1.46MB DOC 举报
温馨提示
试读
93页
C++猜单词游戏课程设计报告(完整版).doc
资源推荐
资源详情
资源评论
C++猜单词游戏课程设计报告
(完整版)
(文档可以直接使用,也可根据实际需要修改使用,可编辑 欢迎下载)
VC++课程设计报告
2021 年 12 月 15 日
课程:
VC++课程设计
系别:
计算机系
班级:
学号:
姓名:
选题名称:
猜单词游戏
选 题 难 易 级
别:
A
起止时间:
指导教师:
1. 程序功能介绍
这是一个猜单词的游戏,这个猜单词游戏分为俩种模式,一个是人人对抗模式,一种是人
机对抗模式。玩家可根据自己的要求选择不同的模式进行游戏。
如果是俩个人玩游戏,可选择人人对抗模式,在该模式下,先由一个玩家输入一个单词
(该单词只有该玩家知道),然后由另一个玩家猜单词,猜错次数可以根据自己的要求改变。
如果是一个人玩游戏,可选择人机对抗模式,在该模式下,由计算机随机给出一个单词,
玩家根据组成单词字母的个数猜出单词,猜错的次数可以指定,若在规定次数内没猜出单词,显示
一个上吊的人形。
2. 课程设计要求
1.将猜单词的函数与相应的数据封装到类中,并改写主程序,使程序简化。
2.根据所猜单词的字母个数,给出指定几率的提示字母,显示于单词中的正确位置。
3.在进入猜单词的过程后,首先显示菜单询问是开始猜单词还是修改设置,默认的
修改次数为 4,默认显示字符的几率为 20%,若要修改这个设置,在菜单选项中选择
设置选项进行修改。
4.在人人对抗时,一个玩家给出单词时,单词不显示在屏幕上,字符用*号表示。
5.猜单词时,输入一个单词,判断函数改为判断输入单词的字符是否与所猜单词一
一对应,将猜中的字符显示出来。
6.在人机对抗时,可以选择随机读取单词,也可以选择向单词库输入单词,同时,
将单词库中单词的个数显示出来,并根据单词库中单词个数的多少决定随机选取的范
围。
3. 对课程题目的分析与注释
类的封装的关键代码:
class GuessGame//进行类的封装
{
private:
string Word;//欲猜的单词
double Proba;//显示字符概率 (0,1)
int GuessNum;//总共可猜次数
int WrongNum;//猜错的次数
string DisplayWord;// 欲显示的单词
string GuessWord;//第二个玩家输入猜想的单词
int nLen;// 输入单词的长度
int choice;
int option;
public:
int exit;
int iloop;
public:
GuessGame();
void InitialSet();//修改设置值
int getChoice()
{return choice;}
void saveWordFile();//输入单词
void play();
void instruction();//主菜单
void subMenu();//子菜单
void usergame(int i);
void compgame(int i);
void drawman(int numguess,int numwrong,int i);
void lchosen(char letter,string & letterchosen,int &check,int &chosencounter,int i);
void test(string word,char letter,int & numwrong,string& temp);
void rnd(string &word,int i);
};
inline istream & Flush(istream & stream);
GuessGame::GuessGame()
{
Proba = 20.0 / 100;
GuessNum = 4;
exit = 0;
iloop = 0;
}
4. 程序设计和说明(说明算法思想、设计思路,给出重要的、关键的代码)
算法思想
1)类的封装 主要是对人人对抗和人机对抗操作部分类的封装
2)程序主体结构的设置
主菜单:
a) 人人对抗(注释:以人人对抗对象的引用作为参数调用子程序)
b) 人机对抗(注释:以人机对抗对象的引用作为参数调用子程序)
c) 退出
人人对抗菜单
1. 开始猜单词
2. 设置系统
3. 退出
人机对抗菜单
1. 开始猜单词
2. 设置系统
3. 向单词库添加单词
4. 退出
3)人人对抗时输入欲猜单词的隐藏
4)C++用于处理字符串变量的新的数据类型——字符串类型(string 类型)
设计思路
进入程序后,通过 switch 语句进行选择所要进入的函数,即可输入选项,选择人人对抗、人
机对抗、修改提示字母个数或退出。当输入的选项不符合要求时,提示输入错误,请重新输入。
进入人人或人机对抗后,首先询问是否重新设置可猜次数。默认可猜次数为 4 次,若选择修改,
可将其改为 4-10 之间的某值。进入游戏对抗部分,人人对抗时,提示玩家 2 输入单词,输入完毕后
将其转换为“*”,人机对抗时,从单词库中随机抽取一个单词,以“*”的形式给出。按照设置的
显示百分率给出提示字母,并显示在正确的位置上。玩家开始进行猜单词。若输入的字母为组成单
词的字母,则显示在正确的位置;若输入的字母不是组成单词的字母,则提示“wrong letter”,并逐
步显示上吊人形。将已输入过的字母显示在界面上方,当玩家再次输入已输入字母时,提示该字母
已输入过,请重新输入。当玩家猜出单词或达到可猜次数时,游戏结束,返回选择菜单。若以上输
入不符合要求,重新输入。若选择退出选项,则退出程序。
关键代码:
class GuessGame//进行类的封装
{
private:
string Word;//欲猜的单词
double Proba;//显示字符概率 (0,1)
int GuessNum;//总共可猜次数
int WrongNum;//猜错的次数
string DisplayWord;// 欲显示的单词
人人对抗
人机对抗
退出
主菜单
是 否 修 改 设
置?
是 否 修 改 设
置?
是
否
否
是
修改
修改
玩家 2 输入单词
计算机抽取单词
玩家开始猜单词
错
对
输出上吊人形
Right【 】
返回主菜单
剩余92页未读,继续阅读
资源评论
matlab大师
- 粉丝: 2427
- 资源: 9万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功