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