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

萌到你眼炸
739次浏览
2021年01月01日 03:04
最佳经验
本文由作者推荐

日上三竿-姓名预测学

2021年1月1日发(作者:费雪)






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




题 目: 猜数字游戏

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


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


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

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



..


.
五、 考核方式
指导老师负责验收程序的运行结果,并结合学生的工作态度、实际动手能力、创新精神
和设计报告等进 行综合考评,百分制计算,具体考核标准主要包含以下几个部分:
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天
“课程设计概述”
按功能模块编写详细设计说明,完成报告册中“总体设计”
编写程序、调试程序
编写程序、调试程序,完成报告册中“详细设计”
调试程序,完成报告册中“调试分析过程”
完成报告册中“总结”、“参考文献”、“课程设 计评审表”部分内
容,提交课程设计报告、源程序、面试或答辩
任 务
选择课程设计题目,分析课题的要求,确定设计方案,完成报告册中

..


.
一、课程设计概述











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



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

..


.




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


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








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

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


.









































三、详细设计(1)
..


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











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


.









#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;
}

..


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











6. 输出游戏结果
..


.
三、详细设计(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
..


.
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)
..


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

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

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

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

开发与设计的总体思想:

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

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

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

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






四、调试分析过程(2)
..


.
游戏初始画面










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

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


.

选择2系统帮助界面

五、总结
..


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

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

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

int类型,其取值范围从0~65535; 然后调用rand(),< br>到
它会根据提供给srand()的种子值返回一个随机数(在0

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

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

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

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



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


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








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

..


.




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

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

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

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


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







..


.
课程设计成绩评审表
姓名
设计题目
杨晨
学号
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日

..

豕交兽畜-中秋团圆古诗


荷花作文网-开国大典观后感


陕西民办大学-年总总结


戚风蛋糕卷-新滚滚红尘歌词


九月九重阳节-教师节作文400字


国内旅游推荐-幸福的节拍


牧羊人弹弓-企业技术创新


九九归一是什么意思-夏日故事