ImageVerifierCode 换一换
格式:DOC , 页数:10 ,大小:83KB ,
资源ID:1323151      下载积分:5000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-1323151.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(【计算机类职业资格】中级软件设计师下午试题-34及答案解析.doc)为本站会员(eventdump275)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

【计算机类职业资格】中级软件设计师下午试题-34及答案解析.doc

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

21、; /计算薪水 virtual float pay(float hoursWorked)const retum payRate+bouns; U (7) /U float bouns; #include “employee.h“ #include“jostream.h“ void main() U (8) /U* 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

22、+) cout“Name:“U (9) /Uendl; cout“Pay:“U (10) /Uendl; /设每月工作 80 小时 (分数:11.00)_六、B试题六/B(总题数:1,分数:11.00)3.下面是一个 Applet 程序,其功能是在绘图区域中通过鼠标的移动来绘制直线,并且有清除绘图区域按钮,用来清除已经绘制的图像。 程序运行结果如图 5 所示。 (分数:11.00)_中级软件设计师下午试题-34 答案解析(总分:74.01,做题时间:90 分钟)一、B试题一/B(总题数:1,分数:15.00)阅读下列说明和数据流图,回答问题 1问题 3。【说明】某考务处理系统主要功能是考生管理

23、和成绩管理:1对考生送来的报名表进行检查。2对合格的报名表编好准考证号码后将准考证送给考生,将汇总后的考生名单送给阅卷站。3对阅卷站送来的成绩表进行检查,并根据考试中心指定的合格标准审定合格者。4填写考生通知单(内容包含该考生的准考证号、姓名、各课程成绩及最终合格/不合格标志),送给考生。5根据考生信息及考试成绩,按地区、年龄、文化程度和职业进行成绩分类统计及试题难度分析,产生统计分析表。考务处理系统的顶层图如图 1 所示,第 0 层图如图 2 所示,加工 2 子图如图 3 所示。【数据流图】(分数:15.00)(1).【问题 1】指出哪张图的哪些文件可以不必画出。(分数:5.00)_正确答案

24、:()解析:0 层图中的“试卷得分表”是局部文件,可不必画出。(2).【问题 2】数据流图 1 口 3 中缺少 3 条数据流,请直接在图中添加。(分数:5.00)_正确答案:()解析:(1)分类统计成绩中需要读入考生成绩,缺少从“考生名册”到“2.4 分类统计成绩”的数据流。 (2)“2.1 检查成绩表”缺少输出数据流“错误成绩表”。 (3)“2.2 审定合格者”缺少输入数据流“合格标准”。(3).【问题 3】根据系统功能和数据流图填充下列数据字典条目中的(1)和(2):试题得分表准考证号+课程名+成绩考生名册报名号+准考证号+姓名+通信地址+出生年份+文化程度+职业考生通知单=U (1) /

25、U(分数:5.00)_正确答案:()解析:(1)准考证号+姓名+课程名+成绩+合格/不合格标志 (2)报名号+姓名+通信地址+出生年份+文化程度+职业 解析 问题 1 中“不必画出”是指在某层数据流图中,只画流程图中各加工之间的公共数据文件,隐藏某加工的局部数据文件,这个规则只是为了使整个数据流图的层次结构更科学、更清晰,不过画出“不必画出的数据文件”对数据流图不会造成理解错误。在 0 层图中有文件“考生名册”和“试卷得分表”,其中“试卷得分表”是加工 2“统计成绩”的局部数据文件,所以不必画出。 问题 2 是要指出哪些图中遗漏了哪些数据流,这需要从两个方面进行考虑: 一是父图与子图的平衡,即

26、子图的输入、输出数据流与父图相应的加工的输入、输出数据必须一致。 二是针对每个加工至少要有一个输入和输出,反映次加工的数据来源和结果。 数据流图 1-3 是加工 2“统计成绩”的子图,为了发现图中遗漏的数据流,首先要观察 0 层图中加工 2 的输入、输出流。在 0 层图中,加工 2“统计成绩”有 2 个输入流“合格标准”和“成绩表”,4 个输出流“考生通知单”、“统计分析表”、“难度分析表”和“错误成绩表”。 再看加工 2 子图中只有一个输入流“成绩表”,可见必然遗漏了一个输入流“合格标准”。根据题目说明提到的“对阅卷站送来的成绩表进行检查,并根据考试中心指定的合格标准审定合格者”,所以输入流

