【计算机类职业资格】中级软件设计师下午试题-36及答案解析.doc
《【计算机类职业资格】中级软件设计师下午试题-36及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】中级软件设计师下午试题-36及答案解析.doc(19页珍藏版)》请在麦多课文档分享上搜索。
1、中级软件设计师下午试题-36 及答案解析(总分:74.99,做题时间:90 分钟)一、B试题一/B(总题数:1,分数:10.00)阅读下列说明以及图示(如图 1 所示),回答问题 13。【说明】某大学准备开发一个学生课程注册系统,学生可以使用该系统查询新学期将开设的课程和讲课教师情况,选择自己要学习的课程进行登记注册,并可以查询成绩单;教师可以使用该系统查询新学期将开设的课程和选课学生情况,并可以登记成,绩单;注册管理员使用该系统进行注册管理,包括维护教师信息、学生信息和课程信息等。在每个学期的开始,学生可以获得该学期的课程目录表,课程目录表列出每门课程的所有信息,诸如基本信息、教师、开课系和
2、选课条件等。新学期开始前两周为选课注册时间,在此期间学生可以选课注册,并且允许改变或取消注册申请,开学两周后注册管理员负责关闭课程注册。每个学生可以选择不超过 4 门课程,同时指定 2 门侯选课程以备主选课程未选上。每门课程最多不能超过 10 人,最少不能低于 3 人,低于 3 人选课的课程将被取消。一旦学生的注册过程完毕,注册系统将有关信息提交收费系统以便学生付费。如果在实际注册过程中名额已满,系统将通知学生在提交课程表之前予以更改。在学期结束时,学生可以存取系统查看电子成绩单。由于学生成绩属于敏感信息,系统必须提供必要的安全措施以防非法存取。【用例图】B表 1 学生课程注册系统的实体类/B
3、 实体类 说明Professor 学校中讲课的教师student 学校中注册课程的学生Schedule 学生在新学期选择登记的课程列表CourseCatalog 学校所有课程的目录Course 课程的基本信息CourseOffering 新学期课程的开设信息,如讲课教师、时间、地点等信息B表 2 学生课程注册系统的边界类/B边界类 说明LoginForm 为教师、学生和注册管理员提供登录的操作RegisterCoursesForm 为学生提供选课注册的操作ViewReportForm 为学生提供成绩查询的操作selecrTeachCoursesForm 为教师提供查看学生选课情况的操作Subm
4、itCradesForm 为教师提供登记成绩的操作MaintainProfessorsForm 为注册管理员提供维护教师信息的操作MaintainStudentsForm 为注册管理员提供维护学生信息的操作MaintainCoursesForm 为注册管理员提供维护课程信息的操作CloseRegistrationForm 为注册管理员提供关闭注册的操作BillingSystemNotice 提供与收费系统的信息交换接口B表 3 学生课程注册系统的控制类/B 控制类 说明RegisterCoursesControl 负责新学期学生的选课登记ViewReportControl 负责学生成绩的查询S
5、electTeachCoursesControl 负责新学期课程的学生选择情况SubmitGradesControl 负责学生成绩的登记CloseRegistrationControl 负责关闭课程注册【协作图】(分数:9.99)(1).【问题 1】在 UML 中,用例代表一个完整的功能,如与角色通信、进行计算或在系统内工作等。请简要说明用例具有哪些的特征,并指出用例图中(1)(3)处表示的内容。(分数:3.33)_(2).【问题 2】协作图与时序图是同构的,二者表示的都是同样的系统交互活动,只是各自的侧重点不同而已。根据题目提供的信息,指出协作图中(4)(8)处表示的内容。(分数:3.33)
6、_(3).【问题 3】UML 采用 5 个互联的视图来描述软件系统的体系结构,即用例视图(Usecase View)、设计视图(Design View)、进程视图(Process View)、实现视图(Implementation View)和展开视图(Deployment View)。系统模型中每一个视图的内容是由一些图来描述的,UML 中包含用例图、类图、对象图、状态图、时序图、协作图、活动图、组件图、分布图等 9 种图。对整个系统而言,其功能由用例图描述,静态结构由类图和对象图描述,动态行为由状态图、时序图、协作图和活动图描述,而物理架构则是由组件图和分布图描述。请分别指出用例图、类图、
7、对象图、状态图、时序图、协作图、活动图、组件图、分布图的作用。(分数:3.33)_二、B试题二/B(总题数:1,分数:10.00)阅读下列说明和算法,回答问题 1 和问题 2。【说明】算法 2-1 是用来检查文本文件中的圆括号是否匹配。若文件中存在圆括号没有对应的左括号或者右括号,则给出相应的提示信息,如下所示:文件 提示信息(1+2)abc) 缺少对应左括号:第 2 行,第 4 列(def)gx) 缺少对应左括号:第 3 行,第 10 列(h)ij)(k(1ml) 缺少对应右括号:第 5 行,第 4 列;第 4 行,第 1 列在算法 2-1 中,stack 为一整数栈。算法中各函数的说明见表
8、 4。B表 4/B 函数名 函数功能push (int i) 将整数 i 压人栈 stack 中pop( ) stack 的栈顶元素出栈empty( ) 判断 stack 栈是否为空。若为空,函数返回 1,否则函数返回 0nextch( )读取文本文件中的下个字符,井返回该字符的 ASCII 值,将字符所在的行号以及字符在行中的位置分别存储到变量 row 和 col中,若遇到文件结束符,则将变量 EOF 置为 truekind (char ch) 判断字符 ch 是左括号还是右括号,若是左括号,函数返回 1,若是右括号,函数返回 2,若两者都不是,函数返回。【算法 2-1】将栈 stack 置
9、空,置 EOF 为 false ch - nextch(); while( not EOF) k - kind(CH); if(k=U (1) /U) push(U (2) /U);push(U (3) /U); elseif(k=U (4) /U) if(not empty() pop( ) ;pop( ); else 显示错误信息(缺少对应左括号或右括号); 显示行号row;显示列号 col; endif endif ch - nextch( ); endwhile if(not empty() 显示错误信息(缺少对应左括号或右括号); while(not empty() row - po
10、p() ; col - pop(); 显示行号 row; 显示列号col; endwhile endif 为了识别更多种类的括号,对算法 2-1 加以改进后得到算法 2-2。算法 2-2 能够识别圆括号、方括号和花括号(不同类型的括号不能互相匹配)。改进后,函数 kind(char ch)的参数及其对应的返回值见表 5。 B表五/Bch ( ) 其他返回值 1 2 3 4 5 6 0【算法 2-2】将栈 stack 置空,置 EOF 为 falsech -nextch();while(not EOF)k -kind(ch);if( k 0)if(U 判断条件 1 /U)push(U (5) /
11、U);push(U (6) /U);push(U (7) /U);elseif(U 判断条件 2 /UandU 判断条件 3 /U)pop() ;pop() ;pop();else显示行号 row; 显示列号 col;endifendifch - nextch();endwhileif(not empty( ) )显示错误信息(缺少对应左括号或右括号);while( not empty( ) )pop( ); rowpop( ); colpop( );显示行号 row;显示列号 col;endwhileendif(分数:10.00)(1).【问题 1】请将【算法 2-1】和【算法 2-2】中(
12、1)(7)处补充完整。(分数:5.00)_(2).【问题 2】请从下面的选项中选择相应的判断逻辑填补【算法 2-1】中的“判断条件 1”至“判断条件 3”。注意,若“判断条件 2”的逻辑判断结果为假,就无需对“判断条件 3”进行判断。(a)字符是括号(b)字符是左括号(c)字符是右括号(d)栈空(e)栈不空(f)栈顶元素表示的是与当前字符匹配的左括号(R)栈顶元素表示的是与当前字符匹配的右括号(分数:5.00)_三、B试题三/B(总题数:1,分数:11.00)阅读下列说明,回答问题 1问题 4。【说明】某超市的销售业务由一个销售业务管理系统进行管理,该系统每完成一次交易都需要提供顾客发票,其格
13、式见表 6 所示。(分数:11.00)(1).【问题 1】设计一的关系模式 Invoice 最高满足第几范式?为什么?设计一和设计二哪个更加合理?为什么?(分数:2.75)_(2).【问题 2】根据设计二中关系模式,以下 SQL 语句是用于“建立 2005 年 1 月期间每张发票的发票号,交易日期,交易商品件数和交易总金额的视图”的不完整语句,请填补其中的空缺。CREATE VIEW Invoice -totalU (1) /USELECT Invoice. ino, ldate,U (2) /U,U (3) /UFROM Invoice, lnvoicedetailWHEREU (4) /U
14、ANDldate BETWEEN 2005-01-01AND 2005-01-31GROUPBYU (5) /U;(分数:2.75)_(3).【问题 3】根据设计二中关系模式,以下 SQL 语句是用于“查询从未售出的商品信息”的不完整语句,请填补其中的空缺。SELECT Mno, Mname, priceFROM MerchandiseU (1) /UWHEREU (2) /U(SELECTU (3) /UFROM lnvoicedetailWHERE A. Mno=lnvoicedetail. Mno);(分数:2.75)_(4).【问题 4】设计二中关系 Merchandise 中由属性
15、price 表示商品价格,关系 lnvoicedetail中的属性 unitprice 也表示商品价格。两个是否有必要同时存在?为什么?(分数:2.75)_四、B试题四/B(总题数:1,分数:11.00)1.【函数 1 说明】函数 compare(SqList A, SqList B)的功能是:设 A=(al,am)和 B=(b1,bn)均为顺序表,“比较”,两个顺序表 A 和 B 的大小。设 A 和 B 分别为 A 和 B 中除去最大共同前缀后的子表(例如,A=(y,x,x,z,x,z),B=(y,x,x,2,y,x,x,z),则两者中最大的共同前缀为 (y,x,x,z),在两表中除去最大共
16、同前缀后的子表分别为 A=(x,z)和 B=(y,x,x,z)。若 A=B=空表,则 A=B;若 A=空表,而 B空表,或者两者均不为空表,且 A的首元小于 B首元,则 AB:否则 AB。提示:算法的基本思想为:若相等,则 j+1,之后继续比较后继元素;否则即可得出比较结果。显然,j 的初值应为 0,循环的条件是 j 不超出其中任何一个表的范围。若在循环内不能得出比较结果,则循环结束时有 3 种可能出现的情况需要区分。【函数 1】int compare ( SqListA, SqList B)/若 AB,则返回-1;若 A=B,则返回 0:若 AB,则返回 1j =0;while(iU (1)
17、 /UelseU (2) /U;if(A. length = B. length) return(0);else if(A. lengthB. length)return(-1);else return(1)/compare /函数 1 的时间复杂度是U (3) /U。【函数 2 说明】函数 exchanse_L(SLnkL,int m)的功能是:用尽可能少的辅助空间将单链表中前 m 个结点和后 n 个结点的互换。即将单链表(a 1、a 2,a m,b 1,b 2,b n)改变成(b 1,b 2,b n,a 1, a 2,a m,)。【函数 2】void exchange_L(SLink k=
18、1;while( k m+k;if(U (6) /U /以指针 ha 记 a1结点的位置L - next = p - next; /将 B1结点链接在头结点之后p - next = NULL; /设 am的后继为空q=U (7) /U; /令 q 指向 b1结点while(q-next)q =U (8) /U; /查找 bn结点q-next=U (9) /U; /将 a1结点链接到 bn结点之后/函数 2 的时间复杂度是U (10) /U。(分数:11.00)_五、B试题五/B(总题数:1,分数:11.00)2.【程序说明】 本程序先从文件读人各考生的准考证号(设为整型数)及成绩,并将其存放在
19、一棵检索二叉树上,二叉树结点的健值是成绩,每个结点带一链表,链表结点存放取得该成绩的考生的准考证号。然后,程序按中序遍历检索二叉树,从高分到低分输出结果,使每行输出成绩及其取得成绩的考生的准考证号。 【程序】 #include stdio. h typedef struet idnode int id; struct idnode * next; ldNode; typedef struct marknode I int mark; ldNode * head; struct marknode * left, * right; MarkNode; char fname = “sp07.dat“
20、; main( ) int id, mark; MarkNode * root = null; FILE * fp = fopen(fname,“ r“ ); if(!fp) printf(“file%s open error, /n“ , fname); exit(0); while (!feop(fp) fscanf(fp,“ %d%d“, btree( fclose(fp); print(root); btree(MarkNod * * mpptr, int id, int mark) ldNode * ip; MarkNode *mp = * mpptr; ifU (1) /U if
21、(mark=p-mark) addldNODE (U (2) /U, id); else if ( mark mp - mark) btree ( else btree( else Imp = ( marknode * ) malloc(sizeo (marknode) ); mp - mark = mark; mp - left =mp - right = NULL; U(3) /U addldNode( U(4) /U; addldNode(ldNode * * ipp, int id) ldNode * ip = * ipp; if (U (5) /U)addldNode (U (6)
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 中级 软件 设计师 下午 试题 36 答案 解析 DOC
