C语言课程设计报告(导弹打飞机)精品_大学计算机专业.doc

上传人:时光煮雨 文档编号:14120866 上传时间:2022-02-02 格式:DOC 页数:21 大小:225.04KB
返回 下载 相关 举报
C语言课程设计报告(导弹打飞机)精品_大学计算机专业.doc_第1页
第1页 / 共21页
C语言课程设计报告(导弹打飞机)精品_大学计算机专业.doc_第2页
第2页 / 共21页
C语言课程设计报告(导弹打飞机)精品_大学计算机专业.doc_第3页
第3页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C语言课程设计报告(导弹打飞机)精品_大学计算机专业.doc》由会员分享,可在线阅读,更多相关《C语言课程设计报告(导弹打飞机)精品_大学计算机专业.doc(21页珍藏版)》请在三一文库上搜索。

1、2014-2015学年第一学期C程序设计课程设计 题目名称:导弹打飞机需求分析封面格式与系统设计报告:00000000学号:000班级: 00科学与技术一班指导教师:00000编写日期: 2015年 1月5日2015年1月31日 成绩:目录1需求分析3.1系统概述3.2功能需求3.3管理说明3.3.1实体关系模式3.3.2游戏管理系统3.3.3游戏规约3.4系统运行环境3系统设计分析3.1程序流程图1.2功能需求描述3.3软件结构3.3.1游戏整体结构:3.3.2菜单模块:3.3.3开始菜单流程:3.3.4单人游戏流程3.3.5双人游戏流程3.4程序模块划分3.4.1菜单模块3.4.7记分模块

2、3加入换页符1.2定义放到附录里面课程设计中用到的专门术语的定义。EnglishStartHelpPauseContinueLeftRight中文开始帮助暂停继续游戏左移右移EnglishBackUpFireLevelEndExit中文后转前进发射炮弹关卡结束游戏退出游戏EnglishHippointMissileFighterPlayer1Player2中文生命值导弹飞机单人双人名词解释:关卡:随着击毁飞机数量的增多,关卡越高难度越大,游戏最高关卡为4。生命值:导弹发射器的生命值为3,即导弹发生器毁灭三次后,游戏结束。1.3改为“1”设计目标我们设计的导弹打飞机是一种当下比较流行的小型游戏,

3、玩家可以在这个游戏中锻炼自己的观察能力和灵活度,从中获得乐趣。导弹打飞机游戏界面友好,操作方便,在BC或TC编译环境下工作。通过C课设的磨练来提升我们的思维能力和编程能力以与巩固我们上学期的C语言课程,在编程中提升解决问题的能力,能够与时的发现问题并且解决问题,此外可以在编程的同时快速锻炼我们掌握一个新软件的能力,提高自己的自学能力,在多方面与电脑打交道,提高了自身的电脑知识方面的修养,从质上对自己的编程技巧有一个很大的提高,这次的课程设计给我们提供了一个非常好的锻炼机会。通过二个人的分工合作,在实际中运用和训练程序设计的模块化和工程化思想和技术,努力掌握C语言精髓;同时提高自己的交流与团队合

4、作的能力.为以后的更专业更复杂的课程设计和实践活动打好基础。通过编辑较大的程序让我们养成更好的编程习惯,以此来树立我们的信心,当我们以后遇到大程序时就不会害怕而茫然不知所措。任何大的程序只要通过合理结构化、模块化,化复杂为简单,耐心细心的去做,肯定有完成的一天。2需求分析2.1系统概述导弹打飞机游戏是针对导弹模拟作战系统开发课题开发的一款小型游戏。飞机打导弹根据玩家的实力设置了不同的难易程度,玩家可以自行选择。简洁的键盘操作方式和多种辅助显示,使其极易上手。丰富的的动画效果,使其充满乐趣;优良的人迹交互界面,使其回味无穷。游戏支持2名玩家同时进行战斗,每关需要在特定的地形上摧毁一定数量的敌人飞

5、机才能通过,如果玩家的导弹发射器被摧毁3次即算任务失败。该游戏是茶余饭后休闲小游戏的首选!2.2功能需求2.3管理说明实体关系模式1. 玩家1:选择双人模式/单人模式,通过键盘控制导弹发射器的移动,通过鼠标发射导弹击毁飞机。2. 玩家2:根据玩家1选择决定是否参与游戏,通过键盘控制导弹发射器的移动,通过鼠标发射导弹击毁飞机。3. 系统实体:控制飞机出现的数量、出现飞机时间的间隔、飞机的运动方向和发射炮弹规律。4. 记录系统:记录玩家击毁飞机的数量,记录导弹发射器被击毁次数。游戏管理系统开始游戏界面,出现不同的子菜单以供选择;分析玩家是否达成本关卡任务需求和通关条件;判断玩家闯关成功或失败;分析

