中级软件设计师下午试题-52_第1页
中级软件设计师下午试题-52_第2页
中级软件设计师下午试题-52_第3页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、中级软件设计师下午试题-52(总分:90.00,做题时间:90分钟)一、B试题一 /B( 总题数:1,分数:15.00)阅读下列说明和数据流图,回答问题1至问题3。【说明】某供销系统接受顾客的订货单,当库存中某配件的数量小于订购量或库存量低于一定数量时,向供应商发 岀采货单;当某配件的库存量大于或等于订购量时,或者收到供应商的送货单时并更新了库存后,向顾客 发岀提货单。该系统还可随时向总经理提供销售和库存情况表。以下是经分析得到的数据流图及部分数据字典,有些地方有待填充,假定顶层数据流图是正确的。图9-8是顶层数据流图,图9-9所示是第0层数据流图,图9-10是第1层数据流图,其中(A)是加工

2、1的子图, (B)是加工2的子图。【数据字典】(1) 数据流条目订货单=配件号+配件名+规格+数量+顾客名+地址提货单=订货单+金额采货单=配件号+配件名+规格+数量+供应商名+地址送货单=配件号+配件名+规格+数量+金额(2) 文件说明文件名:配件库存组成:配件号+配件名+规格+数量+允许的最低库存量【数据字典】(1) 数据流条目订货单=配件号+配件名+规格+数量+顾客名+地址提货单=订货单+金额采货单=配件号+配件名+规格+数量+供应商名+地址送货单=配件号+配件名+规格+数量+金额(2) 文件说明文件名:配件库存组成:配件号+配件名+规格+数量+允许的最低库存量(分数:15.00)(1)

3、 .【问题11根据题意,图9-9中哪个文件可不必画出。(分数:5.00 ) 正确答案:()解析:采购订单分析分层数据流图中,只涉及单个加工的文件不必画出,可在子图中再画。 依此标准,图9-10中文件“采购订单”只与加工采购有关,故不必画出。.【问题2】根据题意,指出图9-10(A)中缺失的数据流的名称,并指出该数据流的起点和终 点。(分数:5.00) 正确答案:()解析:起点:库存配件,终点:确定顾客订单。起点:库存配件,终点:制作的销售及库存情况表。提货单,起点:更新库存,终点:顾客。到货通知,起点;采购,终点:缺到货对照。分析分层数据流图时刻牢记父图与子图平衡原则。对这种数据流缺失题目,认

4、真对照父图与子图就可得岀答案。另外,还 要注意与文件的交互,包括错误数据流大多也是岀在此。根据题述,图9-11A是加工1的细化图,加工1在图9-10中,认真对照其输入输岀数据流。 发现缺失数据流“提货单”和“到货通知”,进一步确定数据 流的起点和终点。“提货单”是输岀数据流,起点应为加工“更新库存”,其终点自然是“客户”;“到 货通知”是输入数据流,终点应为加工“缺到货对照”, 起点应为加工“采购”。 另外,确定顾客订单时, 需要检查库存配件,因此应有文件“配件库存”到加工 1.2的数据流。同理,也应有文件“配件库存”到 加工1.4的数据流。(3).【问题3】根据题意,指出图9-10(B)中缺

5、失的数据流的名称,并指出该数据流的起点和终 点。(分数:5.00 ) 正确答案:()解析:采购单,起点:按供应商汇总,终点:供应商。采购请求,起点:销售,终点:计算配件增量。分析同问题2的分析,仔细对照父图与子图的输入输出数据流,并确认与文件相关的数据流。二、B试题二/B( 总题数:1,分数:15.00)阅读下列说明和图,回答问题1至问题3。【说明】某学校的教学系统描述如下。学生信息包括:学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、入学年份(Syear)、主修专业(Smajor), 其中学号是入学时唯一编定的。教师信息包括:教工号(Tno)、姓名仃name)、性别(

6、Tsex)、年龄仃age)、职称(Ttitle),其中教工号是唯 一编定的。课程信息包括:课程号(Cno)、课程名称(Cname)、学时(Cperiod)、学分(Ccredit),其中课程号是唯一编 定的。每个专业每个年级只有一个班级,这样班级就可用入学年份标识。每位教师只教授特定的一门的课程,每门课程可以有多个教师教授,各位老师的上课地点及上课时间有所 不同。注意:一门课程至少有一位教师教授,否则这门课程就视为不存在。每位学生可以同时选修多门不同的课程,一门课程至少要有10位学生选修,否则就取消这门课程的开设。注意:选修课程时要指定任课教师,不能重复选修同一门课程。课程结束后,任课教师给选修

