猜数字游戏C语言课程设计报告书

别妄想泡我
806次浏览
2021年01月01日 03:12
最佳经验
本文由作者推荐

升学宴祝酒词-散文作家

2021年1月1日发(作者:郭献瑞)


专业资料




《C程序设计》
课程设计报告
(2014— 2015学年第 2 学期)




题 目: 猜数字游戏

学 院: 机械工程学院
班 级: 机械1310班
学 号: 1303090190
姓 名: 杨晨
指导教师: 罗涛华
时 间:起 2015年5月25日止2015年5月31日
word完美格式


一、 课程设计基本信息
课程代码:05190124
课程名称:计算机基础课程设计
课程英文名称: Computer-based Course Design
课程所属单位(院(系)、教研室):数学与计算机学院计算机基础课程群
课程面向专业:食 品科学与工程学院、机械工程学院、电气与电子工程学院、土建学
院、动物科学与营养工程学院、化学与 环境工程学院、工商管理类、国际经济与贸易、旅游
管理、金融学、行政管理、汉语言文学、英语、护理 学、康复治疗专业、生物科学类、制药
工程、制药工程(生物制药)、药物制剂、物流管理
课程类型:必修课
先修课程:大学计算机基础通识选修课程、程序设计课程
学分:1 总学时:1周
二、 课程设计目标
掌握所学语言程序设计的方法,熟悉 所学语言的开发环境及调试过程,熟悉所学语
言中的数据 类型,数据结构、语句结构、运算方法,巩固和加深对理论课中知识的理解,提
高学生对所学知识的综合 运用能力。通过综合设计要求达到下列基本技能:
1.培养查阅参考资料、手册的自学能力,通过独立 思考深入钻研问题,学会自己分
析、解决问题。
2.通过对所选题目方案分析比较,确立方 案,编制与调试程序,初步掌握程序设计
的方法,能熟练调试程序。
3.系统设计编程简练 ,可用,功能全面,并有一定的容错能力。用户界面良好,有
较好的输出功能。在完成课题基本要求后, 具有创新型设计,具有一定的实用价值。
4.根据个人的设计调试过程,撰写设计报告。


