C语言课程设计报告完整

发布 2022-10-05 04:23:28 阅读 4688

目录。1 设计任务书 1

1.1题目与要求 1

1.1.1题目介绍 1

1.1.2设计要求 1

1.2.本程序涉及的知识点 1

2 功能设计 1

2.1算法设计 1

2.2子模块功能说明 2

3程序设计 3

4功能设计 8

5致谢 8参考文献 8

1、 设计任务书。

1.1、 题目与要求。

1.1.1 题目介绍。

我们计划设计一款简单又有娱乐性的小游戏--贪吃蛇。通过一学期对c语言的学习,我们对这门课程有了基本的认识,由此我们想通过编写小游戏来实战检验一下我们的学习成果。

c语言程序设计即在于掌握运用c语言独立地编写、调试应用程序和进行其它相关设计的技能,我们这次实训即在于:

巩固和加深对c语言课程的基本知识的理解和掌握

掌握c语言编程和程序调试的基本技能

掌握书写程序设计说明文档的能力

提高运用c语言解决实际问题的能力。

进一步掌握和利用c语言进行程设计的能力

进一步理解和运用结构化程设计的思想和方法

初步掌握开发一个小型实用系统的基本方法

学会调试一个较长程序的基本方法

学会利用流程图或n-s图表示算法;

1.1.2 设计要求。

先在程序中设计好数组元素与蛇,食物的对应关系;

产生一个固定大小有边界的游戏区域,蛇从区域中随机一点出发,运动限制在游戏区域内;

蛇的运动方向为直线运动,只走横和竖的方向,不走斜线;

食物出现按随机分布原则,蛇吃掉一份后随即在游戏区域内出现一份新的食物;

蛇的运动速度由得分来控制,得分越高,速度越快;

得分按蛇每吃掉一个食物得10分来计算;

蛇的身体长度从3开始,每吃掉一个食物增加一个长度;

游戏结束条件为:在控制过程中蛇头撞到墙壁或者与蛇身相撞。

1.2、 本程序涉及的知识点。

数组的应用,全局变量的使用,按键处理,结构体的应用,结构化,模块化的设计等等。

2、 功能设计。

2.1、算法设计。

1、本程序采用结构化程序设计的方法,按照自顶向下,逐步细化的方法对要解决的问题进行逐层分解,首先画出顶层模块,即主控模块,然后完成对下层模块的调用功能,即调用其他的功能模块;接着,按模块划分的功能设计第一层模块,有图形驱动,画主界面,游戏过程,结束处理,退出等六个主要功能;接着,画出第二层模块。总体模块结构如图:

2.2、子模块功能说明

进入第一步:进入游戏。

进入第二步:游戏界面。

进入第三步:游戏操作。

进入第四步:游戏结束并输出成绩。

该系统主要分以下模块:

a.对主函数进行描述。

b.图形驱动与界面。

c.具体过程。

d.显现食物并使蛇移动。

e.判断蛇是否死亡。

f.若吃掉食物则画出新蛇。

j.蛇死后跳出循环并判断移动方向。

h.游戏结束输出得分与成绩。

(1)主函数main()

主函数式程序的主控模块,是定义使用的函数,全局变量及函数原型说明,并调用init()函数初始化图形系统;然后调用drawk()函数画界面,调用gameplay()函数实现游戏的具体过程,游戏结束后调用close()函数关闭图形系统,结束程序。 主控模块的流程图如下:

ianxian

(2)画界面函数drawk()

主界面是一个密封的围墙,用两个循环语句分别在水平和垂直方向输出连续的宽度和高度,均为十个单位的矩形小方块。

3)游戏具体过程函数gameplay()

a.设置初始值。为防止食物出现在一个位置上,要设置随机发生器,真正产生随机数。初始时,蛇只有蛇头,设定一个开始方向;

b.循环执行,直到按esc键退出;

c.没有按键的情况下,循环执行。

如果没有食物,随机出现食物;食物的随机出现要确保它的位置在10的倍数位置上,因为蛇的坐标都是以10为模的;如果有食物,则显示食物,蛇移动身体,根据蛇的方向改变坐标值,并判断蛇是否撞到了墙或者吃到了自己,如果出现这两种情况之一,则蛇死。

