吉林大学2012级软件设计模式试题
- 格式:doc
- 大小:71.50 KB
- 文档页数:4
2014-2015学年第1学期2012级《软件设计模式》考试试题(开卷)考试时间:2014年班级学号姓名✧本试卷满分100分;✧请将答案写在答题纸上,写明题号,不必抄题,字迹工整、清晰;✧试题中使用C++语言作为描述语言,答题时可以使用C++或Java或C#程序设计语言中的任意一种作为描述语言,但整个卷面只能使用其中一种,不得混合使用;✧请在答题纸和试题纸上都写上你的班级,学号和姓名,交卷时请将试题纸、答题纸和草纸一并交上来。
一、单选题(共20分,每题2分)1.类设计中,“变化是绝对的,稳定是相对的”,下列哪个不属于这句话中“变化”的范畴?(A) 改变函数参数的类型(B) 增加新的数据成员(C) 改变编程语言(D) 改变对象交互的过程和顺序2.Open-Close原则的含义是一个软件实体:(A) 应当对扩展开放,对修改关闭(B) 应当对修改开放,对扩展关闭(C) 应当对继承开放,对修改关闭(D) 以上都不对3.下列关于继承表述错误的是:(A) 继承是一种通过扩展一个已有类的实现,从而获得新功能的复用方法(B) 泛化类(超类)可以显式地捕获那些公共的属性和方法。
特殊类(子类)则通过附加属性和方法来进行实现的扩展(C) 破坏了封装性,因为这会将父类的实现细节暴露给子类(D) 继承本质上是“白盒复用”,对父类的修改,不会影响到子类4.下列关于对象组合/聚合,说法错误的是:(A) 容器类能通过被包含对象的接口来对其进行访问(B) 属于黑盒复用,封装性好,因为被包含对象的内部细节对外是不可见(C) 可以在运行时将被包含对象改变成同类型对象,从而改变容器类的行为效果,但没有改变容器类的接口(D) 比继承关系更加灵活,代价是相比继承关系,增强了类间的耦合度5.用于分离接口和具体实现,使得接口和实现可独立变化的是:(A)适配器模式(B) 桥接模式(C) 命令模式(D)模板方法模式6.体现“集中管理多个对象间的交互过程和顺序”的是:(A)生成器模式(B) 门面模式(C) 策略模式(D)中介者模式7.限制类的实例对象只能有一个的是:.(A) 原型方法模式(B) 工厂方法模式(C) 单件模式(D) 生成器模式8.用于为一个对象添加更多功能而不使用子类的是:(A) 桥接模式(B) 适配器模式(C) 合成(组合)模式(D) 装饰器模式9.适配器设计模式可以用于:(A) 将已有类的接口转换成和目标接口兼容(B) 改进系统性能(C) 将客户端代码数据转换成目标接口期望的合适的格式(D) 使所有接口不兼容类可以一起工作10.关于原型方法模式的说法,错误的是:(A)便于在运行时刻更换原型对象;(B)各产品必须实现复制的方法,如Clone方法;(C)实现产品复制功能的难易程度,是应用该模式必须考虑的;(D)设计时,不能同时使用生成器模式和原型方法模式;二、(共20分,每题5分) 阅读代码,按要求回答问题:1.考察Shape,Rectangle和Circle三个类。
2011-2012学年第1学期2008级《高级语言程序设计》重修考试试题(B卷)考试时间:2012年04月班级学号姓名✧请将答案写在答题纸上,写清题号,不必抄题,字迹工整、清晰;✧答题纸和试题纸上都写上班级、学号和姓名,交卷时将试题纸、答题纸和草纸一并交上来。
✧每个题目不必给出对应的PAD图,但要添加必要的注释,程序命名和书写要规范。
一、[20分] 编写函数,实现按照如下公式计算的功能。
f(n)=0/(1*2!)+1/(2*3!)+2/(3*4!)+3/(4*5!)+…+n/((n+1)*(n+2)!),其中n为自然数。
二、[20分] 编写bool函数,判断给定的整数数组a[n]中是否存在元素a[i] (0<i<n),等于其前边的所有元素之和,即a[i]=a[0]+a[1]+…+a[i-1]。
三、[20分] 编写一个递归函数,计算组成给定正整数n的所有数字之和。
例如:输入参数为1035,则返回结果应该为9(通过1+0+3+5=9得到)。
四、[20分] 构造一个表示教师的结构体(包含3个字段:姓名、性别、年龄),编写函数,读入M个教师的信息,存入一个结构体数组中,如下图所示。
张三李四赵九男(true) 女(false) … 男(true)50 37 29图1 管理教师信息的结构体数组例如:一个教师的信息为Zhangsan、true、50,另一个教师的信息为Lisi、false、37。
五、[20分] 设有一个保存教师信息的单链表(每个结点包含4个字段:姓名、性别、年龄、后继指针),如下图所示。
构造该链表中一节的数据类型声明;编写函数,在给定链表上查找所有女教师的信息,并存储到指定文件output.txt中。
图2 管理教师信息的单链表第 1 页共 1 页2011-2012学年第1学期2008级《高级语言程序设计》重修考试试题(B卷)答案及评分标准考试时间:2012年4月一、满分20分。
int fac(int n)//阶乘函数1:循环形式(10分){int i,r=1;for(i=1;i<=n;i++)r=r*i;return r;}int fac(int n)//阶乘函数2:递归形式(10分){if(n==0)return 1;return n*fac(n-1);}//利用阶乘函数的计算函数(10分)float f(int n){float f=0;for(int i=0;i<=n;i++){f=f+i*1.0/((i+1)*fac(i+2));}return f;}参考要点:阶乘函数(10分);累加计算功能(10分)。
考题一.选择题(每题1.5分,共30分)( )1. 软件质量因素不包括。
A.正确性B.高性能C.可测试性D.可理解性( )2. 软件可行性研究实质上是要进行一次需求分析、设计过程。
A.简化、压缩的B.详细的C.彻底的D.深入的( )3. 以下哪个软件生存周期模型是一种风险驱动的模型A.瀑布模型B.增量模型C.螺旋模型D.喷泉模型( )4. 可行性分析中,系统流程图用于描述。
A.当前运行系统B.当前逻辑模型C.目标系统D.新系统( )5. 结构化分析建立功能模型的工具是A.DFDB.判定树/判定表C.SCD.结构化语言( )6. 检查软件产品是否符合需求定义的过程称为A.确认测试B.集成测试C.系统测试D.单元测试( )7. 在整个软件维护阶段所花费的全部工作中,所占比例最大的是A.校正性维护B.适应性维护C.完善性维护D.预防性维护( )8. 通信内聚是指。
A.把需要同时执行的动作组合在一起形成的模块B.各处理使用相同的输入数据或者产生相同的输出数据C.一个模块中各个处理元素都密切相关于同一功能且必须顺序执行D.模块内所有元素共同完成一个功能,缺一不可( )9. 一个只有顺序结构的程序,其环形复杂度是A.0B.1C.3D.5( )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.兼容性( )16. 关于软件维护的说法错误的是。
1、下列关于队列的叙述中正确的是(C)A. 在队列中只能插入数据B. 在队列中只能删除数据C. 队列是先进先出的线性表D. 队列是先进后出的线性表2、数据库系统的核心是(B)A. 数据模型B. 数据库管理系统C. 软件工具D. 数据库3、结构化程序设计主要强调的是(B)A.程序的规模B.程序的易读性C.程序的执行效率D.程序的可移植性4、软件需求分析阶段的工作,可以分为四个方面:需求获取、需求分析、编写需求规格说明书以及(B)A. 阶段性报告B. 需求评审C. 总结D. 都不正确5、在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是(D)A. 概要设计B. 详细设计C. 可行性分析D. 需求分析6、数据库系统的核心是(B)A. 数据模型B. 数据库管理系统C. 软件工具D. 数据库7、数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。
下列图符名标识的图符不属于数据流图合法图符的是(A)A. 控制流B. 加工C. 数据存储D. 源和潭8、数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。
下列图符名标识的图符不属于数据流图合法图符的是(A)A. 控制流B. 加工C. 数据存储D. 源和潭9、下列模式中,能够给出数据库物理存储结构与物理存取方法的是(A)A. 内模式B. 外模式C. 概念模式D. 逻辑模式10、软件调试的目的是(B) 注:与软件测试要对比着复习A.发现错误B.改正错误C.改善软件的性能D.挖掘软件的潜能11、数据库概念设计的过程中,视图设计一般有三种设计次序,以下各项中不对的是(D)A. 自顶向下B. 由底向上C. 由内向外D. 由整体到局部12、下面概念中,不属于面向对象方法的是 (D)A. 对象B. 继承C. 类D. 过程调用13、数据库概念设计的过程中,视图设计一般有三种设计次序,以下各项中不对的是(D)A. 自顶向下B. 由底向上C. 由内向外D. 由整体到局部14、在深度为5的满二叉树中,叶子结点的个数为(C)A. 32B. 31C. 16D. 15。
2012年上半年软件设计师下午试题试题一(共15分)阅读下列说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。
【说明】某学校开发图书管理系统,以记录图书馆藏图书及其借出和归还情况,提供给借阅者借阅图书功能,提供给图书馆管理员管理和定期更新图书表功能。
主要功能的具体描述如下:(1)处理借阅。
借阅者要借阅图书时,系统必须对其身份(借阅者ID)进行检查。
通过与教务处维护的学生数据库、人事处维护的职工数据库中的数据进行比对,以验证借阅者ID是否合法,若合法,则检查借阅者在逾期未还图书表中是否有逾期未还图书,以及罚金表中的罚金是否超过限额。
如果没有逾期未还图书并且罚金未超过限额,则允许借阅图书,更新图书表,并将借阅的图书存入借出图书表,借阅者归还所借图书时,先由图书馆管理员检查图书是否缺失或损坏,若是,则对借阅者处以相应罚金并存入罚金表;然后,检查所还图书是否逾期,若是,执行“处理逾期”操作;最后,更新图书表,删除借出图书表中的相应记录。
(2)维护图书。
图书馆管理员查询图书信息;在新进图书时录入图书信息,存入图书表;在图书丢失或损坏严重时,从图书表中删除该图书记录。
(3)处理逾期。
系统在每周一统计逾期未还图书,逾期未还的图书按规则计算罚金,并记入罚金表,并给有逾期未还图书的借阅者发送提醒消息。
借阅者在借阅和归还图书时,若罚金超过限额,管理员收取罚金,并更新罚金表中的罚金额度。
现采用结构化方法对该图书管理系统进行分析与设计,获得如图1-1所示的顶层数据流图和图1.2所示的0层数据流图。
【问题1】(4分)使用说明中的词语,给出图1-1中的实体E1-E4的名称。
答案:E1: 借阅者 E2:图书管理员E3/E4: 学生数据库/职工数据库【问题2】(4分)使用说明中的词语,给出图1-2中的数据存储D1~D4的名称。
答案:D1: 图书表 D2: 借出图书表D3: 逾期未还图书表 D4: 罚金表【问题3】(5分)在DFD建模时,需要对有些复杂加工(处理)进行进一步精化,绘制下层数据流图。
对一个方阵转置,就是把原来的行号变列号,原来的列号变行号例如,如下的方阵:1 2 3 45 6 7 89 10 11 1213 14 15 16转置后变为:1 5 9 132 6 10 143 7 11 154 8 12 16但,如果是对该方阵顺时针旋转(不是转置),却是如下结果:13 9 5 114 10 6 215 11 7 316 12 8 4下面的代码实现的功能就是要把一个方阵顺时针旋转。
void rotate(int* x, int rank){int* y = (int*)malloc(___________________); // 填空for(int i=0; i<rank * rank; i++){y[_________________________] = x[i]; // 填空}for(i=0; i<rank*rank; i++){x[i] = y[i];}free(y);}int main(int argc, char* argv[]){int x[4][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};int rank = 4;rotate(&x[0][0], rank);for(int i=0; i<rank; i++){for(int j=0; j<rank; j++){printf("%4d", x[i][j]);}printf("\n");}return 0;}请分析代码逻辑,并推测划线处的代码。
答案写在“解答.txt”文件中注意:只写划线处应该填的内容,划线前后的内容不要抄写。
假设有两种微生物X 和YX出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次(数目加倍)。
一个新出生的X,半分钟之后吃掉1个Y,并且,从此开始,每隔1分钟吃1个Y。
2012 年上半年软件设计师考试真题(上午)位于 CPU 与主存之间的高速缓冲存储器 Cache 用于存放部分主存数据的拷贝,主存地址与Cache 地址之间的转换工作由 (1) 完成。
(1)A.硬件 B.软件 C.用户 D.程序员内存单元按字节编址,地址 0000A000H~0000BFFFH 共有 (2) 个存储单元。
(2)A.8192K B.1024K C.13K D.8K相联存储器按 (3) 访问。
(3)A.地址 B.先入后出的方式C.内容 D.先入先出的方式若 CPU 要执行的指令为:MOV R1,#45(即将数值 45 传送到寄存器 R1 中),则该指令中采用的寻址方式为 (4) 。
(4)A.直接寻址和立即寻址B.寄存器寻址和立即寻址C.相对寻址和直接寻址D.寄存器间接寻址和直接寻址一条指令的执行过程可以分解为取指、分析和执行三步,在取指时间 t 取指=3△t、分析时间t 分析=2△t、执行时间 t 执行=4△t 的情况下,若按串行方式执行,则 10 条指令全部执行完需要(5) △t;若按流水线的方式执行,则 10 条指令全部执行完需要(6) △t。
(5)A.40 B.70 C.90 D.100(6)A.20 B.30 C.40 D.45甲和乙要进行通信,甲对发送的消息附加了数字签名,乙收到该消息后利用 (7) 验证该消息的真实性。
(7)A.甲的公钥 B.甲的私钥 C.乙的公钥 D.乙的私钥在 Windows 系统中,默认权限最低的用户组是 (8) 。
(8)A.Everyone B.administrators C.power users D.usersIIS6.0 支持的身份验证安全机制有 4 种验证方法,其中安全级别最高的验证方法是 (9) 。
(9)A.匿名身份验证B.集成 Windows 身份验证C.基本身份验证D.摘要式身份验证软件著作权的客体不包括 (10) 。
(10)A.源程序 B.目标程序 C.软件文档 D.软件开发思想中国企业 M 与美国公司 L 进行技术合作,合同约定 M 使用一项在有效期内的美国专利,但该项美国专利未在中国和其他国家提出申请。
2021下半年软件设计师考试真题及答案-下午卷[试题1]阅读以下说明,根据要求答复以下问题。
[说明]某电子商务系统采用以数据库为中心的集成方式改良购物车的功能,详细需求如下。
1.参加购物车。
顾客浏览商品,点击参加购物车,根据商品标识从商品表中读取商品信息,并更新购物车表。
2.浏览购物车。
顾客提交浏览购物车请求后,显示出购物车表中的商品信息。
3.提交订单。
顾客点击提交订单请求,后台计算购物车表中商品的总价(包括运费)参加订单表,将购物车表中的商品状态改为待付款,显示订单详情。
假设商家改变价格,那么刷新后可看到更改后的价格。
4.改变价格。
商家查看订购自家商品的订单信息,根据特殊优惠条件修改价格,更新订单表中的商品价格。
5.付款。
顾客点击付款后,系统先根据顾客表中关联的支付账户,将转账请求(验证码、价格等)提交给支付系统(如信用卡系统)进展转账;然后根据转账结果返回支付状态并更改购物车表中商品的状态。
6.物流跟踪。
商家发货后,需按订单标识添加物流标识(物流公司、运单号);然后可根据顾客或商家的标识以及订单标识,查询订单表中的物流标识,并从相应物流系统查询物流信息。
7.生成报表。
根据管理员和商家设置的报表选项,从订单表、商品表以及商品分类表中读取数据,调用第三方效劳Crystal Reports生成相关报表。
8.维护信息。
管理员维护(增、删、改、查)顾客表、商品分类表和商品表中的信息。
现采用构造化方法实现上述需求,在系统分析阶段得到如图1-9所示的顶层数据流图和图1-10所示的0层数据流图。
1、[问题1]使用说明中的词语,给出图1-9中的实体E1~E4的名称。
2、[问题2]使用说明中的词语,给出图1-10中的数据存储D1~D4的名称。
3、[问题3]图1-10中缺失了数据流,请用说明或图1-10中的词语,给出其起点和终点。
4、[问题4]根据说明,给出数据流“转账请求〞、“顾客订单物流查询请求〞和“商家订单物流查询请求〞的各组成数据项。
22:27、总体设计的目标是设计出软件的结构,确定系统由哪些模块组成及它们之间的()。
回答:关系24:34、我们必须明确环境是由工具和方法两部分组成的,为了获得最大的效益,它们应当是()的。
回答:相容12:1、计算机软件的发展经历了()生产、作坊式生产和产业化生产的三段发展模式。
回答:个体化14:3、数据流表示数据在系统中的流动方向,一般分()数据流和双向数据流两种。
回答:单项6:48、模块是数据说明、可执行语句等()对象的集合,它是单独命名的,通过名子进行访问的。
回答:相邻21:13、常用的调试策略有试探法、回溯法、()法、归纳法、演绎法。
回答:对分11:35、模块测试中发现的错误往往是()设计的错误。
回答:编码和详细等价类划分属于()B. 黑盒测试好的软件结构它的外观形状一般呈()C. 椭圆形概要设计通过对系统的结构表示进行细化,得到软件的数据结构和算法。
答案错下面说法正确的是()A. 模块的作用域在模块的控制域之内高级语言表达和解决问题方面效率越高,采用代码行方法计算的生产率也越高。
答案错Alpha测试由用户在开发者的场所进行,并且在开发者对用户的“指导”下进行测试,开发者负责记录发现的错误和使用中遇到的问题。
答案对变换型结构的数据流呈()A. 线性形状在一个设计得很好的系统中,所有受判定影响的模块应该都从属于做出判定的那个模块,最好局限于做出判定的那个模块本身及它的直属下级模块。
答案对V模型的本质是对瀑布模型的需求获取活动进行改造,有助于需求的定义和确认。
答案错模型是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。
用面向对象方法开发软件,通常要建立描述系统数据结构的E-R模型,描述系统控制结构的动态模型,描述系统功能的功能模型。
答案错。
2012年吉林省计算机技术与软件专业技术资格(水平)考试信息系统项目管理师试题及答案1、软件需求包括功能需求、非功能需求、设计约束三个主要部分,其中( C )属于功能需求内容。
A、软件的可靠性B、软件运行的环境C、软件需要完成哪些事情D、软件的开发工具2、对象的多态性是指( A )A、两个或多个属于不同类的对象,对于同一个消息(方法调用)作出不同的响应的方式B、两个或多个属于不同类的对象,对于同一个消息(方法调用)作出相同的响应的方式C、两个或多个属于同一类的对象,对于同一个消息(方法调用)作用于不同类型的数据,作出不同响应的方式D、两个或多个属于同一类的对象,对于不同消息(方法调用)作用于相同类型的数据,作出不同响应的方式3、PMI提供的认证项目叫做()A. Microsoft Certified Project ManagerB. Project Management ProfessionalC. Project Management ExpertD. Project Management Menter4、项目管理需要在相互间有冲突的要求中寻找平衡,除了:A. 甲方和乙方的利益B. 范围,时间,成本,质量C. 有不同需求和期望的项目干系人D. 明确的和未明确表达的需求5、依据《合同法》第九十二条,合同的权利义务终止后,当事人根据交易习惯履行保密义务,该义务的依据是( A )A、诚实信用原则B、协商原则C、资源原则D、第三方协助原则6、根据GB/T14394-2008《计算机软件可靠性和可维护性管理》,在软件生命周期的测试阶段,为强调软件可靠性和可维护性要求,需要完成的活动是( A )A、建立适合的软件可靠性测试环境B、分析和确定可靠性和可维护性的具体设计目标C、编写测试阶段的说明书,明确测试阶段的具体要求D、提出软件可靠性和可维护性分解目标、要求及经费7、当千兆以太网使用UTP作为传输介质时,限制单根电缆的长度不超过(A)米,其原因是千兆以太网( D )。
2012年计算机软考软件设计师经典真题及答案1.通常在软件的( )活动中无需用户参与。
A. 需求分析B. 维护C. 编码D. 测试参考答案:C2.( )详细描述软件的功能、性能和用户界面,以使用户了解如何使用软件。
A. 概要设计说明书B. 详细设计说明书计C. 用户手册D. 用户需求说明书参考答案:C3.下述任务中,不属于软件工程需求分析阶段的是( )。
A.分析软件系统的数据要求B.确定软件系统的功能需求C.确定软件系统的性能要求D.确定软件系统的运行平台参考答案:D4.在开发信息系统时,用于系统开发人员与项目管理人员沟通的主要文档是( )。
A. 系统开发合同B. 系统设计说明书C. 系统开发计划D. 系统测试报告参考答案:B5.系统测试人员与系统开发人员需要通过文档进行沟通,系统测试人员应根据一系列文档对系统进行测试,然后将工作结果撰写成( ),交给系统开发人员。
A. 系统开发合同B. 系统设计说明书C. 测试计划D. 系统测试报告参考答案:D6.常见的软件开发模型有瀑布模型、演化模型、螺旋模型、喷泉模型等。
其中( )模型适用于需求明确或很少变更的项目,( )模型主要用来描述面向对象的软件开发过程。
A.瀑布模型B.演化模型C.螺旋模型D.喷泉模型参考答案:A、D7.在开发一个系统时,如果用户对系统的目标是不很清楚,难以定义需求,这时最好使用( )。
A.原型法瀑布模型 C.V-模型 D.螺旋模型参考答案:A8.采用瀑布模型进行系统开发的过程中,每个阶段都会产生不同的文档。
以下关于产生这些文档的描述中,正确的是( )。
A.外部设计评审报告在概要设计阶段产生。
B.集成测评计划在程序设计阶段产生。
C.系统计划和需求说明在详细设计阶段产生。
D.在进行编码的同时,独立的设计单元测试计划参考答案:D9.( )是一种面向数据流的开发方法,其基本思想是软件功能的分解和抽象。
A.结构化开发方法B.Jackson系统开发方法C.Booch方法D.UML(统一建模语言)参考答案:A10.软件开发中的瀑布模型典型地刻画了软件生存周期的阶段划分,与其最相适应的软件开发方法是( )。
2012年真题一、与10年一题同三、Rational 统一过程结构及特点。
四、模块化及软件成本的关系(P153图8-2 P94 图5-1 张海藩)将这个图画出并分析五、请结合你的学习和工作实际,以及对当前IT行业的了解,谈谈对软件开发与应用的体会及软件行业的发展前景。
(与11年五题同)三题Rational统一过程(Rational Unified Process)是一种典型的软件过程模式,对软件过程模式的四大要素——生命周期、人员、方法和产品均进行了详尽的论述。
2.RUP术语:用户代表与所开发的系统进行交互的某个人或某个系统(所开发系统之外的另一个系统)。
用例是能够向用户提供有价值结果的系统中的一种功能。
所有的用例合在一起构成用例模型。
…特点:①确定系统需求的工具,传统的系统功能说明:系统应该做什么?用例模型:增加三个词for each user。
②驱动软件开发过程,RUP三大特点中第一大特点为“用例驱动”。
构架是系统在其所处环境中最高层次的概念。
软件系统的构架是指通过接口交互的重要构件的组织和结构,这些构件又由一些更小的构件和接口组成。
RUP三大特点中第二大特点为“以构架为中心”。
工作流程是在业务中执行的活动序列,它对于业务主角个体生成一个可见值结果。
迭代是指带有已建立基线的计划和评估准则的独特活动序列,迭代生成内部或外部的发布版本。
增量是指在后续迭代结束后,两个发布版本之间存在的差异或差值。
RUP三大特点中第三大特点为“迭代和增量的过程”。
在软件过程组织的环境中,个人或协同工作的小组的行为和职责定义为角色,角色代表项目中个人承担的作用,并确定了如何完成工作。
活动是要求角色执行的工作单元。
工件是指一条信息,该信息:由过程生成、修改或使用;定义了职责范围;受到版本控制。
里程碑是迭代正式结束的时间点,该时间点与发布时间点相对应。
阶段是指项目相邻两个主要里程碑之间的时间段,在此期间要实现一组既定的目标、完成工件并决定是否进入下一阶段。
1、软件调试的目的是(B) 注:与软件测试要对比着复习A.发现错误B.改正错误C.改善软件的性能D.挖掘软件的潜能2、索引属于(B)A. 模式B. 内模式C. 外模式D. 概念模式3、下面不属于软件设计原则的是(C)A. 抽象B. 模块化C. 自底向上D. 信息隐蔽4、在结构化方法中,软件功能分解属于下列软件开发中的阶段是(C) 注:总体设计也就是概要设计A. 详细设计B. 需求分析C. 总体设计D. 编程调试5、在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是(B)A. 可行性分析B. 需求分析C. 详细设计D. 程序编码6、设有下列二叉树:图见书P46对此二叉树中序遍历的结果为(B)A. ABCDEFB. DBEAFCC. ABDECFD. DEBFCA7、软件调试的目的是(B) 注:与软件测试要对比着复习A.发现错误B.改正错误C.改善软件的性能D.挖掘软件的潜能8、索引属于(B)A. 模式B. 内模式C. 外模式D. 概念模式9、信息隐蔽的概念与下述哪一种概念直接相关(B)A.软件结构定义B. 模块独立性C. 模块类型划分D. 模拟耦合度10、算法一般都可以用哪几种控制结构组合而成(D)A. 循环、分支、递归B. 顺序、循环、嵌套C. 循环、递归、选择D. 顺序、选择、循环11、数据库概念设计的过程中,视图设计一般有三种设计次序,以下各项中不对的是(D)A. 自顶向下B. 由底向上C. 由内向外D. 由整体到局部12、在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是(B)A. 可行性分析B. 需求分析C. 详细设计D. 程序编码13、算法一般都可以用哪几种控制结构组合而成(D)A. 循环、分支、递归B. 顺序、循环、嵌套C. 循环、递归、选择D. 顺序、选择、循环14、用树形结构来表示实体之间联系的模型称为(B)A. 关系模型B. 层次模型C. 网状模型D. 数据模型15、在软件开发中,下面任务不属于设计阶段的是(D)A. 数据结构设计B. 给出系统模块结构C. 定义模块算法D. 定义需求并建立系统模型16、数据的存储结构是指(B)A. 数据所占的存储空间量B. 数据的逻辑结构在计算机中的表示C. 数据在计算机中的顺序存储方式D. 存储在外存中的数据17、在下列选项中,哪个不是一个算法一般应该具有的基本特征(C)A. 确定性B. 可行性C. 无穷性D. 拥有足够的情报18、数据库设计包括两个方面的设计内容,它们是(A)A. 概念设计和逻辑设计B. 模式设计和内模式设计C. 内模式设计和物理设计D. 结构特性设计和行为特性设计19、在结构化方法中,软件功能分解属于下列软件开发中的阶段是(C) 注:总体设计也就是概要设计A. 详细设计B. 需求分析C. 总体设计D. 编程调试20、下列模式中,能够给出数据库物理存储结构与物理存取方法的是(A)A. 内模式B. 外模式C. 概念模式D. 逻辑模式21、软件调试的目的是(B) 注:与软件测试要对比着复习A.发现错误B.改正错误C.改善软件的性能D.挖掘软件的潜能22、对长度为N的线性表进行顺序查找,在最坏情况下所需要的比较次数为(B) 注:要牢记A. N+1B. NC. (N+1)/2D. N/223、在下列选项中,哪个不是一个算法一般应该具有的基本特征(C)A. 确定性B. 可行性C. 无穷性D. 拥有足够的情报24、设有下列二叉树:图见书P46对此二叉树中序遍历的结果为(B)A. ABCDEFB. DBEAFCC. ABDECFD. DEBFCA25、数据库概念设计的过程中,视图设计一般有三种设计次序,以下各项中不对的是(D)A. 自顶向下B. 由底向上C. 由内向外D. 由整体到局部26、在下列选项中,哪个不是一个算法一般应该具有的基本特征(C)A. 确定性B. 可行性C. 无穷性D. 拥有足够的情报27、软件调试的目的是(B) 注:与软件测试要对比着复习A.发现错误B.改正错误C.改善软件的性能D.挖掘软件的潜能28、检查软件产品是否符合需求定义的过程称为(A)A. 确认测试B. 集成测试C. 验证测试D. 验收测试29、下面概念中,不属于面向对象方法的是 (D)A. 对象B. 继承C. 类D. 过程调用30、算法的空间复杂度是指(D)A. 算法程序的长度B. 算法程序中的指令条数C. 算法程序所占的存储空间D. 算法执行过程中所需要的存储空间31、用树形结构来表示实体之间联系的模型称为(B)A. 关系模型B. 层次模型C. 网状模型D. 数据模型32、下列叙述中正确的是(A)A. 线性表是线性结构B. 栈与队列是非线性结构C. 线性链表是非线性结构D. 二叉树是线性结构33、在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。
软件设计题
一、人机界面主题设计
设计内容与要求:
1. 请选择某一主题(个人求职简历,家乡介绍,图书馆介绍,实验室介绍,学校介绍,超市导购),设计至少6张以上的界面,至少有一副图片,结合按键实现相关功能。
2. 其中有一页界面中需有年月日,及时间的实时显示(时间精确到秒),结合按键实现相关功能。
3. 充分发挥想象,设计内容丰富,形式多样的界面,表达明确的主题。
4.充分利用板上可利用的其它资源,实现综合性设计。
5.根据相关内容自由发挥设计
二、简易音乐喷泉设计
设计内容与要求:
选择一首音乐,利用蜂鸣器,进行播放,同时利用液晶设计喷泉,显示音乐的频率变化。
通过按键1,作为开始/停止键,另外七个键,作为七个音调(选用C调)。
提高部分:
1.能运用LED灯,根据音乐的演奏显示LED的变化。
2.根据相关内容自由发挥设计。
三、液晶屏幕字块控制设计
结合按键、LED灯(8个)设计小型游戏,如俄罗斯方块、贪
吃蛇等游戏。
或较复杂的屏幕保护或图形动画设计。
报告要求:
软件:设计思路与算法设计原理,软件流程,软件程序,程序须有注释,相关LCD 界面等拍照截图,写进报告中。
《程序设计基础》综合设计★设计任务系统以菜单方式工作(文本菜单或图形菜单)输入数据模块,数据用文件保存输出数据模块,数据用文件保存基本算法运用模块(排序、查找、插入、比较算法中至少包含一种)系统进入画面(静态或动画)系统其它功能实现(任选)★设计要求与设计报告设计要求●可自己选定题目,但至少包含五个功能模块●模块化程序设计●锯齿型书写格式●必须上机调试通过实习报告●语言简练,条理清楚,图表规范●程序设计组成框图、流程图●模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等)●调试与测试:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施源程序清单和执行结果(软盘):清单中应有足够的注释参考题目一、设计实现一个模拟的班级学生成绩管理系统1 目的通过学生成绩管理系统的设计,培养学生综合利用C++语言进行程序设计的能力,加强函数的运用及学生对软件工程方法的初步认识,提高软件系统分析能力和程序文档建立、归纳总结的能力,培养学生利用系统提供的标准函数及典型算法进行设计。
2 基本要求该系统用于管理学生的基本信息、课程成绩。
要求实现以下功能:①通过此模块来管理课程信息,包括查询、添加、修改、删除等功能。
在进行课程信息添加时,系统会自动监测所添加的信息是否已经存在,如果存在,会提示已经存在。
在进行课程信息删除时,同样要求再次确定。
②实现对学生信息、课程成绩的文件存取(分别存储在StudentInfo.txt、StudentScore.txt 和GraduateCheck..txt文件中),实现对学生信息、课程成绩的记录增加、删除及修改;③实现输入学生学号或姓名查询并显示学生的课程成绩;提示及说明1)写出设计报告:包括实验题目与环境、设计思想、函数分解过程、算法描述以及相应的数据流程图、源程序清单、测试的数据以及程序运行的结果2)如果程序未能够通过运行,分析可能出错的原因。
3)请注意分配好时间,完成系统设计与实现,同时认真填写大作业报告!按时提交大作业报告、可运行的程序及代码,逾期不交,期末成绩以0分记。
2014-2015学年第1学期
2012级《软件设计模式》考试试题(开卷)
考试时间:2014年
班级学号姓名
✧本试卷满分100分;
✧请将答案写在答题纸上,写明题号,不必抄题,字迹工整、清晰;
✧试题中使用C++语言作为描述语言,答题时可以使用C++或Java或C#程序设计语言中
的任意一种作为描述语言,但整个卷面只能使用其中一种,不得混合使用;
✧请在答题纸和试题纸上都写上你的班级,学号和姓名,交卷时请将试题纸、答题纸和草纸
一并交上来。
一、单选题(共20分,每题2分)
1.类设计中,“变化是绝对的,稳定是相对的”,下列哪个不属于这句话中“变化”的范畴?
(A) 改变函数参数的类型(B) 增加新的数据成员
(C) 改变编程语言(D) 改变对象交互的过程和顺序
2.Open-Close原则的含义是一个软件实体:
(A) 应当对扩展开放,对修改关闭
(B) 应当对修改开放,对扩展关闭
(C) 应当对继承开放,对修改关闭
(D) 以上都不对
3.下列关于继承表述错误的是:
(A) 继承是一种通过扩展一个已有类的实现,从而获得新功能的复用方法
(B) 泛化类(超类)可以显式地捕获那些公共的属性和方法。
特殊类(子类)则通过附加
属性和方法来进行实现的扩展
(C) 破坏了封装性,因为这会将父类的实现细节暴露给子类
(D) 继承本质上是“白盒复用”,对父类的修改,不会影响到子类
4.下列关于对象组合/聚合,说法错误的是:
(A) 容器类能通过被包含对象的接口来对其进行访问
(B) 属于黑盒复用,封装性好,因为被包含对象的内部细节对外是不可见
(C) 可以在运行时将被包含对象改变成同类型对象,从而改变容器类的行为效果,但没有
改变容器类的接口
(D) 比继承关系更加灵活,代价是相比继承关系,增强了类间的耦合度
5.用于分离接口和具体实现,使得接口和实现可独立变化的是:
(A)适配器模式(B) 桥接模式(C) 命令模式(D)模板方法模式
6.体现“集中管理多个对象间的交互过程和顺序”的是:
(A)生成器模式(B) 门面模式(C) 策略模式(D)中介者模式
7.限制类的实例对象只能有一个的是:.
(A) 原型方法模式(B) 工厂方法模式(C) 单件模式(D) 生成器模式
8.用于为一个对象添加更多功能而不使用子类的是:
(A) 桥接模式(B) 适配器模式(C) 合成(组合)模式(D) 装饰器模式
9.适配器设计模式可以用于:
(A) 将已有类的接口转换成和目标接口兼容
(B) 改进系统性能
(C) 将客户端代码数据转换成目标接口期望的合适的格式
(D) 使所有接口不兼容类可以一起工作
10.关于原型方法模式的说法,错误的是:
(A)便于在运行时刻更换原型对象;
(B)各产品必须实现复制的方法,如Clone方法;
(C)实现产品复制功能的难易程度,是应用该模式必须考虑的;
(D)设计时,不能同时使用生成器模式和原型方法模式;
二、(共20分,每题5分) 阅读代码,按要求回答问题:
1.考察Shape,Rectangle和Circle三个类。
若Circle::Draw( )的实现会有多种其它方法,又不
想从Circle类派生新子类。
请给出你的设计方案或示例代码。
2.若Circle::Draw( )的实现就是长短轴均为2的Ellipse::X_Draw( ),请问你怎样设计。
给出你
的设计方案或示例代码。
3.请使用装饰器模式给Draw添加新的功能。
给出示例代码及相应的主函数。
如扩展矩形Draw的输出为:Start Drawing …
Draw Rectangle.
扩展圆形Draw的输出为:Draw Circle.
Draw Over.
4.若从Shape类再派生一个新的子类Picture,且Picture组合多个Shape对象,其中Picture
的Draw就是依次绘制其组合的各个Shape。
现假设一个Picture对象只包含一个Rectangle 和一个Circle对象,请在3的基础上继续扩展,并编写主函数,使得主函数能够输出:Start Drawing …
Draw Rectangle.
Draw Circle.
Draw Over.
请给出具体设计代码和主函数。
三、(20分)现开发一个应届毕业生招聘软件,初步方案中的类图如下:
(1)各公司招聘毕业生的流程是不一样的;
(2)同一公司招聘不同毕业生(这里举例Boy,Girl)的流程也是不一样的;
(3)已知不同毕业生的类别是稳定的。
(如Boy和Girl)
(4)以后可能增加新功能,如试用(Practise).
(5)以后可能增加新的公司。
1.(12分)请应用访问者模式重新给出设计方案或示例代码,使得你的新设计满足根据上
述要求。
2.(4分)请说明如果增加新的功能(如试用),1中的设计如何适应。
请给出示例代码.
3.(4分)请说明如果增加新的公司(如中兴公司),1中的设计如何适应。
请给出示例代码.
四、(40分,每题20分)应用设计模式,给出设计方案、示例代码。
1.游戏中每个初始英雄带一样武器,占据一个城堡,拥有一件法器。
武器、城堡、法器
都有多种,现已预设了几类英雄,如海盗(火枪、岛城、行船术)、骑士(火枪、石城、骑马术)等。
(1) 未来一定会增加新武器、新城堡、新法器等。
如武器中增加一种新武器:激光枪。
(2) 来一定会增加新的预设类英雄,如未来战士。
(3) 各类英雄的特征不完全相同,但可能会有重复。
如海盗、骑士都使用火枪。
最初的部分代码如下:
class Knight:public Hero {
public:
Knight( ) {
weapon = new Rifle( );
castle = new StoneCastle( );
power = new HorseMagic( );
}
};
现希望分离英雄与具体特性(如武器、城堡、法器等)的创建。
请选择适当的设计模式重新设计,实现设计者的愿望。
简要说明你的设计方案,并给出示例代码。
2.猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒。
(1) 要有联动性,老鼠和主人的行为是被动的;
(2) 考虑可扩展性,猫的叫声可能引起其他联动效应。
请选择适当的设计模式描述上述场景,简要说明你的设计方案,并给出示例代码。
全卷完。