猜单词游戏C++课程设计报告.doc

上传人:laozhun 文档编号:2351388 上传时间:2023-02-15 格式:DOC 页数:31 大小:834KB
返回 下载 相关 举报
猜单词游戏C++课程设计报告.doc_第1页
第1页 / 共31页
猜单词游戏C++课程设计报告.doc_第2页
第2页 / 共31页
猜单词游戏C++课程设计报告.doc_第3页
第3页 / 共31页
猜单词游戏C++课程设计报告.doc_第4页
第4页 / 共31页
猜单词游戏C++课程设计报告.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《猜单词游戏C++课程设计报告.doc》由会员分享,可在线阅读,更多相关《猜单词游戏C++课程设计报告.doc(31页珍藏版)》请在三一办公上搜索。

1、 计算机学院计算机科学与技术专业程序设计综合课程设计报告 (2011/2012学年 第一学期)学生姓名: 学生班级: 学生学号: 指导教师: 2011年12月30日猜单词游戏目录第一章 课程设计的目的和要求.11.1 课程设计的目的11.2 课程设计的目标11.3 课程设计要求2第二章 课程设计任务内容32.1 课程设计题目32.2功能需求32.3系统模块图4第三章 详细设计说明53.1 主函数的流程图53.2 编码与调试6第四章 软件使用说明及运行结果84.1使用说明84.2 运行结果9第五章 课程设计心得与体会14附录1:参考文献16附录2:程序清单17第一章 课程设计的目的和要求1.1课

2、程设计的目的C+语言课程设计的主要目的是培养学生综合运用C+程序设计课程所学到的知识,编写C+程序解决实际问题的能力,以及严谨的工作态度和良好的程序设计习惯。通过课程设计的训练,学生应该能够了解程序设计的基本开发过程,掌握编写、调试和测试C+语言程序的基本技巧,充分理解结构化程序设计的基本方法。C+语言程序设计的主要任务时要求学生遵循软件开发过程的基本规范,运用结构化程序设计的方法,按照课程设计的题目要求,分析、设计、编写、调试和测试C+语言程序及编写设计报告。本次课程设计是通过设计一个较为简单的猜单词小游戏来进一步熟悉C+中有关各种知识的运用与掌握。了解系统开发的需求分析、模块分析、程序流程

3、图、编码测试、模块组装与整体调试的全过程,加深对C+的理解与Vsual C+环境的使用;逐步熟悉程序设计的方法,并养成良好的编程习惯,进一步培养完善的C+编程设计思维,为以后进行软件编程等深入学习打下一个牢固基础。1.2课程设计的目标本课程设计的目标:1. 巩固和加深学生对C+语言课程的基本知识的理解和掌握;2. 掌握C+语言编程和程序调试的基本技能;3. 掌握利用C+语言进行软件设计的方法;4. 提高书写程序设计说明文档的能力;5. 提高运用C+语言解决实际问题的能力。1.3课程设计要求基本要求:1.题目:设计一个猜单词的小游戏程序;2.了解该程序开发的相关背景;3.参考相关书籍学习课程设计

4、的基本知识;4.清楚所开发程序的各个相关功能,以便顺利开发程序;5.对系统功能模块进行分析,写出设计说明文档;6.设计完成的程序要便于操作和使用;7.对自己所设计的程序进行调试,并不断完善;8.在设计过程中熟练掌握软件编程的相关知识;9.详细体会并记录相关过程,并将心得体会写在课程设计报告中;10.设计完成后提交课程设计报告。第二章 课程设计任务内容2.1 课程设计题目猜单词游戏。2.2功能需求用C+实现猜单词游戏。该系统主要有以下功能:1、 提供可操作的主菜单:输出4个菜单,用于显示若干个可选的功能选项。根据玩家输入的选项来运行不同的功能,运行不同的函数。2、 进行文本信息的载入:从指定的文

5、件中以一维数组形式加载游戏玩家记录信息这里的文件是在编译时就已经指定好的、存在的文本,需设计者预先自己建立好。3、 设置游戏功能:以客户输入的猜单词游戏次数和猜的单词数目进行游戏功能的个性化修改。4、 猜词过程:随机抽取单词,对每个单词,系统根据谜底单词长度在屏幕上显示相应个数-。玩家输入一个字母进行猜测,如果这个字母不在单词中,系统提示玩家不对;如果猜对字母,则替换单词中相应位置的“-”。直到玩家在规定的次数内猜出了单词或者超过次数游戏失败。显示玩家每个单词猜对与猜错次数等统计信息。如果玩家猜出单词,计算成绩,满足进入记录前五名的记录写入到记录文件中覆盖原纪录。询问玩家是否开始新一轮猜词,如

6、果玩家选“否”,则系统退到外面的菜单。5、 查看更新过的游戏排行榜:退回主界面选3,打开之前进行游戏时重新写入过的记录文件。2.3系统模块图以下是猜单词游戏的模块图:猜单词游戏设置游戏进行游戏查看排行榜游戏次数猜单词次数图2-1 系统模块图第三章 详细设计说明3.1 主函数的流程图输入字母字母是否在单词中提示错误YN替换对应单词计入成绩查询玩家数据追加玩家数据结束开始图3-1主函数流程图3.2码与调试1、主要结构体/类:struct Playerchar name20;/玩家姓名 int right; /猜对的字母int wrong; /猜错的字幕int time; /猜单词的时间;class

7、 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)(1)文件打开函数void OpenWordFile(char string20012):设计思想一致,用于打开单独储存的单词库及游戏记录txt文件。(2)设置函数void set(),void

