软件开发设计报告5_12
国信长天单片机开发板设计任务(2012。5。4更新)

一、国信长天开发板基本驱动程序编程练习第一次布置任务:1、利用P0—P3口的通用I/O口方式,实现LED灯全亮全灭闪烁(间隔时间0.5秒)。
2、利用P0—P3口的总线方式,实现LED灯全亮全灭闪烁(间隔时间0.5秒)。
3、利用P0—P3口的通用I/O口方式,实现8位共阳数码显示管显示“12345678”。
4、利用P0—P3口的总线方式,实现8位共阳数码显示管显示“12345678”。
5、利用独立按键K1、K5、K9、K13,分别按下,实现如下功能:(1)K1按下,最后1位数码管显示键号“1”,蜂鸣器“嘟..嘟..嘟..”鸣叫,间隔100ms;(2)K5按下,最后1位数码管显示键号“2”,继电器控制L1灯闪烁,时间间隔100ms;(3)K9按下,最后1位数码管显示键号“3”,直流电动机启动;(4)K13按下,最后1位数码管显示键号“4”,步进电动机启动。
6、矩阵键盘按下,数码管显示键号“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“10”、“11”、“12”、“13”、“14”、“15”、“16”。
7、矩阵键盘实现分级联锁控制:(1)设置启动键K1,按下后其余按键控制有效;K1按下后进入“启动”状态,数码管显示全“8”,流水灯全亮;(2)设置停止键K16,按下后数码管全灭,流水灯全灭,回复初始状态;(3)设置功能键K2,当启动键按下后再按下K2,LED灯按0.5秒间隔全亮全灭;同时数码管显示“12345678”。
8、在第7题中,为了避免矩阵键盘用到的P3.6其通用I/O口功能和总线写控制功能复用,请改用P0—P3口的通用I/O口方式完成第7题。
9、利用数字温度传感器DS18B20和6位数码显示管显示当前测量的温度。
(要求前4位显示温度数值,后2位显示°C字样)10、利用AT24C02保存8位数码管显示的电子钟,要求掉电后从上次显示的时间继续显示。
11、利用DS1302显示2秒钟当前日历的“年月日”数据,再显示2秒钟当前时钟的“时分秒”数据,构成循环(例如:显示年月日02-05-12和显示时分秒12-25-30)。
房地产开发调研报告【5篇】

房地产开发调研报告【5篇】房地产开发调研报告(精选5篇)房地产开发调研报告篇1一、国内环境:中国房地产还有20xx年以上的好景xx年12月3日上海新国际博览中心,第六届中国住交会拉开序幕。
与往届相比,本届住交会无论是在规模上还是人气上都堪称史无前例。
共有253家房地产企业及相关行业代表参加本届展会,从侧面反映开发企业普遍对将来房地产市场预期向好,一致认同住交会主办方所预言“中国房地产还有20xx年以上的好景”。
“中国房地产业已经成为国民经济的重要支柱产业。
在20xx年中国GDP增长的9.3个百分点中,有1.8个百分点是由房地产业直接奉献的。
中国房地产业直接带动了57个相关产业的产出增加,没有一个其它行业有如此广泛的行业推动力。
1998年以来,中国房地产开发投资、竣工面积、销售面积始终保持了年均20%左右的增长。
20xx年中国住宅投资占GDP比例超过了美国,已经到达了5.7%。
而在美国,房地产业作为国家经济的三大支柱产业(汽车、医药、房地产)之一,已持续了50多年。
20xx年,中国的城镇人口将到达10.2亿人,年均增长4%,城镇住宅存量面积将到达330亿平方米,比20xx年将净增198.5亿平方米,年平均需净增12.4亿平方米。
”二、xx房地产市场:整体良性开展与现阶段迅速升温1、__省宏观政策的指导20xx年6月,为了推动房地产业的持续快速健康开展,依据《关于推动房地产市场持续健康开展的通知》,结合我省实际,__省政府出台《省政府关于推动房地产业持续健康开展的意见》,将在一定程度上刺激商品房市场,保证房产市场健康开展。
2、政府出台房改政策,取消福利分房自20xx年年底荆州政府取消福利分房制度,个人购房数量骤增。
同时,随着居民收入水平不断提高以及消费者观念的转变,消费者对商品房的需求也持续呈上升趋势,在很大程度上刺激了商品房市场迅猛开展。
3、人口城镇化,扩大了市场消费需求。
荆州是一个文化古城,有着悠久的历史,自古以来就是连贯南北的交通要塞和物资集散地,随着近年来城市根底设施建设的逐步完善,吸引了许多外地人来荆州投资经商。
简单可行性报告模板5篇

