欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOC文档下载  

    C语言课程设计报告导弹打飞机精品.doc

    • 资源ID:9359       资源大小:128.49KB        全文页数:23页
    • 资源格式: DOC        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言课程设计报告导弹打飞机精品.doc

    -2014-2015学年第一学期C程序设计课程设计 题目名称:导弹打飞机需求分析与系统设计报告姓 名:班 级: 指导教师:编写日期:目录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记分模块31.2定义课程设计中用到的专门术语的定义。EnglishStartHelpPauseContinueLeftRight中文开场帮助暂停继续游戏左移右移EnglishBackUpFireLevelEndE*it中文后转前进发射炮弹关卡完毕游戏退出游戏EnglishHippointMissileFighterPlayer1Player2中文生命值导弹飞机单人双人名词解释:关卡:随着击毁飞机数量的增多,关卡越高难度越大,游戏最高关卡为4。生命值:导弹发射器的生命值为3,即导弹发生器消灭三次后,游戏完毕。1.3设计目标我们设计的导弹打飞机是一种当下比拟流行的小型游戏,玩家可以在这个游戏中锻炼自己的观察能力和灵活度,从中获得乐趣。导弹打飞机游戏界面友好,操作方便,在BC或TC编译环境下工作。通过C课设的磨练来提升我们的思维能力和编程能力以及稳固我们上学期的C语言课程,在编程中提升解决问题的能力,能够及时的发现问题并且解决问题,此外可以在编程的同时快速锻炼我们掌握一个新软件的能力,提高自己的自学能力,在多方面与电脑打交道,提高了自身的电脑知识方面的修养,从质上对自己的编程技巧有一个很大的提高,这次的课程设计给我们提供了一个非常好的锻炼时机。通过二个人的分工合作,在实际中运用和训练程序设计的模块化和工程化思想和技术,努力掌握C语言精华;同时提高自己的交流与团队合作的能力.为以后的更专业更复杂的课程设计和实践活动打好根底。通过编辑较大的程序让我们养成更好的编程习惯,以此来树立我们的信心,当我们以后遇到大程序时就不会害怕而茫然不知所措。任何大的程序只要通过合理构造化、模块化,化复杂为简单,耐心细心的去做,肯定有完成的一天。2需求分析2.1系统概述导弹打飞机游戏是针对导弹模拟作战系统开发课题开发的一款小型游戏。飞机打导弹根据玩家的实力设置了不同的难易程度,玩家可以自行选择。简洁的键盘操作方式和多种辅助显示,使其极易上手。丰富的的动画效果,使其充满乐趣;优良的人迹交互界面,使其回味无穷。游戏支持2名玩家同时进展战斗,每关需要在特定的地形上摧毁一定数量的敌人飞机才能通过,如果玩家的导弹发射器被摧毁3次即算任务失败。该游戏是茶余饭后休闲小游戏的首选!2.2功能需求2.3管理说明实体关系模式1. 玩家1:选择双人模式/单人模式,通过键盘控制导弹发射器的移动,通过鼠标发射导弹击毁飞机。2. 玩家2:根据玩家1选择决定是否参与游戏,通过键盘控制导弹发射器的移动,通过鼠标发射导弹击毁飞机。3. 系统实体:控制飞机出现的数量、出现飞机时间的间隔、飞机的运动方向和发射炮弹规律。4. 记录系统:记录玩家击毁飞机的数量,记录导弹发射器被击毁次数。游戏管理系统开场游戏界面,出现不同的子菜单以供选择;分析玩家是否达本钱关卡任务需求和通关条件;判断玩家闯关成功或失败;分析玩家与奖励物品之间的关系;判断是否为积分前三名,并以此为依据决定是否记录玩家信息并存储。游戏规约“导弹打飞机游戏软件系统分为七个功能:1. 开场功能2. 帮助功能3. 暂停功能4. 退出功能5. 移动飞机和飞机发射炮弹功能6. 控制玩家导弹发射功能7. 存储功能2.4系统运行环境简要说明对本游戏行环境包括硬件环境和软件环境的规定。本游戏是对“导弹作战系统的根本模拟,此系统的运行环境在电脑上模拟实现。硬件环境处理器:Intel Pentium 166 M* 或以上存:32MB以上硬盘空间:500MB以上显卡:SVGA显示适配器软件环境支持操作系统:DOS WINDOWS 9*/ME/2000/*P/WINDOWS 73系统设计分析程序开场3.1程序流程图欢送界面选择模式帮助退出返回介绍关于中文、英文、返回回返回,退出主界面报警退出运行信息退出While 循环导弹信号处理飞机信号处理分配函数信号处理完毕界面3.2功能需求描述功能需求:1. 用户选择“开场功能,提交“开场功能请求。选择单人或者双人模式。2. 系统载入开场界面。3. 用户按下确认键,系统显示场景,玩家导弹发射器和敌方飞机的初始位置。4. 玩家按下方向键移动导弹发射器躲避敌机攻击,用鼠标左击飞机则是导弹发射器瞄准并朝飞机发射导弹,敌机随机自动生成炮弹攻打导弹发射器。5. 导弹与敌方飞机发生碰撞则爆炸,炮弹与导弹发射器碰撞后发生爆炸,炮弹消失,命中后导弹或者是敌机被摧毁。6. 系统根据关卡的不同而控制同一时间段飞机的出现的数量和每架飞机同时发射的炮弹。7. 敌方飞机不可互相攻击,中选择双人模式时己方导弹补课相互攻击,敌机互相攻击发射炮弹击中和导弹攻击导弹发射器系统认定无效。8. 玩家在暂停界面选择退出游戏选项后,游戏载入退出界面,输出游戏完毕语,游戏完毕。9. 失败条件:单人模式在通过最高关卡前导弹发射器被摧毁了三次,第三次被摧毁时显示游戏完毕画面。3.3软件构造游戏整体构造:菜单模块:菜单模块开机动画鼠标、键盘控制函数功能划分开场菜单流程:菜 单进入游戏helpaboutquit运行程序开场准备游戏流程YNNYNYNY开场准备初始化、初值、存储一些图像信息、完成一局部开场画面发生事件载入游戏场景单人模式继续游戏按e*it导弹发射器被毁pause导弹发射器被歼3次?载入游戏画面失败重新生成导弹发射器歼灭敌机已达关卡?已达最后关卡?载入通关画面退出游戏完毕载入下一关生成奖励继续游戏歼灭物资敌机?3.4程序模块划分这种导弹打飞机的小型游戏,界面简单易于操作,将为玩家提供极其方便的菜单系统,对于初玩者,有独特的帮助菜单,助其了解操作方法,使其迅速上手.另外还有记分系统,一局游戏完毕后,显示本次积分. 玩家可以控制一个导弹发射器左右上下移动并发射导弹打飞机,飞机也可以随机发射炮弹袭击导弹发射器,一颗导弹可以击落一架飞机,而一枚炮弹也可以将导弹发射器击毁,飞机和导弹发射器相撞则都消灭.导弹发射器消灭三次后,游戏完毕,显示游戏完毕画面和玩家总分,游戏将保存分数前三名的玩家信息,玩家可以自己填写姓名. 分工和程序调试,本程序采用模块化设计.方案分为以下几个模块:菜单模块模块描述:本模块主要是为玩家提供方便的操作方式,其中包括游戏,选项,帮助三个菜单,游戏菜单中包括开场游戏,暂停或继续游戏,显示高分,完毕游戏四个子菜单.非常方便。功能: 供玩家进展控制,设置.主要是由玩家用鼠标和键盘进展控制.主要控制如下:开场游戏(F1),暂停或继续游戏(F2),显示高分(F3)完毕游戏(F4). 输出项:菜单及其子菜单。键盘模块模块描述:本模块是供玩家进展键盘操作,游戏对此产生相应的反响。功能:承受键盘信息,并对此反响. 导弹发射器的移动(上下左右键),导弹成抛物线飞行。随机产生飞机模块模块描述:本模块的功能是随机产生飞机作为玩家要打击的目标,由于是随机产生的,玩家不能对飞机的位置进展预判,从而提高游戏的可玩性。功能:根据关卡的不同,每隔一定的秒数产生的飞机数不同,每架飞机每隔一定秒数产生的炮弹数也不同,现将有关具体设置列表如下:单人模式Level产生飞机的间隔秒数每次产生飞机数飞机飞行速度cm/s飞机每秒投放的炮弹数One2.5242Two2363Three1.54104Four15155输出项:各种各样的飞机.( 飞行速度、飞行频率、飞机型号,出现位置不同)随机移动,并能随机发射子弹,子弹从屏幕上方向下移动.飞机移出屏幕后便不再发射子弹。记分模块模块描述: 本模块的是实现当游戏完毕之后,显示玩家的总分,可以规定打下一架飞机之后为多少分,最后将分数累加。功能:记分,游戏开场时玩家分数为零.每打下一架飞机玩家分数加10分,游戏完毕后,显示玩家总分,如果玩家的总分进入历史成绩的前三名,将会提醒玩家填写其信息,游戏将在高分中保存这些信息。输出项:玩家的游戏总分。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>#define N 35void print(int N);/输出函数void movebul(int N);/子弹移动函数void movepla(int N);/敌机移动函数void 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(pl>0)scr21pl=0,scr21-pl=1;break;case 'd':case 'D':if(pl<width-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;i<22;i+)aiwidth-1=4;for(j=0;j<width;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");void movebul(int aN)int i,j;for(i=0;i<22;i+)for(j=0;j<width;j+)if(i=0&&aij=2)aij=0;if(aij=2)if(ai-1j=3)score+=10,printf("7");aij=0,ai-1j=2;void movepla(int aN)int i,j;for(i=21;i>=0;i-)/从最后一行往上是为了防止把敌机直接冲出数组。for(j=0;j<width;j+)if(i=21&&aij=3)aij=0;/底行赋值0 以免越界。if(aij=3)aij=0,ai+1j=3;if(a20pl=3&&a21pl=1)death+;void setting(void)int sw=0,i,j;system("cls");dosw=0;printf("n 游戏界面的大小:1.大2.小>> ");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 '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;i<22;i+)for(j=0;j<45;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();. z.

    注意事项

    本文(C语言课程设计报告导弹打飞机精品.doc)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开