猜单词游戏程序设计.doc
《猜单词游戏程序设计.doc》由会员分享,可在线阅读,更多相关《猜单词游戏程序设计.doc(19页珍藏版)》请在沃文网上搜索。
1、目录猜单词游戏1一 课题内容和要求1二 需求分析2三、概要设计3四、源程序代码4五、测试数据及其结果分析15六、调试过程中的问题19七、课程设计总结19猜单词游戏一 课题内容和要求(一)课题内容要求用C语言实现一个猜单词游戏程序。游戏包括:单词管理、玩家纪录、猜词过程、系统设置等必须完成的基本功能以及成绩计算、猜词时间限制、词库管理等选做的扩展功能。通过该课题全面熟悉数组、字符串、文件的使用,掌握程序设计的基本方法及友好界面的设计。(二)课题要求(1) 单词管理:程序中用来做谜题的单词必须存放在磁盘文件中,文件中的单词数不得少于200个。(2) 玩家纪录:程序要求记录前五名成绩。成绩指标自行设
2、计,必须包括时间。记录的时候要求有排名、玩家姓名、成绩三项,并保存在文件中。在程序开始运行的时候就必须读入,以便随时供玩家查询、及时更新成绩。(3) 猜词过程:先请用户输入猜的单词数量,可以有一个默认值。随机抽取单词,对每个单词,系统根据谜底单词长度在屏幕上显示相应个数-,假设谜底单词为hello,则在屏幕上输出-。玩家输入一个字母进行猜测,如果这个字母不在单词中,系统提示玩家不对;如果猜对字母,比如玩家输入了一个l,则在屏幕上输出-ll-。重复,直到玩家在规定的次数内猜出了单词或者超过次数游戏失败。显示玩家每个单词猜对与猜错次数等统计信息。如果玩家猜出单词,计算成绩,如进入前五名提示玩家并记
3、录存储到记录文件中。询问玩家是否开始新一轮猜词,如果玩家选“否”,则系统退到外面的菜单。(4) 系统设置:猜词次数可以为默认值。玩的时候,可以对其进行修改。 二 需求分析 功能框架图如下: 猜单词游戏开始游戏设置游戏游戏帮助成绩排行退出游戏游戏音乐游戏背景游戏规则语言设置 单词库管理管理提供可操作的主菜单:输出5个菜单,用于显示若干个可选的功能选项。根据玩家输入的选项来运行不同的功能,运行不同的函数。1.开始游戏:进行文本信息的载入,从指定的文件中以一维数组形式加载游戏玩家记录信息这里的文件是在编译时就已经指定好的、存在的文本,需设计者预先自己建立好。猜词过程:随机抽取单词,对每个单词,系统根
4、据谜底单词长度在屏幕上显示相应个数“-”。玩家输入一个字母进行猜测,如果这个字母不在单词中,系统提示玩家不对;如果猜对字母,则替换单词中相应位置的“-”。直到玩家在规定的次数内猜出了单词或者超过次数游戏失败。显示玩家每个单词猜对与猜错次数等统计信息。如果玩家猜出单词,计算成绩,满足进入记录前五名的记录写入到记录文件中覆盖原纪录。询问玩家是否开始新一轮猜词,如果玩家选“否”,则系统退到外面的菜单。2.成绩排行:查看更新过的游戏排行榜,显示分数前五名。3.设置游戏:下设菜单,可对游戏音乐,游戏背景,游戏规则,语言进行设置和修改。4.查看游戏帮助。5.退出游戏。三、概要设计 1、主要结构体/类:st
5、ruct Playerchar name20;/玩家姓名 int right; /猜对的字母int wrong; /猜错的字幕int time; /猜单词的时间;class ByTimeprivate:clock_t start;public:ByTime()start=clock(); /开始计时ByTime(); /析构函数void Endtime()clock_t end;end=clock(); /结束计时times=(end-start)/CLOCKS_PER_SEC; /计算时间cout共用时:times秒endl; /输出时间;2、主要函数:(1)文件打开函数void OpenW
6、ordFile(char string20012):设计思想一致,用于打开单独储存的单词库及游戏记录txt文件。(2)设置函数void set(),void Setgame:用于设置游戏中猜单词的次数与数目。(3)“玩游戏”函数:void PlayGame (char wordlist20012):用于对玩家输入的字母进行处理与判断(4)“开始游戏”函数void StartGame (char wordlist20012):将OpenWordFile (str); Change (wordlist,str);PlayGame(wordlist)等函数统一调用(5)记录显示函数void Show
7、():用于将写入过新纪录的文件显示到屏幕上。(6)记录读入函数void Record():将最新的游戏成绩记录通过文件读写,从内存中保存到原文本文件中四、源程序代码 #include #include #include #include #include #include void OpenWordFile(char string20012);void PlayGame(char wordlist20012);void Change(char wordlist20012,char str20012);void StartGame (char wordlist20012);int round;v
8、oid Set() printf(请输入您想猜的单词数:);scanf(%d,&round);struct Playerchar name20; int right;int wrong;int time;typedef struct Player Player;Player p5=1,unknown,0,0,0,2,unknown,0,0,0,3,unknown,0,0,0,4,unknown,0,0,0,5,unknown,0,0,0;Player temp;int right=0,wrong=0;int times;class ByTimeprivate:clock_t start;pub
9、lic:ByTime()start=clock();ByTime();void Endtime()clock_t end;end=clock();times=(end-start)/CLOCKS_PER_SEC;cout共用时:times秒endl; ;void OpenWordFile (char string20012)FILE *fp; char c; int i=0; int j=0; if(fp=fopen(word.txt,r)=NULL) /读文件 printf(单词库无法打开!n); exit(0); elsec=fgetc(fp); while(c!=EOF) if(c!=n
10、) stringij=c; j+; else i+; j=0; c=fgetc(fp); int guesstime=10;void SetGame ()printf(请输入你想猜的次数:);scanf(%d,&guesstime);void PlayGame (char wordlist20012)char guess; /存用户打入的字母char guessword12;/存用户打入的词int l,j,k,f;int p=1,q=0,x=0,y=0;char WrongGuess12;int t=0;int flag=0; int c=1; /用来查看是否猜对所有字母srand(time(
11、NULL);q=rand()%200;l=strlen(wordlistq); /求单词长for(f=0;fl;f+) /定义词一空单词,词长与所选一样guesswordf=-;guesswordl=0; /字符串结尾printf(%s,guessword);/打印与词长相同的-for(k=1;k=guesstime & c!=0;) /判断是否猜完 flag = 0; printf(你还有%d次机会!n,guesstime-k+1);scanf( %c,&guess);for(j=0;jy) y=x; elsek+; c=strcmp(guessword,wordlistq); if(c=0
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单词 游戏 程序设计