简单可行性报告模板5篇简单可行性报告模板5篇简单可行性报告模板(一):XX快餐店可行性报告一、项目概况(一)项目名称:XX快餐店(二)建设单位:XX(三)建设性质:新建(四)建设地点:XX(五)建设年限:2015年X月-2015年X月(六)建设资料:快餐店X家(七)投资估算:XX万元二、项目必要性分析(一)满足消费者的消费需求餐厅附近聚集鲁迅美术学校,xx音乐学院,东北大学,并靠近较为繁华的商业区,如华润万象城,家乐福超市,xx工业展览馆等。
消费群体较大,消费本事可观,又可为学生及来往市民供给解决早中晚餐,满足其消费需求。
(二)带动本地区居民就业设立快餐店可增加本地区岗位需求,促进本地区居民就业。
(三)优化本地区产业结构快餐店的加入,可小幅度刺激附近消费,优化产业结构,为该地区注入新的活力。
三、项目可行性分析(一)市场可行性餐厅选址于高校集中的位置,附近又有大型的商场和超市,人流量大,客户源充足有保障,异常是中午吃饭时间附近许多同类型的餐馆基本都是客满。
开设快餐店具备市场可行性。
(二)技术可行性快餐店销售的各种菜系制作简单、快速、方便,经过短时间的培训即可上岗,并且快餐店对服务员的要求不是很高,不需要跟顾客做十分多的交流,与传统餐馆服务模式也不一样,聋哑人经过学习使用各种做快餐的机器和简单的与顾客沟通技巧后就能即刻开始工作,开设快餐店具备技术可行性。
(三)政策可行性近几年国家出台了多项残疾人就业扶持和优惠政策,给予残疾人工作的异常照顾。
国家政策法规为开设快餐店供给了强有力的政策保障,具备政策可行性。
(四)经济可行性由于是聋哑人为主作为服务员,餐厅的主题是xx餐厅,推出的各种菜式皆为低中档消费,所以餐厅内装潢不须太豪华,简洁大方即可,预算投入不需要太高。
开设快餐店具备经济可行性。
(五)模式可行性社会生活的节奏加快,使快餐业的存在和发展成为不容置疑的问题,此次xx快餐店选址在各高校附近,而大学生消费群体大多都热衷于快餐文化,残疾人所服务的快餐店也是大众能乐于理解的。
软件功能点介绍

Low(5) Low(5) Average(7)
功能点分析方法
事务功能(Transaction Function)
指提供给用户的以满足应用数据处理需求的功能性 分为外部输入(EI)、外部输出(EO)、外部查询 (EQ) 复杂性由数据元素类型(DET)和文件引用类型(FTR) 决定
5 乙方项目立项的依据
基于功能点方法,乙方内部的人员配备、费用安排以 及工期设定等都可以更透明 乙方比较不同项目的预算 可以更好地将市场因素与技术因素区分开来,从而给 定相对客观的立项依据
示例:项目的项目,它们的合同价分别是50万、100万、150 万,那么乙方内部立项的预算是否会有所不同?
2007.11
2007.11
28
功能点应用场景
8 测试阶段的质量目标设定
软件测试除了关注测试用例是否充分外,还要考虑所 发现的问题是否已经足够 测试用例的充分性可以功能点去衡量,测试发现的问 题也用功能点去衡量,再结合缺陷趋势分析、缺陷正 交分析,最后可以判断测试后质量状况
2007.11
15
功能点分析方法
事务功能(Transaction Function)
EO
1 to 5 DET 0 to 1 FTR 2 to 3 FTR 4 or more FTR Low(4) Low(4) Average(5)
6 to 19 DET Low(4) Average(5) High(7)
6 to 19 DET Low(3) Average(4) High(6)
20 or more DET Average(4) High(6) High(6)
2007.11
17
功能点分析方法
全国计算机等级考试二级Python真题及解析(12)

