吉林大学2012级软件设计模式试题

合集下载

2012吉林省全国计算机等级考试二级笔试试卷VB包过题库

2012吉林省全国计算机等级考试二级笔试试卷VB包过题库
A. 排序、索引、统计 B. 选择、投影、连接
C. 关联、更新、排序 D. 显示、打印、制表
48、在关系数据库中,用来表示实体之间联系的是(D)
A. 树结构 B. 网结构 C. 线性表 D. 二维表
49、用树形结构来表示实体之间联系的模型称为(B)
A. 关系模型 B. 层次模型 C. 网状模型 D. 数据模型
A. 自顶向下 B. 由底向上 C. 由内向外 D. 由整体到局部
29、程序流程图(PFD)中的箭头代表的是(B)
A. 数据流 B. 控制流 C. 调用关系 D. 组成关系
30、在下列选项中,哪个不是一个算法一般应该具有的基本特征(C)
A. 确定性 B. 可行性 C. 无穷性 D. 拥有足够的情报
C.程序的执行效率 D.程序的可移植性
14、下面不属于软件设计原则的是(C)
A. 抽象 B. 模块化 C. 自底向上 D. 信息隐蔽
15、下列模式中,能够给出数据库物理存储结构与物理存取方法的是(A)
A. 内模式 B. 外模式 C. 概念模式 D. 逻辑模式
16、将E-R图转换到关系模式时,实体与联系都可以表示成(B)
31、算法的空间复杂度是指(D)
A. 算法程序的长度 B. 算法程序中的指令条数 C. 算法程序所占的存储空间 D. 算法执行过程中所需要的存储空间
32、检查软件产品是否符合需求定义的过程称为(A)
A. 确认测试 B. 集成测试 C. 验证测试 D. 验收测试
33、下列叙述中正确的是(C)
A. 控制流 B. 加工 C. 数据存储 D. 源和潭
24、算法的时间复杂度是指(C)
A. 执行算法程序所需要的时间 B. 算法程序的长度 C. 算法执行过程中所需要的基本运算次数 D. 算法程序中的指令条数

吉林大学2012级软件设计模式试题

吉林大学2012级软件设计模式试题

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分)。

2012软件工程期末试题与答案

2012软件工程期末试题与答案

考题一.选择题(每题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. 关于软件维护的说法错误的是。

2012吉林省全国计算机等级考试二级笔试试卷VB最新考试题库(完整版)_图文

2012吉林省全国计算机等级考试二级笔试试卷VB最新考试题库(完整版)_图文

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(上半年)软件设计师(下午)试题及答案

2012(上半年)软件设计师(下午)试题及答案

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建模时,需要对有些复杂加工(处理)进行进一步精化,绘制下层数据流图。

2012下半年软件设计师考试真题

2012下半年软件设计师考试真题

答案:D A
计算机科学与工程学院
33. 如果要表示待开发软件系统中软件组件和硬件 之间的物理关系,通常采用UML中的______。 A.组件图 B.部署图 C.类图 D.网络图
答案:B
计算机科学与工程学院
34. 对于场景:一个公司负责多个项目,每个项目(Project) 由一个员工(Employee)团队(Team)来开发,下列 UML概念图中,________最适合描述这一场景。 A. 图A B. 图B C. 图C D. 图D
可以理解为8个索引表 一块只能存 1KB/4B=256个地址 一级索引:256地址 二级索引:256×256=65536个地址 单个文件大小:1KB×5+1KB×256×2+1KB×65536=66053
答案:C D
计算机科学与工程学院
24. 某开发小组欲开发一个规模较大、需求较明确 的项目,开发小组对项目熟悉且该项目与小组开发 过的某一项目相似,则适宜采用________开发过程 模型。 A.瀑布 B.演化 C.螺旋 D.喷泉
计算机科学与工程学院
9. N软件公司的软件产品注册商标为N,为确保公 司在市场竞争中占据优势,对员工进行了保密约束, 此情形下该公司不享有________。 A.商业秘密权 B.著作权 C.专利权 D.商标权
答案:C
计算机科学与工程学院
10. X软件公司的软件工程师张某兼职于Y科技公司,为完 成Y科技公司交给的工作,做出了一项涉及计算机程序的发 明。张某认为该发明是利用自己的业余时间完成的,可以 以个人名义申请专利。此项专利申请权应归属________。 A.张某 B.X软件公司 C.Y科技公司 D.张某和Y科技公司
顶点称为事件,边称为活动,顶点表示前面的边都已完成 最长的路径称为关键路径,可能不止一条 松弛时间=活动的最晚开始时间-最早开始时间= 38-18=20

2012年软件设计大赛初赛题

2012年软件设计大赛初赛题

对一个方阵转置,就是把原来的行号变列号,原来的列号变行号例如,如下的方阵: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。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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) 考虑可扩展性,猫的叫声可能引起其他联动效应。

请选择适当的设计模式描述上述场景,简要说明你的设计方案,并给出示例代码。

全卷完。

相关文档
最新文档