7、该课程的学 生一个成绩(Grade)。注意:教师不能给没有选修他所教授课程的学生成绩,即使选修了其他教师教授的同一门课也不行。如图9-11所示是经分析得到的 E-R图。(分数: 15.00 )(1).【问题 1】一对多”和“多对根据题意,给出联系的属性。 实体间的联系有“一对 多”,指出各联系分别属于哪一种。(分数: 5.00 )正确答案: () 解析:教授:上课地点、上课时间,一对多 选修:任课教师、成绩,多对多 分析 “每位教师只教授特 定的一门的课程,每门课程可以有多个教师教授,各位老师的上课地点及上课时间有所不同”,因此联系 “教授”的属性应有:上课地点、上课时间,是一对多联系。 “每

8、位学生可以同时选修多门不同的课程, 一门课程至少要有10位学生选修,选修课程时要指定任课教师,任课教师给选修该课程的学生一个成绩(Grade) ”,因此联系“选修”的属性应有:任课教师、成绩,是多对多联系。(2).【问题 2】按照“有关模式名(属性,属性,)”的格式,将此E-R图转换为5个关系模 式,指出每个关系模式中的主键和外键, 其中模式名根据需要取实体名或联系名。 (分数: 5.00 ) 正确答案: ()解析:教师 (教工号,姓名,性别,年龄,职称 ) ,主键:教工号 课程(课程号,课程名称,学时,学分 ), 主键:课程号 学生(学号,姓名,性别,年龄,主修专业,入学年份 ),主键:学号

9、 教授(教工号,课程号, 上课地点,上课时间 ),主键: (教工号) 选修(学号,课程号,任课教师,成绩 ),主键: (学号,课程号 ) 或( 学号,任课教师 ) 分析 E-R 模型向关系模型的转换应遵循如下原则: 每个实体类型转换成一个关 系模式。 一个 1:1 的联系 (一对一联系 )可转换为一个关系模式,或与任意一段的关系模式合并。若独立 转换为一个关系模式,那么两端关系的键及其联系的属性为该关系的属性;若与一段合并,那么将另一端 的键及属性的属性合并到该端。 一个1:n的联系(一对多联系)可转换为一个关系模式,或与 n段的关系 模式合并。若独立转换为一个关系模式,那么两端关系的键及其联

10、系的属性为该关系的属性,而n 端的键为关系的键。一个n:m的联系(多对多联系)可转换为一个关系模式,两端关系的键及其联系的属性为该 关系的属性,而关系的键为两端实体的键的组合。 3个或3个以上多对多的联系可转换为一个关系模式, 诸关系的键及联系的属性为关系的属性, 而关系的键为各实体的键的组合。 具有相同键的关系可以合并。 由于“每位教师只教授特定的一门的课程(学生)不能重复选修同一门课程”,因此教授联系的主键是 “教工号”,修选联系的主键可以是“ (学号,课程号)”,也可以是“ (学号,任课教师 )”。(3).【问题 3】若用 Student 表存储学生信息, Teacher 表存储教师信息

