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

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

1、软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷 52及答案与解析 一、必答题(共 4道大题,每道大题 15分) 1 阅读以下说明和图,回答问题 1至问题 4,将解答填入对应栏内。 【说明】 某高校欲开发一个成绩管理系统,记录并管理所有选修课程的学生的平时成绩和考试成绩,其主要功能描述如下; 1每门课程都有 3到 6个单元构成,每个单元结束后会进行一次测试,其成绩作为这门课程的千时成绩。课程结束后进行期末考试,其成绩作为这门课程的考试成绩。 2学生的平时成绩和考试成绩均由每门课程的 主讲教师上传给成绩管理系统。 3在记录学生成绩之前,系统需要验证这些成绩是否有效。首先,根据学生信息文

2、件来确认该学生是否选修这门课程,若没有,那么这些成绩是无效的:如果他的确选修了这门课程,再根据课程信息文件和课程单元信息文件来验证平时成绩是否与这门课程所包含的单元相对应,如果是,那么这些成绩足有效的,否则无效。 4对于有效成绩,系统将其保存在课程成绩文件中。对于无效成绩,系统会单独将其保存在无效成绩文件中,并将详细情况提交给教务处。在教务处没有给出具体处理意见之前,系统不会处理这些成绩。 5若一门课程的所有有效的平时成绩和考试成绩都已经被系统记录,系统会发送课程完成通知给教务处,告知该门课程的成绩已经齐全。教务处根据需要,请求系统生成相应的成绩列表,用来提交考试委员会审查。 6在生成成绩列表

3、之前,系统会生成一份成绩报告给主讲教师,以便核对是否存在错误。主讲教师须将核对之后的成绩报告返还系统。 7根据主讲教师核对后的成绩报告,系统生成相应的成绩列表,递交考试委员会进行审查。考试委员会在审查之后,上交一份成绩审查结果给系统。对于所有通过审查的成绩,系统将会生成最终的成绩单 ,并通知每个选课学生。 现采用结构化方法对这个系统进行分析与设计,得到如图 1-1所示的顶层数据流图和图 1-2所示的 0层数据流图。 1 使用说明中的词语,给山图 l-1中的外部实体 E1 E4的名称。 2 使用说明中的词语,给出图 1-2中的数据存储 D1 D5的名称。3 数据流图 1-2缺少了三条数据流,根据

4、说明及数据流图 1-1提供的信息,分别指出这三条数据流的起点和终点。 4 数据流图是在系统分析与总体设计阶段宏观地描述系统功能需求的重要图形化工具,程序流程图也是软件开发过程中比较常用的图形 化工具。简要说明程序流程图的适用场合与作用。 5 阅读下列说明和图,回答问题 l至问题 3,将解答填入答题纸的对应栏内。【说明】某银行计划开发一个自动存提款机模拟系统 (ATM System)。系统通过读卡器(: ardReader)读取 ATM卡;系统与客户 (Customer)的交互由客户控制台(CustomerConsole)实现;银行操作员 ()perator)可控制系统的启动 (System S

5、tartup)和停止 (SystemShutdown);系统通过网络和银行系统 (Bank)实现通信。当读卡器判断用 户已将 ATM卡插入后,创建会话 (Session)。会话开始后,读卡器进行读卡,并要求客户输入个人验证码 (PIN)。系统将卡号和个人验证码信息送到银行系统进行验证。验证通过后,客户可从菜单选择如下事务 (Transaction): 1从 ATM卡账户取款 (withdraw); 2向 ATM卡账户存款 (Deposit); 3进行转账 (Transfer);4查询 (Inquire)ATM卡账户信息。一次会话可以包含多个事务,每个事务处理也会将卡号和个人验证码信息送到银行系

