【计算机类职业资格】中级软件设计师下午试题-48及答案解析.doc
《【计算机类职业资格】中级软件设计师下午试题-48及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】中级软件设计师下午试题-48及答案解析.doc(17页珍藏版)》请在麦多课文档分享上搜索。
1、中级软件设计师下午试题-48 及答案解析(总分:74.01,做题时间:90 分钟)一、试题一(总题数:1,分数:15.00)【说明】某考务处理系统主要功能是考生管理和成绩管理:1对考生送来的报名表进行检查。2对合格的报名表编好准考证号码后将准考证送给考生,将汇总后的考生名单送给阅卷站。3对阅卷站送来的成绩表进行检查,并根据考试中心指定的合格标准审定合格者。4填写考生通知单(内容包含该考生的准考证号、姓名、各课程成绩及最终合格/不合格标志),送给考生。5根据考生信息及考试成绩,按地区、年龄、文化程度和职业进行成绩分类统计及试题难度分析,产生统计分析表。考务处理系统的顶层图如图 1 所示,第 0
2、层图如图 2 所示,加工 2 子图如图 3 所示。【数据流图】(分数:15.00)(1).【问题 1】指出哪张图的哪些文件可以不必画出。(分数:5.00)_(2).【问题 2】数据流图 1 口 3 中缺少 3 条数据流,请直接在图中添加。(分数:5.00)_(3).【问题 3】根据系统功能和数据流图填充下列数据字典条目中的(1)和(2):试题得分表准考证号+课程名+成绩(分数:5.00)_二、试题二(总题数:1,分数:15.00)【说明】某公司要开发一个销售管理系统,该系统的主要功能是:处理客户和销售员送来的订单;工厂是根据订货安排生产的,交出货物同时开出发票,收到客户付款后,根据发票存根进行
3、应收款处理。每张订单由订单号,若干头信息和订单细节组成。一张订单可定购多种产品,工厂对大宗订货给予优惠。每种产品都规定了不同订货数量的折扣。根据上述要求公司的销售部王经理写下了以下数据表结构:客户:(客户号,客户名,地址,电话)订单:(订单号,客户号,产品号,订货数,订货日期,交货日期,金额)应收账款:(客户号,订单号,发票号,应收金额,支付日期,支付金额,当前余额)产品描述:(产品号,产品名,单价,重量)折扣规则:(产品号,订货量,折扣)(分数:15.00)(1).【问题 1】上表中带下划线的为主码。请为还没有确定主码或是主码不合理的数据表选定最合适的主码。(分数:7.50)_(2).【问题
4、 2】上面的关系模式中还有不是第二范式的,请将其转为第二范式。并确定新数据表的主码。(分数:7.50)_三、试题三(总题数:1,分数:11.00)【说明】设有关于银行借贷管理系统的 E-R 图(如图 4 所示)。图中矩形表示实体,圆表示属性,双圆表示关键字属性,菱形表示实体间的联系。为了答题的方便,图中的实体和属性同时给出了中英文说明,回答问题时只需写出英文名即可。(分数:11.01)(1).【问题 1】根据 E-R 图中给出的词汇,按照“有关模式名(属性 1,属性 2,)”的格式,将此 E-R 图转换为关系模式,并指出每个关系模式中的主码和外码,其中模式名根据需要取实体名或联系名。要求其中的
5、关系模式至少属于第三范式。(分数:3.67)_(2).【问题 2】如下的 SQL 语言用于查询“在该银行中一笔贷款贷给多个(至少 2 个)客户的所有贷款号和发放贷款的支行名称”的不完整语句,请在空缺处填入正确的内容。SELECT Borrow.Lno,BnameFROM Borrow,LoanWHERE (1) HAVING (2) ;(分数:3.67)_(3).【问题 3】假设这个银行有若干个节点,每个节点运行一个数据库系统。假设这些节点之间惟一的交互式用电子方式相互传送款项,这样的系统是分布式数据库系统吗?为什么?(分数:3.67)_四、试题四(总题数:1,分数:11.00)1.【程序说明
6、】定义一个多边形结构:struct polygon 实现以下内容:(1)建立该结构的链表:create 函数是创建链表,每输入一个结点的数据,就把该结点加入到链表当中,它返回创建的链表的头指针。(2)显示链表的各个结点数据:结点数据包括:多边形顶点数、各顶点的纵横坐标、当多边形顶点数为 0 时,链表创建结束。(3)编写一个函数 disp,删除链表中的所有结点。需要注意的是:要先释放结点数据内存,再删除结点,如果在释放结点数据内存单元之前删除结点,则无法找到结点数据内存单元的地址,也就无法释放数据的内存单元。【程序】#include “iomanip.h“struct polygonint n;
7、int* x;int *y;polygon * next;void Push(polygon * & head,int n)polygon * newNOde=newpolygon;newNOde=newpo,Ygon;newNOde-next= (1) ;newNOde-x=new int n;newNOde-y=new intn;newNOde-n= (2) ;for(int i=0;i= (3) ;i+)cout“请输入多边形各顶点 x、y 坐标,坐标值之间用空格分隔:”;cinnewNOde-xinewNOde-yi;(4) head; /在 head 前不需要额外的。headnewN
8、Ode;polygon * create()polygon * head=NULL;polygon * tail;int n;cout“请输入多边形顶点的个数(顶点个数为 0 时结束):”;cinn;if(n=0)return (5) ;Push(head, (6) ;tail=head;cout“请输入多边形顶点的个数(顶点个数为 0 时结束):”;cinn;while(n!=0)Push(tail-next, (7) ; /在 tail-next 增加结点tail tail-next; /advance tail to point to last nodecout“请输入多边形顶点的个数(
9、顶点个数为 0 时结束):”;cinn;return head;void disp(polygon * head)int i,No=1;coutsetw(10)“x“ setw(6)“y“end1;while(head!=NULL)cout“第” No“结点:” end1;for(i=0;i=head-n-1;i+)coutsetw(10)head- xisetw(6)head- yiendl;(8) ;head= (9) ;/Match while statementvoid del(polygon * head)polygon * p;while(head!=NULL)p= (10) ;h
10、ead=head-next;delete p-x;delete P-y;deletep;/Match while statementvoid main()polygon * head;head=create();disp(head);del(head);(分数:11.00)_五、试题五(总题数:1,分数:11.00)2.【程序说明】对于一个公司的雇员来说,无非有 3 种:普通雇员、管理人员和主管。这些雇员有共同的数据:名字、每小时的工资,也有一些共同的操作:数据成员初始化、读雇员的数据成员及计算雇员的工资。但是,他们也有不同。例如管理人员除有这些共同的特征外,有可能付固定薪水,主管除有管理人员
11、的共同特征外,还有其他物质奖励等。3 种雇员中,管理人员可以看作普通雇员的一种,而主管又可以看作管理人员的一种。我们很容易想到使用类继承来实现这个问题:普通雇员作为基类,管理人员类从普通雇员类中派生,而主管人员类又从管理人员类中派生。下面的程序 1 完成上述各个类的定义,并建立了 3 个雇员(一个普通雇员、一个管理人员和一个主管)的档案,并打印出各自的工资表。将“程序 1”中的成员函数定义为内联函数,pay 成员函数定义为虚函数,重新完成上述要求。【程序 1】/普通雇员类class Employeepublic:Employee(char*theName,float thePayRate);c
12、har * getName()const;float getPayRate()const;float pay(float hoursWorked)const:protected:char*name; /雇员名称float payRate; /薪水等级;Employee:Employee(char * theName,float thePayRate)name=theName;payRate=thePayRate;char*Employee:getName()constreturn name;float Employee:getPayRate()constreturn payRate;float
13、 Employee:pay(float hoursWorked)constreturn hoursWorked * payRate;/管理人员类Class Manager:public Employeepublic:/isSalaried 付薪方式:true 付薪固定工资,false 按小时付薪Manager(char * theName,float thePayRate,bool isSalaried);bool getSalaried()const;float pay(float hoursWorked)const;protected:bool Salaried;Manager:Manag
14、er(Char*theName,float thePayRate,bool isSalaried):Employee(theName,thePayRate)salaried=isSalaried;bool Manager:getSalaried() constreturn Salaried;float Manager:pay(float hoursWorked)constif(salaried)return payRate;/*else*/return Employee:pay(hoursWorked);/主管人员类class Supervisor:public Employeepublic:
15、Supervisor(Char*theName,float thePayRate,float theBouns):Employee(theName,thePayRate, (1) ),bouns(theBouns)float getBouns()constreturn bouns;float pay(float hoursWorked)const return (2) protected:float bouns;#include“ iostream.h“void main()Employee e(“Jack“,50.00);Manager m(“Tom“,8000.00, true);Supe
16、rvior s(“Tanya“,8000.00,8000.00);cout“Name:“ e.getName()endl;cout“Pay:“e.pay(80)endl; /设每月工作 80 小时tout“Nabe:“ m.getName()end,;cout“Pay:“ m.pay(40)endl;cout“Nabe:“ s.getName()endl;cout“Pay:“s.pay(40)endl; /参数 40 在这里不起作用【程序 2】#include “employee.h“/普通雇员类class Employeepublic:/构造函数Employee(String theName
17、,float thePayRate):name(theNabe),payRate(thePayRate)/取雇员姓名String getNabe() constreturnname;/取雇员薪水等级float getPayRate()constreturn payRate;/计算雇员薪水virtual float pay(float hoursWorked)const return (3) ;protected:String name; /雇员名称float payRate; /薪水等级;/管理人员类/继承普通雇员类class Manager:public Employeepublic:/构造
18、函数/isSalaried 标识管理人员类的付薪方式/true 按阶段付薪(固定工资)/false 按小时付薪Manager(String theName,float thePayRate,bool isSalaned):Employee(theName,thePayRate),Salaried(isSalarled)/取付薪方式bool getSalarled()constreturn salaried;/计算薪水virtual float pay(float (4) )const;protected:bool Salaried;float Manager:pay(float hoursWo
19、rked)constif(salaried) /固定付薪方式return payRate;else /按小时付薪return (5) ;/主管人员类class Supervisor: (6) public:/构造函数Supervisor(String theName,float thePayRate,float theBouns):Manager(theName,thePayRate,true),bouns(theBouns)/取奖金数额float getBouns()constreturn bouns;/计算薪水virtual float pay(float hoursWorked)cons
20、tretum payRate+bouns;(7) float bouns;#include “employee.h“#include“jostream.h“ void main()(8) * ep3;ep0=new Employee(“Jack“,“50.00“);ep1=Flew Manager(“Tom“,“8000.00“,true);ep2=new Superwor(“Tanya“,“8000.00“,“8000.00“);for(int i=0;i3;i+)cout“Name:“ (9) endl;cout“Pay:“ (10) endl; /设每月工作 80 小时(分数:11.00
21、)_六、试题六(总题数:1,分数:11.00)3.下面是一个 Applet 程序,其功能是在绘图区域中通过鼠标的移动来绘制直线,并且有清除绘图区域按钮,用来清除已经绘制的图像。程序运行结果如图 5 所示。(分数:11.00)_中级软件设计师下午试题-48 答案解析(总分:74.01,做题时间:90 分钟)一、试题一(总题数:1,分数:15.00)【说明】某考务处理系统主要功能是考生管理和成绩管理:1对考生送来的报名表进行检查。2对合格的报名表编好准考证号码后将准考证送给考生,将汇总后的考生名单送给阅卷站。3对阅卷站送来的成绩表进行检查,并根据考试中心指定的合格标准审定合格者。4填写考生通知单(
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 中级 软件 设计师 下午 试题 48 答案 解析 DOC