11、, Course 表存储课程信 息, Study 表存储学生选修课程情况。教务处想要“查询 2006年入学的计算机 专业(CS)的学生中平均成绩在85分以上的学生信息”。请将以下 SQL语句补充 完整。注:用对应英文表示。SELECT *FROM Student WHERE Smajor="CS" AND Syear="2006"ANDU (1) /U)(SELECT Sno FROM Study GROUP BY SnoHAVINGU (2) /U)(分数: 5.00 ) 正确答案: ()解析:SnolNAVG(Grade) 85 分析SELECTAL

12、L|DISTINCT V目标列表达式,V目标列表达 式FROV表名或视图名 ,V表名或视图名 WHEREV条件表达式 GROUP BYv列名1 HAVING<条件表达式ORDEFBYV列名 2 >ASC|DESCJ 子句顺序为 SELECTFRO、/VHEF、3ROUPBY HAVING ORDERBY但SELECT和FROM是必需的,HAVING子句只能与 GROUPB搭配起来使用。 子查询的语 意应为“按学号分组、平均分大于 85的学生的学号”,可得空 应填Sno IN,空应填AVG(Grade)> 85。三、B试题三/B( 总题数:1,分数:15.00)阅读下列说明和图

13、,回答问题 1至问题3。【说明】某大型旅店为了便于管理,欲开发一个客房管理系统。希望实现客房预订、入住登记、账务结算、退房, 以及将服务项目记入客人账单。旅客包括散客和团体,散客预订或入住时需要提供姓名、性别、身份证和联系电话,团体则提供团体名称、负责人的姓名、性别、身份证和联系电话,以及团体人数。对于散客,还要提供换房。旅店还提供了很多服务项目比如早餐。对每一个入住客人,服务列表记录了住宿期间的各项服务,包括服务类型、日期、数量等。当然,客人也可以不要任何服务。旅店的客房有一个唯一的房间号,分为不同的类别,不同的房间床位数和价格不同。为了有效的管理,需要记录每天的客房状态。客房的状态有:空闲

14、、占用、已预订和维修。客人入住后,客房处于占用状态。客人退房后,客房处于空闲状态。客人预订后,客房处于已预订状态。预订客人入住后,客房处于占用状态。预订客人取消预订后客房处于空闲状态。需要维修时客房处于维修状态。维修完成后客房处于空闲状态。该系统采用面向对象方法开发,系统中的类及类之间的关系用UML类图表示,如图9-12所示是该系统的类图的一部分,图9-13描述了客房状态的转变情况。(分数:15.00 )(1).【问题1】请用如图9-12所示的属性和方法的名称给出客人类的属性和方法(注意;团体类中的负责人姓名等与散客的对应属性含义相同,不必区分)。(分数:5.00 )正确答案:()解析:属性:

15、姓名、性别、身份证、联系电话方法:预定、入住、结账分析“客人”类是“散客”类和“团体”类的泛化,具有二者的公共属性和公共方法。比对二者属性及方法得,“客人”类属性有:姓 名、性别、身份证、联系电话,方法有:预订、入住、结账。(2).【问题2】在UM冲,重复度(Multiplicity)定义了某个类的一个实例可以与另一个类的多少个实例相关联。通常把它写成一个表示取值范围的表达式或者一个具体的值。 例如图9-12中的类客人和住宿,客人端的“ T表示:一个住宿类的实例只能与 一个客人类的实例相关联;住宿类端的“ 0.* ”表示:一个住宿类的实例可以与 0个或多个客人类的实例相关。请指出图9-12中(

16、1)到 处的重复度分别为多少?(分数:5.00 ) 正确答案:()解析:0.1 (2)1.* (3)10.* 分析散客入住时只改变一个客房状态,而团体入住时则有可能改变多个客房状态;客房状态改变不一定是住宿导致的,客房维修同样改变客房状态。因此(1)处应填0.1 ,(2) 处应填1.*。客人可以有多项服务,但只需用一张“服务列表”,当然也可能不需要任何服务;而一张服务列表必然属于而且只输于一个住宿。因此(3)处应填1,(4)处应填0.1。(3) .【问题3】根据题意,请指出图9-13中状态A B分别是什么状态,事件C、D分别是什么 事件。(分数:5.00) 正确答案:()解析:A:空闲B:占用

