版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
(此文档为word格式,下载后您可任意编辑修改!)学年第一学期《C程序设计》课程设计题目名称:导弹打飞机需求分析封面格式与系统设计报告封面格式姓名:陈耀伟学号:班级:14科学与技术一班指导教师:邱俊杰
编写日期:2015年1月5日——2015年1月31日成绩:
目录TOC\o"1-4"\h\z\u1需求分析 31.1系统概述 31.2功能需求 31.3管理说明 31.3.1实体关系模式 31.3.2游戏管理系统 31.3.3游戏规约 31.4系统运行环境 32系统设计分析 32.1程序流程图 12.2功能需求描述 32.3软件结构 32.3.1游戏整体结构: 32.3.2菜单模块: 32.3.3开始菜单流程: 32.3.4单人游戏流程 32.3.5双人游戏流程 32.4程序模块划分 32.4.1菜单模块 32.4.7记分模块 3加入换页符加入换页符1.2定义放到附录里面放到附录里面课程设计中用到的专门术语的定义。EnglishStartHelpPauseContinueLeftRight中文开始帮助暂停继续游戏左移右移EnglishBackUpFireLevelEndExit中文后转前进发射炮弹关卡结束游戏退出游戏EnglishHippointMissileFighterPlayer1Player2中文生命值导弹飞机单人双人名词解释:关卡:随着击毁飞机数量的增多,关卡越高难度越大,游戏最高关卡为4。生命值:导弹发射器的生命值为3,即导弹发生器毁灭三次后,游戏结束。设计目标我们设计的导弹打飞机是一种当下比较流行的小型游戏,玩家可以在这个游戏中锻炼自己的观察能力和灵活度,从中获得乐趣。导弹打飞机游戏界面友好,操作方便,在BC或TC编译环境下工作。通过C课设的磨练来提升我们的思维能力和编程能力以及巩固我们上学期的C语言课程,在编程中提升解决问题的能力,能够及时的发现问题并且解决问题,此外可以在编程的同时快速锻炼我们掌握一个新软件的能力,提高自己的自学能力,在多方面与电脑打交道,提高了自身的电脑知识方面的修养,从质上对自己的编程技巧有一个很大的提高,这次的课程设计给我们提供了一个非常好的锻炼机会。通过二个人的分工合作,在实际中运用和训练程序设计的模块化和工程化思想和技术,努力掌握C语言精髓;同时提高自己的交流与团队合作的能力.为以后的更专业更复杂的课程设计和实践活动打好基础。通过编辑较大的程序让我们养成更好的编程习惯,以此来树立我们的信心,当我们以后遇到大程序时就不会害怕而茫然不知所措。任何大的程序只要通过合理结构化、模块化,化复杂为简单,耐心细心的去做,肯定有完成的一天。2需求分析2.1系统概述导弹打飞机游戏是针对导弹模拟作战系统开发课题开发的一款小型游戏。飞机打导弹根据玩家的实力设置了不同的难易程度,玩家可以自行选择。简洁的键盘操作方式和多种辅助显示,使其极易上手。丰富的的动画效果,使其充满乐趣;优良的人迹交互界面,使其回味无穷。游戏支持2名玩家同时进行战斗,每关需要在特定的地形上摧毁一定数量的敌人飞机才能通过,如果玩家的导弹发射器被摧毁3次即算任务失败。该游戏是茶余饭后休闲小游戏的首选!2.2功能需求2.3管理说明2.3.1实体关系模式玩家1:选择双人模式/单人模式,通过键盘控制导弹发射器的移动,通过鼠标发射导弹击毁飞机。玩家2:根据玩家1选择决定是否参与游戏,通过键盘控制导弹发射器的移动,通过鼠标发射导弹击毁飞机。系统实体:控制飞机出现的数量、出现飞机时间的间隔、飞机的运动方向和发射炮弹规律。记录系统:记录玩家击毁飞机的数量,记录导弹发射器被击毁次数。2.3.2游戏管理系统开始游戏界面,出现不同的子菜单以供选择;分析玩家是否达成本关卡任务需求和通关条件;判断玩家闯关成功或失败;分析玩家与奖励物品之间的关系;判断是否为积分前三名,并以此为依据决定是否记录玩家信息并存储。2.3.3游戏规约“导弹打飞机”游戏软件系统分为七个功能:开始功能帮助功能暂停功能退出功能移动飞机和飞机发射炮弹功能(控制玩家)导弹发射功能存储功能2.4系统运行环境 简要说明对本游戏行环境(包括硬件环境和软件环境)的规定。本游戏是对“导弹作战系统”的基本模拟,此系统的运行环境在电脑上模拟实现。2.4.1硬件环境处理器:IntelPentium166MX或以上内存:32MB以上硬盘空间:500MB以上显卡:SVGA显示适配器2.4.2软件环境支持操作系统:DOSWINDOWS9X/ME/2000/XP/WINDOWS73系统设计分析3.1程序流程图注意图形是否出边界注意图形是否出边界3.2功能需求描述功能需求:加粗加粗用户选择“开始功能”,提交“开始功能”请求。选择单人或者双人模式。系统载入开始界面。用户按下确认键,系统显示场景,玩家导弹发射器和敌方飞机的初始位置。玩家按下方向键移动导弹发射器躲避敌机攻击,用鼠标左击飞机则是导弹发射器瞄准并朝飞机发射导弹,敌机随机自动生成炮弹攻打导弹发射器。导弹与敌方飞机发生碰撞则爆炸,炮弹与导弹发射器碰撞后发生爆炸,炮弹消失,命中后导弹或者是敌机被摧毁。系统根据关卡的不同而控制同一时间段内飞机的出现的数量和每架飞机同时发射的炮弹。敌方飞机不可互相攻击,当选择双人模式时己方导弹补课相互攻击,敌机互相攻击发射炮弹击中和导弹攻击导弹发射器系统认定无效。玩家在暂停界面选择退出游戏选项后,游戏载入退出界面,输出游戏结束语,游戏结束。失败条件:单人模式在通过最高关卡前导弹发射器被摧毁了三次,第三次被摧毁时显示游戏结束画面。3.3软件结构3.3.1游戏整体结构:3.3.2菜单模块:3.3.3开始菜单流程:
3.3.4游戏流程3.4程序模块划分这种导弹打飞机的小型游戏,界面简单易于操作,将为玩家提供极其方便的菜单系统,对于初玩者,有独特的帮助菜单,助其了解操作方法,使其迅速上手.另外还有记分系统,一局游戏结束后,显示本次积分.玩家可以控制一个导弹发射器左右上下移动并发射导弹打飞机,飞机也可以随机发射炮弹袭击导弹发射器,一颗导弹可以击落一架飞机,而一枚炮弹也可以将导弹发射器击毁,飞机和导弹发射器相撞则都毁灭.导弹发射器毁灭三次后,游戏结束,显示游戏结束画面和玩家总分,游戏将保存分数前三名的玩家信息,玩家可以自己填写姓名.分工和程序调试,本程序采用模块化设计.计划分为以下几个模块:3.4.1菜单模块模块描述:本模块主要是为玩家提供方便的操作方式,其中包括游戏,选项,帮助三个菜单,游戏菜单中包括开始游戏,暂停或继续游戏,显示高分,结束游戏四个子菜单.非常方便。功能:供玩家进行控制,设置.主要是由玩家用鼠标和键盘进行控制.主要控制如下:开始游戏(F1),暂停或继续游戏(F2),显示高分(F3)结束游戏(F4).输出项:菜单及其子菜单。3.4.3键盘模块模块描述:本模块是供玩家进行键盘操作,游戏对此产生相应的反应。功能:接受键盘信息,并对此反应.导弹发射器的移动(上下左右键),导弹成抛物线飞行。3.4.5注意连续性随机产生飞机模块注意连续性模块描述:本模块的功能是随机产生飞机作为玩家要打击的目标,由于是随机产生的,玩家不能对飞机的位置进行预判,从而提高游戏的可玩性。功能:根据关卡的不同,每隔一定的秒数产生的飞机数不同,每架飞机每隔一定秒数产生的炮弹数也不同,现将有关具体设置列表如下:单人模式Level产生飞机的间隔秒数每次产生飞机数飞机飞行速度(cm/s)飞机每秒投放的炮弹数One2.5242Two2363Three1.54104Four15155输出项:各种各样的飞机.(飞行速度、飞行频率、飞机型号,出现位置不同)随机移动,并能随机发射子弹,子弹从屏幕上方向下移动.飞机移出屏幕后便不再发射子弹。3.4.7注意连续性记分模块 注意连续性模块描述:本模块的是实现当游戏结束之后,显示玩家的总分,可以规定打下一架飞机之后为多少分,最后将分数累加。功能:记分,游戏开始时玩家分数为零.每打下一架飞机玩家分数加10分,游戏结束后,显示玩家总分,如果玩家的总分进入历史成绩的前三名,将会提醒玩家填写其信息,游戏将在”高分”中保存这些信息。输出项:玩家的游戏总分。4.2改为“4”时间安排改为“4”时间任务备注暑假自学参考书目、设计报告如果遇到不懂得地方,一定要及时的向老师或者学长请教;制定了计划,一定要实行;与其他多多交流,收获意想不到的知识。在课设的同时,一定要加强自主学习的能力。第一周整体规划、算法设计第二周界面设计、键盘第三周编程实现第四周编程实现第五周编码实现第六周编码实现、调试程序第七周总结、验收、提交报告 五、致谢词致谢词:第一次接触c语言,兴趣盎然,感觉在这次课程设计的过程中学到了很多东西,感觉收获很多,很高兴,很满足。而且在把我的课余时间充分的利用起来准备知识,这样避免了荒废时间。我非常感谢老师在这短时间里的的辛苦帮助6.参考文献王士元.C高级实用程序设计.北京:清华大学出版社.1996周纯杰,刘正林等.标准C语言程序及应用.武汉:华中科技大学出版社.2005姚远.高级C语言程序设计技巧与实例.北京:机械工业出版社,1995陈清华,朱红.C语言课程设计.南京:东南大学出版社,2003潭浩强.C语言程序设计.北京:清华大学出版社,2000刘加海.(C语言版)高级语言程序设计.浙江:浙江大学出版社,2002潘建华,卫跃华.C语言实用软件界面设计.西安:西安电子科大出版社,1995附录1:#include<stdio.h>#include<conio.h>#include<stdlib.h>#include<time.h>#defineN35voidprint(int[][N]);//输出函数voidmovebul(int[][N]);//子弹移动函数voidmovepla(int[][N]);//敌机移动函数voidsetting(void);//设置函数voidmenu(void);//菜单函数intscr[22][N]={0},pl=9,width=24,speed=3,density=30,score=0,death=0;//全局变量:界面、我机初始位、界面宽度、敌机速度、敌机密度、得分、死亡main(void){menu();inti=0,j=0;scr[21][pl]=1;scr[0][5]=3;while(1){if(kbhit())switch(getch())//控制左右移动和进入菜单{case'a':case'A':if(pl>0)scr[21][pl]=0,scr[21][--pl]=1;break;case'd':case'D':if(pl<width-2)scr[21][pl]=0,scr[21][++pl]=1;break;case'w':case'W':scr[20][pl]=2;break;case27:setting();break;}if(++j%density==0)//控制生产敌机的速度{j=0;srand(time(NULL));scr[0][rand()%width]=3;}if(++i%speed==0)//控制敌机移动速度,相对于子弹移动速度movepla(scr);movebul(scr);print(scr);if(i==30000)i=0;//以免i越界}}voidprint(inta[][N]){system("cls");inti,j;for(i=0;i<22;i++){a[i][width-1]=4;for(j=0;j<width;j++){if(a[i][j]==0)printf("");if(a[i][j]==1)printf("\5");//输出我机的符号if(a[i][j]==2)printf(".");//子弹if(a[i][j]==3)printf("\3");//输出敌机符号if(a[i][j]==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");}}voidmovebul(inta[][N]){inti,j;for(i=0;i<22;i++)for(j=0;j<width;j++){if(i==0&&a[i][j]==2)a[i][j]=0;if(a[i][j]==2){if(a[i-1][j]==3)score+=10,printf("\7");a[i][j]=0,a[i-1][j]=2;}}}voidmovepla(inta[][N]){inti,j;for(i=21;i>=0;i--)//从最后一行往上是为了避免把敌机直接冲出数组。for(j=0;j<width;j++){if(i==21&&a[i][j]==3)a[i][j]=0;//底行赋值0以免越界。if(a[i][j]==3)a[i][j]=0,a[i+1][j]=3;}if(a[20][pl]==3&&a[21][pl]==1)death++;}voidsetting(void){intsw=0,i,j;system("cls");do{sw=0;printf("\n游戏界面的大小:1.大2.小>>");switch(getche()){case'1':width=34;break;case'2':width=24;break;default:printf("\n错误,请重新
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024届陕西省渭南市高三上学期一模历史试题
- 工矿食堂食品安全培训
- 电竞行业研究报告
- 天津市红桥区2024-2025学年高一上学期期中考试 历史(含答案)
- 【危险化学品经营单位安全管理人员】考试题及答案
- 2024年度危险物品运输安保合同:危险物品运输保安服务协议
- 2025届高考政治二轮复习专题强化练十二认识社会与价值选择含解析
- 2024年度微博知名博主广告发布合同
- 2024年度物业服务合同物业服务内容与服务费用
- 2024年度智慧城市整体解决方案合作合同
- 隧道的衬砌计算(85页清楚明了)
- 人教版八年级(初二)数学上册全册课件PPT
- Q∕GDW 10202-2021 国家电网有限公司应急指挥中心建设规范
- CNAS-CL01:2018(ISO17025:2017)改版后实验室首次内审及管理评审资料汇总
- 护理不良事件-PPT课件
- 必看励志电影介绍当幸福来敲门(影评)通用PPT课件
- 商业银行两地三中心数据容灾备份方案建议书
- 审核评估报告(课堂PPT)
- 体育运动中的二次函数
- 烹饪烹饪营养与卫生教案
- 美国标准黄卡
评论
0/150
提交评论