版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软考中级软件设计师案例专项题库含答案一、数据流图设计(15分)某“报刊订阅管理系统”的主要功能包括:订阅者提交订阅单;系统对订阅单进行校验;校验通过后,系统根据订阅单和报刊目录生成订单;对于老客户,系统自动计算优惠,并生成缴费通知;订阅者完成缴费后,系统更新订单状态;系统定期根据订单汇总,生成发刊清单,提交给邮局。已知系统外部实体包括订阅者和邮局。系统中包含的数据存储有:订阅单文件、报刊目录文件、订单文件、支付记录文件。0层图中的主要加工包括:1订阅单校验、2订单生成、3费用计算、4缴费处理、5汇总发刊。请指出该系统的外部实体。(2分)答案:外部实体是:订阅者、邮局。加工“订单生成”需要读取哪些数据存储?需要写入哪些数据存储?(3分)答案:读取:订阅单文件、报刊目录文件;写入:订单文件。若加工“费用计算”只有输入数据流“订单信息”和“支付记录”,却没有输出数据流,这属于哪种数据流图错误类型?(3分)答案:属于“黑洞”错误,即有输入但没有输出。请给出从加工“汇总发刊”到外部实体“邮局”的输出数据流名称。(3分)答案:输出数据流名称为“发刊清单”。为了检查数据流图是否正确,常需检查“平衡”。请简要说明“平衡”是指检查哪两层模型之间的数据流一致性。(4分)答案:平衡是指检查数据流图的子图(如0层图、1层图)与其父图(如顶层图、0层图)在输入/输出数据流上是否一致。父图中某个加工分解为子图后,子图的输入输出数据流应与父图中该加工的输入输出数据流完全一致。二、数据库设计(15分)某网上书店系统需要管理会员、图书和订单信息。会员可以下多个订单,每个订单属于一个会员;一个订单可以包含多种图书,一种图书可以出现在多个订单中,系统需要记录每种图书在某订单中的订购数量。描述该系统的实体与联系,并指出联系的类型。(4分)答案:实体包括会员、图书、订单。联系包括:会员与订单之间为“创建”联系,一个会员可以创建多个订单,一个订单只属于一个会员,所以是1:n联系,订单端为多。订单与图书之间为“包含”联系,一个订单可以包含多种图书,一种图书可以出现在多个订单中,所以是m:n联系,该联系上具有属性“数量”。将上述E-R图转换为关系模式,指出每个模式的主键和外键。(6分)答案:会员(会员号,姓名,电话,地址…),主键:会员号,无外键。图书(ISBN,书名,作者,单价…),主键:ISBN,无外键。订单(订单号,订单日期,会员号),主键:订单号,外键:会员号。订单明细(订单号,ISBN,数量),主键:(订单号,ISBN),外键:订单号、ISBN。由于订单与图书之间是m:n联系,因此引入“订单明细”作为联系模式转换。使用SQL语句查询:购买了书名为“软件设计师教程”的所有会员姓名及其购买总量。(5分)答案:SELECT会员.姓名,SUM(订单明细.数量)AS购买总量
FROM会员,订单,订单明细,图书
WHERE会员.会员号=订单.会员号
AND订单.订单号=订单明细.订单号
AND订单明细.ISBN=图书.ISBN
AND图书.书名='软件设计师教程'
GROUPBY会员.会员号,会员.姓名;三、UML建模(15分)某在线考试系统的基本功能如下:考生通过浏览器登录系统,在考试有效时间内作答并提交试卷,系统自动阅卷并生成成绩;教师可以维护试题、设置组卷规则并发布试卷;管理员负责管理考生账号和考试批次。请列出该系统的参与者和主要用例,每个参与者至少2个用例。(5分)答案:考生:登录、在线作答、提交试卷、查看成绩。教师:登录、维护试题、组卷、发布试卷。管理员:登录、管理考生账号、管理考试批次。请识别系统中的主要类,并说明“试卷”和“试题”之间的关联关系,以及“考生”与“成绩”之间的关系。(6分)答案:主要类包括:考生(User)、教师(Teacher)、管理员(Admin)、试卷(ExamPaper)、试题(Question)、答题记录(AnswerRecord)、成绩(Score)。“试卷”和“试题”之间是多对多关联。一份试卷可以包含多道试题,一道试题可以被多份试卷引用。通常可通过“试卷试题”关联类记录试题在试卷中的分值、顺序等属性。“考生”和“成绩”在同一考试批次中通常为1:1关联,一个考生对应一条成绩记录;若允许重考,则一个考生可能对应多条成绩记录。用文字描述“考生提交试卷”这一场景的顺序图:列出主要对象和消息传递顺序。(4分)答案:主要对象:考生界面、试卷控制器、答题记录、评分模块、成绩记录。消息传递顺序:考生在考生界面上点击“提交试卷”。考生界面将提交请求发送给试卷控制器。试卷控制器检查试卷是否完整,并锁定试卷。试卷控制器将所有答题数据保存到答题记录对象。试卷控制器调用评分模块进行自动阅卷。评分模块计算总分,并生成成绩记录。成绩记录保存后,向考生界面返回“提交成功”提示。四、算法设计(15分)求解两个字符串的最长公共子序列(LCS)长度,是动态规划的经典问题。下面给出一种采用动态规划算法的C语言实现,其中含有3个空缺。intLCSLength(charX[],charY[],intm,intn){
inti,j;
intdp[m+1][n+1];
for(i=0;i<=m;i++)
dp[i][0]=0;
for(j=0;j<=n;j++)
dp[0][j]=0;
for(i=1;i<=m;i++){
for(j=1;j<=n;j++){
if(X[i-1]==Y[j-1])
dp[i][j]=/*空(1)*/;
else
dp[i][j]=/*空(2)*/;
}
}
return/*空(3)*/;
}该算法所使用的算法设计策略是什么?其时间复杂度和空间复杂度各是多少?(4分)答案:该算法采用动态规划策略。时间复杂度为O(mn补全上述代码中的空(1)~(3)。(6分)答案:空(1):dp[i][j]=dp[i-1][j-1]+1;空(2):dp[i][j]=(dp[i-1][j]>dp[i][j-1])?dp[i-1][j]:dp[i][j-1];空(3):returndp[m][n];若X="ABCBDAB",Y="BDCABA",则它们的最长公共子序列的长度是多少?(5分)答案:最长公共子序列的长度为4。其中一个最长公共子序列为“BCBA”。五、设计模式应用(15分)某文本编辑器支持复制、粘贴、查找与替换等操作。随着功能扩展,操作种类增多,而且用户要求能够撤销(Undo)和重做(Redo)操作。为了避免按钮、菜单等界面组件与业务逻辑代码耦合混乱,系统希望把每一次操作封装为一个对象。请选择一种最合适的设计模式,并说明选择理由。(4分)答案:应选用命令模式(CommandPattern)。理由:命令模式将请求封装为对象,使请求发送者(界面组件)与请求接收者(业务逻辑类,如TextEditor)之间解耦,同时便于记录操作历史、支持撤销与重做。用文字描述该模式的主要参与者及其协作关系。(6分)答案:主要参与者:Command:抽象命令接口,定义执行操作的方法,通常包含execute()和undo()。ConcreteCommand:具体命令类,实现Command接口,持有接收者对象的引用,并在execute()中调用接收者的业务方法,在undo()中调用对应的反向操作。Receiver:接收者,真正执行业务逻辑的对象,例如TextEditor。Invoker:调用者或请求者,持有Command对象并调用其execute(),例如菜单、工具条。Client:客户端,创建具体命令对象,设置其接收者,并将命令对象交给Invoker。协作关系:Client创建ConcreteCommand并指定其Receiver;Invoker接收并保存Command对象;用户触发操作时,Invoker调用Command.execute(),ConcreteCommand最终调用Receiver的方法。需要撤销时,Invoker或历史管理器调用Command.undo()。若使用Java语言实现,请给出Command接口的方法签名,以及TextEditor类中执行命令、撤销、重做的方法签名(可用伪代码)。(5分)答案:publicinterfaceCommand{
voidexecute();
voidundo();
}
publicclassTextEditor{
privateStack<Command>history=newStack<>();
privateStack<Command>redoStack=newStack<>();
publicvoidexecuteCommand(Commandcmd){
cmd.execute();
history.push(cmd);
redoStack.clear();
}
publicvoidundo(){
if(!history.isEmpty()){
Commandcmd=history.pop();
cmd.undo();
redoStack.push(cmd);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 暑期青少年心理素质培养
- 室内盆栽花卉夏季通风遮阳养护课
- 2026年电力施工安全管理培训试卷及答案
- 城市轨道交通运营安全管理制度
- 2026年秋冬季流感科学防控 家长手卫生规范专题讲座课件
- 数控车床基本操作转
- 2026年秋冬季流感防治-家长免疫屏障构建知识讲座课件
- 2026年重庆市人教版小学英语三年级下册第10单元阅读理解专项训练习题
- 2026-2027年量子计算模拟器使用指南习题集
- 2026-2027年陕西省人教版九年级生物第1课生物的进化同步练习题
- AQ3067-2026 重大生产安全事故隐患判定准则解读
- 2026贵阳市投资控股集团有限公司第二批社会公开招聘笔试备考题库及答案详解
- 2026年书记员招聘考试公共基础知识专项试题附答案
- 固体废物贮存场所建设规范
- (2026年)AED除颤仪操作流程课件
- 领悟乡土文化主题班会课件
- 排水管网勘察测绘方案
- 2026年小学英语学科专业知识(含新课标核心素养)测试卷含答案(三套)
- DB37T5312-2025 建筑施工安全防护设施技术标准
- 急救AI数据集的构建与规范
- 血液净化患者的沟通技巧
评论
0/150
提交评论