实训报告
实训报告
题 目: 推箱子
院 系: 信息科技学院
专 业: 通信工程
姓 名:
学 号:
指导教师:
日 期: 2009-9-19
桂林电子科技大学信息科技学院
目 录
1 问题定义 …………………………………………………………………………..3
2 详细设计………………………………………………………………………………4
2.1 数据结构设计 ……… …………………………………………………4
2.2 主控流程 …………………………………………………………………………5
2.3 输出记录………………………………………………………………….5
2.4数据功能描述 ………………………………………………………………….6
3 系统实现 ………………………………………………………………………6
3.1 编码 ………………………………………………………………………6
3.1.1 程序预处理 ……….……………………………………………………………6
3.1.2 主函数main() ……….………………………………………………………7
3.2 测试与调试 ………………………………………………………………………8
4 系统维护 ………………………………………………………………………9
5 归纳总结 ………………………………………………………………………9
5.1 开发经验 ………………………………………………………………………9
5.2 实训中遇到的问题及解决方法 ………………………………………………9
5.3 设计中的不足之处……………………………………………………………………9
5.4 感想和心得体会 ……………………………………………………………………10
6 参考资料 ………………………………………………………………………10
推箱子
本题目设计目的是训练学生的基本编程能力,了解推箱子的开发流程,熟悉C语言的文件各种基本操作。本程序中涉及数组、结构体、公用体 及各种语句的运用如for();while();if…. 等方面的知识。通过本程序的训练, 为进一步应用C语言打下坚实的基础。
1、问题定义
定义二维数组chMap来记录屏幕上各点的状态。假设地图中图形0表示墙1表示路2表示目标。通过循环语句for(j=0;j<10;j++)
{
if(chMap[i][j]==0)
printf("#");
if(chMap[i][j]==1)
printf(" ");
if(chMap[i][j]==2)
printf("X");
}
输出地图,实现相应功能。
在问题定义阶段要考虑题目的可行性和需求分析,接下来进入开发阶段,完成 设计和实现的任务。
2 详细设计
2. 1数据结构设计
定义读取键盘码共用体及函数。
union keyboard /*定义读取键盘码的共用体类型*/
{
int fnGetKey(void) /*定义读取键盘码的函数*/
{
union keyboard uniKey1; /*定义读取键盘码的共用体变量*/
while(bioskey(1)==0); /*检测用户是否按键*/
uniKey1.iKeyInfo=bioskey(0); /*读取按键信息*/
return(uniKey1.chKeyBit[0]==0?uniKey1.chKeyBit[1]:uniKey1.chKeyBit[0]); /*返回ASCII码或扩充码*/
}unsigned int iKeyInfo;
char chKeyBit[2];
};这样就定义了读取键盘码的函数,用于读取按键信息,通过按键信息改变坐标。
2.2. 主控main()函数部分执行流程
2.3输出记录
定义二维数组chMap来记录屏幕上各点的状态,移动后的人的坐标与箱子坐标重合,则改变箱子坐标向前一格。通过循环语句for(j=0;j<10;j++)
{
if(chMap[i][j]==0)
printf("#");
if(chMap[i][j]==1)
printf(" ");
if(chMap[i][j]==2)