记忆力小游戏课程设计报告.docx
- 文档编号:6925916
- 上传时间:2023-01-12
- 格式:DOCX
- 页数:21
- 大小:328.55KB
记忆力小游戏课程设计报告.docx
《记忆力小游戏课程设计报告.docx》由会员分享,可在线阅读,更多相关《记忆力小游戏课程设计报告.docx(21页珍藏版)》请在冰豆网上搜索。
记忆力小游戏课程设计报告
计算机学院计算机科学与技术专业
《程序设计综合课程设计》报告
(2011/2012学年第一学期)
学生姓名:
学生班级:
学生学号:
指导教师:
2011年12月31日
记
忆
力
小
游
戏
2.3可行性2
第一章课程设计的目的和要求
1.1课程设计的目的
通过课程设计的训练,我们能够了解程序设计的基本开发过程,掌握编写、调试和测试C++语言程序的基本技巧,培养解决实际问题的能力和养成严谨的态度、习惯。
通过一个简单的程序设计,我们能够进一步熟悉C++中有关各种知识的运用与掌握,理论与实践相结合。
设计过程中,我们独立思考,积极动手实验,逐步熟悉程序设计的方法,进一步培养完善的C++编程设计思维,为以后的程序设计学习打下一个牢固基础。
1.2课程设计的实验环境
该程序设计的设计和实验过程需要在windows7环境下的MicrosoftVisualStudio2008的平台下进行,从而完成代码的编写、编译、调试等工作。
1.3课程设计要求
首先要参考相关书籍学习课程设计的基本知识,了解你所要做的程序的实验环境,清楚所开发程序的相关功能,并对各个功能模块进行分析,然后在平台上进行编写、编译、调试等操作。
程序设计要求自己选题,所做程序要便于操作和使用,在设计过程中熟练掌握相关知识,循软件开发过程的基本规范,运用结构化程序设计的方法,详细体会并记录相关过程,并将心得体会写在课程设计报告中,设计完成后提交课程设计报告。
第二章课程设计任务内容
2.1背景
随着知识时代的来临,记忆力与知识的掌握程度变得越来越重要,而如今的学生特别是部分大学生由于自制力不够,把时间花在玩游戏和睡觉上,没有求知欲,从而导致记忆力下降,这对以后的生活和工作是非常不利的,所以为了改变这一现象,并且有效的提高他们的能动性,设计了这一“记忆力小游戏”程序,游戏简单易上手,老少皆宜,经过一些同学验证,它确实对记忆力的提高有益。
2.2功能需求
1、程序以菜单方式工作
2、程序有录入、选择难度和退出功能
3、程序给出一句话让参与者在规定的时间内记忆,然后打乱这句话的顺序让参与者按照显示出的文字的顺序写出,进行两次,最后系统会提示让参与者写出第一次显示出的文字
4、参与者也可以选择自己输入一句话进行游戏,其他内容按照功能3
5、程序有打分功能,每次游戏结束后给参与者打分并显示分数
2.3可行性
从技术上来说,C++语言是高级编程语言,它可以编写应用程序,并且能够成功运行,在windows7系统中的MicrosoftVisualStudio2008的平台下,我已经实验成功,程序虽然有些小的不足,但是大体上还是差强人意的。
从操作上来说,在明白游戏基本规则的情况下,进行简单的键盘操作即可游戏,游戏简单易懂,在闲暇的时候,它能给您带来乐趣的同时锻炼记忆力。
第三章详细设计说明
3.1主函数的流程图
图3-1主函数流程图
3.2各个子函数的流程图
子函数voidset_game_content()的流程图:
图3-2-1voidset_game_content()函数流程图
子函数voidset_game_setup()的流程图:
图3-2-2voidset_game_setup()函数流程图
子函数voiddelay(intt)、voidend_game()、voidclear_viewprot()的流程图:
图3-2-3voiddelay(intt)函数流程图
图3-2-4voidend_game()函数流程图
图3-2-5voidclear_viewprot()函数流程图
3.3功能及使用说明
1、此程序包含八个函数:
intmain();voidset_game_content();voidbegin_game();
voidset_game_setup();voidgame_select();voiddelay(intt);voidend_game();
voidclear_viewprot()
其中:
intmain()主函数,里面包含菜单函数;
voidset_game_content()输入内容设置界面,其中参与者可更改程序初始输出内容;
voidbegin_game()游戏开始界面,输出文字并要求参与者之后输入相同的文字;
voidset_game_setup()游戏难度设置界面,可供参与者选择难度;[1]
voidgame_select()游戏菜单界面;
voiddelay(intt)延时函数;[2]
voidend_game()游戏结束界面;
voidclear_viewprot()清楚屏障功能。
2、在windows操作系统下打开该软件,根据游戏的提示,按1直接开始游戏,按2会进入输入测试内容界面,在里面参与者可设置测试内容,按3会进入难度选择界面,里面有4种难度,分别为1、2、3、4,对应简单、中等、困难和疯狂,按4会退出游戏。
每次游戏的结束,程序都会给参与者打分,游戏成功,参与者可以选择下一难度或者退出,游戏失败,假如在较高难度,参与者可以选择较低难度或者退出,如果参与者在最低难度就失败,那就会直接退出或者重新在这一难度游戏了。
第四章调试运行结果
1、初始界面,提供功能选择,输入相应数字。
图4-1程序截图一
2、选择2,输入你要设置的测试内容。
图4-2程序截图二
3、选择3,提供游戏难度选择。
图4-3程序截图三
4、选择4,退出游戏。
图4-4程序截图四
5、分别对应游戏难度1、2、3、4的测试内容。
图4-5程序截图五
6、几秒之后,对应难度1出现的界面。
图4-6程序截图六
7、输入正确后出现的界面。
图4-7程序截图七
8、输入正确后,程序会给出分数并且有难度和退出游戏的选择。
图4-8程序截图八
第五章课程设计心得与体会
在这个学期末,我们终于迎来了期盼已久的课程设计,课程设计刚开始的时候,感觉很简单,不就是做一个程序嘛,可是老师一说要求我就彻底傻眼了,200多行的代码,幸亏可以借鉴,但是要有自己的东西在里面。
还有一点比较好的地方就是老师说要我们自己选题,什么游戏啊,测试啊,都可以,我选的是一个叫记忆力小游戏的程序,刚开始的时候和其他人一样,也是一筹莫展,不知道从什么地方入手,所以不知不觉中我把它当做是一种挑战。
人就是这样,困哪像弹簧,你强它就弱,你弱它就强。
三周的时间来做这个程序对我来说已经足够,虽然有的部分还是需要学习,不过在温习过去知识和各种泡图书馆的前提下,我的信心增加了不少,并想出了实际的过程模型。
三周的时间没有白费,我不仅完成了自己的程序设计,而且在余下的时间里把另一个程序做了较大改动。
看着程序的渐渐完善,我的心里也有很大的触动,毕竟是我的第一个程序啊,虽然由于之前没有经验,缺少具体的准则,语言也很生硬,但是看着程序的从无到有,从有到精,我深深的感到自己的付出没有成为流水。
经过这次的程序设计,我的收获很大,不仅对C++语言有了更进一步的认识和了解,而且通过实践,我也发现我的好多不足之处,首先是自己编程粗心大意,经常出错,再有对C++语言的一些标准函数不太了解,还有对函数调用的正确使用不够熟悉,以及对C++语言中经常出现的错误也不了解,但是经过三周的锻炼,我在这几个方面的认识有所提高。
同时这次的课程设计也让我懂得了很多:
(1)保持良好的学习心态,第一,要有自信,自强,积极主动学习.第二,克服畏难情绪,树立学好程序设计的信心
(2)要了解概念:
C++程序设计本身并不复杂,变量,函数,条件语句,循环语句等概念较多.要真正能进行程序设计,就要深入理解这些概念.应该重视概念的学习.
(3)自己动手编写程序,亲自动手进行程序设计是培养逻辑思维的好方法.因此我们得多动手编写程序,逐渐提高写程序的能力.自己动手,编写一些程序,才会有成就感,进而对课程产生兴趣,做起来才比较从容.等你在编写大量程序之后
(4)上机调试程序应注意多问问同学,多问问老师、,把不懂的地方标出来。
(5)养成良好的编程习惯,第一,程序构思要有说明;第二,学会如何调试程序;第三,对运行结果要做正确与否的分析。
但是,如果以前上课的时候不认真的听讲的话,做这个程序设计就会有点点困难,所以,同时也在提醒我们,学习,任何时候都要认真!
对于计算机专业的大学生来说,积累实战经验是一项极其重要的内容,很可能成为将来就业的敲门砖。
而程序设计综合课程设计就是积累实战经验的一个过程,虽然程序的规模并不大,但能够让我们尽早地认识软件开发的重要性和必要性,为将来的就业打下坚实的基础。
总之,在此次的C++程序设计中,没有付出就没有收获,努力地同时要耐得住寂寞。
所以此次C++程序设计,让我做事情更加有耐心,更加细心,学习更加认真仔细。
故在此,特意感谢给予我帮助的同学和老师,谢谢你们。
附录1:
参考文献
[1]谭浩强编著:
C++程序设计,北京:
清华大学出版社,2004年6月第一版
[2]谭浩强编著:
C++程序设计教程,北京:
清华大学出版社,2007年7月
附录2:
程序清单
以下是记忆力小游戏的源代码:
#include
#include
#include
#include
#include
#include
usingnamespacestd;
charch[200]="你好啊",ch1[400]="计算机程序不好做啊",
ch2[400]="大家毕业之后是考研还是出国呢",
ch3[600]="我们不知道谁在不经意间说了再见之后就真的再也不见了";//玩家必须猜出来的字符串
staticintsetup=1;//难度
staticintpoint=10;
staticintt=100;
voidset_game_content();
voidbegin_game();
voidset_game_setup();
voidgame_select();
voiddelay(intt);
voidend_game();
voidclear_viewprot();
stringrandom_string(strings);
intmain()
{
srand(time(0));
game_select();
}
voidset_game_content()
{
clear_viewprot();//清除屏幕
cout<<"请输入你要设置的测试内容:
"< getchar(); cin.getline(ch,400); game_select(); } voidbegin_game() { stringran_str1; stringinput_str; stringran_str2; strings; inti=0; intnum=1;//关数 stringstr; begin: clear_viewprot();//清除屏幕 ran_str1=""; input_str=""; ran_str2=""; s=""; cout<<"现在是第"< "< cout<<"请你把下面的字记住"< if(setup==1) str=ch; elseif(setup==3) str=ch1; elseif(setup==5) str=ch2; elseif(setup==7) str=ch3; ran_str1=random_string(str);//打乱玩家要猜的字符串 cout< cout<<"大概几秒后,上面的字自动消失! "; delay(t); for(i=0;i<2;i++) { clear_viewprot();//清楚屏幕 cout<<"下面是已经打乱的字: "< ran_str2=random_string(str); cout< cout<<"请输入上面的字: "; cin>>input_str; while(input_str! =ran_str2)//当玩家输入的字符不等于打乱的字符,继续输入 { clear_viewprot();//清楚屏幕 cout<<"输入错误,请重新输入"< cout<<"下面是已经打乱的字: "< ran_str2=random_string(str); cout< cin>>input_str; }//while语句结束 }//for语句结束 clear_viewprot();//清除屏幕 cout<<"请输入在第一次看到的字: "< cin>>input_str; if(input_str==ran_str1) { clear_viewprot();//清楚屏幕 cout< "< cout<<"你现在的分数是"< point=point*2+strlen(ch); cout<<"要继续游戏吗? 1->继续游戏(难度加大),2->退出游戏"< cin>>s; if(s[0]=='2') { end_game(); } else { num++;//关数 setup=setup+1;//游戏的难度 if(t>40) { t=t-5;//游戏的难度 } gotobegin; } } else { cout<<"*****************你输了,还想挑战吗*****************"< if(point>0) { point=point-10; } cout<<"你现在的分数是"< cout<<"要继续游戏吗? (难度变小)1->继续游戏,2->退出游戏"< if(t<150) { t=t+5; } if(setup>0) { setup--; } cin>>s; if(s[0]=='2') { end_game(); } else { clear_viewprot();//清除屏幕 cout<<"现在是第"< "< gotobegin; } } } voidset_game_setup() { clear_viewprot();//清除屏幕 cout<<"请输入游戏的难度: 1->easy,2->medium,3->hard,4->crazy"< cin>>setup; if(setup==1) { setup=1; t=100; } elseif(setup==2) { setup=3; t=90; } elseif(setup==3) { setup=5; t=80; } elseif(setup==4) { setup=7; t=80; } elseif(setup<=0) { setup=1; t=100; } elseif(setup>4) { setup=7; t=80; } game_select(); } voidgame_select() { clear_viewprot();//清除屏幕 stringmenu_str=""; cout<<"1->开始游戏,2->玩家自己设置测试内容,3->挑选游戏难度,4->退出游戏"< cin>>menu_str; switch(menu_str[0]) { case'1': begin_game(); break; case'2': set_game_content(); break; case'3': set_game_setup(); break; default: end_game(); break; } } voiddelay(intt)//延时函数 { inti; for(i=0;i<15000000*t;i++) { i++; } } voidend_game() { clear_viewprot();//清除屏幕 cout<<"Now,gameover.GoodBye! "; getchar(); getchar(); } voidclear_viewprot() { system("cls"); cout<<"***********************记忆力小游戏********************"< cout<<"设计者: 李征设计时间: /12/24"< cout<<"*******************************************************"< } stringrandom_string(strings) { stringstr1=""; charch[3],ch1[2]; inti2=0; vector vector : iteratornum; intn=0; srand(time(0)); for(inti=0;i { if(s[i]>127||s[i]<0) { ch[2]='\0'; ch[i2]=s[i]; if((n+1)%2==0) { str.push_back(ch); ch[0]='\0'; ch[1]='\0'; ch[2]='\0'; } n++; i2++; if(i2==2) { i2=0; } } else { ch1[1]='\0'; ch1[0]=s[i]; str.push_back(ch1); } } random_shuffle(str.begin(),str.end()); for(num=str.begin();num! =str.end();num++) { str1=str1+*num; } returnstr1; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 记忆力 小游戏 课程设计 报告