17、C:入住D:取消预订分析“维修”完成后客房处于“空闲”状态,故状态 A 为“空闲”:客人入住后,客房有“空闲”转为“占用”,故状态B为“占用”;状态“已预订”经“入住”转为“占用”,故 C为“入住”;状态“已预订”经“取消”转为“空闲”,故D为“取消”。四、B试题四/B(总题数:1,分数:15.00)1. 【说明】-QUI4,当一元多项式丨aixi中有许多系数为零时,可用一个单链表来存储,每个节点存储一个非零项的指数和 对应系数。为了便于进行运算,用带头节点的单链表存储,头节点中存储多项式中的非零项数,且各节点按指数递减顺序存储。例如:多项式 8x5-2x2+7的存储结构为:函数中使用的预定义

18、符号如下:#define EPSI le-6struct Node( /*多项式中的一项*/double c; /* 系数 */int e; /*指数 */struct Node *next;typedef struct /*多项式头节点*/int n; /*多项式不为零的项数*/struct Node *head;POLY;【函数】void Del(POLY *C, struct Node *p)/*若p是空指针则删除头节点,否则删除p节点的后继*/struct Node *t;/*C是空指针或C没有节点*/if(C=NULL|C- > head=NULL)return;if(U (1

19、) /U)/*删除头节点 */t=C- >head;C-> head=t- > next;return;/*if*/t=p- > next;p- > next=t- > next;/*Del*/void Insert(POLY *C, struct Node *pC)/*将pC节点按指数降序插入到多项式C中*/*若C中存在pC对应的指数项,则将系数相加;若其结果为零,则删除该节点*/struct Node *t, *tp;/*pC 为空指针或其系数近似为零 */if(pC=NULL | fabs(pC- >c) < EPSI)return;if(

20、C- > head=NULL) /*若C为空,作为头节点插入*/C-> head=pC;pC-> next=NULL;C-> n+;return;/*if*/*若pC的指数比头节点的还大,插入到头节点之前*/if(pC- >e>C->head->e)U (2) /U;C-> head=pC;C-> n+;return;/*if*/U (3) /U;t=C- > head;while(t!=NULL)if(t- > e> pC- >e)tp=t;t=t- > next;else if(t- > e=p

21、C-> e)/*C 中已经存在该幂次项 */t- > c+=pC-> c;/* 系数相加 */if(fabs(t- > c) < EPSI)/* 系数之和为零 */U (4) /U;/* 删除对应节点 */C-> n-;U (5) /U;else t=NULL;/*C 中已经不存在该幂次项 */*while*/if(t=NULL)/* 适当位置插入 */pC-> next=tp- > next;tp- > next=pC;C-> n+;/*if*/;/*Insert*/(分数: 15.00 ) 正确答案: ()解析: p=NULL (

22、2) pC- > next=C- > head- > next (3) tp=NULL (4) Del(C, tp) (5) break 分析根据注释,Del函数当p是空指针时,删除头节点,因此易知空应填p=NULL (2)空是插入头节点的特殊情况,应填 pC-> next=C- >head- > next 。 由注释可知空 (4) 是删除操作,需调用 Del 函数,进一步确 定实参。此处需要删除节点 t,结合Del函数的说明,实参p需要空指针(NULL)或t节点的前驱指针,由 if(t- >e>pC- >e)tp =t;t=t->n

23、ext;可知,tp正是t节点的前驱指针,因此应填 Del(C,tp)。由此也可以确定空 ,当需要删除头节点时,tp应是空指针,因此空应填tp=NULLo至于空(5),应填break。 此时,节点 p 已正确处理完毕, 应该结束 while 循环,而且必须终止, 否则 while 循环结束后 t 值为 NULL, 将会错误地执行插入操作。五、B 试题五 /B( 总题数: 1,分数: 15.00)2. 说明】下面的程序先构造 Point类,再顺序构造Ball类。由于在类Ball中不能直接存取类 Point中 的 xCoordinate 及 yCoordinate 属性值, Ball 中的 toSt

