猜数字游戏课程设计
dnf复仇者刷图-新年短信
攀枝花学院课程设计
题 目: 猜数字游戏
院 (系):
年级专业:
姓 名:
学 号:
指导教师:
数学与计算机
二〇**年*月***日
攀枝花学院教务处制
攀枝花学院本科学生课程设计任务书
题 目
1、课程设计的目的
猜数字游戏
通过本课程设计使学生能够较全面的掌握
面向对象程序设计的有关概念和
开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身
的编程
能力。
2、课程设计的内容和要求(包括原始数据、技术要求、工作要求等)
编写一个猜数字游戏,要求:
计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了,
继续猜,直
至猜到,给出所用时间和评语。
3、主要参考文献
[1]
潘云鹤,董金祥等著.计算机图形学——原理、方法及应用.北京:高等教育出版
社,2003.12
[2] 孙家广等,计算机图形学(第三版),清华大学出版社,2004
[3]
陈元琰编著.计算机图形学实用技术.北京:科学出版社,2000
[4]
和青芳著.计算机图形学原理及算法教程.北京:清华大学出版社
[5]
陆润民.C语言绘图教程.北京:清华大学出版社,1996
[6]
陈锦昌,赵明秀.C语言计算机绘图教程.广州:华南理工大学出版社,1998.9
[7]
杨昂岳.微机实用绘图方法与技巧.长沙:国防科技大学出版社,1995.12
4、课程设计工作进度计划
序号
1
2
3
4
总计
时间(天)
1
2
1
1
5(天)
内容安排
分析设计准备
编程调试阶段
编写课程设计报告
考核
日期
备注
周一
周二至周三
周四
周五
年 月 日 指导教师(签字)
教研室意见:
年 月 日
学生(签字):
接受任务时间:
年 月
日
课程设计(论文)指导教师成绩评定表
题目名称
评分项目
工
作
表
现
20%
01
02
03
04
05
06
07
08
学习态度
科学实践、调研
课题工作量
综合运用知识的能力
应用文献的能力
设计(实验)能力,方案
的设计能力
计算及计算机应用能力
对计算或实验结果的分析
能力(综合分析能力、技
术经济分析能力)
插图(或图纸)质量、篇
幅、设计(论文)规范化
程度
设计说明书(论文)质量
创新
分
值
6
7
7
10
5
5
5
10
得
分
评价内涵
遵守各项纪律,工作刻苦努力,具有良好的科学
工作态度。
通过实验、试验、查阅文献、深入生产实践等渠
道获取与课程设计有关的材料。
按期圆满完成规定的任务,工作量饱满。
能运用所学知识和技能去发现与解决实际问题,能正确处理实验数据,能对课题进行理论分析,
得出有价值的结论。
能独立查阅相关文献
和从事其他调研;能提出并
较好地论述课题的实施方案;有收集、加工各种
信息及获取新知识的
能力。
能正确设计实验方案,独立进行装置安装、调试、
操作等实验工作,数据正确、可靠;
研究思路清
晰、完整。
具有较强的数据运算与处理能力;能运用计算机
进行资料搜集、加工、处理和辅助设计等。
具有较强的数据收集、分析、处理、综合的能力。
能
力
水
平
35%
成
果
质
量
45%
09
10
11
5
30
10
符合本专业相关规范或规定要求;规范化符合本
文件第五条要求。
综述简练完整,有见解;立论正确,论述充分,
结论严谨合理;实验正确,分析处理科学。
对前人工作有改进或突破,或有独特见解。
成绩
指
导
教
师
评
语
指导教师签名:
年 月 日
目 录
摘 要 ......
..................................................
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
摘 要
猜数字游戏是一项有趣的小游戏
,玩家需要输入一个数字与电脑
所给出的随机数字相比较,如若数字相同,则游戏结束;若数字不同,<
br>则给出所猜测数字同随机数字比较大小,继续进行猜测,直至猜对为
止。
猜数字
游戏小程序编写过程中,需要循环输入所猜测数字;同时
也需要电脑随机给出一个数字以及游戏计时函数
。
关键词:循环;随机函数;计时函数;
1 需求分析
1.1 需求概述:
猜数游戏突破一般游
戏的娱乐功能,在娱乐的同时开拓了玩家的思维及应变
能力。猜数字游戏是一种看似简单但事实很难的游
戏,我们在玩的同时要不停地
动脑筋,计算着数字的概率,这就锻炼着我们对数字的敏感和对概率的熟悉
。这
个游戏不仅学生可以玩,成人也是很适合的,我们在玩游戏的同时也在不停的锻
炼我们的耐
心和恒心。 由于我们是初学者,设计过程中有很多不足之处,所以
我们的游戏并没有排行等功能。该游
戏可能有点难度,但我认为这或许会更好,
我们玩的时候也是和我们自己比赛,不停的超越自己。
1.2 需求环境:
本课程设计需要的设备为硬件要求和软件配置要求具体要求如下:
①硬件要求:一台计算机。
②软件配置:WINDOWS、CVC++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 <<
}
else if(a > ran_num)
{
cout <<
}
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.2
4.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
#include
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 <<随机数字:此行可删去为方便知道随机数字
*
cout <<
clock_t start, finish;
double duration;
* 测量猜数字的时间*
start = clock();
while(cin >> a)
{
if(a <
ran_num)
{
cout <<
}
else if(a > ran_num)
{
cout <<
}
else
{
break;
}
}*比较输入数字同随机数字的大小*
finish = clock();
duration =
(double)(finish - start) CLOCKS_PER_SEC;
cout <<
if(duration < 30 )
{
cout <<
}
else if(duration >=30 &&
duration < 60)
{
cout <<
}
else
{
cout <<
}
return 0;
}