8、Setgame:用于设置游戏中猜单词的次数与数目。(3)“玩游戏”函数:void PlayGame (char wordlist20012):用于对玩家输入的字母进行处理与判断(4)“开始游戏”函数void StartGame (char wordlist20012):将OpenWordFile (str); Change (wordlist,str);PlayGame(wordlist)等函数统一调用(5)记录显示函数void Show():用于将写入过新纪录的文件显示到屏幕上。(6)记录读入函数void Record():将最新的游戏成绩记录通过文件读写,从内存中保存到原文本文件中第四章

9、软件使用说明及运行结果4.1使用说明开始执行程序。根据数据结构、函数功能和主要的流程图,进行录入源代码操作。在编码时,注意代码的书写规范,包括命名惯例、注释、分隔和缩进等,这样使程序层析清晰,增强可读性和可维护性。 编码操作完成后,先静态检查一下有没有语法错误,然后进行编译,更深一步检查语法错误。待编译通过时,运行程序,观察是否能够正常运行,如果有问题,再去修改源程序,直至达到了预期的效果。4.2运行结果1. 显示的主菜单界面:2.请输入选择: 3.请输入单词数:4. 请输入你的姓名: 6. 开始游戏7. 成绩排行:8. 退出程序:第五章 课程设计心得与体会程序设计养学生综合运用所学知识,发现

10、,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。回顾起此次课程设计,至今我仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整一个星期的日子里,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提

11、高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,这毕竟独立做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体通过这次课程设计之后,一定把以前所学过的知识重新温故。终于顺利完成了,在设计中遇到了很多编程问题,最后在谢老师的辛勤指导下,终于游逆而解。同时,在李老师的身上我学得到很多实用的知识,在次我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!最后,很感激学校给了我们这次动手实践的机会,让我们学生有了一个共同学习,增长见识,开拓视野的机会。也感谢老师们对我们无私忘我的指导,

12、我会以这次课程设计大赛作为对自己的激励,继续学习。附录1:参考文献1谭浩强编著:C+程序设计,北京:清华大学出版社,20042杨秀金编著:数据结构(c+版),北京:人民邮电出版社,2009.43湛为芳编著:C+程序设计技术习题解答和实验指导,北京:清华大学出版社,2009.10附录2:程序清单源程序代码#include #include #include #include #include #include void OpenWordFile(char string20012);void PlayGame(char wordlist20012);void Change(char wordlis

13、t20012,char str20012);void StartGame (char wordlist20012);int round;void 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 tem

14、p;int right=0,wrong=0;int times;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; ;void OpenWordFile (char string20012)FILE *fp; char c; int i=0; int j=0; if(fp=fopen(word.txt,r)=NULL) /读

15、文件 printf(单词库无法打开!n); exit(0); elsec=fgetc(fp); while(c!=EOF) if(c!=n) 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;ch

16、ar WrongGuess12;int t=0;int flag=0; int c=1; /用来查看是否猜对所有字母srand(time(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,&

17、guess);for(j=0;jy) y=x; elsek+; c=strcmp(guessword,wordlistq); if(c=0)printf(nHow smart you are! 你成功猜出了这个单词!n正确单词就是:%s,wordlistq);right+;if(c!=0)printf(nSorry. 你已经超过了规定的次数,挑战失败了.n正确单词是:%s,wordlistq);wrong+;printf(你猜对了%d个字母,猜错了%d个字母。n,x,k-1);WrongGuesst = 0;printf(错误字母分别是%sn,WrongGuess);void Change (

18、char wordlist20012,char str20012)int i,j;for(i=0;i200;i+)for(j=0;j12;j+)wordlistij=strij; void Input()printf(请先输入您的大名:);scanf(%s,temp.name);void Result()temp.right=right;temp.wrong=wrong;void Time()temp.time=times;void Compare()int i,j,k;for(i=0;ipi.right) for(j=5;ji;j-)for(k=0;k20;k+)pj.namek=pj-1.

19、namek;pj.right=pj-1.right; pj.wrong=pj-1.wrong; pj.time=pj-1.time;for(k=0;k20;k+)pi.namek=temp.namek;pi.right=temp.right;pi.wrong=temp.wrong;pi.time=temp.time;break;void Record()int i;FILE *fp;fp=fopen(record.txt,r+);if(!fp)printf(游戏记录无法打开!);exit(1); fprintf(fp,名次t姓名tt成绩:猜对 or 猜错)t时间(s)n);for(i=0;i5

20、;i+)fprintf(fp,%dt%sttRight:%d Wrong:%dt%dn,i+1,pi.name,pi.right,pi.wrong,pi.time);fclose(fp);void Show()int i;FILE *fp;fp=fopen(record.txt,r);if(!fp)printf(游戏记录无法打开!n);exit(1);fprintf(stdout,名次t姓名tt成绩(猜对 猜错)t时间(s)n);for(i=0;i5;i+)fprintf(stdout,%dt%sttRight:%d Wrong:%dt%dn,i+1,pi.name,pi.right,pi.w

21、rong,pi.time);fclose(fp);void StartGame (char wordlist20012)int p=1;while(p)int i; char play; ByTime t; for(i=0;i 1. 开始游戏 2. 设置游戏 3. 成绩排行 4. 退出游戏 n);printf( *n);printf( 制作人:高吉扬 201020010106 n);printf(n);printf(请输入你的选择:);scanf(%d,&choice);while(choice4)printf(Please choice 1-4 againn);scanf(%d,&choice);switch (choice)/选择case 1:Set();Input();StartGame (wordlist);/调用游戏函数break;case 2:SetGame ();/调用设置函数Set();Input();StartGame (wordlist);break;case 3:Show();break;case 4:exit(0);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号