ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:30.79KB ,
资源ID:9878372      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9878372.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言推箱子.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言推箱子.docx

1、C语言推箱子实训报告题 目: 推箱子院 系: 信息科技学院专 业: 通信工程姓 名: 学 号: 指导教师: 日 期: 2009-9-19 桂林电子科技大学信息科技学院目 录1 问题定义 .32 详细设计42.1 数据结构设计 42.2 主控流程 52.3 输出记录.52.4数据功能描述 .63 系统实现 63.1 编码 63.1.1 程序预处理 .63.1.2 主函数main() .73.2 测试与调试 8 4 系统维护 95 归纳总结 95.1 开发经验 95.2 实训中遇到的问题及解决方法 95.3 设计中的不足之处95.4 感想和心得体会 106 参考资料 10推箱子 本题目设计目的是训

2、练学生的基本编程能力,了解推箱子的开发流程,熟悉C语言的文件各种基本操作。本程序中涉及数组、结构体、公用体 及各种语句的运用如for();while();if. 等方面的知识。通过本程序的训练, 为进一步应用C语言打下坚实的基础。1、问题定义定义二维数组chMap来记录屏幕上各点的状态。假设地图中图形0表示墙1表示路2表示目标。通过循环语句for(j=0;j10;j+) if(chMapij=0) printf(#); if(chMapij=1) printf( ); if(chMapij=2) printf(X); 输出地图,实现相应功能。在问题定义阶段要考虑题目的可行性和需求分析,接下来进

3、入开发阶段,完成 设计和实现的任务。 2 详细设计2. 1数据结构设计 定义读取键盘码共用体及函数。union keyboard /*定义读取键盘码的共用体类型*/int fnGetKey(void) /*定义读取键盘码的函数*/union keyboard uniKey1; /*定义读取键盘码的共用体变量*/while(bioskey(1)=0); /*检测用户是否按键*/uniKey1.iKeyInfo=bioskey(0); /*读取按键信息*/return(uniKey1.chKeyBit0=0?uniKey1.chKeyBit1:uniKey1.chKeyBit0); /*返回ASC

4、II码或扩充码*/unsigned int iKeyInfo;char chKeyBit2;这样就定义了读取键盘码的函数,用于读取按键信息,通过按键信息改变坐标。2.2. 主控main()函数部分执行流程2.3输出记录 定义二维数组chMap来记录屏幕上各点的状态,移动后的人的坐标与箱子坐标重合,则改变箱子坐标向前一格。通过循环语句for(j=0;j10;j+) if(chMapij=0) printf(#); if(chMapij=1) printf( ); if(chMapij=2) printf(X); 输出地图 2.4函数功能描述bios.h是turbo c下的库文件,其函数有:int

5、 bioscom(int cmd,char abyte,int port);用于RS232通讯int biosmemory(void);返回内存大小int biosdisk(int cmd,int drive,int head, int trach,int sector, int nsects,void *buffer);BIOS磁盘服务int biosprintf(int cmd,int abyte,int port);使用BIOS进行打印机输出int biosequip(void)设备检查long biostime(int cmd,long newtime);BIOS时间服务入口int b

6、ioskey(int cmd);按键接口这几个函数基本上都有相应的API函数或使用Windows下的机制来实现了,没有与之完全相同的头文件,不知道你要使用哪一个接口函数,只能根据你要的函数进行说明了。 3、系统实现31 编码3.1.1 程序预处理包括加载头文件,定义结构体、常量和变量,并对它们进行初始化工作。#include stdio.h /*标准输入输出函数库*/#includebios.h #define LEFT 75#define RIGHT 77#define UPPER 72#define DOWN 80#define ESC 27 /*宏定义*/ struct Boxss /*

7、定义箱子结构体,其中包含坐标属性*/int x,y; 3.1.2 主函数main()main()函数主要实现了对整个程序的运行控制,以及功能的运行。 void main()int iKey,x=11,y=6,tx=11,ty=6; /*x,y为人物移动后坐标,tx,ty为人物移动前坐标*/struct Boxss Box4; /*定义箱子数量*/int chMap1010= /*用二维数组定义地图*/ 0,0,0,0,0,0,0,0,0,0, /*0表示墙1表示路2表示目标*/ 0,1,0,0,0,0,1,1,1,0, 0,1,0,2,0,0,1,0,1,0, 0,1,0,1,0,0,1,0,

8、1,0, 0,1,1,1,0,0,1,0,1,0, 0,1,0,0,0,0,1,0,1,0, 0,1,1,1,1,1,1,0,1,0, 0,1,0,1,0,0,0,0,2,0, 0,2,0,1,1,1,1,2,0,0, 0,0,0,0,0,0,0,0,0,0, ; iKey=fnGetKey(); if(iKey=LEFT&chMapy-5x-1-10!=0) x-; if(iKey=RIGHT&chMapy-5x+1-10!=0) x+; if(iKey=UPPER&chMapy-1-5x-10!=0) y-; if(iKey=DOWN&chMapy+1-5x-10!=0)调用函数,按读取的

9、按键信息改变坐标。 32 测试与调试 概述一般情况下,为解决一个问题所编写的程序代码较长,可能包括几百条甚至成千上万条语句。在检查并排除所有语法错误后,还会有不易发现的逻辑错误,因此要对程序进行认真仔细的测试与调试。测试是通过运行程序发现错误的过程,常见的错误有数据溢出、数组越界、进入死循环、语句顺序颠倒、多加“;”或少加“”等等。调试则是确定测试中找到的错误性质并改正错误的过程。测试与调试通常交替进行,即测试调试再测试再调试。能检查出尚未发现的、各种不同类型错误的测试才是成功的测试。测试程序需要测试用例,测试用例可用如下公式表示:测试用例测试数据预期结果。好的测试用例应该是用尽可能少的测试数

10、据发现尽可能多的错误,即发现错误的概率要大。要选择合适的测试数据,使系统在运行时尽量能执行到每条语句,以测试各指令是否正确。还应分别测试输入合法数据与非法数据时,程序的运行情况,。对于合法数据,还要考虑数据的一般性与特殊性,如求最大值的问题,应测试最大值在最前面、最后面、中间某一位置的情况。测试可按模块测试、组装测试和确认测试的步骤进行。(1)模块测试就是分别对各模块进行测试的过程。在编写一个模块后应立即对其进行测试,因为这时对模块记忆深刻,而且单个模块相对较小,所以容易构造测试数据,能方便地检查和改正错误。(2)组装测试就是把所有模块(应该是通过模块测试的模块)按预先制定的计划逐步组装和测试

11、的过程。一般情况下,各模块之间要相互传递数据和控制信息,因此组装测试的主要任务是发现模块接口中的错误。(3)确认测试是最后一个步骤,一般在将软件交付用户之前,应确认软件是否确实满足用户的要求,通常使用接近实际的用例进行测试。 测试程序时,用监视窗口可以随时查看变量或表达式的值,有时还可以将部分程序代码用注释符暂时括起来,缩短程序,以便压缩出错代码 测试与调试 4、系统维护经测试与调试确认软件无错时,开发就告一段落,这时可以交付软件供用户使用,但是在软件的使用过程中还会面临更加漫长的工作,即软件维护。一般维护的工作有:更改使用中发现的错误;为适应实际环境而对程序进行修改;为满足新的需求而对程序作

12、必要的改进等等。5、归纳总结51 开发经验通过对本题目的开发,体会到要掌握以下几点内容。程序。 先进行人工检查,即静态检查。在写好一个程序以后,不要匆匆忙忙上机,而应对纸面上的程序进行人工检查。这一步是十分重要的,它能发现由于疏忽而造成的多数错误。而这一步骤往往容易被人忽视。有人总希望把一切推给计算机系统去做,但这样就会多占用机器时间, 应当养成严谨的科学作风,每一步都要严格把关,不把问题留给后面的。 编写主函数,并进行测试与调试。当被调函数又需要调用其他函数时,也要遵循逐步细化的原则。C语言提供丰富的库函数,编程序时要善于使用库函数,避免不必要的劳动。 定义函数时,应选好参数的个数和数据类型

13、。 52 实训中遇到的问题及解决方法 提示的出错信息多,应当从上到下一一改正。有时显示出一大片出错信息往往使人感到问题严重,无从下手。其实可能只有一二个错误。例如,对使用的变量未定义,编译时就会对所有含该变量的语句发出出错信息;有的是少了“”或多了“”有的是书写语句时忘记写 “;”或是全角的“;”了,只要加上一个变量定义,或填加“;”就所有错误都消除了。编程的过程当中找出了我许多知识上的缺陷,弄清楚了我不懂的地方和似是而非的地方,使我及时补上了欠缺。综合实训编程使我的知识形成了一个完整的框架结构,而不再是零散的知识个体,使我在使用时更加的方便。我对做完的习题检查不再是走马观花,而是仔细核对、认

14、真检查。 改变了我做题时心烦气燥的习惯,现在做题可以平和静气的完成。53 设计中尚存的不足之处所编的程序把学过的一些知识巧妙用上。不过,程序编的过于简单,应用的新识过少,关于这次的程序,还有些不足的地方。首先就是该程序界面不够美观大方 。54 感想和心得体会程序设计是一项细致深入的工作,需要下功夫,动脑子,善于累积经验。忙碌了两个多星期,在大家的共同努力下,我们总算将此程序设计出来。尽管不是自己独立完成,但仍然很高兴,因为在设计的过程中,让我了解到要设计一个大型程序,查找资料是至关重要的,在他人的基础上,再根据自己所学进行修改与调试,最后设计出自己想要的程序,这过程艰辛,但只要你持之以恒,成功

15、指日可待。另外平时扎实的基础也很关键,因为如果你平时学得就不怎么样,那么你面对这么一个比较有难度的程序,你可能会望而却步,看他人的程序都是个难点,更别说让你自己去设计。为了解决此。类问题,最好就是多向同学,老师请教,不要怕难为情。尤其是老师,评他们多年的编写程序的经验,来要解决我们的问题, 很感谢这次的课程设计,它使我更加深刻地体会到多看专业书的重要性,只有掌握了一定量的专业知识才能得心应手地解决诸多问题;另外,做任何事都要有耐心,不要一遇到困难就退缩;在学习和工作中要时刻谨记“团结”二字,它好比通向成功的铺路石,不可或缺。 总的来说,这次程序设计让我获益匪浅,对C语言也有了进一步的认识:C语言功能高、表达能力强、使用灵活方便、目标程序效率高。6、参考资料 1 黄明等.21世纪进阶辅导 C语言程序设计M.大连理工大学出版社,20052 马靖善等.C语言程序设计M.清华大学出版社,20053 谭浩强.C语言程序设计(第二版)M.北京:高等教育出版社,2002

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1