全国计算机等级考试二级Python 真题及解析( 12)一、选择题1.以下关于程序设计语言的描述,错误的选项是:A Python 语言是一种脚本编程语言B汇编语言是直接操作计算机硬件的编程语言C程序设计语言经历了机器语言、汇编语言、脚本语言三个阶段D编译和解释的区别是一次性翻译程序还是每次执行时都要翻译程序正确答案: C2.表达式 1001 == 0x3e7 的结果是:A falseB FalseC trueD True正确答案: B3.以下选项,不是 Python 保留字的选项是:A delB passC notD string正确答案: D4. 表达式 eval('500/10') 的结果是:A‘ 500/10 ’B500/10C50D50.0正确答案: D5. 15. 表达式 type(eval('45')) 的结果是:A <class 'float'>B <class 'str'>C NoneD<class 'int'>正确答案: D6. 表达式 divmod(20,3) 的结果是:A 6, 2B6C2D(6, 2)正确答案: D7.以下关于字符串类型的操作的描述,错误的是:A str.replace(x,y)方法把字符串 str 中所有的 x 子串都替换成yB 想把一个字符串str 所有的字符都大写,用str.upper()C 想获取字符串 str 的长度,用字符串处理函数str.len()D 设 x =’ aa,’则执行x*3的结果是‘ aaaaaa’正确答案: C8.设 str = 'python',想把字符串的第一个字母大写,其他字母还是小写,正确的选项是:A print(str[0].upper()+str[1:])B print(str[1].upper()+str[-1:1])C print(str[0].upper()+str[1:-1])D print(str[1].upper()+str[2:])正确答案: A9.以下选项,不属于程序流程图基本元素的是:A循环框B连接点C判断框D起始框正确答案: A10.以下关于循环结构的描述,错误的是:A 遍历循环使用 for <循环变量 > in <循环结构 >语句,其中循环结构不能是文件B 使用 range()函数可以指定 for 循环的次数C for i in range(5)表示循环 5 次, i 的值是从 0 到 4D用字符串做循环结构的时候,循环的次数是字符串的长度正确答案: A11.执行以下程序,输入” 93python22,”输出结果是:w = input( 请‘输入数字和字母构成的字符串:’)for x in w:if '0'<= x <= '9':continueelse:w.replace(x,'')print(w)A python9322B pythonC93python22D9322正确答案: C12.执行以下程序,输入la,输出结果是:la = 'python'try:s = eval(input('请输入整数: '))ls = s*2print(ls)except:print('请输入整数 ')A laB请输入整数C pythonpythonD python正确答案: C13.执行以下程序,输入 qp,输出结果是:k = 0while True:s = input('请输入 q 退出: ')if s == 'q':k += 1continueelse:k += 2breakprint(k)A2B请输入 q 退出:C3D1正确答案: A14.以下程序的输出结果是:s = 0def fun(num):try:s += numreturn sexcept:return 0return 5print(fun(2))A0B2C UnboundLocalErrorD5正确答案: A15.以下关于函数的描述,错误的是:A函数是一种功能抽象B使用函数的目的只是为了增加代码复用C函数名可以是任何有效的 Python 标识符D使用函数后,代码的维护难度降低了正确答案: B16.以下程序的输出结果是:def test( b = 2, a = 4):global zz += a * breturn zz = 10print(z, test())A 18 NoneB 10 18C UnboundLocalErrorD18 18正确答案: B17.以下程序的输出结果是:def hub(ss, x = 2.0,y = 4.0):ss+= x *y ss = 10print(ss, hub(ss, 3))A 22.0 NoneB 10 NoneC 22 NoneD 10.0 22.0正确答案: B18.以下表达式,正确定义了一个集合数据对象的是:Ax = { 200,’ flg ’ , 20.3}Bx = ( 200,’ flg ’ , 20.3)Cx = [ 200,’ flg ’ , 20.3 ]Dx = { ‘ flg ’ : 20.3}正确答案: A19.以下程序的输出结果是:ss= list(set("jzzszyj"))ss.sort()print(ss) A['z','j', 's', 'y'] B['j','s', 'y', 'z']C['j', 'z', 'z', 's', 'z', 'y', 'j']D['j', 'j', 's', 'y', 'z', 'z', 'z']正确答案: B20.以下程序的输出结果是:ss= set("htslbht")sorted(ss)for i in ss:print(i,end = '')AhtslbhtBhlbstCtsblhDhhlstt正确答案: B21.已知 id(ls1) = 4404896968,以下程序的输出结果是:ls1 = [1,2,3,4,5]ls2 = ls1ls3 = ls1.copy()print(id(ls2),id(ls3))A4404896968 4404896904B4404896904 4404896968C4404896968 4404896968D4404896904 4404896904正确答案: A22.以下程序的输出结果是:ls =list({'shandong':200, 'hebei':300, 'beijing':400})print(ls)A['300','200','400']B['shandong', 'hebei', 'beijing']C[300,200,400]D'shandong', 'hebei', 'beijing'正确答案: B23.以下关于文件的描述,错误的是:A 二进制文件和文本文件的操作步骤都是“打开-操作-关闭”B open() 打开文件之后,文件的内容并没有在内存中C open()只能打开一个已经存在的文件D文件读写之后,要调用 close()才能确保文件被保存在磁盘中了正确答案: C24.以下程序输出到文件text.csv 里的结果是:fo = open("text.csv",'w')x = [90,87,93]z = []for y in x:z.append(str(y))fo.write(",".join(z))fo.close()A[90,87,93]B90,87,93C‘ [90,87,93] ’D‘ 90,87,93 ’正确答案: B25.以下程序的输出结果是:img1 = [12,34,56,78]img2 = [1,2,3,4,5]def displ():print(img1)def modi():img1 = img2modi()displ()A( [1,2,3,4,5])B[12, 34, 56, 78]C([12, 34, 56, 78])D[1,2,3,4,5]正确答案: B26.以下关于数据维度的描述,错误的是:A采用列表表示一维数据,不同数据类型的元素是可以的BJSON 格式可以表示比二维数据还复杂的高维数据C二维数据可以看成是一维数据的组合形式D字典不可以表示二维以上的高维数据正确答案: D27.以下不属于 Python 的 pip 工具命令的选项是:A showB installC downloadD get正确答案: D28.用 Pyinstall 工具把 Python 源文件打包成一个独立的可执行文件,使用的参数是:A-DB-LC-iD-F正确答案: D29.以下不是程序输出结果的选项是:import random as rls1 = [12,34,56,78]r.shuffle(ls1)print(ls1)A [12, 78, 56, 34]B [56, 12, 78, 34]C [12, 34, 56, 78]D [12, 78, 34, 56]正确答案: C30.以下关于 turtle 库的描述,正确的是:A 在 import turtle 之后就可以用 circle() 语句,来画一个圆圈B 要用 from turtle import turtle 来导入所有的库函数C home() 函数设置当前画笔位置到原点,朝向东D seth(x) 是 setheading(x)函数的别名,让画笔向前移动x正确答案: C31.一些重要的程序语言(如 C 语言和 Pascal语言)允许过程的递归调用。
MRIcron、SPM5、xjView的安装和介绍,用SPM5进行预处理、个体统计

