记忆力小游戏课程设计报告.docx

上传人:b****5 文档编号:6925916 上传时间:2023-01-12 格式:DOCX 页数:21 大小:328.55KB
下载 相关 举报
记忆力小游戏课程设计报告.docx_第1页
第1页 / 共21页
记忆力小游戏课程设计报告.docx_第2页
第2页 / 共21页
记忆力小游戏课程设计报告.docx_第3页
第3页 / 共21页
记忆力小游戏课程设计报告.docx_第4页
第4页 / 共21页
记忆力小游戏课程设计报告.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

记忆力小游戏课程设计报告.docx

《记忆力小游戏课程设计报告.docx》由会员分享,可在线阅读,更多相关《记忆力小游戏课程设计报告.docx(21页珍藏版)》请在冰豆网上搜索。

记忆力小游戏课程设计报告.docx

记忆力小游戏课程设计报告

计算机学院计算机科学与技术专业

《程序设计综合课程设计》报告

(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;

vectorstr;

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;

}

 

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

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1