27、“合格标准”应该是输入到加工 2.2“审定合格者”。 加工 2 子图中只有 3 个输出流“考生通知单”、“统计分析表”和“难度分析表”,缺少数据流“错误成绩表”。加工 2.1“检查成绩表”的功能是检查成绩表是否合格,其中一个输出流是“正确成绩表”,自然另一个是输出是“错误成绩表”。因此,第二个遗漏的数据流是“2.1 检查成绩表”的输出数据流“错误成绩表”。 根据题目中提到的“根据考生信息及考试成绩,按地区、年龄、文化程度和职业进行成绩分类统计及试题难度分析,产生统计分析表”这一说明,可以判断出加工 2.4“分类统计成绩”除了需要“试卷得分表”的输入流外,还需要考生信息,需要从文件“考生名册”中

28、输入。 问题 3 中根据题目说明中提到的“填写考生通知单(内容包含该考生的准考证号、姓名、各课程成绩及最终合格/不合格标志),送给考生”,所以考生通知单应该包括考生的准考证号、姓名和最终合格/不合格标志,这种共同组成的含义由符号“+”来表示。同时因为考试可能有多门课程共同组成,所以,课程号和该课程的成绩也是必须的。其中的多门课程由符号“”来表示重复。因此,考生通知单=准考证号+姓名+课程名+成绩+合格/不合格标志。 根据题目说明中提到的“对合格的报名表编好准考证号码后将准考证送给考生”,在 0 层图中可以看到,加工 1“登记报名表”把考生信息写入文件“考生名册”中,可见“考生名册”中的数据除“

29、准考证号”外均从合格的报名表中得到。因此“报名表”至少需要由报名号、姓名、通信地址、出生年份、文化程度和职业组成。由数据字典定义式表示为:报名表=报名号+姓名+通信地址+出生年份+文化程度+职业。二、B试题二/B(总题数:1,分数:15.00)阅读以下说明,回答问题。【说明】某公司要开发一个销售管理系统,该系统的主要功能是:处理客户和销售员送来的订单;工厂是根据订货安排生产的,交出货物同时开出发票,收到客户付款后,根据发票存根进行应收款处理。每张订单由订单号,若干头信息和订单细节组成。一张订单可定购多种产品,工厂对大宗订货给予优惠。每种产品都规定了不同订货数量的折扣。根据上述要求公司的销售部王

30、经理写下了以下数据表结构:客户:(客户号,客户名,地址,电话)订单:(订单号,客户号,产品号,订货数,订货日期,交货日期,金额)应收账款:(客户号,订单号,发票号,应收金额,支付日期,支付金额,当前余额)产品描述:(产品号,产品名,单价,重量)折扣规则:(产品号,订货量,折扣)(分数:15.00)(1).【问题 1】上表中带下划线的为主码。请为还没有确定主码或是主码不合理的数据表选定最合适的主码。(分数:7.50)_正确答案:()解析:客户:(客户号,客户名,地址,电话) 订单:(订单号,客户号,产品号,订货数,订货日期,交货日期,金额) 应收账款:(客户号,发票号,发票号应收金额,支付日期,

31、支付金额,当前余额) 产品描述:(产品号,产品名,单价,重量) 折扣规则:(产品号,订货量,折扣)(2).【问题 2】上面的关系模式中还有不是第二范式的,请将其转为第二范式。并确定新数据表的主码。(分数:7.50)_正确答案:()解析:将数据表:订单:(订单号,客户号,产品号,订货数,订货日期,交货日期,金额) 拆分为: 订单:(订单号,客户号,订货项数(可有可无),订货日期,交货日期) 订单细则:(订单号,产品号,订货数,金额) 解析 这一题主要考查考生对数据表的结构的设计能力。这一步在 MIS 系统的开发中是至关重要的一步,因为数据表的结构是否合理直接影响到整个系统的性能。 原题中的订单表

32、,不符合第二范式,因为其中含有部分依赖关系 (订单号,产品号)-订货日期,(订单号,产品号)-交货日期,(由于一张订单有可能订了多种产品,但因为是同一订单所以这几种产品的订货日期,交货日期只要订单号就可以确定了)。三、B试题三/B(总题数:1,分数:11.00)阅读下列说明和 E-R 图,回答问题 13。【说明】设有关于银行借贷管理系统的 E-R 图(如图 4 所示)。图中矩形表示实体,圆表示属性,双圆表示关键字属性,菱形表示实体间的联系。为了答题的方便,图中的实体和属性同时给出了中英文说明,回答问题时只需写出英文名即可。(分数:11.01)(1).【问题 1】根据 E-R 图中给出的词汇,按