6、统进行验证。若个人验证码错误,则转个人验证码错误 处理 (Invalid PIN Process)。每个事务完成后,客户可选择继续上述事务或退卡。选择退卡时,系统弹出 ATM卡,会话结束。系统采用面向对象方法开发,使用 uML进行建模。系统的顶层用例图如图 53所示,一次会话的序列图(不考虑验证 )如图 54所示。消息名称参见表 54。 5 根据【说明】中的描述,给出图 53中 A1和 A2所对应的参与者, u1至u3所对应的用例,以及该图中空 (1) 所对应的关系。 (ul至 u3的可选用例包括:Session、 Trans-action、 Inserl Card、 Invalid PIN

7、Process和 Transfer) 6 根据【说明】中的描述,使用表 53中的英文名称,给出图 54中 6 9对应的消息。 7 解释图 53中用例 u3和用例 Withdraw、 Deposit等四个用例之间的关系及其内涵。8 阅读下列说明及图 13-8和图 13-9,回答问题,将解答填入对应栏内。【说明】 某电话公司决定开发一个管理所有客户信息的交互式网络系统。系统功能如下。 (1)浏览客户信息:任何使用 Internet的网络用户都可以浏览电话公司所有的客户信息 (包括姓 名、住址、电话号码等 )。 (2)登录:电话公司授予每个客户一个帐号。拥有授权帐号的客户,可以使用系统提供的页面设置

8、个人密码,并使用该帐号和密码向系统注册。 (3)修改个人信息:客户向系统注册后,可以发送电子邮件或者使用系统提供的页面,对个人信息进行修改。 (4)删除客户信息:只有公司的管理人员才能删除不再接受公司服务的客户的信息。系统采用面向对象方法进行开发,在开发过程中认定出的类见表 13-3。8 在需求分析阶段,采用 UML的用例图 (use case diagram)描述系统功能需求,如图 13-8所 示。请指出图中的 A、 B、 C和 D分别是哪个用例 ? 9 请指出图 13-9中 (1) (4)处的重复度分别为多少 ? 10 类通常不会单独存在,因此当对系统建模时,不仅要识别出类,还必须对类之间

9、的相互关系建模。在面向对象建模中提供了 4种关系:依赖 (dependency)、概括(generalization )、关联 (association)和聚集 (aggregation)。请分别说明这 4种关系的含义,并说明关联和聚集之间的主要区别。 10 阅读下列说明和图,回答问题 1至问题 3,将解答填入对应栏内。 说明 某汽车数字仪表系统将完成下述功能: (1)通过模一数转换,实现传感器和微处理器的接口。 (2)在发光二极管面板上显示数据。 (3)指示速度 (mph)、行驶里程、油耗(mpg)等。 (4)指示加速或减速。 以下是经分析得到的数据流图,有些地方有待填充,假定顶层数据流图是

10、正确的。图 1-1是顶层数据流图,图 1-2是第 0层数据流图,图 1-3是第 1层数据流图,其中 A是加工 1的细化图, B是加工 2的细化图。图中, sps表示转速 sps的瞬时变化值,若 sps 0则汽车加速, sps 0则减速, sps=0 则匀速。假定题 中提供的顶层图是正确的,请回答下列问题。 图 1-1 图 1-2 图 1-3 11 第 0层数据流图 (图 1-2)中有一条缺失的数据流,请指出该数据流的起点和终点。 加工 1的细化图 (图 1-3中的 A)中有一条缺失的数据流,请指出该数据流的起点和终点。 12 加工 2的细化图 (图 1-3中的 B)中有一条错误的数据流,请指出

11、该数据流的起点或终点 (若可以,指出两者 )。 13 小说明是用来描述加工的。小说明的描述方法有哪些 ?请分别用这些描述方法描述加工 1.2。 二、选答题(共 3道大题,每 道大题 15分) 从下列 3道试题中任选 1道解答,如果解答的试题数超过 1道,则仅题号小的 1道题解答有效。 14 阅读以下说明和 Java 码,将应填入 (n)处的字名写在的对应栏内。 说明 编写一个学生类 Student,要求: (1) 学生类 Student 属性有: id: long 型,代表学号 name: String类对象,代表姓名 age: int 型,代表年龄 sex: boolen 型,代表性别 (其

12、中: true 表示男, false 表示女 ) phone: String 类对象,代表联系电话 (2) 学生类 Student 的方法有: Student (long i, String n, int a, boolean s, String p) :有参构造函数,形参表中的参数分别初始化学号、姓名、 年龄、性别和联系电话。 int getAge ():获取年龄作为方法的返回值。 boolean getSex ():获取性别作为方法的返回值。 String getPhone ():获取联系电话作为方法的返回值。 public String to String ():以姓名:性别:学号:联系