6、玩家与奖励物品之间的关系;判断是否为积分前三名,并以此为依据决定是否记录玩家信息并存储。游戏规约“导弹打飞机”游戏软件系统分为七个功能:1. 开始功能2. 帮助功能3. 暂停功能4. 退出功能5. 移动飞机和飞机发射炮弹功能6. (控制玩家)导弹发射功能7. 存储功能2.4系统运行环境简要说明对本游戏行环境(包括硬件环境和软件环境)的规定。本游戏是对“导弹作战系统”的基本模拟,此系统的运行环境在电脑上模拟实现。硬件环境处理器:Intel Pentium 166 MX 或以上存:32MB以上硬盘空间:500MB以上显卡:SVGA显示适配器软件环境支持操作系统:DOS WINDOWS 9X/ME/

7、2000/XP/WINDOWS 73系统设计分析程序开始3.1程序流程图注意图形是否出边界鼠标操作 欢迎界面选择模式帮助退出返回介绍关于中文、英文、返回回返回,退出主界面报警退出运行信息退出While 循环导弹信号处理飞机信号处理分配函数信号处理结束界面3.2功能需求描述功能需求:加粗1. 用户选择“开始功能”,提交“开始功能”请求。选择单人或者双人模式。2. 系统载入开始界面。3. 用户按下确认键,系统显示场景,玩家导弹发射器和敌方飞机的初始位置。4. 玩家按下方向键移动导弹发射器躲避敌机攻击,用鼠标左击飞机则是导弹发射器瞄准并朝飞机发射导弹,敌机随机自动生成炮弹攻打导弹发射器。5. 导弹与

8、敌方飞机发生碰撞则爆炸,炮弹与导弹发射器碰撞后发生爆炸,炮弹消失,命中后导弹或者是敌机被摧毁。6. 系统根据关卡的不同而控制同一时间段飞机的出现的数量和每架飞机同时发射的炮弹。7. 敌方飞机不可互相攻击,当选择双人模式时己方导弹补课相互攻击,敌机互相攻击发射炮弹击中和导弹攻击导弹发射器系统认定无效。8. 玩家在暂停界面选择退出游戏选项后,游戏载入退出界面,输出游戏结束语,游戏结束。9. 失败条件:单人模式在通过最高关卡前导弹发射器被摧毁了三次,第三次被摧毁时显示游戏结束画面。3.3软件结构游戏整体结构:菜单模块:菜单模块开机动画鼠标、键盘控制函数功能划分开始菜单流程:菜 单进入游戏helpab

9、outquit运行程序开始准备游戏流程YNNYNYNY开始准备(初始化、初值、存储一些图像信息、完成一部分开始画面)发生事件载入游戏场景单人模式继续游戏按exit导弹发射器被毁pause导弹发射器被歼3次?载入游戏画面失败重新生成导弹发射器歼灭敌机已达关卡?已达最后关卡?载入通关画面退出游戏结束载入下一关生成奖励继续游戏歼灭物资敌机?3.4程序模块划分这种导弹打飞机的小型游戏,界面简单易于操作,将为玩家提供极其方便的菜单系统,对于初玩者,有独特的帮助菜单,助其了解操作方法,使其迅速上手.另外还有记分系统,一局游戏结束后,显示本次积分. 玩家可以控制一个导弹发射器左右上下移动并发射导弹打飞机,飞

10、机也可以随机发射炮弹袭击导弹发射器,一颗导弹可以击落一架飞机,而一枚炮弹也可以将导弹发射器击毁,飞机和导弹发射器相撞则都毁灭.导弹发射器毁灭三次后,游戏结束,显示游戏结束画面和玩家总分,游戏将保存分数前三名的玩家信息,玩家可以自己填写. 分工和程序调试,本程序采用模块化设计.计划分为以下几个模块:菜单模块模块描述:本模块主要是为玩家提供方便的操作方式,其中包括游戏,选项,帮助三个菜单,游戏菜单中包括开始游戏,暂停或继续游戏,显示高分,结束游戏四个子菜单.非常方便。功能: 供玩家进行控制,设置.主要是由玩家用鼠标和键盘进行控制.主要控制如下:开始游戏(F1),暂停或继续游戏(F2),显示高分(F

11、3)结束游戏(F4). 输出项:菜单与其子菜单。键盘模块模块描述:本模块是供玩家进行键盘操作,游戏对此产生相应的反应。功能:接受键盘信息,并对此反应. 导弹发射器的移动(上下左右键),导弹成抛物线飞行。注意连续性随机产生飞机模块模块描述:本模块的功能是随机产生飞机作为玩家要打击的目标,由于是随机产生的,玩家不能对飞机的位置进行预判,从而提高游戏的可玩性。功能:根据关卡的不同,每隔一定的秒数产生的飞机数不同,每架飞机每隔一定秒数产生的炮弹数也不同,现将有关具体设置列表如下:单人模式Level产生飞机的间隔秒数每次产生飞机数飞机飞行速度(cm/s)飞机每秒投放的炮弹数One2.5242Two236