24、ring 方法调用 Point 类中的 toStrinS 方法输出中 心点的值。在 MovingBsll类的toString 方法中,super.toString 调用父类 Ball的toString 方法输出类 Ball 中声明的属性值。Java 代码】/Point.java 文件 public class Point private double xCoordinate; private double yCoordinate ; public Point() public Point(double x,double y) xCoordinate=x;文件 public class半径 pr

25、ivate String color;/具有中心点及其半yCoordinate=y; public String toStrthg() return"("+Double.toString(xCoordinate)+"," +Double.toString(yCoordinate)+")" /other methods /Ball.javaBall privateU (1) /U;/中心点 private double radius;/颜色 public Ball() public Ball(double xValue, double

26、yValue, double r) /径的构造方法 center=U (2) /U;/ 调用类 Point 中的构造方法 radius=r; public Ball(double xValue, double yValue, double r, String c) / 具有中心点、 半径和颜色的构造方法 U (3) /U;/调用 3个参数的构造方法 color=c; public String toString() return "A ball with center"+center.toString() +",radius "+Double.toStr

27、ing(radius)+",color"+color; /othermethods class MovingBallU (4) /U private double speed; public MovingBall() public MoyingBall(double xValue, double yValue, double r, String c, double s) U (5) /U;/ 调用父类 Ball 中具有 4 个参数的构造方法 (分数: 15.00 ) 正确答案: ()解析: (1) Point center (2) new Point(xValue , yV

28、alue) (3) this(xValue , yValue , r) (4) extends Ball (5) super(xValue , yValue , r, c) 分析 在类 Ball 的有参数构造函数中,对成员变量 center 通过调用 Point类的构造方法初始化,而center在类Ball中尚未声明。结合注释可得空 是将center变量声明为Point对象引用,故空(1)应填Point。空 是调用Point类的构造函数,根据题意,此处应将xValue和 yValue 作为参数调用类 Point 的有参数构造函数,故空 (2) 应填 new Point(xValue , yVa

29、lue) o 根据注 释,空(3) 是调用类 Ball 的有 3个参数的构造方法,而其所在方法本身就是类 Ball 的一个构造方法, 因此 可用 this 来调用自身的构造方法,故空 (3) 应填 this(xValue , yValue , r) o 根据题述“在 MovingBall 类的 toString 方法中, super.toString 调用父类 Ball 的 toString 方法输出类 Ball 中声明的属性值”, 可知类 MovingBall 是类 Ball 的子类,因此空 (4) 应填 extends Ball o 根据注释,空 (5) 是调用父类 Ball 中具有 4

30、个参数的构造方法,通过 super 关键字实现,故空 (5) 应填 super(xValue , yValue , r , c) o六、B 试题六 /B( 总题数: 1,分数: 15.00)3. 【说明】以下C+程序的功能是计算三角形、矩形和正方形的面积并输出。程序由4个类组成:类Triangle、Rectangle 和 Square 分别表示三角形、 矩形和正方形: 抽象类 Figure 提供了一个纯虚函数 getAxea() ,作 为计算上述3种图形面积的通用接口。C+代码】#include < iostream > #include <cmath> usingna

31、mespace std; class Figure public: virtual double getArea()=0;/ 纯虚函数 ; class Rectangle : U (1) /U protected:double height;double width; public:Rectangle() Rectangle(doubleheight, double width) this- > height=height; this- > width=width; double getArea() returnU(2) /U; ; class Square: U (3) /U public: Square(double width) U (4) /U; ;class Triangle: U (5) /U private: double la,lb,lc; public: Triangle(double la,doubleIb,double lc) this- > la=la;this- > 1b=1b;this- > lc=lc; double getArea() double s=(la+l

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论