当前位置:文档之家› 猜数字游戏课程设计

猜数字游戏课程设计

攀枝花学院课程设计题目:猜数字游戏院(系):数学与计算机年级专业:姓名:学号:指导教师:二〇**年*月***日攀枝花学院教务处制攀枝花学院本科学生课程设计任务书课程设计(论文)指导教师成绩评定表目录摘要 (5)1 需求分析 (6)1.1 需求概述: (6)1.2 需求环境: (6)1.3 功能描述: (6)2 概要设计 (7)2.1程序功能模块 (7)2.2 程序流程图 (7)3 详细设计 (8)3.1 随机数字模块 (8)3.1.1 代码功能 (8)3.1.2 详细代码 (8)3.2 循环输入所猜测数字 (8)3.2.1 代码功能 (8)3.2.2 详细代码 (8)3.3 对比两数字 (9)3.3.1 代码功能 (9)3.3.2 详细代码 (9)3.4 游戏计时 (9)3.4.1 代码功能 (9)3.4.2 详细代码 (9)4 测试运行 (10)4.1 显示随机数字 (10)4.2 不显示随机数字 (11)结束语 (12)参考文献 (13)程序源代码 (14)摘要猜数字游戏是一项有趣的小游戏,玩家需要输入一个数字与电脑所给出的随机数字相比较,如若数字相同,则游戏结束;若数字不同,则给出所猜测数字同随机数字比较大小,继续进行猜测,直至猜对为止。

猜数字游戏小程序编写过程中,需要循环输入所猜测数字;同时也需要电脑随机给出一个数字以及游戏计时函数。

关键词:循环;随机函数;计时函数;1 需求分析1.1 需求概述:猜数游戏突破一般游戏的娱乐功能,在娱乐的同时开拓了玩家的思维及应变能力。

猜数字游戏是一种看似简单但事实很难的游戏,我们在玩的同时要不停地动脑筋,计算着数字的概率,这就锻炼着我们对数字的敏感和对概率的熟悉。

这个游戏不仅学生可以玩,成人也是很适合的,我们在玩游戏的同时也在不停的锻炼我们的耐心和恒心。

由于我们是初学者,设计过程中有很多不足之处,所以我们的游戏并没有排行等功能。

该游戏可能有点难度,但我认为这或许会更好,我们玩的时候也是和我们自己比赛,不停的超越自己。

1.2 需求环境:本课程设计需要的设备为硬件要求和软件配置要求具体要求如下:①硬件要求:一台计算机。

②软件配置:WINDOWS、C/VC++6.0。

1.3 功能描述:1,游戏软件随机产生1个数字,但不显示,给用户提供输入提示符,让用户猜这个数字的值。

如果正确地猜中这个数字,则猜数字成功。

2,玩家猜数字的次数不限。

3,玩家每次输入猜测数字,统会将输入数字与本次游戏产生的随机数比较,相等则猜数字成功,不相等则根提示猜测数字与随机数比较,大了还是小了并记录当前游戏猜测时间。

4,当玩家成功猜中数字时,系统会输出本局所用时间作出评价。

2 概要设计2.1程序功能模块由需求分析知,本次课程设计是用循环实现猜数字演示程序,故其功能模块分为:随机数字模块,循环输入模块,对比模块,计时模块四个模块。

2.2 程序流程图3 详细设计3.1 随机数字模块3.1.1 代码功能由电脑随机产生提供一个整数(0到10000)来给游戏者猜测。

3.1.2 详细代码srand((unsigned)time(NULL)*100);srand((unsigned)time(NULL)*100);ran_num = 10000*rand() / (RAND_MAX)+0;解析:随机数字出现范围0~1000;要取得[a,b)之间的随机整数,使用(rand() % (b-a))+ a或者(rand() * (b-a)) / RAND_MAX + a。

3.2 循环输入所猜测数字3.2.1 代码功能键盘上输入猜测数字直至猜正确为止。