12、3Three1.54104Four15155输出项:各种各样的飞机.( 飞行速度、飞行频率、飞机型号,出现位置不同)随机移动,并能随机发射子弹,子弹从屏幕上方向下移动.飞机移出屏幕后便不再发射子弹。注意连续性记分模块模块描述: 本模块的是实现当游戏结束之后,显示玩家的总分,可以规定打下一架飞机之后为多少分,最后将分数累加。功能:记分,游戏开始时玩家分数为零.每打下一架飞机玩家分数加10分,游戏结束后,显示玩家总分,如果玩家的总分进入历史成绩的前三名,将会提醒玩家填写其信息,游戏将在”高分”中保存这些信息。输出项:玩家的游戏总分。4.2改为“4”时间安排时间任务备注暑假自学参考书目、设计报告如果

13、遇到不懂得地方,一定要与时的向老师或者学长请教;制定了计划,一定要实行;与其他多多交流,收获意想不到的知识。在课设的同时,一定要加强自主学习的能力。第一周整体规划、算法设计第二周界面设计、键盘第三周编程实现第四周编程实现第五周编码实现第六周编码实现、调试程序第七周总结、验收、提交报告五、 致词 致词: 第一次接触c语言,兴趣盎然,感觉在这次课程设计的过程中学到了很多东西,感觉收获很多,很高兴,很满足。而且在把我的课余时间充分的利用起来准备知识,这样避免了荒废时间。我非常感老师在这短时间里的的辛苦帮助6 . 参考文献王士元. C高级实用程序设计. : 清华大学. 1996周纯杰,正林等. 标准C

14、语言程序与应用. : 华中科技大学. 2005远. 高级C语言程序设计技巧与实例. : 机械工业, 1995清华, 朱红. C语言课程设计. : 东南大学, 2003潭浩强. C语言程序设计. : 清华大学, 2000加海. (C语言版)高级语言程序设计. :大学,2002建华,卫跃华. C语言实用软件界面设计. :电子科大,1995附录1:#include #include #include #include #define N 35void print(int N);/输出函数void movebul(int N);/子弹移动函数void movepla(int N);/敌机移动函数voi

15、d setting(void);/设置函数void menu(void);/菜单函数int scr22N=0,pl=9,width=24,speed=3,density=30,score=0,death=0;/全局变量:界面、我机初始位、界面宽度、敌机速度、敌度、得分、死亡main(void)menu();int i=0,j=0;scr21pl=1;scr05=3;while(1)if(kbhit()switch(getch()/控制左右移动和进入菜单case a:case A:if(pl0)scr21pl=0,scr21-pl=1;break;case d:case D:if(plwidth

16、-2)scr21pl=0,scr21+pl=1;break;case w:case W:scr20pl=2;break;case 27 :setting();break;if(+j%density=0)/控制生产敌机的速度j=0;srand(time(NULL);scr0rand()%width=3;if(+i%speed=0)/控制敌机移动速度,相对于子弹移动速度movepla(scr);movebul(scr);print(scr);if(i=30000)i=0;/以免i 越界void print(int aN)system(cls);int i,j;for(i=0;i22;i+)aiwi

17、dth-1=4;for(j=0;jwidth;j+)if(aij=0)printf( );if(aij=1)printf(5);/输出我机的符号if(aij=2)printf(.);/子弹if(aij=3)printf(3); /输出敌机符号if(aij=4)printf(|);if(i=0&j=width-1)printf(得分:%d,score);/右上角显示得分if(i=1&j=width-1)printf(死亡:%d,death);if(i=2&j=width-1)printf(设置:Esc);if(i=3&j=width-1)printf(Copyright:耀伟);printf(n

18、);void movebul(int aN)int i,j;for(i=0;i22;i+)for(j=0;j=0;i-)/从最后一行往上是为了避免把敌机直接冲出数组。for(j=0;j );switch(getche()case 1:width=34;break;case 2:width=24;break;default:printf(n 错误,请重新选择.n);sw=1;while(sw);dosw=0;printf(n 请选择敌度:1.大2.中3.小 );switch(getche()case 0:density=10;break;case 1:density=20;break;case

19、2:density=30;break;case 3:density=40;break;default:printf(n 错误,请重新选择.n);sw=1;while(sw);dosw=0;printf(n 敌机的飞行速度:1.快2.中3.慢 );switch(getche()case 1:speed=2;break;case 2:speed=3;break;case 3:speed=4;break;default:printf(n 错误,请重新选择.n);sw=1;while(sw);for(i=0;i22;i+)for(j=0;j45;j+)scrij=0;scr21pl=9=1;printf(n 按任意键保存.);getch();void menu(void)printf(说明:按A D 控制我机左右飞行,W 发射子弹n 设置:请按Escn 开始游戏:任意键n byyaowei_chen);if(getch()=27)setting();21 / 21

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1