33、照“有关模式名(属性 1,属性 2,)”的格式,将此 E-R 图转换为关系模式,并指出每个关系模式中的主码和外码,其中模式名根据需要取实体名或联系名。要求其中的关系模式至少属于第三范式。(分数:3.67)_正确答案:()解析:Customer(idno,name,address,phone) Account(Ano,balance,Bname) Bname reference Branch (Bname) Deposit (idno,Ano) idno reference Customer(idno) Ano reference Account (Ano) Branch (Bname,city

34、) Loan (Lno,Bname,amount) Bname reference Branch (Bname) Borrow (idno,Lno) idno reference Customer(idno) Lno reference Loan(Lno)(2).【问题 2】如下的 SQL 语言用于查询“在该银行中一笔贷款贷给多个(至少 2 个)客户的所有贷款号和发放贷款的支行名称”的不完整语句,请在空缺处填入正确的内容。SELECT Borrow.Lno,BnameFROM Borrow,LoanWHEREU (1) /UHAVINGU (2) /U;(分数:3.67)_正确答案:()解析:

35、Borrow.Lno=Loan.Lno (2)COUNT (distinct idno)=2(3).【问题 3】假设这个银行有若干个节点,每个节点运行一个数据库系统。假设这些节点之间惟一的交互式用电子方式相互传送款项,这样的系统是分布式数据库系统吗?为什么?(分数:3.67)_正确答案:()解析:这样的系统算不上分布式数据库系统。分布式数据库系统并不是简单地把集中式数据库系统安装在不同场地,用网络连接起来实现的(这是分散的数据库系统),它是具有自己的性质和特征。 分布式数据库系统具有以下特点: 1)数据的物理分布性;2)数据的逻辑整体性;3)数据的分布独立性;4)场地的自治和协调;5)数据的冗

36、余及冗余透明性。 虽然上述银行的数据库系统具有性质 1、3 以及 4 和 5 的一部分,但关键是没有数据的逻辑整体性和不同场地之间的协调性等,这恰恰是分布式数据库系统的关键所在。因此,上述银行数据库系统算不上分布式数据库系统。 解析 本题中的 E-R 图中有 4 个实体集、2 个多对多联系和 2 个一对多联系,根据上述 E-R 图转换关系模型的规则可以转换成 6 个关系。 4 个实体集转换的 4 个关系(Customer、Account、Branch 和 Loan),对于一对多联系 B-L 和 B-A 则是将“一”端(关系Branch)的码 Bname 加入到“多”端所转换的关系(Accoun

37、t 和 Loan)。此 4 个关系分别为: Customer( idno ,name,address,phone) Account( Ano ,balance,Bname) Branch( Bname ,city,assets) Loan( Lno,Bname,amount) 4 个关系中,Account 和 Loan 的属性 Bname 均参照 Branch 的码 Bname,为外码。 2 个多对多联系转换为 2 个关系,两端的码及联系的属性为关系的属性,两端的码共同组合为该关系的码。此 2 个关系分别为: Deposit(idno,Ano) Borrow(idno,Lno) 其中的 idn

38、o、Ano 和 Lno 分别参照 Customer 的 idno、Account 的 Ano 和 Loan 的 Lno。 问题 2 中是要查询在该银行中一笔贷款贷给多个(至少 2 个)客户的所有贷款号和发放贷款的支行名称。Borrow 表中记录着各贷款号和该贷款的客户,Loan 表中记录着各贷款号和发放该贷款的支行,要完成题目查询必须将 Borrow 和 Loan 联系起来,即需要两者的贷款号相等。所以填空(1)应该为 Borrow.Lno=Loan.Lno。 “一笔贷款贷给多个客户”则需要按贷款号进行分组,只有客户个数至少两个的组才是满足查询要求的分组。对于分组的条件应该添加在HAVING

39、子句中,个数的统计需利用 COUNT(idno)函数,因此填空 (2)为 COUNT(idno)=2。 问题 3 主要考查分布式数据库系统的必备条件。四、B试题四/B(总题数:1,分数:11.00)1.【程序说明】 定义一个多边形结构:struct polygon 实现以下内容:(1)建立该结构的链表:create函数是创建链表,每输入一个结点的数据,就把该结点加入到链表当中,它返回创建的链表的头指针。(2)显示链表的各个结点数据:结点数据包括:多边形顶点数、各顶点的纵横坐标、当多边形顶点数为 0时,链表创建结束。(3)编写一个函数 disp,删除链表中的所有结点。需要注意的是:要先释放结点数

40、据内存,再删除结点,如果在释放结点数据内存单元之前删除结点,则无法找到结点数据内存单元的地址,也就无法释放数据的内存单元。 【程序】 #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=new intn; newNOde-

41、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) /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“

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1