13、电话的形式作为方法的返 import java. applet. Applet; import java. awt.* ; public class Student extends Applet long id; String name, phone; int age; boolean sex; Student(long i, String n, int a, boolean s, String p) id=i; name = n; age = a; sex= s; phone = p; public void paint( Graphics g) Student x= new Student

14、 (5000,“ xiaoliu“ , 89, true, “ 8989898“ ); (1); (2) g. drawstring( x. getPhone( ), 140,140); int getAge( ) return age; boolean getsex ( ) return sex; String getPhone( ) return phone; String ToString( ) (3) 14 阅读下列函数说明和 C代码, 说明 所谓货郎担问题,是指给定一个无向图,并已知各边的权,在这样的图中,要找一个闭合回路,使回路经过图中的每一个点,而且回路各边的权之和最小。 应用贪

15、婪法求解该问题,程序先计算由各点构成的所有边的长度 (作为边的权值 ),按长度大小对各边进行排序后,按贪婪准则从排序后的各边中选择组成回路的边,贪婪准则使得边的选择按各边长度从小到大选择。 函数中使用的预定义符号如下: #define M 100 typedef struct/*x 为两端点 p1、 p2之间的距离, p1、 p2所组成边的长度 */ float x; int p1, p2; tdr; typedef struct/*p1、 p2为和端点相联系的两个端点, n为端点的度 */ int n, p1, p2; tr; typedef struct/*给出两点坐标 */ float

16、x, y; tpd; typedef int tlM; int n=10; 函数 float distance(tpd a, tpd b); /*计算端点 a、 b之间的距离 */ void sortArr(tdr aM, int m); /*将已经计算好的距离关系表按距离大小从小到大排序形成排序表, m为边的条数 */ int isCircuit(tr rM, int i, int j); /*判断边 (i, j)选入端点关系表 rM后,是否形成回路,若形成回路返回 0*/ void selected(tr rM, int i, int j); /*边 (i, j)选入端点关系表 r*/ v

