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

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

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

课程设计报告

课程名称C语言程序设计

课题名称猜数字游戏

专业自动化

班级1081班

学号201013110111

姓名罗超超

指导教师王颖

2011年6月20日

湖南工程学院

课程设计任务书

课程名称C语言程序设计

课题猜数字游戏

专业班级自动化1081 班

学生姓名罗超超

学号201013110111

指导老师王颖

审批

任务书下达日期2011 年 6 月13 日任务完成日期2007 年6 月20 日

猜数字游戏

一、问题描述:

该游戏可以由程序随机产生或由用户输入四个0到9之间的数字,且不重复。玩游戏者通过游戏提示输入八次来匹配上面所输入的数字。A表示位置正确且数字正确,B表示数字正确而位置不正确。

二、功能要求:

1、本游戏显示这样的菜单:

(1)随机产生数据

(2)用户输入数据

(3)退出游戏

2、游戏成功与否都能返回主菜单

三、算法提示:

1、数据结构:数组

2、用简单的程序设计方法

四、测试数据:

测试数据: 3792

第一次输入: 1234

0A2B

第二次输入: 5678

0A1B

第三次输入: 0867

0A1B

第四次输入: 9786

1A1B

第五次输入: 1794

2A0B

第六次输入: 2793

2A2B

第七次输入: 3792

4A0B

游戏成功!!!

五、其它:

对该系统有兴趣的同学可以在实现系统基本功能后,完善系统的其它功能,如:破记录功能,若你所匹配的次数小于纪录保持者,则为破纪录。

目录

第一章绪论 (6)

第一节项目背景 (6)

第二节本课题所做的工作 (6)

第三章程序设计 (8)

第一节程序的功能 (8)

第二节输入输出的要求 (8)

第三节程序模块 (8)

第一条模块组成 (8)

第二条层次结构 (9)

第三条模块调用 (10)

第四章分析 (11)

第一条模块解释与功能 (11)

第五章调试 (15)

第一节菜单测试 (15)

第二节游戏测试 (16)

第一条在自定义中 (16)

第二条在随机游戏中 (17)

第六章总结 (19)

第七章附录 (20)

第一节附录A源程序 (20)

第二节附录B 参考文献 (30)

课程设计评分表 (31)

第一章绪论

第一节项目背景

C语言是一种优秀的程序设计语言,其功能丰富,表达能力强,程序执行效率高,可移植性好;C语言既有高级计算机程序设计语言的特点,同时又具有部分汇编语言的特点,因而C语言具有较强的系统处理能力。通过C语言函数结构可以方便的实现程序的模块化;在C语言的基础上发展起来的面向对象程序设计语言如C++,java,c#等于C语言有许多的共同特征,掌握C语言对学习进而应用这些面向对象的程序设计语言有极大的帮助。因为其独特的语言机制在计算机科学领域中得到了广泛的应用。目前,大部分工科专业的计算机程序语言都是C语言,主要学习面向过程的程序设计方法。

C语言课程设计是综合性比较强的一门设计课程,它考察了学生对C语言的掌握及运用情况。有助于提高学生的分析,理解及动手实践能力。是计算机的基础课程。本题目运用了结构体变量的定义及初始化,for,do-while循环,if,switch-case语句,文件打开,文件保存及其复合使用。

第二节本课题所做的工作

本课题设计一个猜数字游戏,用户根据自己的爱好与兴趣进行随机游戏与自定义游戏,如果用户想自定义一个数字来猜,可以由用户自己进行输入,如果想挑战高难度,用户可以猜测由电脑产生的一个随机数,具体工作有:系统自动产生一个随机数或用户自己定义一个随机数,制作游戏主菜单,制作游戏继续菜单,设计游戏程序,设计友好的界面提示与帮助。

本课程设计分为六个章节,每个章节为课题展开,重程序的需求分析,程序总体设计,程序设计等逐步向读者介绍,说明本课题。还提供了源程序供读者参考。

第二章需求分析

本程序为猜数字游戏,用户可以根据自己的爱好与兴趣进行随机游戏与自定义游戏,如果用户想自定义一个数字来猜,可以由用户自己进行输入,如果想挑战高难度,用户可以猜测由电脑产生的一个随机数;

每个游戏者都想在自己游戏结束时看到自己的得分情况,因此需要对游戏结果进行打分;

游戏者在游戏时,可能想到在任意时候都可以退出游戏,因此,无论游戏进行到任何阶段,都能够返回到主菜单或退出游戏;

在退出游戏之前,如果游戏者要再次进行挑战,应该设置一个提示游戏继续提示模块;

为了能够更好的迎合游戏者,界面设置要和谐,要能给用户有足够的提示,因此,系统菜单应该包括游戏开始,游戏退出,游戏说明,关于,游戏得分榜五个部分。

第三章程序设计

第一节程序的功能

该游戏可以由程序随机产生或由用户自定义四个0到9之间的数字,且不重复。玩游戏者通过游戏提示输入八次来匹配上面所输入的数字。输入正确则为成功,累计八次错误则游戏失败。游戏成功根据猜测次数给出相应的得分!该游戏还能自动判断你输入是否有误,如果输入有误,则自动提示您正确的操作。

第二节输入输出的要求

按提示输入0-9之间的数字进行操作

①输入如:在菜单页面时

输入1进入游戏;

输入2退出游戏;

输入3进入游戏说明页面;

输入4查看游戏版本及版权;

输入5查看游戏得分榜。

②输出如:

在游戏成功与失败时输出游戏得分与挑战成功与否!如果当输入的选项出现错误时,则系统输出游戏提示“你输入有误,请确定后重新输入!”。

第三节程序模块

第一条模块组成

本程序分为八个模块,main()主模块,menu()菜单模块,startf()开始模块,save()存储模块,display()排行榜模块,,shuomingf()说明模块,tuichu()退出模块,guanyuf ()关于模块。

第二条层次结构

第三条 模块调用

显示菜单

输入选项

开始

返回?

返回?

返回?

执行开始函数 Startf( )

执行得分榜函数defen()

执行说明函数 Delete( )

执行关于语句guanyu()

退出

= =1 = =5 = =3 = =4 = =2

Y Y Y

N

N

N

第四章分析

第一条模块解释与功能

main()--主模块,操作系统的开始与结束运行;

void main()/*主函数*/

{

menu();//调用菜单模块进行菜单选择

}

