




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计实训报告姓 名 专 业 班 级 指导教师 2011 年 7月14日目录一实训目的和要求二实训任务内容三详细设计说明四软件使用说明五实训心得与体会六参考文献七部分程序清单(带有详细的注释)八程序结果一实训目的和要求1实训目的本实训是软件技术专业重要的实践性环节之一,是在学生学习完C语言程序设计课程后进行的一次全面的综合练习。本实训的目的和任务:(1). 巩固和加深学生对C语言课程的基本知识的理解和掌握(2). 掌握C语言编程和程序调试的基本技能(3). 利用C语言进行基本的软件设计(4). 掌握书写程序设计说明文档的能力(5). 提高运用C语言解决实际问题的能力2 实训要求(1). 分析实训题目的要求(2). 写出详细设计说明(3). 编写程序代码,调试程序使其能正确运行(4). 设计完成的软件要便于操作和使用(5). 设计完成后提交实训报告二实训任务内容设计贪吃蛇游戏玩家通过键盘控制蛇在地图上寻找食物,蛇吃下食物,可以加分,碰到四壁游戏结束。演示系统功能,明确课题任务与涉及的要求,分配任务, 具体分析实训内容,明确思路、任务,并可以查询相关书籍、资料,给出可行相应的设计思路与方法, 继续完成相应的源代码,并最终完成相应的全部代码,仔细查阅已完成的代码是否与实际相符,以及有无错误,并整合程序、上机调试,研究运行时可能出现的错误,继续整合程序、上机调试,研究运行中出现的错误,并逐个修改和完善系统;完善,考虑附加功能。构思实验报告。并完成实验报告通读整个程序以及实验报告,准备答辩。三详细设计说明贪吃蛇游戏是一个深受人们喜爱的游戏,一条在密闭的围墙内,在围墙内随机出现一个食物,通过按键盘上四个光标键控制蛇向上下左右四个方向移动,蛇头撞到食物,则表示食物被蛇吃掉,这时蛇的身体长一节,同时计10分,接着又出现食物,等待被蛇吃掉,如果蛇在移动过程中,撞到墙壁或身体交叉蛇头撞到自己的身体游戏结束。程序关键在于表示蛇的图形及蛇的移动。用一个小矩形快表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用俩节表示。移动时必须从蛇头开始,所以蛇不能向相反的方向移动,如果不按任意键,蛇自行在当前方向上前移,但按下有效方向键后,蛇头朝着该方向移动,一步移动一节身体,所以按下有效方向键后,先确定蛇头的位置,而后蛇的身体随蛇头移动,图形的实现是从蛇头新位置开始画出蛇,这时,由于未清屏的原因,原来的蛇的位置和新蛇的位置差一个单位,所以看起来蛇多一节身体,所以将蛇的最后一节用背景色覆盖。食物的出现与消失也是画矩形块和覆盖矩形块。为了便于理解,定义两个结构体:食物与蛇。表示食物与蛇的矩形块设计为10*10个像素单位,食物的基本数据域为他所出现的位置,用x和y座标表示,则矩形块用函数rectangle(x,y,x+10,y+10)或rectangle(x,y,x+10,y-10)可以画出。由于每次只出现一个食物,所以设定yes表示是否要出现食物。蛇的一节身体为一个矩形块,表示矩形块只需起点座标x,y。身体不断增长,用数组存放每节座标,最大设定为N=200,node表示当前节数。保存蛇的移动方向的变量direction和生命的变量life,一旦life为1,表示蛇死,结束。流程图如图1所示:初始化蛇开始实行显示器显示蛇的轨迹蛇身体节点依次向后移动是否有按键按下?是否是否撞到四周或蛇身?否是根据上次方向更新snake1的坐标根据按键不同在原坐标基础上修改snake1元素的坐标 更新新的方向是否吃到方块?否 蛇身加长是结 束 图1系统流程图四软件使用说明此游戏是在密闭的围墙内,在围墙内随机出现一个食物,通过按键盘上四个光标键控制蛇向上下左右四个方向移动,蛇头撞到食物,则表示食物被蛇吃掉,这时蛇的身体长一节,同时计10分,接着又出现食物,等待被蛇吃掉,如果蛇在移动过程中,撞到墙壁或身体交叉蛇头撞到自己的身体游戏结束。游戏画面如图2所示图2游戏界面图五实训心得与体会在初学语言的一个学期后,我们进行了语言实训阶段,尝试自己编写一个比较复杂的程序系统。在为期两周的时间中,我们同组的同学共同的感受是:语言实训和平时上课所接触的程序是有很大不同的,所经受的考验和克服的困难是平时所无法比拟的。好在同组的搭档们精诚合作,分工明确,有问题共同解决,攻克了语言实训的复杂程序。在这里,我作为其中的参与者,自然感触良多。刚开始接触到的时候,我已经学过一些有关的内容,这个在算法和思维上稍微有点帮助。回想本学期的学习,首先,最基本的,是的数据格式,让我们知道整数,浮点数以及字符常量在中的运用。然后,在学会了数据转化,以及熟练的可以对各种数据处理之后,我开始进行有关数据结构,像数组,结构体等的学习,因为有的东西从现有的知识来看都是非常简单的,还没有联系到指针等等一些复杂的概念。可是,仅仅学会这些是远远不够的,语言中,还有很多更加经典、重要、实用的知识。通过C语言实训,让我加深了对C语言的了解,而不只是单单的在课本中学到的那些理论,平时乏味的课程,通过自己动手亲自编写,变的生动有趣,而在自己动手的过程中,出现的问题很多,比理论要难的多,当一个程序写完以后,经常会有很多错误而没法解决。不过,通过几天的实训,逐渐积攒了一些经验,有些错误可以很快就看出来。这次实训有很大的收获,让我对C语言有了更深的认识,平时在课堂上学到的东西可以自己动手编写,将其转化成一些实用的技能。如果是一个程序写完一处错误也没有,会有种成就感,于是兴趣就来了,兴趣来了,自然学的东西也就多了,能把理论变成实际的技能,让我对C语言有了浓厚的兴趣和更深层的认识。C语言是一个有序的学习,学了最基本的替换,然后扩展到循环,嵌套,条理很清楚,不是一个零散的知识,实际上所有的课程都如此,不过通过实训我也知道了自己的不足,存在的很多问题。比如自己写的写的小程序出了问题,不会解决了就叫老师帮忙,虽然说一定意义上增加了师生之间的感情,但是会养成一种依赖的心理,碰到问题了个想到的是求助而不是自己独立解决,所以以后要多多锻炼自己的信心和增加自己的能力,争取做到老师不在身边的时候也可以完成一些简单的程序编写与错误排除。还有自己的基础知识不扎实,遇到的问题,没有很好的逻辑思维,亲自编写一个陌生的程序的时候会有种无法下手的感觉,找不到突破口。通过实训,逐渐理清了顺序,对于简单的程序和一些相对比较繁琐的嵌套,循环,不在是看着一头雾水。其实只要理清了思路,把基础知识掌握了,然后有条不紊的分析,一步一步理解,C语言还是很有意思的课程。自己亲自动手编写程序让我增加了对C语言程序开发环境的了解,在上课的时候老师就讲,学习C语言最重要的是学习C语言的逻辑思维,不管以后从事什么行业,学习C语言都对自己的职业很有帮助,如果是从事编程工程工作的话,就更有帮助了,即使以后的编程工作可能不用C语言,但是拥有扎实的C语言基础是对工作很有用的。当然,我们编写的商店商品管理系统,还存在很多疏漏和不合理之处。比如,程序复杂冗长,如果时间充裕,我们将在不改变程序运行结果的基础上,简化程序,使每一句更加精辟,总体上更加简化。另外,在程序的外观上,我们由于时间问题,没有做更多的修饰,运行起来显得比较死板、枯燥乏味。如果增添一些色彩和其他效果,我们的程序也许会更加完美当初在初步接触C语言的时候,看着一堆“奇形怪状”的符号,觉得甚是无聊,通过这次实训,摆脱了那种似懂非懂的状态!感谢学校安排这次实训和老师的耐心讲解,让我学到了很多知识,在实训过程中,同学之间的相互探讨,老师的循循善诱,最终让我们达到了举一反三的效果,在学知识的同时,也增加了同学老师之间的感情。希望以后还会有更多类似的实训课程,在有限的大学时间内学到更多的实用技能,为以后的工作打下一个良好的基础。六参考文献1 陈强.C语言程序设计M.北京:北京大学出版社,2009.2 许波.C语言实例解析-精粹M .北京:清华大学出版社,2008.3潭浩强.C语言函数速查手册M.北京:北京大学出版社,2006. 4陈正冲.C语言实训指导书M .北京:清华大学出版社,2007.5 潭浩强.C语言实训程序源代码M.北京:清华大学出版社,2005.6潭浩强.C语言设计程序经典案例教程M.北京:北京大学出版社,2010.7 李波.C语言入门经典(第四版)M .北京:北京邮电大学出版社,2010.七部分程序清单(带有详细的注释)#define N 200#include #include #include #define LEFT 0x4b00#define RIGHT 0x4d00#define DOWN 0x5000#define UP 0x4800#define ESC 0x011bint i,daan;int chengji=0; /*积分*/int sudu=50000;/*速度调整*/struct shiwu int x;/*横坐标*/ int y;/*纵坐标*/ int shi;/*判断物体是否出现变量*/shiwu;struct she int xN; int yN; int tou;/*节数*/ int fangxiang;/*方向*/ int life;/*生命*/she;void Init(void);/*移动*/void Close(void);/*结束*/void DrawK(void);/*画面*/void GameOver(void);/*结束*/void GamePlay(void);/*过程*/void PrScore(void);/*成绩*/void main(void) Init(); DrawK(); GamePlay(); Close();void Init(void) int gd=DETECT,gm; initgraph(&gd,&gm,c:tc); cleardevice();void DrawK(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;i0;i-) tou.xi=tou.xi-1; tou.yi=tou.yi-1; switch(tou.fangxiang) case 1:tou.x0+=10;break; case 2: tou.x0-=10;break; case 3: tou.y0-=10;break; case 4: tou.y0+=10;break; for(i=3;ishe.tou;i+) if(she.xi=she.x0&she.yi=she.y0) GameOver(); she.life=1; break; if(she.x0595|she.y0455)/*是否碰壁*/ GameOver();/*失败*/ she.life=1; /*死亡*/ if(she.life=1) break; if(she.x0=shiwu.x&she.y0=shiwu.y) setcolor(0);/*去掉方块*/ rectangle(shiwu.x,shiwu.y,shiwu.x+10,shiwu.y-10); she.xshe.tou=-20;she.yshe.tou=-20; she.tou+;/*增加一个方块*/ shiwu.shi=1;/*出现新方块*/ chengji+=10; PrScore();/*积分*/ setcolor(4); for(i=0;ishe.tou;i+) rectangle(she.xi,she.yi,she.xi+10, she.yi-10); delay(gamespeed); setcolor(0); rectangle(she.xshe.tou-1,she.yshe.tou-1,she.xshe.tou-1+10,she.yshe.tou-1-10); /*endwhile(!kbhit)*/ if(she.life=1)/*如果死亡则跳出*/ break; daan=bioskey(0); if(daan=ESC)/*按ESC推出*/ break; else if(daan=UP&she.fangxiang!=4)/*判断方向*/ she.fangxiang=3; else if(daan=RIGHT&she.fangxiang!=2) she.fangxiang=1; else if(daan=LEFT&she.fangxiang!=1) she.fangxiang=2; else if(daan=DOWN&she.fangxiang!=3) she.fangxiang=4; /*结束*/void GameOver(void) cleardevice(); PrScore(); setcolor(RED); settextstyle(0,0,4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年福建省龙岩市新罗区国有资产经营集团有限公司招聘1人模拟试卷及答案详解(夺冠系列)
- 2025福建厦门启航培训服务有限公司招聘1人模拟试卷及参考答案详解1套
- 2025年蚌埠固镇县连城镇招聘村级后备人才3人考前自测高频考点模拟试题及答案详解参考
- 2025江苏徐州医科大学招聘专职辅导员4人考前自测高频考点模拟试题附答案详解(模拟题)
- 2025年福建省福州第十八中学招聘1人考前自测高频考点模拟试题及答案详解1套
- 2025辽宁能源控股集团所属抚矿集团拟聘人员补录考前自测高频考点模拟试题附答案详解(典型题)
- 2025春季新疆石河子大学第一附属医院、石河子大学附属中医医院(兵团中医医院)校园招聘10人模拟试卷及答案详解(网校专用)
- 2025河南新乡市延津县县外在编在岗教师回乡任教的考前自测高频考点模拟试题及答案详解1套
- 2025广东广佛产业园区运营管理有限公司招聘考前自测高频考点模拟试题及答案详解1套
- 2025年合肥市第一人民医院双凤院区招聘31人考前自测高频考点模拟试题及1套参考答案详解
- 督导门店工作总结
- 水泥行业年度汇报
- 2026中国电力工程顾问集团华东电力设计院有限公司校园招聘考试参考试题及答案解析
- 2025邮储银行校招笔试真题及答案
- 2025年重获驾驶权限科目一机动车理论考试题库
- 山东省菏泽市牡丹区2024-2025学年七年级上学期第一次月考数学试卷(含答案)
- 《项目基金管理办法》
- 2025年西藏司法考试真题及答案
- 民族团结一家亲知识竞赛试题及答案
- 运动跑步专业知识培训课件
- 禁塑知识培训课件
评论
0/150
提交评论