33C语言贪吃蛇实验报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

C语言程序设计实训报告姓名专业班级指导教师2011年7月14日I目录1实训的目的和要求.............................................11.1实训的目的................................................11.2实训的要求................................................12实训任务内容.................................................22.1实训的题目:..............................................22.2题目的要求:..............................................22.3设计的步骤:..............................................23详细设计说明.................................................23.1课程设计的要求:..........................................23.2程序的功能:..............................................33.3课程设计的思想:..........................................33.4设计程序中的调试过程......................................33.5设计的流程图..............................................33.6程序的总体设计思想........................................64软件的使用说明...............................................64.1建立游戏的过程说明........................................64.2执行游戏的过程说明........................................65实训心得与体会...............................................6参考文献...........................................................8附录部分程序清单..............................................911实训的目的和要求1.1实训的目的C程序设计实训是在学完C程序设计课程之后的实践教学环节。其目的是进一步加深、巩固学生所学《C程序设计》的基本理论知识,理论联系实际,进一步培养学生综合分析问题和解决问题的能力。掌握运用C语言独立地编写、调试应用程序和进行其它相关设计的技能,充分发挥广大同学的潜力,使他们通过本次实训得到全面的锻炼。本实训的目的和任务:巩固和加深学生对C语言课程的基本知识的理解和掌握掌握C语言编程和程序调试的基本技能利用C语言进行基本的软件设计掌握书写程序设计说明文档的能力提高运用C语言解决实际问题的能力进一步掌握和利用C语言进行程设计的能力;进一步理解和运用结构化程设计的思想和方法;初步掌握开发一个小型实用系统的基本方法;学会调试一个较长程序的基本方法;学会利用流程图或N-S图表示算法;1.2实训的要求分析实训题目的要求写出详细设计说明编写程序代码,调试程序使其能正确运行设计完成的软件要便于操作和使用设计完成后提交实训报告22实训任务内容2.1实训的题目:设计贪吃蛇小游戏2.2题目的要求:玩家通过键盘控制蛇在地图上寻找食物,蛇吃下食物,可以加分,碰到四壁游戏结束。2.3设计的步骤:分析实训题目的要求,即需求分析。总体设计,确定所需模块及模块间调用关系,定义系统中使用的数据类型。详细设计,确定每个模块的功能,绘制主要函数的流程图。编写程序代码,调试程序使其能正确运行。要求书写规范,注意采用缩进格式。函数名、变量名要见文晓意,注释要简而不失、详而不缀。设计完成的软件要便于操作和使用。程序测试,发现程序中存在的错误并改正。完成实训报告。3详细设计说明3.1课程设计的要求:通过游戏程序设计,提高编程兴趣与编程思路,巩固C语言中所学的知识,合理的运用资料,实现理论与实际相结合。收集资料,分析课题,分解问题,形成总体设计思路;对于设计中用到的关键函数,要学会通过查资料,弄懂其用法,要联系问题进行具体介绍;上机调试,查错,逐步分析不能正常运行的原因,确保所设计的程序正确,并且能正常运行;3完成课程设计报告。3.2程序的功能:贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。3.3课程设计的思想:程序关键在于表示蛇的图形及蛇的移动。用一个小圆点来表示蛇的一节身体,身体每长一节,增加一个圆点,蛇头用四节来表示。移动时必须从蛇头开始,所以蛇不能向相反的方向移动,如果不按任意键,蛇自行在当前方向上前移,如果按与蛇运动方向相反的方向键,此游戏就会暂停,再按想前的方向键才能继续游戏,但按下有效方向键后,蛇头朝着该方向移动,一步移动一节身体,所以按下有效方向键后,先确定蛇头的位置,而后蛇的身体随蛇头移动,图形的实现是从蛇头新位置开始画出蛇,这时,由于未清屏的原因,原来的蛇的位置和新蛇的位置差一个单位,所以看起来蛇多一节身体,所以将蛇的最后一节用背景色覆盖。食物的出现与消失也是画一个圆点和覆盖原来的圆点。为了便于理解,定义两个结构体:食物与蛇。3.4设计程序中的调试过程在调试过程中,遇到了很多的问题,比如,因为使用的刷屏函数,所以屏幕经常出现闪烁的情况,但是通过我和我的伙伴们的共同努力和学习,通过网上和书籍的查阅,我们也得到了很多的收获,我们的小组也在中真正的学会了很多的东西,这次实训给我们带来了很大的收获。可以按照程序运行的错误提示对原程序进行修改,在调试过程中有时也会遇到不懂的问题,我去图书馆或上网查阅一些资料或者是向老师请教也解决了对源程序一一修改直到运行成功。3.5设计的流程图总程序设计图如图1所示:4YNNYYN图1程序设计流程图方向键控制的设计流程图如图2所示:其中upmove函数控制蛇向上运动,downmove函欢迎词和游戏的基本操作说明开始游戏是否吃到食物是否碰壁或结尾初试化界面和蛇身随机放置食物方向键控制蛇的运动方向蛇变长,并总分加10分退出游戏游戏结束,是否继续5数控制蛇向下运动,leftmove函数控制蛇向左运动,rightmove函数控制蛇向右运动。图2方向键控制方向键控制的设计流程图蛇吃食物蛇身变长的设计流程图如图3所示:NY图3蛇吃食物蛇身变长的设计流程图开始游戏则使用函数downmove(snake);则使用函数upmove(snake);则使用函数leftmove(snake);则使用函数rightmove(snake);蛇向上运动蛇向下运动蛇向左运动蛇向右运动按方向键的上键按方向键的下键按方向键的左键按方向键的右键通过方向键控制蛇身去吃食物开始游戏通过控制部分控制蛇运动是否能吃到食物通过使用函数:booljudgeGO(int(*sna)[17])Count++使蛇身加长score=(count-3)*10使总分加10分63.6程序的总体设计思想利用人工绘图法,制作美观的游戏界面.通过随机函数产生随机数,控制游戏过程食物的出现.定义键盘操作,控制游戏过程蛇的移动方向.画出边界,并判断游戏是否结束.统计游戏过程蛇吃的食物数量,计算并输出游戏成绩.4软件的使用说明4.1建立游戏的过程说明先打开MicrossftVisualC++程序,进入MicrossftVisualC++程序后打开文件菜单,点机新键命令按钮,先建立一个Win32ConsoleApplication工程,建立工程时可填写工程名称和你所建工成要存放的位置,点机确定按钮,再点机一个空工程类型的控制台程序,再点机完成,然后点机确定按钮,此时一个所要建立的工程就已经建立好,然后再点机文件中的新建按钮,然后再建立一个C++SourceFile文件,并填写文件名称,然后点机确定按钮,此时所要建立的工程和文件都已建立完毕,此时您就可以把贪吃蛇游戏的代码复制粘贴到你刚刚建立的工程和文件里面了,然后点机组建命令中的编译和组建命令,最后点机执行命令就可进入贪吃蛇游戏中了。4.2执行游戏的过程说明进入贪吃蛇游行中后,首先弹出一个界面,上面出现的是欢迎词和游戏的简单说明,可点机任意键开始游戏,此游戏是由键盘的四个方向键进行控制的,吃一个点,蛇身就长长一端,总分数就加10分,如果碰壁或结尾游戏则结束,最后出先一个界面,上面显示你此次游戏的总分数。希望我这个小游戏能让你玩的开心。5实训心得与体会在设计这个程序中我主要学会了如何运用以下有关C语言和C++的知识:1)函数定义是要做到顾名思义是很重要的,它对读程序的人正确认识程序7十分重要,在修改这个程序的过程中也能很快找到程序各模块的作用,大大增加了程序的可读性。2)分析函数先从main()函数入手。Main()函数是C++源程序编译时的开始,从main()函数开始读函数可将其他函数的功能理解得更透彻。3)在做程序的时候先列框架,将这个程序所要达到的目的(功能)分析出来,选择正确的数据结构然后在将程序模块化,按照模块编写函数更加简单合理。4)我还了解了很多的库函数的作用,如字符串函数中有很多对字符串进行处理的函数,起功能我都有所了解。5)学会了有关头文件的使用方法,及系统调配问题的解决方法等。6)了解到了注释的重要性。8参考文献[1]陈显刚.C语言程序设计[M].北京:北京理工大学出版社,2007.[2]谭浩强.C语言程序设计[M].北京:清华大学出版社,1998.[3]徐新华.C语言程序设计教程[M].北京:中国水利水电出版社,2001.[4]伍一,等.C语言程序设计与实训教程[M].北京:清华大学出版社,2007.[5]徐翠霞.C语言程序设计案例教程[M].北京:北京大学出版社,2008.[6]刘新航.软件工程与项目管理案例教程[M].北京:北京大学出版社,2009.9附录部分程序清单#includestdio.h#includestdlib.h#includeconio.h#includetime.h#includewindows.h#defineHEAD300#defineFOOD400#definev_sleep100/*改变sleep的大小可改变蛇的运动速度,此数值越小蛇的运动速度越快*/intscore=0;/*定义了一个全局变量来在整个程序中统计总成绩*//*----------------欢迎词-------------------*/voidwelc(){printf(\n\n\n\n\n\n\t\t\t欢迎来到【贪吃蛇】小游戏\n\n);printf(\t\t\t蛇身加长一段就加10分\n\n);printf(\t\t此游戏用键盘的方向键控制即可。若想退出请按Esc建。\n);printf(\n\t\t\t相反的方向的话是暂停。\n);printf(\n\t\t\t请按任意键进入游戏。);getch();}/*--------------------------------------------*//*------------人工画图程序--------------------*/voiddrawpt(inta,intx,inty)/*利用人工绘图

1 / 22
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功