menu()--菜单模块,打印菜单选项给游戏者进行选择,进入相应的模块并执

行;

main()--主模块,操作系统的开始与结束运行;

void main()/*主函数*/

{

menu();//调用菜单模块进行菜单选择

}

menu()--菜单模块,打印菜单选项给游戏者进行选择,进入相应的模块并执行;

scanf("%d",&k);

switch(k) /*选择项*/

{

case 1:

{

system("cls");

startf(); //开始游戏

};break;

case 2:

{

system("cls");

break;

};break;

case 3:

{ system("cls");

return shuomingf();///跳到说明

}

case 4:

{

system("cls");

return guanyuf();//跳到关于

}

default :

{ printf("\t\t您的输入有误,请重新输入!\n");

system("pause");

system("cls");

return menu();//返回主菜单

}

startf()--开始模块,猜数字游戏开始,游戏者按照自己的意愿来进行游戏,系统对游戏的输入进行判断,真正实现了系统与游戏者完美融合;

scanf("%d",&f);//进行是否自定义选择

switch(f)

{

case 0://进行随机游戏

srand((int)time(0));/*随机数据的产生*/

n=1+(int)(10000.1*rand()/(RAND_MAX+1.0));

break;

default:

printf("你输入有误,请重新输入!!");

system("pause");

case 1:printf("请输入你要自定义的数据\n");

scanf("%d",&n);

break;

}

Do//进行游戏,知道猜对或8次才结束

{

int c;

printf("请输入四个0到9之间的数字,且不重复,如:1234\n");

scanf("%d",&cs);/*判断随机数据是否合格*/

int g1,s1,b1,q1,A=0,B=0;

g1=cs%10;///**拆分测试数据**//

s1=cs%100/10;

b1=cs/100%10;{

if(cs<1000)

q1=0;

else

q1=cs/1000;///**拆分测试数据**//

}

int p[4]={q1,b1,s1,g1},i,j;/*比较各位数是否相等*/

if (cs==n)//游戏区//

break;

{

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

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

if (p[i]==a[j])

if (i==j)

A++;

else

B++;

m++;//次数累计

system ("cls");

printf("\t\t\t%dA%dB,m=%d",A,B,m);

printf("\n");

printf("\n");

}

}

while(m<8);//进行游戏,知道猜对或8次才结束

phangb()--排行榜模块,进入排行榜查看自己及以往的游戏排行情 Tuichu()--退出模块,退出整个游戏系统;

scanf("%d",&h);

switch(h)//是否退出模块选择

{

case 1:

{

system("cls");

menu();//返回主菜单

};break;

case 2:

{

system("cls");

break;

};break;

default :

{

system("cls");

printf("您的输入有误,请重新输入!");//提示报错

return menu();

Shuomingf--说明模块(),向游戏者介绍游戏的规则,并提示游戏者如何进行游戏;

Guanyuf()--关于模块,向游戏者介绍本游戏的版本及版权。

第五章调试

第一节菜单测试

在主菜单中

输入1:进入游戏;

输入2:退出游戏;

输入3:进入游戏说明;

输入4:进入关于;

输入5:进入游戏排行榜;

输入其它数据或按键时:提示“你输入有误,请重新输入”;

2)在自定义数值中

输入1:进入自定义,提示请输入你要自定义的数据;

输入0:进入随机游戏,系统将自动生成数据给游戏者猜;

输入3:系统报错,提示“你输入有误,请重新输入!”;

3) 在继续菜单中

输入1:继续进行游戏;

输入2:退出游戏;

输入3:系统报错,提示“你输入有误,请重新输入”;

第二节游戏测试

第一条在自定义中

自定义:输入1234

1) 第一次1234

结果如下图:

2) 第一次1356

第二次2345 0A3B;

第三次3456 2A0B;

第四次5678 0A0B

第五次7890 0A0B;

第六次0123 0A2B;

第七次2357 0A2B;

第八次1234

结果如下图:

自定义:输入12

提示报错,--“是否自定义数值”,直至定义正确;

结果如上图:

第二条在随机游戏中

随机数据 1234

第一次1356 1A0B;

第二次2345 0A3B;

第三次3456 2A0B;

第四次5678 0A0B ;

第五次7890 0A0B;

第六次0123 0A2B;

第七次2357 0A2B;

第八次1234

结果如下图:

第六章总结

在一周的时间里,我们每天几乎都要面对着电脑十个小时以上,上课时去机房写程序,回到宿舍还要继续奋斗;要是只是在电脑面前坐着也没有什么难过的,但是在电脑面前还要想着怎么去写代码,怎么去安排程序结构,怎么去实现想要的程序功能等等一系列的事情;特别是在调试程序的时候更是让人头痛,辛辛苦苦的写好了函数,等到调试运行就出现一堆错误,真的拿它没办法呀!不过还好有书本的基础知识、发达的网络通信、知识渊博的老师以及热心的同学的帮助,才使我能将那些问题一一解决!

在还没有进行课程设计实训之前,我对C语言知识的掌握真的只能说是很肤浅,我只知道分开来使用那些语句和语法,对他们根本没有整体感念,所以在学习C语言时经常会感觉很盲目,甚至不知道自己学这些东西是为了什么。通过一周的课程设计,我对C语言有了更深入的了解,同时也建立起了一个对C语言的整体架构和编程思想;我还学到了很多课本上没有学到的东西,也了解了很多以前不了解的计算机语言方面的知识;他扩充了我的知识,也开拓了我的视野,让我们了解了我们学习计算机语言的目的和将来发展的方向。

通过该程序设计,我深刻体会到要编好一个程序必须具备扎实的基础知识由于以前学习的相关知识比较浅显,所以一开始我便感觉无从下手,但通过与同学间的互相讨论交流及上网搜索的相关资料,我渐渐掌握了做设计报告的基本方法和步骤,在自己的努力最终圆满完成了老师要求设计任务。

其实这次最大的收获还是发现自己的不足,原来自己所掌握的知识只是皮毛而已,还有对于计算机的基本操作知道的真是少的可怜,虽然受了点小小的打击,但总比一直错下去、学了等于没学强,这样至少不会一直迷迷糊糊下去了。另外我也深深理解上机操作的重要性,有时候觉得自己很认真很仔细,对于编写的程序非常自信,可实际一上机操作就不行了,会出现错误,虽然会打击自信心,但总比一直错下去、学了等于没学强,那样学习也将失去意义,学习就是一个不断犯错又不断修正的过程,我觉得我每犯一个错误都会从中收获一些东西,这也叫经验吧,是这样通过不断犯错积累的,所以对于学习中的错误更要无惧无畏。

