猜单词游戏课程设计报告.docx
- 文档编号:30768558
- 上传时间:2023-08-23
- 格式:DOCX
- 页数:14
- 大小:18.58KB
猜单词游戏课程设计报告.docx
《猜单词游戏课程设计报告.docx》由会员分享,可在线阅读,更多相关《猜单词游戏课程设计报告.docx(14页珍藏版)》请在冰豆网上搜索。
猜单词游戏课程设计报告
1.VC++课程设计报告
一.程序功能
一个猜单词游戏。
两人进行游戏时,由一个玩家给出一个单词,在人与计算机游戏时候,由计算机给出一个单词,另一个玩家根据组成单词的字母个数猜出单词,猜的次数可以指定,若猜不出,显示一个上吊的人形。
二.课程设计要求的实现
1.将猜单词的函数和相应的数据封装到类中,并改写了程序,使程序简单化。
根据所学的类的知识,我将画上吊小人的类体和猜单词的类体定义如下:
实现类数据的封装。
//draw类定义
#ifndefDRAW_H//检测是否已经包含
#defineDRAW_H
classdraw
{
public:
draw();//构造函数
//成员函数
voidrope();//绳子
voidhead();//头
voidneck();//颈
voidleftarm();//左臂
voidrightarm();//右臂
voidwaisttop();//腰
voidleftleg();//左腿
voidrightleg();//右腿
};
#endif
#ifndefGUESS_H
#defineGUESS_H
usingnamespacestd;
//程序类定义
classCGuess{
private:
stringWord,word,worD;//要猜的单词
stringDisplayWord;//用户所见的单词
char*pWord1;
char*pWord2;
intProba;//显示单词字母个数百分比
intGuessNum;//玩家猜词的机会
intWrongNum;//玩家猜错的次数
intChosenCounter;//玩家猜过的字母个数
stringLetterChosen;//玩家已经猜过的字母
intChoice;//玩家的选择
intShowNum;//显示字母个数
intLength;//所猜单词的长度
intLetterNum;//单词中的字母个数
inti;//循环的记数变量,使每次游戏都不一样
intCheck;//用户输入字母是否正确
intChoice2;
public:
CGuess();
voidInitialSet();
intSaveWordFile();
intUserWord();//玩家出词
intRndWord();//电脑出词
voidReplaceWord();
voidlChosen(char);
voidtest(char);
intRun();//运行
voidGetChoice();//得到选择
voidGame();//游戏主要函数
voidSet();//设置
voidpassword();
};
#endif
2.根据所猜单词中的字母个数,给出指定几率的提示字母,显示于单词中的正确位置。
实现该功能的函数定义如下:
voidCGuess:
:
Set()
{
cout<<"默认的猜单词次数改为:
";
cin>>GuessNum;
while(!
cin||GuessNum<4||GuessNum>10)
{
cout<<"无效输入"< <<"请再输入: "; Flush(cin); cin>>GuessNum; } cout<<"默认的显示字母百分数改为: "; cin>>Proba; while(! cin||Proba<10||Proba>80) { cout<<"无效输入"< <<"请再输入: "; Flush(cin); cin>>Proba; } system("cls"); } 3.在进入猜单词的过程后,首先显示单词询问是开始猜单词还是修改设置,默认的修改次数为4,默认显示字符的几率为20%,若要修改这个设置,在显示菜单中选择设置选项进行修改。 实现该功能的函数定义如下: voidCGuess: : InitialSet() { if(m_Choice==1){ cout<<"人人对抗"< }else{ cout<<"人机对抗"< } cout<<"---------------------------------------"< cout<<"1.开始游戏"< cout<<"2.选择猜词机会"< cout<<"你的选择: "< cin>>Choice2; while(! cin||Choice2<1||Choice2>2) { cout<<"无效输入"< <<"请再输入: "; Flush(cin); cin>>Choice2; } system("cls"); if(Choice2==1)cout< if(Choice2==2){ cout<<"你要几次猜词机会(4-10): "; cin>>GuessNum;//输入猜词次数 while(! cin||GuessNum<4||GuessNum>10) { cout<<"无效输入"< <<"请再输入-你要几次猜词机会(4-10): "; Flush(cin); cin>>GuessNum; } } cout<<"1.开始游戏"< cout<<"2.选择显示字母的百分数"< cout<<"你的选择: "< cin>>Choice2; while(! cin||Choice2<1||Choice2>2) { cout<<"无效输入"< <<"请再输入: "; Flush(cin); cin>>Choice2; } system("cls"); if(Choice2==1)cout< if(Choice2==2){ cout<<"你要百分之几的字母显示出来(10-80): "; cin>>Proba;//输入显示字母百分数 while(! cin||Proba<10||Proba>80) { cout<<"无效输入"< <<"请再输入-你要百分之几的字母显示出来(10-80): "; Flush(cin); cin>>Proba; } } } 4.在人人对抗时,一个玩家给出单词时,单词不显示在屏幕上。 字符用“*”显示。 参照教材21点的程序,结合猜单词题目的要求,实现该功能的函数定义如下: #defineN13//为任意一个字符(包括空白字符)的ASC||码值 voidCGuess: : password() { charstr[20]; charch; inti=0,a=0,j=0; cout<<"请第二位玩家输入单词: "< cout.flush();//请输出缓冲区 ch=getch(); while(ch! =13) { str[i]=ch; if(str[i]>=97&&str[i]<=122) { cout<<'*';j++; cout.flush(); ch=getch(); } elseif(str[i]>=65&&str[i]<=90) { str[i]=str[i]+32;j++; cout<<'*'; cout.flush(); ch=getch(); } elseif(str[i]<=65||(str[i]>=90&&str[i]<=97)||str[i]>=112) { cout<<"*"; cout.flush(); ch=getch(); } i++;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单词 游戏 课程设计 报告