[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷17及答案与解析.doc
《[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷17及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷17及答案与解析.doc(17页珍藏版)》请在麦多课文档分享上搜索。
1、软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷 17及答案与解析 一、必答题(共 4道大题,每道大题 15分) 1 阅读下列说明和数据流图,回答问题 1-问题 3。 【说明】 某医院收费系统的主要功能是收取病人门诊的各项费用。系统的收费功能分为 3个方面:病历收费、挂号收费和根据处方单内容收取检查或药物费用。 1病人初次来该医院看病,首先购买病历,记录病人基本情况。 2病人看病前要挂号。根据病人的病历和门诊部门(内科、外科等 ),系统提供相应的挂号单和处方单,并收取费用。 3病人根据处方单进行进一 步检查或取药前需交纳各项费用。系统首先根据病人基本情况检查处方单中病历号是否正确,记
2、录合格的处方单,并提供收据。 4所有收费都必须依据定价表中的定价来计算,且所有收费都必须写入收费记录中。 医院收费系统的顶层图如图 2所示;医院收费系统的第 0层 DFD图如图 3所示。其中,加工 1的细化图如图 4所示,加工 2的细化图如图 5所示。 假定顶层图是正确的, “定价表 ”文件已由其他系统生成。1 指出哪张图的哪些文件可以不必画出。 2 数据流图 4中缺少 2条数据流,请直接在图中添加。 3 数据流图 5中缺少 4条数据 流,请直接在图中添加。 4 阅读以下说明和流程图,回答问题 1和问题 2。 【说明】 某供销系统接受顾客的订货单,当库存中某配件的数量小于订购量或库存量低于一定
3、数量时,向供应商发出采购单;当某配件的库存量大于或等于定购粮食,或者收到供应商的送货单并更新了库存后,向顾客发出提货单。该系统还可随时向总经理提供销售和库存情况表。该供销系统的分层数据流图中部分数据流和文件的组成如下: 文件 配件库存配件号 +配件名 +规格 +数量 +允许的最低库存量 数据流 订货单配件号 +配件名 +规格 +数量 +顾客名 +地址 提货单订货单 +金额 采购单配件号 +配件名 +规格 +数量 +供应商名 +地址 送货单配件号 +配件名 +规格 +数量 +金额 假定顶层图 (如图 6所示 )是正确的, “供应商 ”文件已由其他系统生成。4 指出哪张图中的哪些文件可不必画出。
4、5 指出在哪些图中遗漏了哪些数据流。回答时使用如下形式之一: (1)XX图中遗漏了 XX加工 (或文件 )流向 XX加工 (或文件 )的 XX数据流; (2)XX图中 XX加工遗漏了 XX输入 (或输出 )数据流。 6 有下列关于运动会管理系统的 ER图,如图 10所示。图中矩形表示实体,圆表示属性,双圆表示关键字 属性,菱形表示实体之间的关系。假定已通过下列 SQL语言建立了基本表。 CREATE TABLE ATHLETE ANAME CHAR(20), ASEX CHAR(1), ATEAM CHAR(20); CREATE TABLE |TEM (INO CHAR(6)NOT NULL
5、, INAME CHAR(20), ITIME CHAR(12), IPLACE CHAR(20); CREATE TABLE GAMES (ANO CHAR(6)NOTNULL, INO CHAR(6)NOT NULL, SCORRE CHAR(10); 为了答题的方便,图中的实体和属性同时给出了中英文两种文字,回答问题时只需写出英文名即可。 【 E-R图】【问题】 填充下列 SQL程序1 4中的 (1) (7),使它们分别完成相应的功能: 程序 1:统计参加比赛时男运动员人数。 SELECT (1) FROM ATHLETE WHERE ASEX=M; 程序 2:查 100872号运动员参
6、加的所有项目及其比赛时间和地点。 SELECT ITEM, INO, IN A ME, ITIME, IPLACE FROM GAMES, ITEM WHERE (2); AND (3); 程序 3:查参加 100035项目的所有运动员名单。 SELECT ANO, ANAME, ATEAM FROM ATHLETE WHERE (4); (SELECT (4) (5) FROM GAMES WHERE GAMES ANO=ATHLETE.ANO AND INO=100035); 程序 4:建立运动员成绩视图。 (6) ATHLETE-SCORE AS SELECT ATHLETE, ANO,
7、 ANAME, ATEAM, INAME,SCORE FORM (7) WHERE ATHLETE.ANO=GAMES. ANO AND GAMES.INO=ITEM.INO; 7 读下列程序说明和 C程序,将应填入 (n)处。 【程序说明】 该程序定义了两个子函数 strsort和 strmerge。它们分别实现了将一个字符串按字母顺序排序和将两个字符串合并排序,并删去相同字符。在主函数里,先输入两个字符串 s1和 s2,然后调用 strsort函数对它们分别排序,然后调用 strmerge函数将s1和 s2合并,将合并后的字符串赋给字符串 s3,最后输出字符串 s3。 【程序】 #incl
8、ude stdio.h void strmerge(char, a, char *b, char *c) /将字符串 a, b合并到字符串 c中 char t, *w; w=c; while(1) /找到字符串 a, b当前字符中较小的字符 if(*a *b) t= *a; (2); else if (*a *b) t= *b; (3); else /字符串 a, b当前字符相等 t= *a; a+; b+; if(4) /开始,可直接赋值 *w=t; else if(t!=*w) /如果 a, b中较小的当前字符与 c中当前字符不相等,才赋值 (5); if(*a!=0) /如果字符串 a还
9、没有结束,则将 a的剩余部分赋给 C while(*a!=0) if(*a!=*w) *(+w)=*a; a+; else (6); if(*6!=0) /如果字符串 b还没有结束,则将 b的剩余部分赋给 c while(*b!=0) if(*b! = *w) *(+w)=*b; b+; else b+; (7); void strsort(char*s) /将字符串 S中的字符排序 int i, j, n; char t, *w; W=S; for(n=0; *w!=0; n+) /得到字符串长度 n w+; for(i=0; i n-1; i+) /对字符串 s进行排序,按字母先后顺序 f
10、or(j=i+1; j n; j+) if(8) t=si; si=sj; (9); void main() char s1100, s2100, s3100; printf(“nPlease, input the first string: “); scanf(“%s“, s1); printf(“nPlease input the second string: “); scanf(“%s“, s2); strsort(s1); /将字符串 s1排序 strsort(s2); /将字符串 s2排序 printf(“%sn“, s1); printf(“%sn“, s2); s30=0; /字
11、符串 s3的第一个字符先置 0结束标志 (10) /将 s1和 s2合并,按照字母顺序排列, /且要删去相同字符,存入 s3中 printf(“%s“, s3); 二、选答题(共 3道大题,每道大题 15分) 从下列 3道试题中任选 1道解答,如果解答的试题数超过 1道,则仅题号小的 1道题解答有效。 8 阅读下列程序说明,将应填入 (n)处的字句写在答卷 纸的对应栏内。 【程序说明】 对于一个公司的雇员来说,无非有 3种:普通雇员、管理人员和主管。这些雇员有共同的数据:名字、每小时的工资,也有一些共同的操作:数据成员初始化、读雇员的数据成员及计算雇员的工资。但是,他们也有不同。例如管理人员除
12、有这些共同的特征外,有可能付固定薪水,主管除有管理人员的共同特征外,还有其他物质奖励等。 3种雇员中,管理人员可以看作普通雇员的一种,而主管又可以看作管理人员的一种。我们很容易想到使用类继承来实现这个问题:普通雇员作为基类,管理人员类从普通雇员类中派生,而主管人 员类又从管理人员类中派生。 下面的程序 1完成上述各个类的定义,并建立了 3个雇员 (一个普通雇员、一个管理人员和一个主管 )的档案,并打印出各自的工资表。将 “程序 1”中的成员函数定义为内联函数, pay成员函数定义为虚函数,重新完成上述要求。 【程序 1】 /普通雇员类 class Employee public: Employ
13、ee(char*theName, float thePayRate); char * 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()const return name;
14、float Employee: getPayRate()const return payRate; float Employee: pay(float hoursWorked)const return hoursWorked * payRate; /管理人员类 Class Manager: public Employee public: /isSalaried付薪方式: true付薪固定工资, false按小时付薪 Manager(char * theName, float thePayRate, bool isSalaried); bool getSalaried()const; float
15、 pay(float hoursWorked)const; protected: bool Salaried; ; Manager:Manager(Char*theName, float thePayRate, bool isSalaried) :Employee(theName, thePayRate) salaried=isSalaried; bool Manager: getSalaried() const return Salaried; float Manager: pay(float hoursWorked)const if(salaried) return payRate; /*
16、else*/ return Employee: pay(hoursWorked); /主管人员类 class Supervisor: public Employee public: 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 b
17、ouns; #include“ iostream.h“ void main() Employee e(“Jack“, 50.00); Manager m(“Tom“, 8000.00, true); Supervior 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()
18、endl; cout “Pay: “ s.pay(40) endl; /参数 40在这里不起作用 【程序 2】 #include “employee.h“ /普通雇员类 class Employee public: /构造函数 Employee(String theName, float thePayRate): name(theNabe), payRate(thePayRate) /取雇员姓名 String getNabe() constreturnname; /取雇员薪水等级 float getPayRate()constreturn payRate; /计算雇员薪水 virtual fl
19、oat pay(float hoursWorked)const return (3); protected: String name; /雇员 名称 float payRate; /薪水等级 ; /管理人员类 /继承普通雇员类 class Manager: public Employee public: /构造函数 /isSalaried标识管理人员类的付薪方式 /true按阶段付薪 (固定工资 ) /false按小时付薪 Manager(String theName, float thePayRate, bool isSalaned): Employee(theName, thePayRat
20、e), Salaried(isSalarled) /取付薪方式 bool getSalarled()constreturn salaried; /计算薪水 virtual float pay(float (4)const; protected: bool Salaried; ; float Manager: pay(float hoursWorked)const if(salaried) /固定付薪方式 return payRate; else /按小时付薪 return (5); /主管人员类 class Supervisor: (6) public: /构造函数 Supervisor(St
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 软件 水平 考试 中级 设计师 下午 应用技术 试题 模拟 17 答案 解析 DOC