尽管这次课设做的可谓坎坎坷坷,但现在想来还是不错的,最起码让我对程序啊、函数啊的理解加深了,对于课本上忽略的东西也有所了解,最重要的是发现自己还不行,要努力,而且很努力才行。

第七章附录第一节附录A 源程序

#include

#include

#include

#include"math.h"

static int t;

int a[100];

extern startf();/*外部说明*/

extern menu();/*外部说明*/

extern backf();/*外部说明*/

extern tuichu();/*外部说明*/

extern shuomingf();/*外部说明*/

extern guanyuf();/*外部说明*/

//学生基本信息保存模块

void Save(int x)

{

FILE *fp;

int i;

a[t]=x;

t++;

fp=fopen("c:\\youxi.txt","w+");

for(i=0;i

{

fwrite(&a[i],sizeof(int),1,fp);

//每次写一个条录入或一个结构体数组至文件}

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

C语言程序设计课程设计 专业:自动化 班级: 姓名: 学号: 指导教师: 兰州交通大学自动化与电气工程学院 2015年07月21日

一.引言 1.1设计目的 复习和巩固C语言基础知识,进一步加深对C语言的理解和掌握。提高同学将课本上的理论知识和实际结合的能力,锻炼同学的分析解决实际问题的能力,提高同学团队合作的能力。使同学们善于观察和思考,善于合作,具备实践编程的基础素质,和实际问题分析的思考方式。 1.2设计要求 在设计时充分地分析和理解问题本身,综合考虑系统功能,怎样使系统结构清晰、合理、简单和易于调试。然后详细设计,确定每个过程和函数的简单功能,以及过程(或函数)之间的调用关系。最后认真完成课程设计说明书,并对设计方法,结果等进行总结。 充分地分析和理解问题本身,弄清要求做什么(What to do?)。在确定解决方案框架过程中(How to do?),综合考虑系统功能,考虑怎样使系统结构清晰、合理、简单和易于调试。最后确定每个过程和函数的简单功能,以及过程(或函数)之间的调用关系。 确定算法的主要流程,在此基础上进行代码设计(Coding),每个明确的功能模块程序一般不超过60行,否则要进一步划分。 上机前程序静态检查可有效提高调试效率,减少上机调试程序时的无谓错误。静态检查主要有两种途径:(1)用一组测试数据手工执行程序;(2)通过阅读或给别人讲解自己的程序而深入全面地理解程序逻辑。 二.基础题 2.1题目 用选择法对10个数进行排序。 有一个已排好序的数组。现输入一个数,要求按原来的规律插入到原数组中。 2.2解题思路 程序的主要功能是对数组元素用排序函数按从小到大的顺序进行排序。 先定义一个10个元素的一维数组a[10],然后从电脑输入10个数(也就是对数组赋值),然后使用一次fun()函数,对这10个数进行排序;然后再定义一个11个元素的一维数组b[11],同时再从电脑输入一个数同a[10]一起赋值给b[11],然后再使用fun()函数,重新排序的到最后的有顺序的一组数据。 2.3流程图 子函数流程图如图1所示:

贪吃蛇游戏课程设计实验报告全解

辽宁科技大学课程设计说明书 设计题目:基于C#的贪吃蛇游戏 学院、系:装备制造学院 专业班级:计算机科学与技术 学生姓名:叶佳佳 指导教师:丁宁 成绩: 2015年12月12日

目录 一、概述 (1) 1、用C#实现该设计的方法 (1) 2、贪吃蛇游戏说明 (1) 二、实验目的及设计要求 (1) 1、实验目的 (1) 2、实验要求 (2) 三、课程设计具体实现 (2) 1、概要设计 (2) 1.1、设计思想 (2) 1.2、主模块实现 (2) 1.3、主函数流程图 (4) 2、详细设计 (5) 2.1、设计思想 (5) 2.2、具体模块实现: (5) 四、调试过程及运行结果 (10) 1、调试过程 (10) 2、实验结果 (11) 五、实验心得 (12) 六、参考资料 (13) 七、附录:源代码 (13)

一、概述 1、用C#实现该设计的方法 首先应该了解设计要求,然后按照功能设计出实际模块,每个模块都要完成特定的功能,要实现模块间的高内聚,低耦合。设计模块是一个相当重要的环节,模块的数量不宜太多,也不宜太少,要是每个模块都能比较简单的转换成流程图。模块设计完成后,就该给每个模块绘制流程图。流程图要尽可能的简单且容易理解,多使用中文,补一些过长的代码,增加理解难度。此外,流程图应容易转换成代码。 根据流程图编写好代码后在WindowsXP操作系统,https://www.doczj.com/doc/f810415508.html,2008开发环境下进行运行测试,检查错误,最终设计出可行的程序。 2、贪吃蛇游戏说明 游戏操作要尽可能的简单,界面要尽可能的美观。 编写程序实现贪吃蛇游戏,贪吃蛇游戏是一个深受人们喜欢的游戏:一条蛇在密闭的围墙内,在围墙内随机出现一个食物,通过键盘上的四个光标键控制蛇向上下左右四个方向移动,蛇头撞到食物,则表示食物被吃掉,这时蛇的身体长一节,同时计10分;接着又出现食物,等待被蛇吃掉,如果蛇在移动过程中,撞到墙壁、障碍物或身体交叉(蛇头撞到自己的身体),则游戏结束。游戏结束时输出相应得分。 具体要求有以下几点: (1)对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理; (2)系统设计要实用,采用模块化程序设计方法,编程简练、可用,功能全面; (3)说明书、流程图要清楚; 二、实验目的及设计要求 1、实验目的 .NET课程设计是教学实践环节中一项重要内容,进行此课程设计旨在掌握基础知识的基础上,进一步加深对VC#.NET技术的理解和掌握; 提高和加强学生的计算机应用及软件开发能力,使学生具备初级程序员的基本素质; 培养学生独立分析问题、解决问题、查阅资料以及自学能力,以适应信息管理行业日新 1

数字逻辑课程设计报告(猜数字游戏)

滁州学院 课程设计报告 课程名称:数字逻辑课程设计 设计题目:猜数字游戏的设计 院部:计算机与信息工程 专业:网络工程 组别:第五组 起止日期: 2012年5月28日~2012年6月15日 指导教师:张永定 计算机与信息工程学院二○一二年 、

课程设计任务书 课程设计题目猜数字游戏的设计 组长严盼盼学号2011211329 班级网工112班院部计算机与信息工程专业网络工程 组员武倩闫静周晶晶夏艾 指导教师张永定 课程设计目的1.设计一个具有用保存用来进行比较的数据,输入新的数据通过比较器与保存的数据进行比较,用计数器进行计数统计功能的电路。 2.通过此次实验加深对所学数电知识的运用。 3.锻炼Multisim 10的仿真能力和硬件调试能力。 课程设计所需环境硬件环境:微型计算机 软件环境:Windows XP Multisim 10 课程设计任务要求1.猜数字游戏由若干个按键、若干个发光二极管。 2.输入为六位二进制数,与正确值进行比较,判断得出结果。 3.如果出现连续5次猜错,则红灯亮,表示游戏结束。 4.游戏开始时,可以对存储值进行设置。 课程设计工作进度计划 序号起止日期工作内容分工情况 1 5.28~6. 2 课程内容介绍和查找资 料严盼盼:介绍课程内容 武倩、闫静、周晶晶、夏艾:查找资料 2 6.3~6.6 设计总体思路,基本原 理和框图 严盼盼:分析数字电路所需的芯片 3 6.7~6.10 单元电路设计严盼盼:对电路进行总设计 武倩、闫静、周晶晶:负责了解各芯片功能 夏艾:负责连接线路 4 6.11~6.12 搭建仿真电路并进行测 试,调试电路严盼盼、周晶晶:搭建电路 武倩、闫静、夏艾:故障分析并进行改进 5 6.13~6.15 整理文档与总结武倩:负责整理文档 指导教师签字:年月日 系(教研室)审核意见: 系(教研室)主任签字:年月日

猜数字游戏课程设计完整版

北京邮电大学世纪学院 实验、实习、课程设计报告撰写格式与要求 (试行) 一、实验报告格式要求 1、有实验教学手册,按手册要求填写,若无则采用统一实验报告封面。 2、报告一律用钢笔书写或打印,打印要求用A4纸;页边距要求如下:页边距上下各为厘米,左右边距各为厘米;行间距取固定值(设置值为20磅);字符间距为默认值(缩放100%,间距:标准)。 3、统一采用国家标准所规定的单位与符号,要求文字书写工整,不得潦草;作图规范,不得随手勾画。 4、实验报告中的实验原始记录,须经实验指导教师签字或登记。 二、实习报告、课程设计报告格式要求 1、采用统一的封面。 2、根据教学大纲的要求手写或打印,手写一律用钢笔书写,统一采用国家标准所规定的单位与符号,要求文字书写工整,不得潦草;作图规范,不得随手勾画。打印要求用A4纸;页边距要求如下:页边距上下各为厘米,左右边距各为厘米;行间距取固定值(设置值为20磅);字符间距为默认值(缩放100%,间距:标准)。

三、报告内容要求 1、实验报告内容包括:实验目的、实验原理、实验仪器设备、实验操作过程、原始数据、实验结果分析、实验心得等方面内容。 2、实习报告内容包括:实习题目、实习任务与要求、实习具体实施情况(附上图表、原始数据等)、实习个人总结等内容。 3、课程设计报告或说明书内容包括:课程设计任务与要求、总体方案、方案设计与分析、所需仪器设备与元器件、设计实现与调试、收获体会、参考资料等方面内容。 四、课内实践课报告撰写要求 1、大型作业类的按课程设计要求撰写; 2、带实习性质的按实习要求撰写; 3、其余的按实验要求撰写。 五、其它 由于存档的需要,所有报告必须双面打印,请教师做好把关工作。 北京邮电大学世纪学院

《游戏设计》课程设计指导书

《游戏设计》课程设计指导书 编写:蔺广逢 适用于:数字媒体专业 2011.12

游戏设计课程设计任务书 设计时间:1周学分数:1.0 执笔人:范彩霞编写日期:2008年10月 一、课程设计目的 游戏设计课程设计是数字媒体技术专业必修的实践环节。本课程设计是《游戏设计》课程实践环节的深化和延续。通过该实践环节的训练,使学生能够更加全面和系统的掌握游戏设计的体系结构。通过对所做游戏的故事梗概、游戏类型以及设计制作过程中所涉及的相关技术的学习和掌握,提高学生的实践能力以及团队协作能力,为在计算机游戏设计这一领域进行深入研究做准备。 二、课程设计的内容与要求 本课程设计通过分组来进行,每组3~4人。对每一个组,都必须设计和实现一个完整的游戏,游戏的类型不限,软件运行环境限为Microsoft Windows,硬件平台限为PC。在每组进行游戏设计之前必须提供游戏文档说明,包括游戏的故事情节、游戏的类型、游戏界面的设计等。每组设计的游戏不一定是原创的,但绝不能抄袭已有的游戏。 每组设计的游戏需要有较为完整的情节,要求能体现以下的基本技术:提供使用键盘或鼠标控制视点的朝向和运动的功能;在游戏中至少有一个人物是三维的,并且能产生相应的动画。必须在某个场景中有配音或者背景音乐;最好能在某一个画面中体现一些特效技术;必须能实时或者准实时运行。 游戏设计完成后对自己所做的游戏进行短评,包括:游戏中的哪一部分是最得意的?对最初的游戏设计作了哪些修改,为什么?在这个游戏项目的实践中获得的经验和教训是什么?如果有更多的时间下一步会怎么做? 三、课程设计的报告(论文、作业)的要求 课程设计报告是课程设计过程的整理和总结。因此,编写课程设计报告是课程设计阶段的一个重要组成部分。课程设计报告的内容和要求根据设计内容而定,对于本课程设计,主要应包括以下内容: 封面:封面上应标明“游戏设计课程设计”报告、专业、姓名、学号与时间等; 课程设计报告内容主要包括: (1)课程设计的目的;

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

《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.不符合要求的程序、设计报告、抄袭的设计报告或源程序代码、在设计中完全未参 与的将作不及格处理。

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

C语言程序设计课程设计 : 自 动 化 级 : 名: 学号: 指导教师: 兰州交通大学自动化与电气工程学院 2015年07月21日

一.引言 设计目的 复习和巩固C语言基础知识,进一步加深对C语言的理解和掌握。提高同学将课本上的理论知识和实际结合的能力,锻炼同学的分析解决实际问题的能力,提高同学团队合作的能力。使同学们善于观察和思考,善于合作,具备实践编程的基础素质,和实际问题分析的思考方式。 设计要求 在设计时充分地分析和理解问题本身,综合考虑系统功能,怎样使系统结构清晰、合理、简单和易于调试。然后详细设计,确定每个过程和函数的简单功能,以及过程(或函数)之间的调用关系。最后认真完成课程设计说明书,并对设计方法,结果等进行总结。 充分地分析和理解问题本身,弄清要求做什么(What to do)。在确定解决方案框架过程中(How to do),综合考虑系统功能,考虑怎样使系统结构清晰、合理、简单和易于调试。最后确定每个过程和函数的简单功能,以及过程(或函数)之间的调用关系。 确定算法的主要流程,在此基础上进行代码设计(Coding),每个明确的功能模块程序一般不超过60行,否则要进一步划分。 上机前程序静态检查可有效提高调试效率,减少上机调试程序时的无谓错误。静态检查主要有两种途径:(1)用一组测试数据手工执行程序;(2)通过阅读或给别人讲解自己的程序而深入全面地理解程序逻辑。 二.基础题 题目 用选择法对10个数进行排序。 有一个已排好序的数组。现输入一个数,要求按原来的规律插入到原数组中。解题思路 程序的主要功能是对数组元素用排序函数按从小到大的顺序进行排序。 先定义一个10个元素的一维数组a[10],然后从电脑输入10个数(也就是对数组赋值),然后使用一次fun()函数,对这10个数进行排序;然后再定义一个11个元素的一维数组b[11],同时再从电脑输入一个数同a[10]一起赋值给b[11],然后再使用fun()函数,重新排序的到最后的有顺序的一组数据。 流程图 子函数流程图如图1所示:

c++课程设计报告-掷骰子游戏

目录 一、课题设计的内容与主要功能............. 错误!未定义书签。题目内容 ............................... 错误!未定义书签。 功能.................................. 错误!未定义书签。二.课题分析 ............................ 错误!未定义书签。项目的实现方法 ......................... 错误!未定义书签。 类的声明.............................. 错误!未定义书签。 》 核心算法及其实现代码.................... 错误!未定义书签。程序流程图 ............................. 错误!未定义书签。三.主要功能的实现步骤................... 错误!未定义书签。四.程序测试 ............................ 错误!未定义书签。测试计划 ............................... 错误!未定义书签。测试过程 ............................... 错误!未定义书签。 五、总结 (12) 六、参考书籍 (14) 【 七、附件 (15) 程序的源代码........................... 错误!未定义书签。评分表 (27)

一、课题设计的内容与主要功能 题目内容 ` 编写程序实现投掷双骰子游戏,游戏规则为:游戏者每次投掷两颗骰子,每颗骰子是一个正方体,有6面上面分别标有1、2、3、4、5、6个圆点,当骰子停止时,将每颗骰子朝上的点的数相加,在第一次投掷骰时, 如果所得到的和为7或11,那么游戏者为赢得胜利; 如果所得到的和为2、3或12,那么游戏者为输掉了;如果和为4、5、6、8、9或10,那么为游戏者的点数;如要想赢得胜利,必须继续投掷骰子,直到取得自已的点数为止, 但是如果投掷出的和为7或者连续投掷了6次仍未赚得点数,那么游戏者为输了。 功能 该游戏的主要功能为:实现随机投掷两个骰子把其所得点数相加,然后根据点数和判断玩家的输、赢或平局。在游戏中有1.获得帮助 2.玩一手游戏 3.退出游戏三个提示,分别为玩家提供帮助指示、选择进入新的游戏、退出当前的游戏并为该局游戏显示游戏结果。 二.课题分析

猜数字实验报告

《程序设计课程设计》题目:《猜数字》游戏 物联网工程学院计算机科学与技术专业 学号: 学生姓名:孙文佳 班级:计科1305 成绩:

设计思路: 猜数字是一个比较益智的游戏,游戏规则也很简单,真正自己实现游戏的运行也并不是什么难事,下面就主要讲讲自己的设计思路。 大的框架是把函数封装在类中,这样就可以应用所学的类。 首先是随机产生一个4位整数,根据要求,最高位不能为0,且每一位的数不能相同。让系统随机产生4个个位数,这里就用到srand(time(NULL))获取系统的时间作为种子,防止每次运行的结果都是相同的。time()函数包含在头文件time.h中。用一个for语句,依次产生这四个数,因为要求最高位不能为0,这里就用一个while语句重新生成a[0],然后就是每位上的数不得相同,依然用while语句解决这个问题。 接着是提示用户输入一个四位数,把这个四位数各位上的数保存在数组b[4]中,然后就是比较b[4]和a[4],计算数字正确且位置正确的数的个数,还有数字正确但位置错误的数的个数(这应该是游戏的额核心),其实这一步也不难,就是利用一个for语句逐个比较b[j]与a[i],如果b[j]等于a[i],wrong++,然后判断i是否等于j,是的话right++,wrong--,如果猜了8次还不正确的话,提示用户是否继续,这里用一个switch语句就行了。如果猜了15次还不正确的话,提示用户游戏失败,是否重新玩一局。在此之前把这次的记录写入txt文件中,这里就用到c++的输入输出流,对于数据的保存只要学会格式,依葫芦画瓢即可。还有就是数据的读取,在游戏结束时输出上一局的结果。

《c语言课程设计报告--小游戏“石头剪子布”》

《C语言课程设计》报告题目:石头剪子布 班级: 学号: 姓名: 指导教师: 成绩:

目录: 一、选题背景...................................................................................................................... - 2 - 二、设计思路...................................................................................................................... - 2 - 三、主要问题的解决方法及关键技术.............................................................................. - 3 - 四、程序流程图.................................................................................................................. - 3 - 五、源程序清单.................................................................................................................. - 6 - 六、程序运行结果.............................................................................................................. - 8 - 七、设计总结...................................................................................................................... - 9 - 八、教师评语.................................................................................................................... - 10 - 一、选题背景 通过一个学期的C语言课程的学习,《C语言程序设计》课程已结束,根据学校课程学习的安排,要进行一周的C语言实习,自己动手编写游戏和系统。根据老师布置的设计任务书,按照学委的安排,根据个人的能力及意愿,我选择了设计一格小游戏:石头剪子布。 实验准备:做游戏前,首先,自己详细看了《C语言程序设计》(教科书),理解了相关函数的用法和作用;另外,上网查询了很多相关资料,还有找了很多相关的游戏设计的代码,都详细的看了一遍,加深了对C语言以及相关内容进一步理解。根据实际情况设计出一款比较理想的小游戏。 设计题目的要求: ①游戏要设置开始,结束操作控制 ②游戏要有时间提示即相关结果的提示语 ③游戏要能自动判断输赢,并显示最终比赛结果 二、设计思路 系统功能模块图: 输入:计算机随机输入选择,用户输入选择,并将数据储存。 计算:根据计算机和用户的选择,计算大小,并判断输赢,计算用户的胜负率,并储存。 输出:根据用户的输入,将用户的游戏结果显示在屏幕上。

猜数字游戏课程设计

攀枝花学院课程设计 题目:猜数字游戏 院(系):数学与计算机 年级专业: 姓名: 学号: 指导教师: 二〇**年*月***日 攀枝花学院教务处制

攀枝花学院本科学生课程设计任务书

课程设计(论文)指导教师成绩评定表

目录 摘要 (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,当玩家成功猜中数字时,系统会输出本局所用时间作出评价。

猜数字游戏的分析与实现

课程设计名称:猜数字游戏的分析与实现 目录

一游戏说明 二总体设计 三程序代码 四运行结果 五附录文档 一游戏说明 1使用说明 (1)开始功能键选择 1:开始游戏 2:查看排行榜 3:查看帮助 4:清除排行榜 5 :等级设定 (2)系统将提交的数与它自动产生的数进行比较,输出结果“*A*B”形式。其中A代表数字正确相应位置也正确,B代表数字正确但位置不正确。如:1A3B表示游戏者有1个数字的位置正确且数值也正确,除此以外,游戏者还猜对了3个数字,但位置不对,即游戏者已经猜出4位数据,但有3个数据位置不对

2程序说明书 (1)程序的功能说明:猜数字游戏是一个运行在Windows平台下的小型游戏软件,依据猜数字游戏的基本规则,给用户进行成绩排行,并可以随着玩家的游戏记录进行更新。游戏用户可以选择开始游、排行榜查看、帮助等主要功能。当用户选择开始游戏时,系统会让用户逐次猜数字,用户每次猜数字后系统会给出本次猜数字的结果提示,如位置和数字都正确的数字个数、数字正确但位置不正确的数字个数。如果用户猜数字的次数超过10次,则提示用户游戏失败,如果在10次之内猜出4个数字和正确的顺序,则提示用户猜数字成功,并到排行榜中进行比较,如果排名在前一名,则计入排行榜中,以便其他用户查看。在排行榜查看功能中,用户可以查看当前的游戏排行,如有新的记录产生,则插入到排行榜中,并把排行榜中位次最末的记录挤出排行榜。在帮助模块,用户可以查看游戏规则,当熟悉规则后可以退出帮助模块。 (2)程序的设计说明:排行榜中存放玩家信息和成绩,排行榜对应record文件。如删除该文件,则调用系统后,会初始化排行榜,重新建立该文件,并设置初始的玩家姓名和游戏记录。 3 软件可以实现的基本功能 (1)游戏区:玩家可以在游戏区逐次猜数字,系统给出玩家每次猜数字后的提示,包括数值、位置均正确的数字个数和数值正确但位置不正确的数字个数。 (2)刷新排行榜:当玩家成功完成一轮猜数字游戏后,可通过和排行榜中相应记录的比较判断玩家是否可以进入排行榜,进入排行榜的资格游戏成绩在前五名的玩家。 (3)查看排行榜:玩家可以查看当前排行榜中的排名顺序,从而确定自己的游戏目标。排行榜的查看按一定顺序显示给用户,便于查看。 (4)清除排行榜:玩家可以选择清除排行榜功能,使得排行榜上的玩家姓名和玩家游戏记录从系统中清除,只留下系统默认的玩家名(player)和系统默认记录10次。 (5)帮助:玩家通过帮助功能了解游戏规则和排行榜设置规则。 4模块设计说明 (1).游戏区模块 该模块为玩家提供猜数字游戏的主体功能,由系统自动产生4个随机排列的整数,并给用户10次机会猜测数字的数值和排列顺序。如果用户在10次之内没有猜出正确的结果,则提示用户游戏失败,否则提示用户猜数字成功,并调用产生新记录模块对玩家游戏成绩进行处理。流程图如下:

2048小游戏java课程设计报告书

《JA V A语言程序设计》 课程设计报告 2048智力小游戏设计 专业班级:计算机科学与技术嵌入13-1 学生姓名:卓海有 学生学号: 小组成员:单建飞堵文斐李栋承梅孔伟指导教师姓名:宋强

目录 1.前言 (1) 2.游戏需求分析 (1) 需求分析 (1) 可行性分析 (2) 3.概要设计 (3) 4.详细设计 (4) 流程图 (4) 界面的整体布局 (4) 方法模块分析 (5) 5.测试 (8) 6.总结 (10) 6.参考文献 (10) 7.部分源代码: (10)

一、前言 最近以来,移动手游越来越成为当下游戏产业中重要的一环,市场也在加大对这一产业的投入,涌现出了愤怒的小鸟,水果忍者,flappy bird,2048等诸多优秀的手游,然而任何一款手游能够风靡,主要还是依靠其简单的操作性,因此本次java课设我选择其中的典型2048PC版作为本次课设的课题。 2048游戏规则很简单,玩家每次可以选择上下左右其中一个方向去移动,每移动一次,所有的数字方块都会往移动的方向靠拢外,系统也会在空白的地方随机出现一个数字方块,相同数字的方块在靠拢、相撞时会相加。系统给予的数字方块不是2就是4,玩家要想办法在这小小的16格范围中凑出“2048”这个数字方块。 二、游戏需求分析 需求分析 现代社会对休闲小游戏的需求是:提高游戏的操作可行性,降低游戏的操作难度,降低游戏的上手难度,降低游戏的竞争需求,对使用设备的要求趋于简单化和多样化,游戏界面更加人性化,功能更加贴合使用。 (1)界面 一款的好的游戏其界面必须友好,简洁已经成为当今UI设计的主流,简单易上手才能得到玩家的青睐。 (2)功能需求 能够显示游戏的当前得得分,并记录游戏的最高分并显示,当在次打开游戏时,能够显示最高分;在游戏进行的过程中循环播放音乐,并能够关闭音乐或者打开音乐;游戏的主界面上,相同的数字要显示相同的颜色。游戏结束要有相应的提示。游戏的主要目的是通过上下左右移动来将相邻相同的数字相加,通过不断地累加最终加到2048。 (3)操作性需求 游戏的体验是衡量一款游戏的关键,本游戏可通过键盘w,s,a,d以及方向键来控制方块的移动,还可以通过在游戏的主面板中向上下左右拖动鼠标

猜数字游戏课程设计报告

XXXX学校 《C程序设计》 课程设计报告 设计题目:猜数字游戏 附录完整源代码 专业: 班级: 学生: 学号: 指导教师: 起止时间: xxx.x.x -xxx.x.x xxxx-xxxx年 xx 学期

目录 1 、程序设计描述 1.1 程序设计目的: 1.2 程序设计要求: 1.3、猜数字游戏的简介: 2 、程序设计内容: 2.1、游戏主要框架图: 2.2、开始游戏框架: 2.3、最佳排行框架: 2.4、游戏操作说明模块: 2.5、退出游戏系统: 2.6、游戏系统总流程图: 3、猜数字游戏源代码: 3.1、void main()函数函数功能: 3.2、void game();//双人游戏 void pgame();//单人游戏 3.4、排行榜模块函数功能: 3.5、继续游戏模块函数功能: 3.6、操作说明模块函数功能: 4、调试与测试: 4.1、调试方法 4.2、测试结果的分析与讨论 4.3、测试过程中遇到的主要问题及采取的解决措施 5、程序具体说明书: 6、程序设计心得: 7、参考文献

1 、程序设计描述 1.1 程序设计目的: 综合使用所学过的C语言程序设计知识,掌握结构化程序设计的基本思路和方法,利用所学的基本知识和技能,发挥自学能力和查找资料的能力,解决稍微复杂的结构化程序设计问题,加深对所学知识的理解与掌握,增强学生利用自己所学知识解决实际问题的能力,为以后的程序开发打下基础。 1.2 程序设计要求: 1、巩固和加强《C语言程序设计》课程的理论知识。 2、掌握C语言的基本概念、语法、语义和数据类型的使用特点。 3、掌握C语言程序设计的方法及编程技巧,能正确使用C语言编写程序。 4、进一步理解和运用结构化程设计的思想和方法;学会利用流程图。 5、掌握调试程序的基本方法及上机操作方法。 6、掌握书写程设计开发文档的能力,学会撰写课程设计总结报告。课程设计的思想和方法还可以作为做毕业论文时的参考资料。 7、通过查阅手册和文献资料,培养独立分析问题和解决问题的能力。为做毕业设计打好基础。 8、培养自己的创新能力和创新思维。可以根据指导书和相关文献上的参考算法,自己设计出相应的应用程序。 9、培养自己良好的程序设计风格。在实际编程中,为了提高编程质量,对空行、空格和注释均有要求。在课程设计书写代码时,应该严格按要求处理,以便建立良好的程序设计风格。 1.3、猜数字游戏的简介: 猜数字游戏(又称 Bulls and Cows )是一种大概于20世纪中期兴起于的益智类小游戏。一般由两个人玩,也可以由一个人和电脑玩,在纸上、在网上都可以玩。这种游戏规则简单,但可以考验人的严谨和耐心。 2 、程序设计内容: 2.1、游戏主要框架图: 该模块为玩家提供猜数字游戏的主体功能,即开始游戏、继续游戏、最佳排行、操作说明、退出游戏。给用户一个清晰明了的操作界面!流程图如下:

电子技术乒乓球比赛游戏机课程设计报告书

1绪论 1.1选题背景 1.1.1 课题目的及意义 本次课程设计的容是独立完成一个乒乓球比赛游戏机的设计,采用EWB电路仿真设计软件完成乒乓球比赛游戏机电路的设计及仿真调试,在微机上仿真实现乒乓球比赛游戏机的设计。通过这次课程设计让我们了解和熟悉了乒乓球游戏机的原理和Multisim仿真设计软件的操作,也让我们加深了解了对双向移位寄存器、双D触发器及、加法器及逻辑门电路的一些实际用途,并将理论与实践相结合。 1.1.2 课题的容和要求 独立完成一个乒乓球比赛游戏机的设计,采用EWB电路仿真设计软件完成乒乓球比赛游戏机电路的设计及仿真调试,在微机上仿真实现乒乓球比赛游戏机的设计。 课程设计具体容如下:乒乓球比赛是由甲乙双方参赛,加上裁判的三人游戏(也可以不用裁判),乒乓球比赛模拟机是用发光二极管(LED)模拟乒乓球运 乒乓球比赛模拟机框图 设计要求:

1、基本部分 (1) 至少用8个LED排成直线,以中点为界,两边各代表参赛双方的位置,其中一个点亮的LED(乒乓球)依次从左到右,或从由到左移动,“球”的移动速度能由时钟电路调节。 (2) 当球(被点亮的那只LED)移动到某方的最后一位时,参赛者应该果断按下自己的按扭使“球”转向,即表示启动球拍击中,若行动迟缓或超前,表示未击中或违规,则对方得一分。 (3) 设计自动记分电路,甲乙双方各用一位数码管显示得分,每记满9分为一局。 2、发挥部分(选做) (1) 甲乙双方各设一个发光二极管表示拥有发球权,每得5分自动交换发球权,拥有发球权的一方发球才能有效。 (2) 发球次数能由一位数码管显示。 (3) 一方得分,电路自动响铃3秒,此期间发球无效,等铃声停止后方可比赛。 课题任务要求 1、画出总体设计框图,以说明乒乓球比赛游戏机由哪些相对独立的功能模块组成,标出各个模块之间互相联系,时钟信号传输路径、方向和频率变化。并以文字对原理作辅助说明。 2、设计各个功能模块的电路图,加上原理说明。 3、选择合适的元器件,在EWB上连接验证、仿真、调试各个功能模块的电路。在连接验证时设计、选择合适的输入信号和输出方式,在充分电路正确性同时,输入信号和输出方式要便于电路的仿真、调试和故障排除。 4、在验证各个功能模块基础上,对整个电路的元器件和连接,进行合理布局,进行整个数字钟电路的连接验证、仿真、调试。 5、自行接线验证、仿真、调试,并能检查和发现问题,根据原理、现象和仿真结果分析问题所在,加以解决。学生要解决的问题包括元器件选择、连接和整体设计引起的问题。 1.2 方案选择 根据设计任务,对照图乒乓球比赛模拟及1.1,可以分为三个模块进行设计:

猜数字游戏课程设计报告

学校 《C程序设计》 课程设计报告 设计题目:猜数字游戏 附录完整源代码 专业: 班级: 学生: 学号: 指导教师: 起止时间: xxx.x.x -xxx.x.x xxxx-xxxx年 xx 学期

录 1 、程序设计描述 1.1 程序设计目的: 1.2 程序设计要求: 1.3、猜数字游戏的简介: 2 、程序设计内容: 2.1、游戏主要框架图: 2.2、开始游戏框架: 2.3、最佳排行框架: 2.4、游戏操作说明模块: 2.5、退出游戏系统: 2.6、游戏系统总流程图: 3、猜数字游戏源代码: 3.1、void main()函数函数功能: 3.2、void game();//双人游戏 void pgame();//单人游戏 3.4、排行榜模块函数功能: 3.5、继续游戏模块函数功能: 3.6、操作说明模块函数功能: 4、调试与测试: 4.1、调试方法 4.2、测试结果的分析与讨论 4.3、测试过程中遇到的主要问题及采取的解决措施 5、程序具体说明书: 6、程序设计心得: 7、参考文献

、程序设计描述 1.1 程序设计目的: 综合使用所学过的C语言程序设计知识,掌握结构化程序设计的基本思路和方法,利用所学的基本知识和技能,发挥自学能力和查找资料的能力,解决稍微复杂的结构化程序设计问题,加深对所学知识的理解与掌握,增强学生利用自己所学知识解决实际问题的能力,为以后的程序开发打下基础。 1.2 程序设计要求: 1、巩固和加强《C语言程序设计》课程的理论知识。 2、掌握C语言的基本概念、语法、语义和数据类型的使用特点。 3、掌握C语言程序设计的方法及编程技巧,能正确使用C语言编写程序。 4、进一步理解和运用结构化程设计的思想和方法;学会利用流程图。 5、掌握调试程序的基本方法及上机操作方法。 6、掌握书写程设计开发文档的能力,学会撰写课程设计总结报告。课程设计的思想和方法还可以作为做毕业论文时的参考资料。 7、通过查阅手册和文献资料,培养独立分析问题和解决问题的能力。为做毕业设计打好基础。 8、培养自己的创新能力和创新思维。可以根据指导书和相关文献上的参考算法,自己设计出相应的应用程序。 9、培养自己良好的程序设计风格。在实际编程中,为了提高编程质量,对空行、空格和注释均有要求。在课程设计书写代码时,应该严格按要求处理,以便建立良好的程序设计风格。 1.3、猜数字游戏的简介: 猜数字游戏(又称 Bulls and Cows )是一种大概于20世纪中期兴起于英国的益智类小游戏。一般由两个人玩,也可以由一个人和电脑玩,在纸上、在网上都可以玩。这种游戏规则简单,但可以考验人的严谨和耐心。 2 、程序设计内容: 2.1、游戏主要框架图: 该模块为玩家提供猜数字游戏的主体功能,即开始游戏、继续游戏、最佳排行、操作说明、退出游戏。给用户一个清晰明了的操作界面!流程图如下:

《贪吃蛇游戏课程设计》报告

贪吃蛇游戏程序设计 一、课程设计任务 贪吃蛇小游戏程序设计 二、设计要求 通过游戏程序设计,提高编程兴趣与编程思路,巩固C语言中所学的知识,合理的运用资料,实现理论与实际相结合。 (1).收集资料,分析课题,分解问题,形成总体设计思路; (2).对于设计中用到的关键函数,要学会通过查资料,弄懂其用法,要联系问题进行具体介绍; (3).上机调试,查错,逐步分析不能正常运行的原因,确保所设计的程序正确,并且能正常运行; (4).完成课程设计报告,并进行答辩 三、需求分析 3.1、程序功能 贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。 3.2、设计思想 程序关键在于表示蛇的图形及蛇的移动。用一个小矩形快表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用俩节表示。移动时必须从蛇头开始,所以蛇不能向相反的方向移动,如果不按任意键,蛇自行在当前方向上前移,但按下有效方向键后,蛇头朝着该方向移动,一步移动一节身体,所以按下有效方向键后,先确定蛇头的位置,而后蛇

的身体随蛇头移动,图形的实现是从蛇头新位置开始画出蛇,这时,由于未清屏的原因,原来的蛇的位置和新蛇的位置差一个单位,所以看起来蛇多一节身体,所以将蛇的最后一节用背景色覆盖。食物的出现与消失也是画矩形块和覆盖矩形块。为了便于理解,定义两个结构体:食物与蛇。 3.3、流程图

四、设计的具体实现 (1)函数定义 函数定义是对各个基础函数的定义,并且设置需要运用的信息,便于调用 #define N 200 #define M 200 #include"graphics.h" #include #include #include #include #include #include #include #define LEFT 97//A #define RIGHT 100//D #define DOWN 115//S #define UP 119//W #define Esc 0x011b int i,key; int score=0; int gamespeed=250;//游戏速度可根据实际情况自行调整 struct Food { int x;//食物的横坐标 int y;//食物的纵坐标 int yes;//判断是否要出现食物的变量}food;//食物的结构体 struct Snake { int x[M]; int y[M]; int node;//蛇的节数 int direction;//蛇的移动方向 int life;//蛇的生命,0表示活着,1表示死亡 }snake; void Init();//图形驱动 void Close();//图形结束 void DrawK();//开始画面 void GamePlay();//玩游戏的具体过程void GameOver();//游戏结束 void PrScore();//输出成绩 (2)主函数main( ) 主函数是程序的主流程,首先定义使用到的常数、全局变量及函数原型说明,然后初始化图形系统,调用函数DrawK()画出开始画面,调用函数GamePlay(),即玩游戏的具体过程,游戏结束后调用Close()关闭图形系统,结束程序 void main()//主函数 { Init();//图形驱动 DrawK();//开始画面

相关主题
文本预览
相关文档 最新文档