【计算机类职业资格】中级软件设计师下午试题-4及答案解析.doc
《【计算机类职业资格】中级软件设计师下午试题-4及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】中级软件设计师下午试题-4及答案解析.doc(10页珍藏版)》请在麦多课文档分享上搜索。
1、中级软件设计师下午试题-4 及答案解析(总分:10.00,做题时间:90 分钟)一、B试题一/B(总题数:1,分数:4.00)【说明】某超市的销售业务由一个销售业务管理系统进行管理,该系统每完成一次交易都需要提供顾客发票,其格式如表 1-1所示。(分数:4.00)(1).【问题 1】设计一的关系模式 Invoice最高满足第几范式?为什么?设计一和设计二哪个更加合理?为什么?(分数:1.00)_(2).【问题 2】根据设计二中关系模式,以下 SQL语句是用于“建立 2005年 1月期间每张发票的发票号,交易日期,交易商品件数和交易总金额的视图”的不完整语句,请填补其中的空缺。CREATE VI
2、EW Invoice_totalU (1) /USELECT Invoice. Ino, Idate,U (2) /U,U (3) /UFROM Invoice, InvoicedetailWHEREU (4) /UANDIdate BETWEEN2005-01-01AND2005-01-31GROUP BYU (5) /U;(分数:1.00)_(3).【问题 3】根据设计二中关系模式,以下 SQL语句是用于“查询从未售出的商品信息”的不完整语句,请填补其中的空缺。SELECT Mno, Mname, priceFROM MerchandiseU (1) /UWHEREU (2) /U(SEL
3、ECTU (3) /UFROM Invoice, detailWHERE A.Mno=Invoice, detail. Mno);(分数:1.00)_(4).【问题 4】设计二中关系 Merchandise中由属性 price表示商品价格,关系 Invoice, detail中的属性 unitprice 也表示商品价格。两个是否有必要同时存在?为什么?(分数:1.00)_二、B试题二/B(总题数:1,分数:3.00)【说明】下面是某租车信息管理系统的介绍:该车库中备有若干车辆,每辆车有车号、车牌、车名、价格等属性。车库不定期地购买并注册新车供用户借用,也可将报废的旧车注销以停止租用。车库可为众
4、多用户提供服务。每个用户在借车之前需注册姓名、地址等内容。每个用户最多可同时借 3辆车。每辆车借期 7天:若有一辆车超期,则不可再借其他车。一辆车超期一天罚款 250元。若一辆车超期3周不归还,则发布通告。若用户借的车丢失,在罚款处理之前不能借车,每辆报失的车罚款该车目前市价(包括折旧)的 1.2倍。注册新用户不受限制;而注销用户之前,该用户必须归还所有借的车,或者报失并接受罚款。【状态图 1】【状态图 2】(分数:3.00)(1).【问题 1】分析车辆的状态和事件,指出图 2-1中的(1)、(2)、(3)、(4)分别是什么?(分数:1.00)_(2).【问题 2】分析用户的状态和事件,指出图
5、 2-2中的(5)、(6)、(7)、(8)分别是什么? (注意,用户与车辆在状态图中的关系)。(分数:1.00)_(3).【问题 3】指出 UML中活动图的含义,并说明活动图和状态图的区别与联系。(分数:1.00)_三、B试题三/B(总题数:1,分数:1.00)1.阅读下列说明和流程图 2-3,将应填入U (n) /U的字句写在答题纸的对应栏内。 【说明】 下面的流程图描述了对 8位二进制整数求补的算法。 该算法的计算过程如下:从二进制数的低位(最右位)开始,依次向高位逐位查看,直到首次遇到“1”时,停止查看。然后,对该“1”位左面的更高位(如果有的话),逐位求反,所得的结果就是对原二进制数求
6、补的结果。 例如:对二进制整数 10101000求补的结果是 01011000。 设 8位二进制整数中的各位,从低位到高位,依次存放在整型数组 BIT的B1T1BIT8中。例如,二进制整数 10101000存放在数组 BIT后,就有 BIT1=0,BIT2=0,BIT7 =0,BIT8=1。若流程图中存在空操作,则用 NOP表示。 【流程图】 注:流程图中U(1) /U处按“循环变量名:循环初值,增量,循环终值”格式描述。(分数:1.00)_四、B试题四/B(总题数:1,分数:1.00)2.阅读下列算法说明和算法,将应填入U (n) /U的字句写在答题纸的对应栏内。 【说明】 下列最短路径算法
7、的具体流程如下:首先构造一个只含 n个顶点的森林,然后依权值从小到大从连通网中选择不使森林中产生回路的边加入到森林中去,直至该森林变成一棵树为止,这棵树便是连通网的最小生成树。该算法的基本思想是:为使生成树上总的权值之和达 到最小,则应使每一条边上的权值尽可能地小,自然应从权值最小的边选起,直至选出 n-1条互不构成回路的权值最小边为止。 (分数:1.00)_五、B试题五/B(总题数:1,分数:1.00)3.阅读下列程序说明,将应填入U (n) /U处的字句写在答卷纸的对应栏内。 【程序说明】 对于一个公司的雇员来说,无非有 3种:普通雇员、管理人员和主管。这些雇员有共同的数据:名字、每小时的
8、工资,也有一些共同的操作:数据成员初始化、读雇员的数据成员及计算雇员的工资。但是,他们也有不同。例如,管理人员除有这些共同的特征外,有可能付固定薪水,主管除有管理人员的共同特征外,还有其他物质奖励等。3 种雇员中,管理人员可以看作普通雇员的一种,而主管又可以看作管理人员的一种。我们很容易想到使用类继承来实现这个问题:普通雇员作为基类,管理人员类从普通雇员类中派生,而主管人员类又从管理人员类中派生。 下面的程序 1完成上述各个类的定义,并建立了 3个雇员(一个普通雇员、一个管理人员和一个主管)的档案,并打印出各自的工资表。将“程序 1”中的成员函数定义为内联函数,pay 成员函数定义为虚函数,重
9、新完成上述要求。 【程序 1】 /普通雇员类 class Employee public: Employee(char *theName, float thePayRate); char *getName0 const; float getPayRate0 const; float pay,(float hours Worked) eonst; protected: ehar *name; /雇员名称 float payRate; /薪水等级 ; Employee:Employee(char *theName, float thePaRate) name = the Name; payRate
10、 = the PayRate; char *Employee:getName0 eonst return name; float Employee:getPayRate0 const return payRate; float Employee:pay(float hoursWorked) const return hours Worked * payRate; class Manager: public Employee public: /is Salaried 付薪文方式:true 付薪固定工资,false 按小时付薪 Manager(char *the Name, float the P
11、ay Rate, bool is Salaried); bool getSalaried0 const; float pay(float hoursWorked) const; protected: bool salaried; ; Manager:Manager(ehar *theName,fioat thePayRate,bool isSalaried) : Employee(theName, thePayRate) salaried = isSalaried; bool Manager:getSalaried0 eonst return salaried; float Manager:p
12、ay(float hoursWorked) eonst if (salaried) return payRate; /* else */ return Employee:pay(hoursWorked); /主管人员类 class Supervisor: public Employee public: Supervisor(char *theName, float thePayRate, float theBouns): Employee (theName, thePayRate,U (1) /U.) ,bouns(theBouns) float getBouns0 const return
13、bouns; float pay(float hoursWorked) const returnU (2) /U; protected: float houris; #include “iostream.h“ void main() Employee e(“Jack“,50.00); Manager m(“Tom“,8000.00,tme); Supervior sCTanya“,8000.00,8000.00); cout“Name:“e.getName0endl; cout “Pay: “e.pay(80)endl; /设每月工作 80小时 cout “Name: “m.getName0e
14、ndl; cout “Pay: “m.pay(40)endl; cout “Name: “s.getName0endl; cout “Pay: “s.pay(40)endl; /参数 40在这里不起作用 #include “employee.h“ class Employee public: Employee(string theName, float thePayRate): name(theName),payRate(thePayRate) string getName0 const return name; float getPayRate0 const return payRate;
15、virtual float pay(float hoursWorked) const returnU (3) /U; protected:, string name; /雇员名 Boat payRate; /薪水等级 ; /管理人员类 /继承普通雇员类 class Manager: public Employee public: /构造函数 /isSalaried 标识管理人员类的付薪方式 /true 按阶段付薪(固定工资) /false 按小时付薪 Manager(string theName, float thePayRate, bool isSalaried): Employee(the
16、Name,thePayRate),salaried(isSalaried) bool getSalaried0 const return salaried; virtual float pay(floatU (4) /U) const; protected: bool salaried; ; float Manager :pay(float hoursWorked) const if (salaried) /固定付薪方式 return payRate; else /按小时付薪 returnU (5) /U; /主管人员类 class Supervisor:U (6) /U public: /构
17、造函数 Supervisor (string theName, float thePayRate, float theBouns) : Manager(theName, thePayRate, true), bouns(theBouns) /取奖金数额 float getBouns0 const return bouns; /计算薪水 virtual float pay(float hours Worked) const U (7) /U float bouns; #include “employee.h“ #nclude “iostream.h“ void main() U (8) /U*e
18、p3; ep0=new Employee(“Jack“ ,“50.00“); ep1=new Manager(“Tom“, “8000.00“,true); ep2=new Supervior(“Tanya“,“8000.00“,“8000.00“); for (int i=0;i3;i+) Cout“Name: “U (9) /Uendl; Cout“Pay: “U (10) /Uendl; /设每月工作 80小时 (分数:1.00)_中级软件设计师下午试题-4 答案解析(总分:10.00,做题时间:90 分钟)一、B试题一/B(总题数:1,分数:4.00)【说明】某超市的销售业务由一个销售
19、业务管理系统进行管理,该系统每完成一次交易都需要提供顾客发票,其格式如表 1-1所示。(分数:4.00)(1).【问题 1】设计一的关系模式 Invoice最高满足第几范式?为什么?设计一和设计二哪个更加合理?为什么?(分数:1.00)_正确答案:()解析:设计一中 Invoice最高满足第一范式。 根据题意可得出以下函数依赖: InoSno,Cno,Idate 而关系 Invoice的主码是 Ino和 Mno。非主属性 Sno、Cno 和 Idate并非完全依赖于主码,因此关系Invoice不满足第二范式,最高满足第一范式。 设计二更加合理。因为设计二解决了设计一中由于非主属性不完全依赖于主
20、码而造成的数据冗余等问题。 分析 关系数据库设计的方法之一就是设计满足适当范式的模式,通常可以通过判断分解后的模式达到第几范式来评价规范化的程度。 11NF(第一范式):若关系模式 R的每一个分量是不可再分的数据项,则关系模式 R属于第一范式。 22NF(第二范式):若关系模式 R1NF,且每一个非主属性完全依赖于码,则关系模式属于第二范式。当 1NF消除了非主属性对码的部分函数依赖,则称为 2NF。 33NF(第三范式):若关系模式 R(U,F)中若不存在这样的码 X,属性组 Y及非主属性 Z(Z Y)使得 XY,(YX)YZ 成立,则关系模式属于 3NF。即当 2NF消除了非主属性对码的传
21、递函数依赖,则称为 3NF。 4BCNF(巴克斯范式):若关系模式 RlNF,若 XY 且Y X时,X 必含有码,则关系模式属于 BCNF。即当 3NF消除了主属性对码的部分和传递依赖,则称为BCNF。 54NF(第四范式):关系模式 ReINF,若对于 R的每个非平凡多值依赖 XY 且 Y(2).【问题 2】根据设计二中关系模式,以下 SQL语句是用于“建立 2005年 1月期间每张发票的发票号,交易日期,交易商品件数和交易总金额的视图”的不完整语句,请填补其中的空缺。CREATE VIEW Invoice_totalU (1) /USELECT Invoice. Ino, Idate,U
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 中级 软件 设计师 下午 试题 答案 解析 DOC