4)游戏结束函数gameover()

游戏结束,清除屏幕;调用输出分数函数,并显示游戏结束。

5)输出分数函数prscore()指定位置利用sprintf()将整数转换为字符串,用outtextxy()输出,bar()函数的应用是为了覆盖原来的值。

6)图形结束函数close()

在显示游戏结束信息画面时,按任意键关闭图形系统,程序结束。

2.2、流程图 ny

ny3、 程序**设计。

源程序。#include<>

#include<>

#include<>

#include<>

#include<>

#include<>

#defineleft0x4b00

#defineright0x4d00

#definedown0x5000

#defineup0x4800

#defineesc0x011b

#definen200/*定义全局变量*/

inti,key;

intscore=0;/*得分*/

intgamespeed=50000;/*游戏速度可以自己调整*/

structfood

intx;/*定义食物的横坐标*/

inty;/*定义食物的纵坐标*/

intyes;/*判断是否要出现食物的变量*/

food;/*食物的结构体*/

structsnake

intx[n];

inty[n];

intnode;/*蛇的节数*/

intdirection;/*蛇的移动方向*/

intlife;/*蛇的生命,0活着,1死亡*/

snake;

voidinit(void);/图形驱动*/

voidclose(void);/图形结束*/

voiddrawk(void);/开始画面*/

voidgameover(void);/结束游戏*/

voidgameplay(void);/玩游戏的具体过程*/

voidprscore(void);/输出成绩*/

voidinit(void)

intgdriver=detect,gmode;

initgraph(&gdriver,&gmode,"d:\tc30\lib");

*开始画面,左上角坐标为(50,40),右下角坐标为(610,460)的围墙*/

voiddrawk(void)

setbkcolor(lightgreen);

setcolor(11);

setlinestyle(solid_line,0,thick_width);/设置线型*/

for(i=50;i<=600;i+=10)/*画围墙*/

rectangle(i,40,i+10,49);/上边*/

rectangle(i,451,i+10,460);/下边*/

for(i=40;i<=450;i+=10)

rectangle(50,i,59,i+10);/左边*/

rectangle(601,i,610,i+10);/右边*/

*玩游戏的具体过程*/

voidgameplay(void)

randomize();随机数发生器*/

表示需要出现新食物,0表示已经存在食物*/

蛇还活着^^*

方向向右*/

蛇头*/蛇的节数为2*/

prscore();输出得分*/

while(1)/*可以重复玩游戏,按esc键结束*/

while(!kbhit())在没有按键的情况下,蛇自己移动身体*/

if(需要出现新食物*/

while(食物随机出现后必须让食物能够在整格内,这样才可以让蛇吃到*/

while(

c语言课程设计报告 课程设计报告

周口师范学院。课程设计报告。院 系 计算机科学与技术学院 班级。学生姓名学号。设计题目 职工工资管理系统。完成日期 年月日 课程设计任务书。设计题目 工资管理系统 教研室主任指导教师 年月日。摘要11设计内容 任务及具体要求2 1.1设计内容2 1.2设计任务及具体要求2 2概要设计3 2.1该系统...

C语言课程设计报告

华中科技大学计算机科学与技术学院。题目 专业 班级 学号 姓名 成绩 指导教师 完成日期 2016年月日。目录。一 系统需求分析 1 二 总体设计 2 三 数据结构设计 3 四 详细设计 4 五 系统实现 5 六 运行测试与结果分析 6 七 总结 7 八 参考文献 8 九 指导教师评语 9 对所要解...

C语言课程设计报告

c语言。课程设计。商业销售管理系统。学号 121407210 姓名 宋军。班级 软件1202 指导老师 邹姝稚。成绩 2013年6月。一 任务描述。编写一个商品销售管理系统,是其能够拥有商品买卖和库存管理功能。在顾客选购时,需给出输入商品名称,或商品型号,或选择列表进而输入商品编号三种选择,在顾客选...