MRIcron、SPM5、xjView的安装和介绍,用SPM5进行预处理、个体统计Lab1实验内容z Matlab 7.1简介??主界面??基本命令z SPM5安装和接口,功能介绍??安装??界面??通用功能z微软基本用法??安装??图像显示有两个功能??DICOM数据格式转换所需软件1。
Matlab(版本:7.1R14) 2。
SPM 5(更新_ 958) 3。
磁共振cron(版本:Beta 7)Atlab 7.1引入1。
在所有的实验中,我们将使用Matlab 7.1软件包安装后,双击快捷图标打开Matlab单击Matlab窗口顶部的视图菜单,检查命令窗口、命令历史、当前目录和工作区。
此时,Matlab将在右下角显示四个子窗口:1)命令窗口。
指令窗口是输入指令的地方,Matlab显示计算结果。
2)命令历史:在左下角历史命令窗口存储历史输入命令。
3)当前目录:位于左上角即当前工作目录,显示当前目录下的文件信息;4)工作区:在右上角即工作空间,将变量存储在内存中Fig.1是Matlab的标准工作接口。
以上四个子窗口可以自由拖动来改变它们的位置图1 Matlab 7.1的主界面此时,Matlab处于准备接受命令的状态,可以直接在命令窗口(右下角的子窗口)中输入命令语句2。
Matlab基本命令1。
设置当前目录1)在窗口下创建一个新文件夹,如D:\ \ WORK \ \ DICOM _ CONVERT \2)类型:CD’ D: \ \ WORK \ \ DICOM _ CONVERT \ \ ‘在Matlab的命令窗口中是错误的,不应有单引号,因此Matlab的当前工作路径设置在上述路径下。
“pwd”,然后按回车键3)在Matlab的命令窗口中键入: 4)此时,当前工作路径信息显示在Matlab的命令窗口中:ANS =D:\ \ WORK \ \ DICOM _ CONVERT \ \2。
添加搜索路径(设置路径)1)点击Matlab顶部的“文件”菜单,从下拉菜单中选择“设置路径”。
APQP五大阶段需要提交文件清单

