[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷28及答案与解析.doc

上传人:roleaisle130 文档编号:507194 上传时间:2018-11-29 格式:DOC 页数:17 大小:167KB
下载 相关 举报
[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷28及答案与解析.doc_第1页
第1页 / 共17页
[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷28及答案与解析.doc_第2页
第2页 / 共17页
[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷28及答案与解析.doc_第3页
第3页 / 共17页
[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷28及答案与解析.doc_第4页
第4页 / 共17页
[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷28及答案与解析.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷 28及答案与解析 一、必答题(共 4道大题,每道大题 15分) 1 阅读以下说明和流程图,回答问题 1至问题 3,将答案写在对应栏内。 【说明】 下面给出的是某高级公寓管理系统的一套分层数据流图。其功能描述如下所述。 (1)系统随时根据住户送来的入住单更新住户基本信息文件。 (2)每月初系统根据物业管理委员会提供的月附加费 (清洁费、保安费等 )表和房租调整表,计算每家住户的月租费 (包括月附加费 ),向住户发出交费通知单。住户交费时,系统输 入交费凭证,核对后输出数据给住户。 (3)系统定期向物业管理委员会提供住房分配表和交费情况表

2、。 (4)住户因分户或换房,在更新账户基本信息文件的同时,系统应立即对这些住户做月租费计算,以了结分尸或换房前的房租。 假定题中提供的顶层图是正确的,请回答下列问题。 1 指出哪张图中的哪些文件可不必画出。 2 指出在哪些图中遗漏了哪些数据流,回答时请用如下形式之一: XX图中遗漏了 XX加工 (或文件 )流向 XX加工 (或文件 )的 XX数据流。 XX加工 XX遗漏了输入 (或输出 )数据流 XX。 3 指 出加工图 2子图中加工 2.3能检查出哪些不合格交费凭证。4 阅读以下说明,回答问题 1至问题 3,将答案写在对应栏内。 【说明】 关于一位花商有以下一些事实。 (1)销售在不同地区生

3、长的花,这些地区一年的量低温度在一定范围内变化。 (2)想用编号来表示发货类型。 (3)要出售某些类型的花。 假定已经通过 SQL语句建立了基本表: CREATE TABLE Zone ( ID Char(2) PRIMARY KEY, LowerTemp Number (3), UpperTemp Number (3) ); CREATE TABLE Delivery ( ID char(2)PRIMARY KEY, Category VarChar (5), DelSize Number (5, 3) ): CREATE TABLE FlowerInfo ( ID Char(3) CONS

4、TRAINT Flowerinfo_ id _ pk PRIMARY KEY, ComName VarChar (25), LatName VarChar (30), Czone Number (3), Hzone Number (3), Delivered Number (3), SunNeed Char (3), PRIMARY KEY (ID) ): 地区 (ID,最高温度,最低温度 ) 发货 (ID,发货类型,发货规格 ) 花的信息 (ID,普通名,拉丁名,花能够生长的最冷地区,花能够生长的最热地区,发货类型,日光需求 ) 4 写出语句,将 (ID=1, Category=pot, D

5、elSize=1.5)的数据插入 DELIVERY表中。 5 写出实现语句:查询以花瓶 (pot)形式发货的所有鲜花的 ID,普通名以及花瓶的规格。得到结果表按普通名的字母逆序打印。 6 (1)把对表 ZONE的 INSERT权限授予用户 Smith,并允许他再将此权限授予其他人。 (2)收回已经授予 Tom的对 FlowerInfo中属性 ComName的修改权限。 (3)建立视图 viewpot,表现问题 2的功能。 7 阅读以下说明和图,回答问题 1和问题 2,将答案写在对应栏内 。 【说明】 某教学管理系统的用户是教学管理人员、教师和学生。系统主要提供学生选课管理和学生成绩管理两方面的

6、功能。 (1)学生选修课管理 主要功能是管理新学期开始时,学生对选修的课程进行选课注册工作。新学期开始后的前两周为学生试听、选课注册时间;允许校内各院系学生跨专业跨年级选修课程;学生可以在校园网的任何一个终端进行选课。 新学期选修课程表生成:各学院教学管理人员在新学期开始前,将准备开设的选修课程名称、课程代码、总课时、上课时间、学分、任课教师和上课教室录入系统,供学生选课使 用。新学期开学两周后,系统自动将实际选课学生少于 10人的课程停开,并删除该课程;教学管理人员打印学生选课注册名单和开课通知书,送交有关部门和任课教师。 学生选课注册:新学期开学前两周为学生试听、选课注册时间,并允许改变或

7、取消注册申请。学生调用待选课程表,系统显示课程名、课程代码、任课教师、上课时间、总课时、上课教室、学分和本课程己选修人数。学生所选几门课程在上课时间上不能冲突:若一门课程实际选课学生已达到 40人时,停止选课。当学生退出系统时,系统提示该学生所选的几门课程、任课教师、上课时间、教室、学 分和学分总计。 选修课程查询:选修课程表信息查询,用户是教师、学生和教学管理人员。系统显示课程名、课程代码、任课教师、上课时间、总课时、上课教室、学分和本课程已选修人数。查询关键词可为学院名称、专业、授课教师等。 学生选课情况查询:教师和教学管理人员可以查看学生的选课情况。查询关键词可以为学生姓名 (学号 )、

8、课程名称 (课程代码 )、授课教师等。学生只能查自己所选课程内容,不允许查其他同学选课情况。 教师简历查询:用户是学生、教师和教学管理人员。查询关键词可为教师姓名、性别、职称、年龄等单关键 词或组合关键词。 信息统计与报表生成:各学院教学管理人员对学生选课注册信息进行统计 (按课程、专业等 ),打印汇总报表。 把学生选课注册信息传送到财务管理系统,计算学生应交纳的费用。 (2)学生成绩管理 学生考试成绩录入:各学院教学管理人员将学生考试成绩录入系统。录入学生成绩时,系统自动检查财务系统传来的选课交费信息,核对该学生是否已经交纳本门课程的费用,没有交纳费用者,不给成绩。 成绩查询;教师和教学管理

9、人员可查询学生各门课程的成绩。查询关键词可为学生姓名 (学号 ),课程名 (课程代码 )等。学生只能查自己各门课程的成绩,不允许查其他同学成绩。 成绩汇总与报表生成:教学管理人员对学生考试成绩信息进行统计 (按学生、课程、专业等 ),打印汇总报表。向学校教务管理系统发送汇总信息表格等,不反馈信息。 7 完成下面的教学管理系统最高层用例图。8 说明用例模型的功能,用例图的主要组成部分,用例建模的步骤。 9 阅读下列 C程序和程序说明,将应填入 (n)处的字句写在对应栏内。 【说明】设某城市有 n个车站,并有 m条公交线路连接这些车站,设这些公交车都是单向的,这 n个车站 被顺序编号为 0至 n-

10、1。本程序,输入该城市的公交线路数、车站个数,以及各公交线路上的各站编号,求得从站 0出发乘公交车至站 n-1的最少换车次数。 程序利用输入信息构建一张有向图 G(用邻接矩阵 g表示 ),有向图的顶点是车站,若有某条公交线路经 i站到达 j站,就在顶点 i到顶点 j之间设置一条权为 1的有向边 i,j。如果这样,从站点 x至站点 y的最少上车次数便对应图 G中从点 x到点 y的最短路径长度。而程序要求的换车次数就是上车次数减 1。 #include stdio.h #define M 20 #define N 50 int aN+1; /*用于存放一条线路上的各站编号 */ int gNN;

11、/*严存储对应的邻接矩阵 */ int distN; /*严存储站 0到各站的最短路径 */ int m, n; void buildG() int i, j, k, sc, dd printf(“输入公交线路数,公交站数 n”); scanf(“%d%d“, class Node friend class List; public: Node(int data) (1); private: int data; Node *next; ; class List public: List( ) list = NULL; void multiplyList(List L1, List L2); v

12、oid createList( ); void print( ); private: Node *list; ; void List:createList( ) Node *p, *u, *pm; int data; list = NULL; while (1) cout “输入链表的一项 : (小于零,结束链表 )“ end1; cin data; if(data 0)break; /小于零,结束输入 p = list; while (p != NULL p = p- next; u=(2): if(p=list) list = u; else pre- next = u; (3): voi

13、d List:multiplyList (List L1, List L2) Node *pL1, *pL2, *pL, *u; list = NULL; pL1 = L1.list; pL2 = L2.1ist; while (pL1 != NULL pL1 = pL1 - next; else u = new Node (pL2- data); pL2 = pL2- next; if (list=NULL) list=(4); else pL- next = u; pL =u; pL1 = (pL1 != NULL) ? pL1:pL2; while (pL1 != NULL) u =(5

14、); pL1 = pL1- next; if (list=NULL) list=pL=u; else pL- next = u; pL = u; void List:print( ) Node *p; p = list; while (p != NULL) cout p- data “t“; p = p- next; cout end1; void main ( ) List L1, L2, L; cout “创建第一个链表 n“; L1.createList ( ); cout “创建第二个链表 n“; L2.createList ( ); L1.print ( ); L2.print (

15、); L.multiplyList (L1, L2); L.print ( ); 11 阅读下列 Java程序和程序说明,将应填入 (n)处的字句写在对应栏内。 【说明】本程序实现功能:读入两个整数,第 1个数除以第 2个数,声明当除数为零时抛出异常类 DivideByZeroException。 public class DivideByZeroException (1) public DivideByZeroException ( ) super(“Attcmpted to divide by zero“); import java.io. *; public class Example

16、private static int quotient(int numerator, in)”t denominator) throws DivideByZeroException if (denominator=0) throw (2); return(numerator / denominator); public static void main(String args) int number1=0, number2=0, result0; try System.out.print1n(“Enter the first number:“); number1 = Integer. valu

17、eOf(Keyboard.getString().intValue(); System.out.print1n(“Enter the second number:“); number2 = Integer. Va1ueOf(Keyboard.getString().intValue(); result = quotient(number1,number2); catch (NumberFormatException e) System.out.print1n(“Invalid integer entered!“); System. exit(-1); catch (3) System.out.

18、print1n(e.to String(); System.exit(-1); Systcm.out.pfint1n(number1 + “/“ + number2 + “=“ + result); 其中 , Keyboard类的声明为 : import java.io.*; public class Keyboard static BufferedReader inputStream =(4) (new InputStreamReader(System.in); public static int getInteger() try( return (Intoger.valueOf(input

19、Stream.readLine().trim().intValue(); catch (Exception e) e.printStackTrace(); return 0; public static String getString() try return (inputStream.readLine(); catch (5) return “0“; 软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷 28答案与解析 一、必答题(共 4道大题,每道大题 15分) 1 【正确答案】 0层图中的 “房租文件 ”和 “交费文件 ”是局部文件,可不必画出。 2 【正确答案】 加工 1子图中

20、,遗漏了从 “住户基本信息文件 ”到加工 1.1的数据流。 加工 1子图中,加工 1.6遗漏了输出数据流: “住房分配表 ”。 加工 2子图中,加工 2.1遗漏了输入数据流: “月附加费表 ”。 加工 2子图中,加工 2.4遗漏了输出数据流: “收据 ”。 3 【正确答案】 交费凭证中有非法字符。 交费文件中不存在相应的交费凭证记录。 【试题解析】 题型特点、解题的思路和方法已经在模拟试题 1中的下午试题 1的解析中给出,请考生参考,这里不再详述。 问题 1是要找出哪些文件不必画出,就是要找出那些在本层图中的非公共文件,观察各个图,可以发现 0层图中的房租文件和交费文件是非公共文件。 问题 2

21、是要找出遗漏的数据流,可以使用平衡原则。因为试题中假设顶层图是正确的,所以可以先从 0层图开始找。对比 0层图和顶层图,可以看出 0层图中完整地包含了顶层图中 出现的数据流。 分别对比 0层图和加工 1子图, 0层图与加工 2子图,注意加工与加工之间,加工与文件之间,加工与外界之间是否可以完整地表现其父图中概括性表现的事实。要按照加工的顺序,考虑实际的流程,可以更容易解决问题。 0层图中加工 1出现的输出数据流 “住房分配表 ”在加工 1子图中没有出现,通过分析流程, “住房分配表 ”应该由 1.6加工 “制作住房分配报告 ”流出。 在加工 1子图中, 1.1加工需要使用住户基本信息文件,所以

22、该图中遗漏了从 “住户基本信息文件 ”到 1.1加工的数据流。在加工 1子图中,没有其他的遗 漏。同理,寻找加工 2子图中的遗漏数据流。 问题 3,在子加工 2.3中可以查出的不合格交费凭证是:交费凭证中有非法字符(语法错误 ),凭证文件中不存在相应的记录 (语义错误 )。 4 【正确答案】 INSERT INTO Delivery(ID, Category, DelSize)VALUE(1, pot,1.5); 5 【正确答案】 SELECT Flowerinfo.ID, FlowerInfo.ComName, Delivery.DelSize From FLOWERINFO ASF, DE

23、LIVERY AS D WHERE F.Delivered=D.id AND D.Category=pot ORDER BY F.ComName DESC; 6 【正确答案】 (1)GRANT INSERT ON TABLE ZONE TO SMITH WITH GRANT OPTION; (2)REVOKE UPDATE(ComName)ON TABLE FLOWERINFO FROM TOM; (3)CREATE VIEW Viewpot(ID, ComName, DelSize) AS SELECT FlowerInfo.ID, FlowerInfo. ComName, Delivery

24、.DelSize From FLOWERINFO ASP, D 【试题解析】 问题 1的插入语句很简单,只是考查考生基本的 SQL语言能力。 Insert语句的基本格式如下: INSERT INTO基本表名 (字段名 ,字段名 ) VALUES(常量 ,常量 ) ; 问题 2中的查询需要两个表: delivery和 flowerinfo,必须知道如何连接这两个表。 SELECT语句的基本格式如下: SELECT ALL DISTINCT目标列表达式 别名 ,目标列表达式 别名 FROM表名或视图名 别名 ,表名或视图名别名 WHERE条件表达式 GROUP BY列名 1 HAVING条件表达办

25、 ORDER BY列名 2 ASC DESC; SQL语言中的数据控制语句有授权 (GRANT),收回权限 (REVOKE),一般考生对这两 个语句的掌握可能会不熟悉。 SQL语言用 CREATE VIEW命令建立视图,其一般格式为: CREATE VIEW视图名 (列名 (,列名 ) AS子查询 WITH CHECK OPTION; SQL语言用 GRANT语句向用户授予操作权限, GRANT语句的一般格式为: GRANT权限 ,权限 ON对象类型对象名 TO用户 ,用户 WITH GRANT OPTION; 其语义是将对指定操作对象的指定操作权限授予指定的用户。 WITH GRANT OP

26、TION是可将获得的权限授予他人。 授予的权限可以由 DBA或其他授权者用 REVOKE语句收回。 REVOKE语句的一般格式为: REVOKE权限 ,权限 ON时象类型对象名 FROM 用户 ,用户 ; 7 【正确答案】 1教学管理员 2财务系统 3学校教务系统 4选修课管理 5学生成绩 管理 8 【正确答案】 用例模型是表达系统外部事物 (行为者 )与系统之间交互的可视化工具。一个系统的用例模型由若干用例图组成,用例图的主要成分有用例、行为者和系统,它用简单的图标元素准确地描述了行为者 (角色 )与系统的交互情况和系统的功能 (用例 )。 用例建模的步骤是: (1)确定系统的范围和边界。

27、(2)确定角色和用例。 (3)对用例进行描述。 (4)定义用例之间的关系。 (5)审核用例模型。 【试题解析】 首先分析系统边界,这个教学管理系统与学校教务管理系统和财 务管理系统有系统边界,学校教务管理系统只接受学院教学管理系统的汇总信息报表等,不反馈信息;财务管理系统接收学院学生选课情况信息作为收费依据,反馈学生交费信息。 试题中给出的最高层用例图中显示,有 5名参与者,并且已经标出教师和学生,可以从已知中得出还有教学管理员。角色 2和角色 3都只对一个用例发生关系,并且角色 3与用例 5是单向传递,综合分析可得出角色 3是学校教务管理系统,用例 5是学生成绩管理,那么,角色 2就是财务系

28、统,用例 4是选修课管理,角色 1是教学管理员。 9 【正确答案】 (1)asc+=dd (2)aJak (3)distj =0 & gkj=1 (4)-distk+1 (5)k 0?-1: j-1 【试题解析】 (1)asc+=dd 将 dd赋值给当前线路的 asc,并同时将当前线路站计数器加 1。 (2)aJak 将 aj和 ak之间置为通路 1。 (3)distj =0 & gkj=1 若 distj并且 k和 j之间有通路,或 -distk+1 distj,也就是经过 k对于 j来说上车次数更 少,则调整经过 k站能到达的其余各站的上车次数。 (4)-distk+1 让 distj取经

29、过 k的更少上车次数 -distk+1。 (5)k 0?-1: j-1 若 k小于 0,表示无解;否则返回 j-1也就是上车次数减 1。 二、选答题(共 3道大题,每道大题 15分) 从下列 3道试题中任选 1道解答,如果解答的试题数超过 1道,则仅题号小的 1道题解答有效。 10 【正确答案】 (1)this- data=data, next=NULL (2)new Node(data) (3)u- next=p (4)pL=u (5)new Node(pL1- data) 【试题解析】 (1)this- data=data, next=NULL Node构造函数给成员 data和 next

30、赋初值。 (2)new Node(data) 动态构造一个 Node对象,赋初值为 data。 (3)u- next=p 将 p结点作为 u的下一个结点,连在链表中。 (4)pL=u 若 list为空,也就是新表为空,则让新表头指针 pL指向 u。 (5)new Node(pL1- data) 若 pL1 !=NULL,则用表中结点的值 pL1- data作为初值生成一个新的 Node对象。 11 【正确答案】 (1)extends ArithmeticException (2)new DivideByZeroExeeption() (3)DivideByZeroException e (4)

31、new BufferedReader (5)IOException e 【试题解析】 (1)extends ArithmeticException DivideByZeroException类从 ArithmeticException类扩展而来。 (2)new DivideByZeroExeeption() throw一个 DivideByZeroException异常函数,打印错误信息。 (3)DivideByZeroException e 捕捉 DivideByZeroExeeption异常信息。 (4)new BufferedReader 动态生成一个 BufferedReader对象用于输入。 (5)IOException e 字符串成员函数 getString中捕捉输入输出异常信息。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1