17、oid course(tr r M, tl lM); /*从端点关系表 r中得出回路轨迹表 */ void exchange(tdr aM, int m, int b); /*调整表排序表, b表示是否可调,即是否有长度相同的边存在 */ void travling(tpd pd M, int n, float dist, tl locusM) /*dist记录总路程 */ tdr drM; /*距离关系表 */ tr rM; /*端点关系表 */ int i, j, k, h, m; /*h表示选入端点关系表中的边数 */ int b; /*标识是否有长度相等的边 */ k=0; /*计算距

18、离关系表中各边的长度 */ for(i=1; i n; i+) for(j=i+1; J =n; j+) k+; drk x=(1); drk pl=i; drk p2=j; m=k; sortArr(dr, m); /*按距离大小从小到大排序形成排序表 */ do b=1; dist=0; k=h=0: do k+; i=drk p1; j=drk p2; if(r(i n =1)(rj n =1)/*度数不能大于 2*/ if (2) /*若边 (i, j)加入 r后形成回路,则不能加入 */ (3); h+; dist+=drk x; else if (4) /*最后一边选入 r成回路,

19、则该边必须加入且得到解 */ selected(r, i, j); h+: dist+=drk x; while(k !=n) (h !=n); if(h=n)/*最后一边选入构成回路,完成输出结果 */ course(r, locus); else(/*找不到解,调整 dr,交换表中边长相同的边在表中的顺序,并将 b置 0*/ (5); while(!b); 15 (1) 16 (2) 17 (3) 18 (4) 19 (5) 19 阅读以下函数说明和 Java代码, 说明 现要编写一个画矩形的程序,目前有两个画图程序: DP1和 DP2, DP1用函数 draw_a_line(x1, y1

20、, x2, y2)画一条直线,DP2则用 drawline(x1, x2, y1, y2)画一条直线。当实例化矩形时 ,确定使用 DPI还是 DP2。 为了适应变化,包括 “不同类型的形状 ”和 “不同类型的画图程序 ”,将抽象部分与实现部分分离,使它们可以独立地变化。这里, “抽象部分 ”对应 “形状 ”, “实现部分 ”对应 “画图 ”,与一般的接口 (抽象方法 )与具体实现不同。这种应用称为 Bridge(桥接 )模式。图 7-1显示了各个类间的关系。 图 7-1 这样,系统始终只处理 3个对象: Shape对象、 Drawing对象、 DP1或 DP2对象。以下是 JAvA语言实现,能

21、够正确编译通过。 Java代码 /DP1 Java文件 public class DPI static public void draw_a_line(double x1, double y1, double x2, double y2) /省略具体实现 /DP2 java文件 public class DP2 static public void drawline(double x1, double y1, double x2, double y2) /省略具体实现 /Drawing java文件 (1) public class Drawing abstract public void d

22、rawLine(double x1, double y1, double x2, double y2); /V1Drawing java文件 public class V1Drawing extends Drawing public void drawLine(double x1, double y1, double x2, double y2) DP1 draw_a_line(x1,y1, x2, y2); /V2Drawing java文件 public class V2Drawing extends Drawing public void drawLine(double x1, doub

23、le y1, double x2, double y2)/画一条直线 (2); /Shape java文件 abstract public class Shape abstract public void draw(); private (3) dp; Shape(Drawing dp) _dp=dp; protected void drawLine(double x1, double y1, double x2, double y2) (4); /Rectangle java文件 public class Rectangle extends Shape private double_x1,

24、_x2, _y1, _y2; public Rectangle(Drawing dp, double x1, double y1, double x2, double y2) (5); _x1=x1; _x2=x2; _y1=y1; _y2=y2; public void draw() /省略具体实现 20 (1) 21 (2) 22 (3) 23 (4) 24 (5) 软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷 52答案与解析 一、必答题(共 4道大题,每道大题 15分) 1 【正确答案】 E1:考试委员会; E2:主讲教师; E3:学生或选课学生: E4:教务处 2 【正确

25、答案】 D1:学生信息文件; D2:课程单元信息文件: D3:课程信息文件; D4:课程成绩文件; D5:无效成绩文件。 注: D2和 D3的答案可以互换。 3 【正确答案】 注:数据流起点、终点全部答对才可给分,数据流不分 先后顺序。 4 【正确答案】 程序流程图通常在进行详细设计时使用,用来描述程序的逻辑结构。 【试题解析】 本题考查的是 DFD的应用,属于比较传统的题目,考查点也与往年类似。 问题 1考查的是顶层 DFD。顶层 DFD通常用来确定系统边界,其中只包含一个唯一的加工 (即待开发的系统 )、外部实体及外部实体与系统之间的输入输出数据流。题目要求填充的正是外部实体。 从顶层 D

26、FD可以看出,数据流是完整的。所以只要根据数据流从题目说明的上下文中,找出 E1 E4所对应的外部实体,分别为考试委员会、主讲教师、 学生和教务处。 0层 DFD中缺少的东西比较多,要求填写数据存储及缺失的数据流。先来确定数据存储。首先,从说明中找出可能是数据存储的元素来。很明显,学生信息文件、课程信息文件、课程单元信息文件、课程成绩文件和无效成绩文件应该是数据存储。下面的工作就是对号入座。 从 0层 DFD上可以看到,加工 3到 D5 有一条数据流;而加工 3所完成的操作是“记录无效成绩 ”。从说明中可知, “对于无效成绩,系统会单独将其保存在无效成绩文件中 ”,所以 D5应该是数据存储 “

27、无效成绩文件 ”。类似地,从加工 2“记录有效成绩 ”到 D4有一 条数据流,这说明 D4 就是数据存储 “课程成绩文件 ”。 D1输出两条数据流,分别流向加工 1“验证学生信息 ”和加工 4“生成成绩列表 ”。由说明 “根据学生信息文件来确认该学生是否选修这门课程 ”可知,验证学生信息时,需要根据学生信息文件来进行;而生成成绩列表及成绩单时,学生信息都是必要的。所以 D1 应该是 “学生信息文件 ”。 这样的话, D2和 D3就应该分别与 “课程单元信息文件 ”和 “课程信息文件 ”对应。由于 D2和 D3都只与加工 1有关,所以它们的对应关系就是随意的了。这样 5个数据存储就填充完整了。下

28、面要补充缺失的数 据流。 首先,从说明的第 5条可知,生成成绩列表时,是需要从课程成绩文件中获取信息的, “课程成绩文件 ”实际上就是图中的 D4。而 D4和加工 4之间并没有数据流,因此这就是一条缺失的数据流。 另外,前面在确定 D1所对应的数据存储时提到过,生成成绩单时是需要学生信息的。所以,加工 5应该从 D1中获取相应的信息,这样就找到了第二条数据流。 第三条数据流也比较容易找。说明的第 7条告诉我们,只有 “对于所有通过审查的成绩,系统将会生成最终的成绩单,并通知每个选课学生 ”。也就是说,从成绩列表到成绩单的生成是有条 件的。这意味着,在加工 4和加工 5之间应该存在一条数据流,这

29、就是第 3条数据流。 问题 4实际上是为了考查大家对 DFD的进一步理解,明确 DFD 在软件开发中用于描述功能需求。 5 【正确答案】 A1: Customer A2: Bank Ul: Session U2: Invalid PIN Process U3: Transaction(1): 6 【正确答案】 6: readPIN() 7: PIN 8: creat(atm, this, card, pin) 9: performFransaction() 7 【正确答案】 Transaction是一个抽象泛化用例,具有其他事务类型共有的属性和行为,每个具体的事务类型继承它,并实现适合自己的特

30、定的操作。 【试题解析】 问题 1:识别参与者时,考查和系统交互的人员和外部系统。本题中,与系统交互的人员包括客户 (Customer)和银行操作员 ()perator),与本模拟系统交互的外部系统包括银行系统 (Sank)。考查用例时,通过判断哪一个特定参与者发起或者触发了与系统的哪些交互,来识别用例并建立和参与者之间的关联。考查用例之间的关系时, -include; (包含 )定义了用例之问的包含关系,用于一个用例包含另一个用例的行为的建模;如果可以从一个用例的执行中,在需要时转向执行另一个用例,执行完返回之前的用例继续执行,用例间即存在 关系。 问题 2:序列图是场景的图形化表示,描述了

31、以时间顺序组织的对象之间的交互活动。构造序列图时遵循如下指导原则:确定顺序图的范围,描述这个用例场景或一个步骤;绘制参与者和接口类,如果范围包括这些内容的话;沿左手边列出用例步骤:对控制器类及必须在顺序中协作的每个实体类,基于它拥有的属性或已经分配给它的行 为绘制框;为持续类和系统类绘制框;绘制所需消息,并把每条消息指到将实现响应消息的责任的类上;添加活动条指示每个对象实例的生命期;为清晰起见,添加所需的返回消息;如果需要,为循环、可选步骤和替代步骤等添加框架。 问题 3:用例之间的继承关系表示子类型 “是一种 ”父类型。其中父类型通常是一个抽象泛化用例,具有子类型共有的属性和行为,每个具体的

32、子类型继承它,并实现适合自己的特定的操作。本题中 Transaction、 Withdraw 和 Deposit等四个用例之间的关系即为继承关系, Transaction 即是一个抽象泛化 用例,具有其他事务类型共有的属性和行为,每个具体的事务类型继承它,并实现适合自己的特定的操作。 8 【正确答案】 A:浏览客户信息; B:修改个人信息; C:登录; D:删除客户信息。 9 【正确答案】 (1)1 (2)0* (3)01 (4)01 10 【正确答案】 依赖关系:有两个元素 A、 B,如果元素 A的变化会引起元素 B的变化,则称元素 B依赖于元素 A。 概括关系:描述一般事物与该事物中的特殊

33、种类之间的关系,也就是父类与子类之间的关系。 关联关系:表示两个类的实例之间 存在的某种语义上的联系。 聚集关系:表示一种整体和部分的关系。 聚集关系是关联关系的特例,它是传递和反对称的。 【试题解析】 图 13-8是一个 UML 的用例图。在工程的分析阶段,用例图被用来鉴别和划分系统功能,它们把系统分成动作者 (actor)和用例。 动作者 (actor)表示系统用户能扮演的角色 (role)。这些用户可能是人,可能是其他的计算机、一些硬件或者是其他软件系统。判断它们的唯一标准是它们必须要在被划分进用例的系统部分以外。它们必须能刺激系统部分,并接收返回。 用例描述了当动作者之一被系统特定地刺

34、 激时系统的活动。这些活动用文本来描述,即描述了触发用例的刺激的本质,输入和输出到其他活动者,以及转换输入到输出的活动。用例文本通常也描述每一个活动在特殊的活动线时可能的错误和系统应采取的补救措施。 图中的网络用户、公司客户、管理人员都是动作者。题目说明中提到了系统有 4个功能:浏览客户信息、登录、修改个人信息、删除客户信息。这也就是 4个用例,我们现在只需把它们对号入座即可。根据题目说明,我们可以知道任何使用Internet的网络用户都可以浏览电话公司所有的客户信息,在图中符合这一条件的只有 A了,所以 A应填浏览 客户信息。又因为只有公司的管理人员才能删除不再接受公司服务的客户的信息,所以

35、 D应填删除客户信息。 剩下就只有登录和修改个人信息两个用例了,那么 B究竟是填登录还是修改呢 ?我们先来看包含和扩展的概念。 两个用例之间的关系可以主要概括为两种情况:一种是用于重用的包含关系,用构造型 include表示;另一种是用于分离出不同行为的扩展关系,用构造型 extend表示。 包含关系:如果可以从两个或两个以上的原始用例中提取公共行为,或者发现能够使用一个构件来实现某一个用例的部分功能是很重要的事,则应该使用包 含关系来表示它们,如图 13-35所示。 扩展关系:如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种事情,我们将这个用例分为一个主用例和一个或多

36、个辅用例来描述可能更加清晰,如图 13-36所示。 因为要先登录才能修改信息,所以B 应填修改个人信息, C应填登录。 在 UML,中,重复度 (Multiplicity)又称多重性,多重性表示为一个整数范围 nm,整数 n定义所连接的最少对象的数目。而m则为最多对象数 (当不知道确切的最大数时,最大数用 *号表示 )。最常见的多重性有: 01、 0*、 11、 1*。 因为一个 Customer List的实例可以与 0个或多个Customer的实例相关联,而一个 Customer 的实例只能与一个 CustomerList的实例相关联,所以 (1)应填 1, (2)应填 0*。因为 Cus

37、tomer是 CompanyCustomer 的相应的详细信息,所以 (3)和 (4)都应该填写 01。 用 UML,建立业务模型时,可以把业务人员看做是系统中的角色或者类。在建立抽象模型时,很少有类会单独存在,大多数都将会以某种方式彼此通信,因此还需要描述这些类之间的关系。关系是 事物间的连接,在 UML 中有以下几个很重要的关系: (1)依赖关系。有两个元素 A、 B,如果元素 A的变化会引起元素 B 的变化,则称元素 B 依赖(Dependency)于元素 A。在类中,依赖关系有多种表现形式,如:一个类向另一个类发消息;一个类是另一个类的成员;一个类是另一个类的某个操作参数,等等。 (2

38、)概括关系。概括关系 (Generalization,也翻译为 “泛化关系 ”)描述了一般事物与该事物中的特殊种类之间的关系,也就是父类与子类之间的关系。继承关系是泛化关系的反关系,也就是说子类是从父类中继承的,而父类则 是子类的泛化。在 UML 中,对泛化关系有以下 3个要求: .子类应与父类完全一致,父类所具有的关联、属性和操作,子类都应具有。 .子类中除了与父类一致的信息外,还包括额外的信息。 .可以使用父类实例的地方,也可以使用子类实例。 (3)关联关系。关联 (Association)表示两个类的实例之间存在的某种语义上的联系。例如,一个老师为某个学校工作,一个学校有多间教室。我们就

39、认为老师和学校、学校和教室之间存在着关联关系。关联关系为类之间的通信提供了一种方式,它是所有关系中最通用、语义最弱的。关联关系通常可以再细分成 以下几种。 .聚集关系(Aggregation):是关联关系的特例。聚集关系是表示一种整体和部分的关系。如一个电话机包含一个话筒,一个电脑包含显示器、键盘和主机等都是聚集关系的例子。 .组合关系:如果聚集关系中表示 “部分 ”的类的存在与表示 “整体 ”的类有着紧密的关系 (例如 “公司 ”与 “部门 ”之间的关系 ),那么就应该使用 “组合 ”关系来表示。 11 【正确答案】 图 1-2中,缺失的数据流:速度 mph,起点:加工 1速度处理,终点:仪

40、表板图 1-3A中,缺失的数据流:加速 /减速,起点:加工 1.2确定加速 /减速,终点: 仪表板 【试题解析】 分层数据流图应时刻牢记父图与子图平衡原则。对这种数据流缺失题目,认真对照父图与子图就可答案。另外,还要注意与文件的交互,包括错误数据流大多也是出在此。 将第 0层数据流图 (图 1-2)与项层数据流图 (图 1-1)仔细对照,可以发现缺失了输出数据流 “速度 ”,其起点为加工 1速度处理,终点为仪表板。数据流 “速度 mph”虽然从加工 1输出到了加工 2,但这内部数据流。 同理,加工 1的细化图 (图 1-3A)缺失了数据流 “加速 /减速 ”,其起点是加工 1.2确定加速 /减

41、速,终仪表板。 12 【正确答案】 图 1-3B中,错误的数据流:速度 mph,起点:加工 2.2计算油耗 【试题解析】 仔细对照加工 2(图 1-2)和加工 2的细化图 (图 1-3B),可以发现对于加工 2.2数据流 “速度 mph”作出数据,而该数据流应该是输入数据。 13 【正确答案】 小说明并不描述具体的加工过程,常用的有自然语言、结构化自然语言、判定表和判定树。 自然语言描述:若 sps 0则汽车加速, sps 0则减速, sps=0则匀速。 结构化自然语言描述: IF sps 0 THEN加速 ELSE IF sps 0 THEN减速 ELSE匀速 判定表描述:二、选答题(共 3

42、道大题,每道大题 15分) 从下列 3道试题中任选 1道解答,如果解答的试题数超过 1道,则仅题号小的 1道题解答有效。 14 【正确答案】 g. drawString(x. ToString( ) ,20,100) g. drawString(x, getAge( ) ,80,120); retum(“姓名 ”+name + “学号: ” + id + “联系电话: ”“ +phone) ; 15 【正确答案】 distance(pdi, pdj) 【试题解析】 是计算各边的长度,根据函数的声明及说明,可得应填distance(pdi,pdj)。 16 【正确答案】 !isCircuit(r

43、, i, j) 【试题解析】 由注释可见空 (2)是判断边 (i,j)加入 r后是否形成回路,若形成了回路,不加入,由语句 “dist+=drk x; ”可知此处是将边加入,故此处应该是不形成回路条件。参照 isCircuit函数声明及说明可知,若形成回路返回 0,故空 (2)填 !isCircuit(r, j)。 17 【正确答案】 selected(r, i, j) 【试题解析】 是将边 (i, j)加入到 r中,参照 selected 函数声明及说明可得空 (3)填 selected(r,i, j)。 18 【正确答案】 h=n-1 【试题解析】 由注释可见空 (4)是最后一条边条件,变

44、量 h表示的是 “选入端点关系表中的边数 ”,而 n个节点回路应该包含 n条边,这点也可从后面 h=n输出解看出,故空 (4)填 h=n-1。 19 【正确答案】 exchange(dr, m, b) 【试题解析】 是进行调整,调用 exchange函数,正确调用形式为exchange(dr,m,b)。 20 【正确答案】 abstract 【试题解析】 由类 Drawing的 drawLine()方法是 abstract的知, Drawing要么是接口,要么是抽象类,在此为抽象类,故空 (1)应填 abstract。 21 【正确答案】 DP2.drawline(x1, x2, y1, y2

45、) 【试题解析】 是调用 DP2系统的相应方法,可参照 DP1的对应函数的函数体,但要注意参数不完全相同,应填 DP2.drawline(x1,x2, y1, y2)。 22 【正确答案】 Drawing 【试题解析】 _dp属性是用来存储 Drawing对象的,参照 Shape的构造函数可确认这一点,空 (3)应填 Drawing。 23 【正确答案】 _dp.drawLine(x1, y1, x2, y2) 【试题解析】 Shape类的 drawLine方法是通过调用 Drawing 对应的方法来实现所需要的功能,因此空 (4)应填 dp.drawLine(x1, y1, x2, y2)。 24 【正确答案】 super(dp) 【试题解析】 显然是基类构造函数,应填 super(dp)。

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

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

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