序号名称序号名称
序号名称序号名称序号名称1市场调研报告1零件与功能功能矩阵表1工艺路线1测量系统分析报告1减少变差2产品开发建议书2DFMEA 2过程流程图2初始过程能力研究报告2顾客满意度调查3项目小组名单3可制造性和装配设计评审报告3平面布置图3包装评价3物流交付、服务4项目可行性分析报告4产品特殊特性清单4产品特性和过程参数分析矩阵图4过程评审报告4控制计划
5合同/协议/订单/标书5试验大纲5PFMEA 5生产控制计划6产品质量计划6设计验证计划6过程特殊特性6产品质量策划总结和认定表7初始过程流程图7设计评审报告7包装规范7阶段成本跟踪表8初始材料清单8工程规范清单8试生产控制计划8生产件批准文件(PPAP)
9初始特殊特性清单9材料规范清单9工装制造计划10产品设计任务书10外协件采购计划10初始过程能力研究计划11产品保证计划11产品接收准则11测量系统分析计划12产品费用计划12新设备、工装和设施要求12过程批准接收准则13转阶段评审报告
13小组可行性承诺13工艺调试计划14阶段成本跟踪表14工艺调试记录、验收卡15转阶段评审报告
15阶段成本跟踪表16生产能力计划表17转阶段评审报告
第五阶段:反馈、评定和纠正措施
第一阶段:计划和确认项目第二阶段:产品设计和开发
第三阶段:过程设计和开发过程
第四阶段:产品和过程确认。
最新00051管理系统中计算机应用真题及答案(-1018)

