问答题[说明]
某营销企业拟开发一个销售管理系统,其主要功能描述如下。
(1)接受客户订单,检查库存货物是否满足订单要求。如果满足,进行供货处理,即修改库存记录文件,给库房开具备货单并且保留客户订单至订单记录文件;否则进行缺货处理,即将缺货记录单存入缺货记录文件。
(2)根据缺货记录文件进行缺货统计,将缺货通知单发给采购部门。
(3)根据采购部门提供的进货通知单进行进货处理,即修改库存记录文件,并从缺货记录文件中取出缺货订单进行供货处理。
(4)根据保留的客户订单进行销售统计,打印统计报表给经理。
现采用结构化方法对销售管理系统进行分析与设计,获得如图所示的顶层数据流图和如图2所示的0层数据流图。
问答题根据题意回答以下问题:
设某商业集团数据库中有3个实体集:一是“商店”实体集,属性有商店编号,商店名,地址等;二是“商品”实体集,属性有商品号,商品名,规格,单价等;三是“职工”实体集,属性有职工编号,姓名,性别,业绩等。商店与商品间存在“销售”联系,每个商店可以销售多种商品,每种商品也可以在多个商店和职工间存在“聘用”联系,每个商店有许多职工,每个职工只能在一个商店工作,商店聘用职工有聘期和月薪。
问题:
1.请根据题意完善下面ER图。
2.将ER图转换成关系模型,并注明主键和外键。
3.请写出要查出员工“小李”在三月份的销售业绩的关系代数式。
问答题阅读以下某前台销售子系统的技术说明和UML图,根据要求回答问题1~问题4。
[说明]
某超市管理系统的前台销售子系统以最基本的方式处理销售业务。系统的功能需求如下:
①记录每种商品的编号、单价和现有数量; ②为顾客选购的商品计价、收费,并打印清单;
③帮助商家找出哪种商品将脱销,从而及时补充货源;
④随时按上级系统的要求报告当前的款货数量、增减商品的种类或修改商品定价;
⑤交接班时结算货款数目和商品数目。
每台收款机可以处理任何数目的销售事件,但一个销售事件只能由一台收款机处理。每个销售事件从收款机响应收款人员的指令开始,先向商品发送检索请求消息来查找将被出售的商品。如果该商品的数量少于下限,则向供货员发送缺货登记消息。每名供货员可以提供一种或多种商品,同一品牌的商品只能由一位供货员来提供。接着收款机发送计价和入账消息请求售出操作,再由销售事件发送记账消息给相应的账册,并控制流程返回收款机等待下一次销售操作。每本销售账册可以记录任何数目的销售事件,但一个销售事件只能由一本销售账册记录。
该销售子系统采用面向对象方法开发,系统中的类及类之间的关系用UML类图表示,图1-11是该系统类图中的一部分;系统的动态行为采用UML序列图表示,图1-12是销售事件部分的序列图。
问答题[说明]面是一个Applet程序,其功能是有2个按钮,分别为First和Second,以及一个Label控件。要求点击First时则能在Label中显示出Command:First,而点击Second时则能显示出Command:Second,要求只能使用重载一次actionPerfonned()方法。程序运行结果如图6所示。importjava.awt.*;importjava.awt.event.*;importjava.applet.*;/*<appletcede=exl_7,classwidth=800height=400></applet>*/publicclassex]_?extendsAppletimplementsActionListener{privateStringstr="ok";privateLabel|;privateButtonbtn;publicvoidinit(){{{U}}(1){{/U}}I=newLabel(str);I.reshape(10,10,150,30);add(I);{{U}}(2){{/U}}btn.reshape(10,50,60,20);{{U}}(3){{/U}}add(btn);btn=newButton("Second");btn.reshape(10,100,60,20);{{U}}(4){{/U}}btn,addActionListener(this);add(btn);}publicvoidactionPerformed(ActionEventae){str="Command:"+ae.getActionCommand(){{U}}(5){{/U}}ex1_7,html<HTML><HEAD><TITLE>ext_7</TITLE></HEAD><BODY><appletcode="ext?.class"width=800height=400></applet></BODY></HTML>
问答题【程序6说明】
本程序实现两个多项式的乘积运算。多项式的每一项由类Item描述,而多项式由类List描述。类List的成员函数有:
createList():创建按指数降序链接的多项式链表,以表示多项式。
reverseList():将多项式链表的表元链接顺序颠倒。
multiplyList(List L1,List L2):计算多项式L1和多项式L2的乘积多项式。
【程序6】
#include<iostream.h>
class List;
class |tem{
friend class List;
private:
double quot;
int exp;
|tem * next;
public:
|tem(double_quot,int_exp)
{{{U}} (1) {{/U}};}
};
class List {
private:
|tem * list;
public:
List(){list=NULL;}
void reverseList();
void multiplyList(List L1,List L2);
void createList();
};
void List::createList()
{ |tem * p,* u,*pre;
int exp;
doubte quot;
list=NULL;
while(1){
cout<<"输入多项式中的一项(系数、指数):"<<endl;
cin>>quot>>exp:
if(exp<0)break; //指数小于零,结束输入
if(quot==0)continue;
p=list;
while({{U}} (2) {{/U}}){ //查找插入点
pre=p;p=p->next;}
if(p!=NULL&&exp==p->exp) {p->quot+=quot;continue;}
u={{U}} (3) {{/U}};
if(p==list) list=u;
else pre->next=u;
u->next=p;}
}
void List::reverseList()
{ |tem*p,*u;
if(list==NULL)return;
p=list->next;list->next=NULL;
while(p!=NULL)}
u=p->next;p->next=list;
list=p;p=u;}
}
void List::multiplyList(List L1,List L2)
{|tem*pLI,*pL2,*u;
int k,maxExp;
double quot;
maxExp={{U}} (4) {{/U}};
L2.reverseList();list=NULL;
for(k=maxExp;k>=0;k--){
pL1=L1.list;
while(pL1!=NULL&&pL1->exp>k)pL1=pL1->next;
pL2=L2.list;
while(pL2!=NULL&&{{U}} (5) {{/U}}pL2=pL2->next;
quot=0.0;
while(pL1!=NULL&&pL2!=NULL){
if(pL1->exp+pL2->exp==k){
{{U}} (6) {{/U}};
pL1=pL1->next;pL2=pL2->next;
}else if(pL1->exp+pL2->exp>k) pL1=pL1->next;
else pL2=pL2->next;
}
if(quot!=0.0){
u=new |tem(quot,k);
u->next=list;list=u;}
}
reverseList(:);L2.reverseList():
}
void main()
{ ListL1,L2,L;
cout<<"创建第一个多项式链表/n";L1.createList();
cout<<"创建第二个多项式链表/n";L2.createList();
L.multiplyList(L1,L2);
}
问答题阅读下列说明和图,回答问题1至问题3,将解答填入对应栏内。[说明]某汽车数字仪表系统将完成下述功能:(1)通过模一数转换,实现传感器和微处理器的接口。(2)在发光二极管面板上显示数据。(3)指示速度(mph)、行驶里程、油耗(mpg)等。(4)指示加速或减速。以下是经分析得到的数据流图,有些地方有待填充,假定顶层数据流图是正确的。图1-1是顶层数据流图,图1-2是第0层数据流图,图1-3是第1层数据流图,其中A是加工1的细化图,B是加工2的细化图。图中,△sps表示转速sps的瞬时变化值,若△sps>0则汽车加速,△sps<0则减速,△sps=0则匀速。假定题中提供的顶层图是正确的,请回答下列问题。[图1-1][图1-2][图1-3]
问答题阅读以下关于项目工作管理系统的数据库设计说明,根据要求回答问题1~问题4。
[说明]
某软件开发公司,决定结合自身工作的需求开发设计本公司的项目工作管理系统,由郭工程师承担数据库的设计工作。公司项目管理的需求分析如下。
1.组织机构。该公司有多个部门,每个部门有多个职员、多个办公室,每个办公室有一部电话。当部门变更时更换新的部门代码。职员辞职后,若再次被聘用仍使用辞职前的代码。被聘用职员担任某职务,职务用职务代码来标识。职务分为:工程师、高级工程师、经理助理、经理等。职员的工资根据等级区分,共分为S、A、B、C、D
5个等级。一个职务对应某个等级,一个等级对应多个职务。职员月工资等于职员月工作时间(小时)乘以小时工资。职员的人事变动及职位变更(升级、降级)在月初进行。
2.项目管理。项目用项目代码标识,使用过的项目代码不能重复使用。一个部门可承担多个项目,但一个项目仅由一个部门承担。一个项目有一名项目主管和多个职员;一个职员可参加多个项目。项目代码由系统自动生成,一旦项目建立,项目名、部门代码及起始年月日不能再变更。
3.项目的工作管理流程为:项目工作计划输入(初始计划)→工作业绩输入→业绩生成(每月一次)→计划修正(每月一次)。
①项目工作计划输入。项目主管使用如图1-9所示的计划输入界面,输入项目代码、职员代码、职员参加某个项目的月工作时间(计划)。图中空白区域为可输入项。
{{B}}项目代码{{/B}}
{{B}}123456{{/B}}
{{B}}项目名{{/B}}
{{B}}ABCD{{/B}}
{{B}}部门代码{{/B}}
{{B}}03{{/B}}
{{B}}部门名{{/B}}
{{B}}开发部{{/B}}
{{B}}起始年月日{{/B}}
{{B}}2007-06-11{{/B}}
{{B}}结束年月日{{/B}}
{{B}}2007-11-31{{/B}}
{{B}}登陆时间{{/B}}
{{B}}2007-05-28{{/B}}
{{B}}职员代码{{/B}}
{{B}}职员名{{/B}}
6月
7月
8月
9月
10月
11月
12月
1月
2月
3月
4月
5月
合计
0302
小郭
120
180
180
180
180
180
1020
0316
小谢
120
180
180
150
150
150
930
0309
张三
90
150
150
180
180
180
930
0328
李四
120
180
180
120
120
90
870
0321
王五
90
150
150
150
150
90
810 ②工作业绩输入。输入职员每天参加各个项目的工作时间。如图1-10所示为工作业绩输入界面,图中空白区域为可输入项。其中,出勤时间由考勤系统管理,指定项目代码的顺序可以不同,并且一天可以输入多个项目代码,但同一个项目代码不能重复输入。
{{B}}职工代号{{/B}}
{{B}}0302{{/B}}
{{B}}职员名{{/B}}
{{B}}小郭{{/B}}
{{B}}输入年月{{/B}}
{{B}}2007{{/B}}
{{B}}6月{{/B}}
{{B}}年月日{{/B}}
{{B}}星期{{/B}}
{{B}}出勤时间{{/B}}
{{B}}每个项目的工作时间{{/B}}
{{B}}项目代码{{/B}}
{{B}}工作时间{{/B}}
{{B}}项目代码{{/B}}
{{B}}工作时间{{/B}}
{{B}}备注{{/B}}
2007-06-11
一
12.0
123456
8.0
345678
4.0
2007-06-12
二
15.0
123456
10.0
345678
5.0
2007-06-13
三
18.0
123456
15.0
345678
3.0
2007-06-14
四
15.0
123456
15.0
2007-06-15
五
18.0
123456
18.0
2007-06-16
六
10.0
123456
10.0
2007-06-17
日
0.0
③业绩生成。月底汇总职员的当月工作业绩,生成月工作业绩表。
④计划修正。项目主管根据项目进度修改以后的工作计划。
郭工程师根据公司的项目需求将数据库关系模式设计如下:
部门(部门代码,部门名,起始年月,终止年月,办公室,办公电话); 职务(职务代码,职务名);
等级(等级代码,等级名,年月,小时工资);
职员(职员代码,职员名,部门代码,职务代码,任职时间);
项目(项目代码,项目名,部门代码,起始年月日,结束年月日,项目主管);
工作计划(项目代码,职员代码,年月,工作时间)。
问答题【说明】C市刚开通了地铁线,为方便乘客,计划开发自动售票系统。该公司在每一个地铁站放置了多台自动售票机,每一台售票机有一唯一编号,售票记录统一汇总主机。自动售票机只发售从该站起始的各种地铁票,因此乘客只需输入目的站,起始站默认为该站,售票机给出从该站到达目的站的单程票。打印地铁票时为其编一个唯一的流水号,并同时打印自动售票机的编号及票价。售票机的状态变化如下:“空闲”时,显示地铁线路图,等待乘客输入目的站;当乘客输入目的站后,转入“目的站确认/票数输入”状态,同时给出票价,此时若目的站有误,可返回到空闲状态重新输入,否则,输入票数;乘客输入票数后,转入“票数确认/付款”状态,同样此时若票数有误,可返回到上一状态重新输入,否则,投入钱币付款;当付款金额足够时,“出票/找零”(有必要时进行找零);然后转入“空闲”等待输入目的站状态。该系统采用面向对象方法开发,系统中的类及类之间的关系用UML类图表示,如图9-18所示是该系统类图的一部分,图9-19描述了自动售票机的状态转换图。1.【问题1】根据题意,给出“自动售票机”类的主要属性。
问答题 阅读以下说明,回答问题1和问题2,将解答写在对应栏内。
【说明】
一个野生动物园,有如下动物:老虎、豹、狼、丹顶鹤、鹦鹉、天鹅、金鱼、热带鱼、鳄鱼等等。
问答题【说明】Web页面与数据库的连接是Web数据库的基本要求。目前基于Web数据库的连接方案主要有服务器端方案和客户端方案两种类型。服务器端方案的实现技术有ASP等,客户端方案的实现技术有JDBC、DHTML等。其中,ASP是微软开发的脚本语言技术,嵌入在IIS中,因此,ASP成为大部分用户的首选脚本语言。图13-10给出了ASP的工作原理。
问答题[Java程序7-1]
import java.util.*;
public class OrderList{{U}} (1) {{/U}} {
private ArrayList<Order> orders;
public OrderList0 {
this.orders = new ArrayList<Order>();
}
public void addOrder(Order orde0
this.orders.add(order);
}
public Iterator<Order> iterator() {
return{{U}} (2) {{/U}};
}
public iht getNumberOfOrders0 {
return this.orders.size();
}
}
问答题[问题3]服务注册中心、服务提供者和服务请求者之间的交互和操作构成了WebService的体系结构,如下图所示。请用180字以内文字,说明这三者的主要功能及其交互过程。
问答题阅读下列说明和C代码,回答下列问题。[说明]用两台处理机A和B处理n个作业。设A和B处理第i个作业的时间分别为ai和bi。由于各个作业的特点和机器性能的关系,对某些作业,在A上处理时间长,而对某些作业在B上处理时间长。一台处理机在某个时刻只能处理一个作业,而且作业处理是不可中断的,每个作业只能被处理一次。现要找出一个最优调度方案,使得n个作业被这两台处理机处理完毕的时间(所有作业被处理的时间之和)最少。算法步骤如下。(1)确定候选解上界为R短的单台处理机处理所有作业的完成时间m,。(2)用p(x,y,k)=1表示前k个作业可以在A用时不超过x且在B用时不超过y时间内处理完成,则p(x,y,k)=p(x-ak,y,k-1)‖p(x,y-bk,k-1)(‖表示逻辑或操作)。(3)得到最短处理时间为min(max(x,y))。[C代码]下面是该算法的C语言实现。(1)常量和变量说明n:作业数m:候选解上界a:数组,长度为n,记录n个作业在A上的处理时间,下标从0开始b:数组,长度为n,记录n个作业在B上的处理时间,下标从0开始k:循环变量p:三维数组,长度为(m+1)*(m+1)*(n+1)temp:临时变量max:最短处理时间(2)C代码#include<stdio.h>intn,m;inta[60],b[60],p[100][100][60];voidread()……/*输入n、a、b,求出m,代码略*/voidschedule()/*求解过程*/intx,y,k;for(x=0;x<=m;x++)for(y=0;y<m;y++)______for(k=1;k<n;k++)p[x][y][k]=0;for(k=1;k<n;k++)for(x=0;x<=m;x++)for(y=0;y<=m;y++)if(x-a[k-1]>=0)______;if(______)p[x][y][k]=(p[x][y][k]‖p[x][y-b[k-1]][k-1]);voidwrite()/*确定最优解并输出*/intx,y,temp,max=m;for(x=0;x<=m;x++)for(y=0,y<=m;y++)if(______)temp______:if(temp<max)max=temp;print("/n%d/n",max);voidmain()read();schedule();write();
问答题阅读下列说明和图,回答问题。[说明]某医院拟开发一套住院病人信息管理系统,以方便对住院病人、医生、护士和手术等信息进行管理。[需求分析]{{U}}1{{/U}}系统登记每个病人的住院信息,包括:病案号、病人的姓名、性别、地址、身份证号、电话号码、入院时间及病床等信息,每个病床有唯一所属的病区及病房,如表1所示。其中病案号唯一标识病人本次住院的信息。表1住院登记表病案号071002286姓名张三性别男省份证号0102196701011234入院时间2011-03-03病床号052401病房0524室病房类型三人间所属病区05Ⅱ区{{U}}2{{/U}}在一个病人的一次住院期间,由一名医生对该病人的病情进行诊断,并填写一份诊断书,如表2所示。对于需要进行一次或多次手术的病人,系统记录手术名称、手术室、手术日期、手术时间、主刀医生及多名协助医生,每名医生在手术中的责任不同,如表3所示,其中手术室包含手术室号、楼层、地点和类型等信息。表2诊断书病案号071002286姓名张三性别男医生李某某诊断表3手术安排表手术名称某某手术病案号071002286姓名张三性别男手术室032501手术日期2011-03-15手术时间8:30~10:30主刀医生李**协助医生桂**(协助),周**(协助),刘**(协助),高**(麻醉){{U}}3{{/U}}护士分为两类:病床护士和手术室护士。每个病床护士负责护理一个病区内的所有病人,每个病区由多名护士负责护理。手术室护士负责手术室的护理工作。每个手术室护士负责多个手术室,每个手术室由多名护士负责,每个护士在手术室中有不同的责任,并由系统记录其责任。[概念模型设计]根据需求阶段收集的信息,设计的实体联系图(不完整)如图所示。[逻辑结构设计]根据概念模型设计阶段完成的实体联系图,得出如下关系模式(不完整):病床({{U}}病床号{{/U}},病房,病房类型,所属病区)护士({{U}}护士编号{{/U}},姓名,类型,性别,级别)病房护士({{U}}{{U}}1{{/U}}{{/U}})手术室({{U}}手术室号{{/U}},楼层,地点,类型)手术室护士({{U}}{{U}}2{{/U}}{{/U}})病人({{U}}{{U}}3{{/U}}{{/U}},姓名,性别,地址,身份证号,电话号码,入院时间)医生({{U}}医生编号{{/U}},姓名,性别,职称,所属科室)诊断书({{U}}{{U}}4{{/U}}{{/U}},诊断,诊断时间)手术安排({{U}}病案号,手术室号,手术时间{{/U}},手术名称)手术医生安排({{U}}{{U}}5{{/U}}{{/U}},医生责任)
问答题{{B}}试题1~试题4是必答题{{/B}}阅读以下某网上作业提交与管理系统的技术说明,根据要求回答问题1~问题3。
[说明] 某学校建立了一个网上作业提交与管理系统,基本功能描述如下。
(1)账号和密码。任课老师用账号和密码登录系统后,提交所有选修学生的名单。系统自动为每个选修学生创建登录系统的账号和密码。
(2)作业提交。选修学生使用账号和密码登录系统后,可以向系统申请所选课程的作业。系统首先检查学生的当前状态,如果该选修学生还没有做过作业,则从数据库服务器申请一份作业。若申请成功,则显示需要完成的作业。学生需在线完成作业,单击[提交]按钮上交作业。
(3)在线批阅。系统自动在线批改作业,显示作业成绩,并将该成绩记录在作业成绩统计文件中。
问答题
问答题【说明】设有关于银行借贷管理系统的E-R图(如图4所示)。图中矩形表示实体,圆表示属性,双圆表示关键字属性,菱形表示实体间的联系。为了答题的方便,图中的实体和属性同时给出了中英文说明,回答问题时只需写出英文名即可。
问答题【说明】在一栋m层楼的大厦里,用电梯内和每个楼层的按钮来控制n部电梯的运作。当按下电梯内按钮请求电梯在指定楼层停下时,按钮指示灯亮,当电梯到达指定楼层时,指示灯熄灭。除了大厦的最底层和最高层之外,每层楼都有两个按钮分别指示电梯上行和下行,当这两个按钮之一被按下时相应的指示灯亮,当电梯到达此楼层时灯熄灭,电梯向要求的方向移动。当电梯无升降运动时,关门并停止在当前楼层。软件设计师火云龙采用面向对象分析的方法,经过三次逐步求精设计之后,得到如图13-19所示的类图。【问题1】按钮类有一个重要的属性,请将该属性填入图13-19中的(a)处。【问题2】识别关联的多重性是面向对象建模重要的一步,请根据题目说明填空(1)~(6)。【问题3】软件设计师火云龙在初步设计类时,将门(的状态)作为电梯的属性,后经思考,将电梯门设计成一个独立的类,这么做的好处是什么?软件设计师火云龙在初步设计类时,并没有设计“请求”类,后来又加入了该类,这么做的原因是什么?
问答题[说明]以下VisualBasic代码实现了对位图(BMP)进行旋转显示。以下程序共实现了对BMP位图图形进行180°旋转、90°旋转(顺时针)、90°旋转(逆时针)、水平翻转、垂直翻转共5项处理。显示界面如图12-8所示。仔细阅读[代码7-1]至[代码7-3],完成{{U}}(n){{/U}}代码,并写在对应栏内。[代码7-1]BeginVB.FormForm1AutoRedraw=-1'TrueCaption="图像的施转"//...窗体描述(略)BeginVB.CommandButtonCommand7Caption="退出"//...窗体描述(略)EndBeginVB.CommandButtonCommand6Caption="复位"//...窗体描述(略)EndBeginVB.CommandButtonCommand5Caption="垂直翻转"//...窗体描述(略)EndBeginVB.CommandButtonCommand4Caption="水平翻转"//...窗体描述(略)EndBeginVB.CommandButtonCommand3Caption="90°(逆时针)"//...窗本描述(略)EndBeginVB.CommandButtonCommand2Caption="90°(顺时针)"//...窗体描述(略)EndBeginVB.PictureBoxPicture2//...窗体描述(略)EndBeginVB.CommandButtonCommand1Caption="180°"//...窗体描述(略)EndBeginVB.PictureBoxPicture1//...窗体描述(略)EndEnd[代码7-2]PrivateDeclareFunctionBitBltLib"gdi32"(ByValhDestDCAsLong,ByValxAsLong,ByValyAsLong,ByValnWidthAsLong,ByValnHeightAsLong,ByValhSrcDCAsLong,ByValxSrcAsLong,ByValySrcAsLong,ByValdwRopAsLong)AsLongConstsrcopy=&HCC0020DimhAsIntegerDimwAsIntegerPrivateSubForm_Load()Picture2.Picture=LoadPicture(App.Path&"/a01.bmp")'导入图片'h=Picture1.Heightw=Picture1.WidthEndSub[代码7-3]PrivateSubCommandl_Click()旋转180°Picture2.Picture=LoadPicture("")Forj=0TohStep1Fori=0TowStep1{{U}}(1){{/U}}NextiNextjEndSubPrivateSubCommand2_Click()'顺时针施转90°'Picture2.Picture=LoadPicture("")Fori-hTo0Step-1Forj-0TowStep1{{U}}(2){{/U}}NextjNextiEndSubPrivateSubCommand3_Click()'逆时针旋转90°'Picture2.Picture=LoadPicture("")Forj=wTo0Step-1Fori=0TohStep1{{U}}(3){{/U}}NextiNextjEndSubPrivateSubCommand4Click()'水平翻转Picture2.Picture=LoadPicture("")Fori=wTo0Step-1Forj=0TohStep1{{U}}(4){{/U}}NextjNextiEndSubPrivateSubCommand5_Click()'垂直翻转Picture2.Picmre=LoadPicmre("")Forj=0TohStep1Fori=0TowStepI{{U}}(5){{/U}}NextiNextjEndSubPrivateSubCommand6_Click()'复位Picture2.Picture=LoadPicmre("")Fori=0TowStep1Forj=0TohStep1{{U}}(6){{/U}}NextjNextiEndSub
问答题[问题4](4 分)
原来的“职员”关系模式存在什么问题?在不增加新关系模式的前提下,请给出修改后的“职员”和“部门”关系模式。