3.2.2 详细代码while(cin >> a)解析:使用while语句循环更加简洁,明了。

3.3 对比两数字3.3.1 代码功能输入数字同电脑随机数字比较,如果相同,则游戏结束;不同,给出提示,继续输入。

3.3.2 详细代码if(a < ran_num){cout <<" your number is small."<< endl;}else if(a > ran_num){cout <<"your number is big."<< endl;}else{break;}解析:比较输入数字同随机数字的大小,并给出提示。

3.4 游戏计时3.4.1 代码功能游戏开始时计时到游戏结束时终止计时,统计游戏所花时间,根据时间给出相应评语。

3.4.2 详细代码srand((unsigned)time(NULL)*100);clock_t start, finish;double duration; /* 测量猜数字的时间*/start = clock();...finish = clock();duration = (double)(finish - start) / CLOCKS_PER_SEC;解析:此处调用时间计时库函数。

4 测试运行4.1 显示随机数字图4.1.1图4.1.24.2 不显示随机数字图4.2.1图4.2.2图4.2.3图4.2.4图4.2.5结束语在这次课程设计中,我基本上完成了任务,但是游戏并没有做界面和游戏难度等级划分这给用户的实际操作带来了一定的困难,所以这是值得改进的地方,整个程序的功能有待进一步完善,让更多的方法能得以实现。

虽然在这次的课程设计中有很多的不足,但是我也有很多的收获。

上网查找资料,懂得了如何使电脑随机出现一个数以及随机的规律性与无规律性,同时也了解到一些关于计时的要求,使用方法等。

作为一个大的项目,我更体会到了团队合作精神的重要性,虽然我的设计是一个人一组的,但我深刻地认识到只有大家一起努力地学习并研究相关的知识,才能提高做事的效率,也才能更好更快地完成任务。

所以这将在我以后的学习和生活中有很在的引导作用。

在以后的学习中,我也将加倍地学习图形学的有关知识,以同样的方法学习其他的知识,不断地丰富自己,充实自己,提高自己的能力。

参考文献[1] 潘云鹤,董金祥等著.计算机图形学——原理、方法及应用.北京:高等教育出版社,2003.12[2] 孙家广等,计算机图形学(第三版),清华大学出版社,2004[3] 陈元琰编著.计算机图形学实用技术.北京:科学出版社,2000[4] 和青芳著.计算机图形学原理及算法教程.北京:清华大学出版社[5] 陆润民.C语言绘图教程.北京:清华大学出版社,1996[6] 陈锦昌,赵明秀.C语言计算机绘图教程.广州:华南理工大学出版社,1998.9[7] 杨昂岳.微机实用绘图方法与技巧.长沙:国防科技大学出版社,1995.12程序源代码#include<iostream>#include<time.h>using namespace std;int main(){int a;int ran_num;srand((unsigned)time(NULL)*100);ran_num = 10000*rand() / (RAND_MAX)+0;/*随机数字出现范围0~1000;要取得[a,b)之间的随机整数,使用(rand() % (b-a))+ a或者(rand() * (b-a)) / RAND_MAX + a。

*///cout <<"随机数字:"<< ran_num << endl;/*此行可删去为方便知道随机数字*/cout <<"input your number:"<< endl;clock_t start, finish;double duration; /* 测量猜数字的时间*/start = clock();while(cin >> a){if(a < ran_num){cout <<" your number is small."<< endl;}else if(a > ran_num){cout <<"your number is big."<< endl;}else{break;}}/*比较输入数字同随机数字的大小*/finish = clock();duration = (double)(finish - start) / CLOCKS_PER_SEC;cout <<"your time is:"<< duration <<"s"<< endl;if(duration < 30 ){cout <<" you are the best"<< endl;}else if(duration >=30 && duration < 60){cout <<"you are brtter!!"<< endl;}else{cout <<"you are good!"<< endl;}return 0;}。

相关主题