三、 课程设计内容
熟练掌握所学语言的基本知识:数据类型(整形、实型、字符 型、指针、数组、结构
等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构 (顺序结构、
判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。进一步掌握各种
函数的应用,包括时间函数、绘图函数,以及文件的读写操作等。

四、 课程设计要求
1. 要求每个同学都要认真对待,积极参与。
2. 课程设计结束时,提交 完成的所有源程序、相关文件和可执行文件。同时填写并完
成《课程设计报告册》。
3. 不符合要求的程序、设计报告、抄袭的设计报告或源程序代码、在设计中完全未参
与的将作不及格处理。



·1·


五、 考核方式
指导老师负责验收程序的运行结果,并结合学生的工作态度、实际动手能力、创新精神
和设计报告等进 行综合考评,百分制计算,具体考核标准主要包含以下几个部分:
1. 程序运行情况
20分

2. 程序功能的完善程度
10分

3. 程序结构的合理性
10分

4. 对问题的答辩情况
20分

5. 创新情况
10分

6. 学生的工作态度与独立工作能力
10分

7. 设计报告内容的规范性
20分

备注:
1. 按规定时间填写各阶段文档,学习态度加5分
2. 设计报告内容雷同扣40分,无调试过程问题分析扣10分,无参考文献扣10分
3. 源程序无注释则在程序结构合理性扣10分
六、 课程设计主要参考资料
1. 谭浩强著. C程序设计(第3版). 北京:清华大学出版社,2005.7
2. 刘光蓉、汪靖、陆登波主编. C程序设计实验与实践教程. 北京:清华大学出版社,
2011.2
3. 游洪跃主编. C语言程序设计实验与课程设计教程. 北京:清华大学出版社,2011.5
4. (美) Perter Van Der Linden著,徐波 译. C 专家编程(C编程语言经典之
作) . 北京:人民邮电出版社,2008.2
5. 凯尼格 著,高巍 译. C陷阱与缺陷. 北京:人民邮电出版社,2008.2
6. Mark de Berg等著,邓俊辉译,《计算几何-算法与应用(第3版)》,清华大学出
版社,2009年8月
7. 杨克昌编著,《计算机程序设计典型例题精解》,国防科技大学大学出版社,1999
年3月
七、 课程设计计划安排
时 间
课程设计前一周
课程设计第1天
课程设计第2天
课程设计第3天
课程设计第4天
课程设计第5天
“课程设计概述”
按功能模块编写详细设计说明,完成报告册中“总体设计”
编写程序、调试程序
编写程序、调试程序,完成报告册中“详细设计”
调试程序,完成报告册中“调试分析过程”
完成报告册中“总结”、“参考文献”、“课程设 计评审表”部分内
容,提交课程设计报告、源程序、面试或答辩
任 务
选择课程设计题目,分析课题的要求,确定设计方案,完成报告册中

·2·


一、课程设计概述











1. 主函数实现正整数的随机产生,主菜单的显示(图
18.1)
2. 编写一函数实现帮助信息的输出(图18.2)
计算机随机生成一个各位数字不重复的四位数,系统根
据玩家输入的数字给出提示信息: A --表示位置与数字
均正确的个数; B--表示数字正确但位置不正确的个
数。玩家根据提示 调整输入,如果玩家输入超过八次仍
不成功,游戏自动结束。
求 3. 编写一函数控制比较 的次数和信息的输出。当玩家输
入次数不超过8时,每次将玩家输入的数字和随机数
依次进行比 较,如果匹配,则输出“You Win !”,
否则输出提示信息。



掌握结构化程序设计的主体思想,以自顶向下逐步求精
的方法编制程序解决一些实际的问题, 为将来编写软件
积累一些典型的案例处理经验。

·3·






操作系统:Windows7
软件环境:Microsoft Visual C++ 6.0
二、总体设计(1)
·4·


猜数字游戏软件的总体目标是按照特定游戏规则为用
户提供一个方便友好的游戏界面,同时给用户提供排行
榜的功能使用户能够按照特定的目标提高自己的 成绩,
并且提供相应的帮助功能。游戏规则如下。
①游戏软件随机产生4个数字,但不显 示,给用户
提供输入提示符,让用户猜4个数字的值和位置顺序。
如果数字值和位置顺序均正确 ,则猜数字成功。
②玩家有8次猜数字的机会,如果在8次之内仍末
猜出正确的数字值和 数字位置顺序,则提示用户游戏失








败。
③一旦玩家在8次的次数限制内猜出正确的数字值
和位置顺序,则赢得游戏。

本游戏软件需要实现以下一些基本功能。
①游戏区:玩家可以在游戏区逐次猜数字,系统给出玩家每次猜数字后的提示,包括数值、位置均正确的
数字个数和数值正确但位置不正确的数字个数 。
②帮助:玩家通过帮助功能了解游戏规则。
③退出:玩家想结束并退出游戏系统。
二、总体设计(2)
·5·












































三、详细设计(1)
·6·


C编译器提供了基于ANSI标准的伪随机数发生器
函数rand( )和srand(),用来生成随机数。这二个函数
的工作过程如下: srand()提供一个种子,它是一个
unsigned int类型,其取值范围从0~65535; 然后调











用srand(),它会根据提供给sran d()的种子值返回一
个随机数(在0到32767之间); 根据需要多次调用
srand(),从而不间断地得到新的随机数; 无论什么时
候,都可以给 srand()提供一个新的种子,从而进一步
“随机化”srand()的输出结果。
三、详细设计(1)
·7·




功< br>能





#include
#include
#include
void main( void )
{
void help(); 函数声明
void compare(int a[]); 函数声明
int i,k = 0,a[4],b;
srand( (unsigned)time( NULL ) );
while (1)
{


for(i=0;i<4;i++)

{
a[i]=rand()%10;
}

if(a[0] != 0)



break;
}

·8·


三、详细设计(2)
1. 输出游戏菜单
2. 输出游戏规则
3. 比较用户输入数据与系统随机数,并产生提示信息
4. 玩家从键盘输入数据
5. 比较对应位置上的数











6. 输出游戏结果
·9·


三、详细设计(2)
printf(猜数字游戏:n
printf(
printf(新游戏n
printf(帮助n
printf(退出n
printf(
printf(请输入选择:n
scanf(
while(b!=3)
{
switch(b)
{
case 1:compare(a);break;

case 2:help();break;
default:printf(

}
scanf(

}
}


void help()游戏规则说明函数

{
printf(该游戏由程序随机生成四个0到9的数字n游戏者有八

次机会来根据系统提示猜测数字n
printf(表示位置与数字均正确的个数nB-- 表示数字正确

但位置不正确的个数n
}





void compare(int a[])比较用户输入数据与系统随机数,并产生提
示信息
{
int b[4],i,j,k=1,A=0,B=0,N=8,x;
printf(请输入猜测的四位数:n
while(A!=4&&k<=N)
{
A=0;B=0;
scanf(玩家从键盘输入的数据
while(x<999||x>10000)
{
printf(输入不合法!n
·10·


scanf(
}


for(i=3;i>=0;i--)
{
b[i]=x%10;
x=x10;
}
for(i=0;i<4;i++)比较对应位置上的数
if(a[i]==b[i]) A++;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
if(a[i]==b[j]&&i!=j) B++;
printf(
if(A==4) printf(
k++;
}
if(A!=4&&k>8) printf(游戏失败!n
}

四、调试分析过程(1)
·11·


刚开始执行输入函数 ,按数字顺序输入,输完后执行
显示功能,数字、字母的位置显示不对,试着在其中增
加一些语 句,希望能把所需结果按正常顺序显示,但暂
时没有成功,最后在老师的帮助下,所需结果能按正常顺序输出了。
在前面对猜数字游 戏进行需求分析的过程

中,已经初步明确了 系统的主要功能模块和用

户需求,下面将在总体设计的过程中,给出猜

数 字游戏的模块结构、流程描述以及界面布局,
并使得系统的总体设计符合软件工程中总体设
程< br>计的基本原则。

开发与设计的总体思想:

猜数字游戏是 一种大众娱乐游戏,开发与
设计的重点在于游戏供玩家进行猜数字游戏的

原始数字的 产生和用户每次进行猜数字操作之

后的游戏提示,这两方面的规则设计往往决定
了软 件运行的正确性和质量。同时,要谨记调

试失败的原因,以免下次犯同类错误。






四、调试分析过程(2)
·12·


游戏初始画面










进入系统选择1进行游戏,随机输入4个不同的数字

输入3个不同的数则会提示输入有误
·13·



选择2系统帮助界面

五、总结
·14·

< br>C编译器提供了基于ANSI标准的伪随机数发生器函数

rand()和srand( ),用来生成随机数。这二个函数的工

作过程如下:srand()提供一个种子,它是一个 unsigned

int类型,其取值范围从0~65535; 然后调用rand(),

它会根据提供给srand()的种子值返回一个随机数(在0

到327 67之间); 根据需要多次调用rand(),从而不间

断地得到新的随机数; 无论什么时候,都可以给

srand()提供一个新的种子,从而进一步“随机

化”rand()的输出结果。
在进行课程设计之前几天,不知从何入手,一脸茫
然 。为什么呢?因为我们想自己自己做出来而不参考任
何资料,以为这样才可体现我们的智慧和能力,其实 这
是大错特错的。当然也不是一味强调自己动脑自己做出



体< br>来不好,从开发方面角度来说是可以的,有些东西也并
不是一味的照搬照抄。抱着这样的态度迷茫 了三四天只
想出了一丁点大至结构。最后决定上网找资料,不查不
知道,一查大吃一惊,不但自 己的想法网上比比皆是,
会 比自己的想法更完美更合理的多得看都看不完。此时真
是自愧不如 ,如早从网上借鉴,集大家之所成,加上自
己的修改完善,早已做出了更好的系统结结构和想法了。现在才知道,一个人的智慧敌不过千万人智慧的集成,
能借鉴的尽量借鉴,然后再修改完善,增加自 己所需的
·15·


功能,做出自己的特色。伟大的物理学家牛顿不 也说过
他之所以成功是站在伟人的肩上吗?
完成设计后,我觉得收获不少,首先是自己首次应
用所学知识做出了这个游戏系统,以前从未做过这样大
(这是对我而言,在专业人仕看来是小菜 一碟)的程序,
多少心里有点甜美的感觉;而收获更大的是让我学到了
怎样和他人合作完成一件 任务,以及在完成的过程中如
何沟通。








六、参考文献
完成设计是在一定时间内完成的,在完成这个设计
时,我们做得显然有一些紧迫,我想是没合理安排好 时
间和开始态度不正确所致,做守完后我觉得合理安排时
间是非常重要的否则可能时间已到而还 无法完成或完成
得仓促,应合理安排时间给各个环节。

·16·






《C语言程序设计实验指导与习题解答》 蒋清明
人民邮电出版社

《C语言程序设计案例教程》 张基温 清华
大学出版社

《课程设计与系统开发案例》 伍俊良 清华大
学出版社

《C程序设计 (第三版)》 谭浩强 清华大学
出版社


《C语言程序设计》 蒋清明 人民邮电出版社







·17·


课程设计成绩评审表
姓名
设计题目
杨晨
学号 1303090190
猜数字游戏
班级 机械1310班
计算机随机生成一个各位数字不重复的四位数,系统根据玩家输入的数字给出提示
作品
信息: A--表示位置与数字均正确的个数; B--表示数字正确但位置不正确的个数。
描述
玩家根据提示调整输入,如果玩家输入超过八次仍不成功,游戏自动结束。

指导
教师
评语
观测内容
程序运行情况
程序功能的完善程度
程序结构的合理性
对问题的答辩情况
创新情况
工作态度与独立工作能力
设计报告内容的规范性
分值
20
10
10
20
10
10
20
评 分(上限)
A
20
10
10
20
10
10
20
B
15
8
8
15
8
8
15
C
10
6
6
10
6
6
10
D
5
4
4
5
4
4
5
E
3
2
2
3
2
2
3
得 分








指导教师评定成绩


指导教师(签名)
2015年 5月 29日

·18·

冰霜守卫-爱哭的男人


短发女孩-书通二酉


圆号独奏-要强的女人


如何下载mp3歌曲-幼儿园教师节活动


s开头的单词-时间都去哪儿了


没有共产党就没有新中国歌词-余杭四月


零峰-商会成立贺电


受欢迎的-仁爱英语七年级下册