2018年4月高等教育自学考试全国统一命题考试管理系统中计算机应用试卷(课程代码00051)本试卷共7页,满分l00分。
考试时间l50分钟。
考生答题注意事项:1.本卷所有试题必须在答题卡上作答。
答在试卷上无效,试卷空白处和背面均可作草稿纸。
2.第一部分为选择题。
必须对应试卷上的题号使用2B铅笔将“答题卡”的相应代码涂黑。
3.第二部分为非选择题。
必须注明大、小题号,使用0.5毫米黑色字迹签字笔作答。
4.合理安排答题空间,超出答题区域无效。
第一部分选择题一、单项选择题:本大题共30小题,每小题l分,共30分。
在每小题列出的备选项中只有一项是最符合题目要求的,请将其选出。
1.下列说法中,错误的是A.数据是逻辑的,是对信息的解释B.数据是对客观事物状态和特征的表述C.数据可以有多种形式D.数据是信息的重要来源2.某客户在新光计算机公司的网站上购买一台打印机,这个交易的电子商务模式属于A.B2B B.B2C C.C2C D.C2D3.主要服务对象位于企业操作和执行层面的信息系统是A.业务处理系统 B.管理信息系统C.专家系统 D.决策支持系统4.SCM系统是指A.企业资源规划系统 B.供应链管理系统C.客户关系管理系统 D.决策支持系统5.在数据仓库中,描述数据的结构和建立方法的数据称为A.数据集市 B.离散数据 C.并行数据 D.元数据6.数据库系统结构中,描述物理结构的是A.概念模式 B.子模式 C.内模式 D.外模式7.关系中主码不能取空值的约束是A.域完整性规则 B.用户定义完整性规则C.实体完整性规则 D.参照完整性规则8.删除数据库的SQL命令是A.EXIT B.DROPC.REMOVE D.DELElE9.职工(职工号,职工姓名,职务,工资)和设备(设备号,设备名称,数量,职工号)的主码分别是职工号和设备号,外码是A.职工关系的“职工姓名” B.职工关系的“职工号”C.设备关系的“职工号” D.设备关系的“设备号”10.以二维表形式表示数据和数据之间联系的数据模型,称为A.层次模型 B.网状模型 C.关系模型 D.面向对象模型11.诺兰模型的最后一个阶段是A.成熟 B.集成C.控制 D.扩散12.通过定义企业目标、企业过程、数据类和信息系统总体结构的四个基本步骤进行系统规划的方法,称为A.战略集合转移法 B.关键成功要素法C.企业系统规划法 D.情景法13.下列有关信息系统可行性分析的描述中,错误的是A.可行性分析通常是从技术、经济、管理和法理等角度进行分析B.可行性分析过程包括确定可选方案、可行性研究和撰写可行性分析报告C.可行性分析报告中必须给出分析结论D.可行性分析报告的文档必须按国家标准撰写14.使用模块化、可复用、可部署、可替换的软件单元搭建信息系统的开发方法是A.面向对象方法 B.基于构件的开发C.快速应用开发 D.生命周期法15.在信息系统开发过程中,解决系统“做什么”的阶段是A.系统测试 B.系统分析C.系统设计 D.系统实施27.我国实行的“信息安全保护制度”分为5级,其中第2级是A.自主保护 B.系统审计 C.安全标记 D.访问验证28.在应用软件维护中,改正在系统开发阶段遗留的而系统测试阶段未能发现的错误的维护是A.完善性维护 B.纠错性维护C.适应性维护 D.预防性维护29.脚6的地址长度是A.16位 B.32位 C.64位D.128位30.下列有关ERP描述错误的是A.ERP系统是理论与技术结合而成的实际管理工具B.ERP是一种企业管理的理念、原理和方法C.ERP系统的目标是帮助企业达到平衡运作D.ERP系统可以高效利用资源,但不能优化业务流程第二部分非选择题二、名词解释:本大题共5小题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《软件开发实践》 设计报告
项目名称: 打砖块小游戏
姓名 学号 工作量 何建清 2012141463199 80% 廖宇 2012141463001 20%
2014 年 5 月 4 日 - 0 -
目录 1.引言........................................................................................................... 错误!未定义书签。 1.1 开发目的 ......................................................................................... 错误!未定义书签。 1.2 开发背景 ......................................................................................... 错误!未定义书签。 1.3 参考资料 ......................................................................................... 错误!未定义书签。 2.软件分析设计 ............................................................................................................................. 1 2.1 游戏描述 ........................................................................................................................... 1 2.1.1 对需求的支持 ....................................................................................................... 1 2.1.2 游戏目标 ............................................................................................................... 1 2.2 总体设计 ........................................................................................................................... 1 2.2.1 游戏运行环境 ....................................................................................................... 1 2.2.2 游戏描述 ............................................................................................................... 1 2.2.3 游戏框架 ............................................................................................................... 1 2.3 模块设计 ........................................................................................................................... 2 2.3.1 功能 ....................................................................................................................... 2 2.3.2 算法 ....................................................................................................................... 2 2.4 界面设计 ........................................................................................................................... 3 2.5 代码设计 ........................................................................................................................... 3 2.6 游戏素材展示 ................................................................................................................... 4 2.7 开发环境 ........................................................................................................................... 5 3. 项目管理和保障 ......................................................................................................................... 5 3.1 项目计划 ........................................................................................................................... 5 3. 2 游戏使用说明 ................................................................................................................... 5 1
一、 引言 1.1 开发目的 软件开发实践课程项目结题报告 1.2 开发背景 项目概述
我们所做的项目是一款主要采用的编程语言为C、C++编写很简单但娱乐性很好的小游戏----打砖块。我们所设计的打砖块与传统的有相似之处。
1.3参考资料 《Visual C++游戏开发技术与实践》 《计算机游戏编程 --基础篇》 《游戏编程ALL IN ONE》
二、软件分析设计 2.1游戏描述 2.2.1 对需求的支持 满足基本的打砖块游戏体验。 2.2.2 游戏目标 开发一个可供学习交流的打砖块小游戏。
2.2总体设计 2.2.1 游戏运行环境 WindowsXp Windows 7 系统 Visual C++集成开发环境 2.2.2 游戏描述 本游戏是打砖块游戏,游戏规则如下:玩家拥有一个小球,当做自己的命。玩家 通过控制球板来防止小球落到游戏窗口底部,万一落到底部,小球就会消失,玩家也就输了。小球在球板和砖块直接反弹,小球碰到砖块,砖块就会被摧毁从而消失。摧毁一个关卡里的所有砖块,玩家顺利进入下一关。当玩家通过所有的关卡,游戏就胜利结束了。小球一旦碰到游戏窗口底部,游戏就失败结束。 2.2.3 游戏框架 2
2.3 模块设计 2.3.1 功能 开始游戏:即开始游戏 选择关卡:即选择游戏关卡,本游戏总共有三关供选择 退出游戏:即退出游戏 2.3.2 算法 碰撞检测 1、矩形和矩形进行碰撞检测算法
一般规则的物体碰撞都可以处理成矩形碰撞,实现的原理就是检测两个矩形是否重叠。
进入游戏菜单 菜单目录: 开始游戏 选择关卡 退出游戏
开始游戏
游戏失败 记录分数 通关成功 记录分数
重新开始 退出游戏 读取进度 3
我们假设矩形1的参数是:左上角的坐标是(x1,y1),宽度是w1,高度是h1;矩形2的参数是:左上角的坐标是(x2,y2),宽度是w2,高度是h2。在检测时,数学上可以处理成比较中心点的坐标在x和y方向上的距离和宽度的关系。即两个矩形中心点在x方向的距离的绝对值小于等于矩形宽度和的二分之一,同时y方向的距离的绝对值小于等于矩形高度和的二分之一。下面是数学表达式:
x方向:| (x1 + w1 / 2) – (x2 + w2/2) | < |(w1 + w2) / 2| y方向:| (y1 + h1 / 2) – (y2 + h2/2) | < |(h1 + h2) / 2| 但是矩形碰撞只是一种比较粗糙的碰撞检测算法,因为很多实际的物体可能不是一个规则的矩形。 2、圆形和圆形的碰撞检测算法 圆形和圆形的碰撞应该说是一种最简单的碰撞,因为在数学上对于两个圆形是否发生重叠,有计算两个圆心之间的距离的公式。那么条件就变为:计算两个圆心之间的距离是否小于两个圆的半径和。假设圆形1的左上角坐标是(x1,y1),半径是r1,圆形2的左上角的坐标是(x2,y2),半径是r2。因为MIDP1.0中没有浮点数,而且浮点数的运算比较慢,所以我们将条件做一个简单的变换:对于条件的两边都进行平方,这样就去掉了开方的运算步骤。下面是数学表达式:
(x1 – x2)2 + (y1 – y2)2 < (r1 + r2)2 2.4 界面设计 本游戏开始界面是一个Windows窗口, 窗口左上角是菜单栏,菜单栏有两个选项:“游戏”,“帮助” “游戏”里包括4个选项:“第一关”、“第二关”、“第三关”、“退出”, “第一关”、“第二关”、“第三关”分别是游戏的三个关卡;“退出”是游戏退出功能; “帮助”是关于游戏信息的按钮。
2.5 代码设计 本游戏代码由C++语言编写 主要功能类: OnDraw(),绘制挡板,小球并将其显示出来 OnFileNewgame(),游戏第一关 OnFileNextgame(),游戏第二关 OnThirdgame(),游戏第三关 UpdateDC(),游戏功能设计,包括设置鼠标移动标志、保存鼠标位置、判断小球是否击中墙壁、判断小球是否击中砖块、判断小球是否击中挡板、设置小球的速度、判断游戏是否结束、恭喜顺利通关提示 HitWallTest(),小球与墙之间的碰撞检测 HitBrickTest(),小球与砖之间的碰撞检测 OnMouseMove(),监测鼠标移动 OnTimer(),游戏计时器 GameOver(),游戏结束