问答题【问题2】
数据流图如图1-10(住宅安全系统第0层DFD图)所示中的数据存储“配置信息”会影响图中的哪些加工?
问答题阅读下列说明和Java代码,将应填入空白处的字句写在答题纸的对应栏内。[说明]某咖啡店当卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格如表所示。咖啡及配料表咖啡价格/杯配料价格/份蒸馏咖啡(Espresso)25摩卡(Mocha)10深度烘焙咖啡(DarkRoast)20奶泡(Whip)8现采用装饰器(Decorator)模式来实现计算费用的功能,得到如图所示的类图。类图[Java代码]importjava.util.*;______classBeverage{//饮料Stringdescription="UnknownBeverage";public______(){returndescription;}public______;}abstractclassCondimentDecoratorextendsBeverage{//配料______;}classEspressoextendsBeverage{//蒸馏咖啡privatefinalintESPRESSO_PRICE=25;publicEspress0(){description="Espresso";}publicintcost(){returnESPRESSOPRICE;}}classDarkRoastextendsBeverage{//深度烘焙咖啡privatefinalintDARKROAST_PRICE=20;publicDarkRoast(){description="DarkRoast";}publicintcost(){rcturnDARKROASTPRICE;}}classMochaextendsCondimentDecorator{//摩卡privatefinalintMOCHA_PRICE=10;publicMocha(Beveragebeverage){this.beverage=beverage;}publicStringgetDescription(){returnbeverage.getDescription0+",Mocha";}publicintcost(){returnMOCHA_PRICE+beverage.cost();}}classWhipextendsCondimentDecorator{//奶泡privatefinalintWHIP_PRICE=8;publicWhip(Beveragebeverage){this.beverage=beverage;}publicStringgetDescription(){returnbeverage.getDescription()+",Whip";}publicintcost(){returnWHIP_PRICE+beverage.cost();}}publicclassCoffee{publicstaticvoidmain(Stringargs[]){Beveragebeverage=newDarkRoast();beverage=newMocha______;beVerage=newWhip______;System.out.println(beverage.getDescription0+"¥"+beverage.cost());}}编译运行上述程序,其输出结果为:DarkRoast,Mocha,Whip¥38
问答题【问题1】
请使用说明中的术语,给出图3-1中类Customer和类Person的属性。
问答题阅读下列说明和图,回答问题1至问题4,将解答填入对应栏内。[说明]某公司计划与客户通过Internet交换电子邮件和数据(以下统一称为“消息”)。为保障安全,在对传输的数据进行加密的同时,还要对参与通信的实体进行身份认证。因此,需要同时使用对称与非对称密钥体系。图22-1描述了接收者B使用非对称密钥体系对发送者A进行认证的过程。图22-2描述了发送和接收消息的过程,其中的认证过程使用了图22-1中的方法。图22-2中的方框a和方框b与图22-1中的方框a和方框b相同。图22-2中发送和接收消息的过程如下:(1)发送者A使用与接收者B共享的对称密钥体系的密钥加密将要发送的消息。(2)为了实现身份认证,A使用与B共享的摘要算法生成消息摘要,并使用公钥密码体系把生成的消息摘要加密后发送给B(这里假设A和B都通过安全的方法获得对方的公钥)。(3)B使用非对称密钥体系解密收到的消息摘要,使用与A共享的对称密钥体系的密钥解密加密后的消息,再使用与A共享的摘要算法针对解密后的消息生成消息摘要。(4)B对比自己生成的消息摘要与接收到的A发送的消息摘要是否相同,从而验证发送者A的身份。
问答题阅读下列说明和C代码,回答下面问题。
[说明]
某应用中需要对100000个整数元素进行排序,每个元素的取值在0~5之间。排序算法的基本思想是:对每一个元素x,确定小于等于x的元素个数(记为m),将x放在输出元素序列的第m个位置。对于元素值重复的情况,依次放入第m-1、m-2……个位置。例如,如果元素值小于等于4的元素个数有10个,其中元素值等于4的元素个数有3个,则4应该在数据元素序列的第10个位置、第9个位置和第8个位置上。
算法具体的步骤为:
步骤1:统计每个元素值的个数。
步骤2:统计小于等于每个元素值的个数。
步骤3:将输入元素序列中的每个元素放入有序的输出元素序列。
[C代码]
下面是该排序算法的C语言实现。
(1)常量和变量说明
●R:常量,定义元素取值范围中的取值个数,如上述应用中R值应取6。
●i:循环变量。
●n:待排序元素个数。
●a:输入数组,长度为n。
●b:输出数组,长度为n。
●c:辅助数组,长度为R,其中每个元素表示小于等于下标所对应的元素值的个数。
(2)函数sort
void sort(int n,int a[ ],int b[ ])
{
int c[R], i;
for(i=0;i<______; i++)
{
c[i]=0;
}
for(i=0;i<n;i++)
{
c[a[i]]=______;
}
for(i=0; i<R; i++)
{
c[i]=______;
}
for(i=0;i<n; i++)
{
b[c[a[i]]-1]=______;
c[a[i]]=c[a[i]]-1;
}
}
问答题阅读下列说明和图,回答下面问题。[说明]某医院欲开发病人监控系统。该系统通过各种设备监控病人的生命体征,并在生命体征异常时向医生和护理人员报警。该系统的主要功能如下。(1)本地监控:定期获取病人的生命体征,如体温、血压、心率等数据。(2)格式化生命体征:对病人的各项重要生命体征数据进行格式化,然后存入日志文件并检查生命体征。(3)检查生命体征:将格式化后的生命体征与生命体征范围文件中预设的正常范围进行比较。如果超出了预设范围,系统就发送一条警告信息给医生和护理人员。(4)维护生命体征范围:医生在必要时(如新的研究成果出现时)添加或更新生命体征值的正常范围。(5)提取报告:在医生或护理人员请求病人生命体征报告时,从曰志文件中获取病人生命体征生成体征报告,并返回给请求者。(6)生成病历:根据目志文件中的生命体征,医生对病人的病情进行描述,形成病历存入病历文件。(7)查询病历:根据医生的病历查询请求,查询病历文件,给医生返回病历报告。(8)生成治疗意见:根据日志文件中的生命体征和病历,医生给出治疗意见,如处方等,并存入治疗意见文件。(9)查询治疗意见:医生和护理人员查询治疗意见,据此对病人进行治疗。现采用结构化方法对病人监控系统进行分析与设计,获得如图1所示的顶层数据流图和如图2所示的0层数据流图。图1顶层数据流图图20层数据流图
问答题阅读下列说明和图,回答问题。[说明]某网上药店允许顾客凭借医生开具的处方,通过网络在该药店购买处方上的药品。该网上药店的基本功能描述如下。(1)注册。顾客在买药之前,必须先在网上药店注册。注册过程中需填写顾客资料以及付款方式(信用卡或者支付宝账户)。此外顾客必须与药店签订一份授权协议书,授权药店可以向其医生确认处方的真伪。(2)登录。已经注册的顾客可以登录到网上药房购买药品。如果是没有注册的顾客,系统将拒绝其登录。(3)录入及提交处方。登录成功后,顾客按照“处方录入界面”显示的信息,填写开具处方的医生的信息以及处方上的药品信息。填写完成后,提交该处方。(4)验证处方。对于已经提交的处方(系统将其状态设置为“处方已提交”),其验证过程为:①核实医生信息。如果医生信息不正确,该处方的状态被设置为“医生信息无效”,并取消这个处方的购买请求;如果医生信息是正确的,系统给该医生发送处方确认请求,并将处方状态修改为“审核中”。②如果医生回复处方无效,系统取消处方,并将处方状态设置为“无效处方”。如果医生没有在7天内给出确认答复,系统也会取消处方,并将处方状态设置为“无法审核”。③如果医生在7天内给出了确认答复,该处方的状态被修改为“准许付款”。系统取消所有未通过验证的处方,并自动发送一封电子邮件给顾客,通知顾客处方被取消以及取消的原因。(5)对于通过验证的处方,系统自动计算药品的价格并邮寄药品给已经付款的顾客。该网上药店采用面向对象方法开发,使用UML进行建模。系统的类图如图10.2所示。[问题1]根据说明中的描述,给出图10.2中缺少的C1~C5所对应的类名以及(1)~(6)处所对应的多重度。[问题2]图10.3给出了“处方”的部分状态图。根据说明中的描述,给出图10.3中缺少的S1~S4所对应的状态名以及(7)~(10)处所对应的迁移(transition)名。[问题3]图10.2中的符号“”和“”在UML中分别示类和对象之间的哪两种关系?两者之间的区别是什么?
问答题阅读下列说明和Java代码,将应填入空白处的字句写在答题纸的对应栏内。[说明]某公司的组织结构图如图1所示,现采用组合(Composition)模式来设计,得到如图2所示的类图。图1某公司组织结构图图2类图其中Company为抽象类,定义了在组织结构图上添加(Add)和删除(Delete)分公司/办事处或者部门的方法接口。类ConcreteCompany表示具体的分公司或者办事处,分公司或办事处下可以设置不同的部门。类HRDepartment和FinanceDepartment分别表示人力资源部和财务部。[Java代码]importjava.util.*;______Company{protectedStringname;publicCompany(Stringname){______=name;}publicabstractvoidAdd(Companyc);//增加子公司、办事处或部门publicabstractvoidDelete(Companyc);//删除子公司、办事处或部门}classConcreteCompanyextendsCompany{privateList<______>children=newArrayList<______>();//存储子公司、办事处或部门publicConcreteCompany(Stringname){super(name);}publicvoidAdd(Companyc){______.add(c);}publicvoidDelete(Companyc){______.remove(c);}}classHRDepartmentextendsCompany{publicHRDepartment(Stringname){super(name);}//其余代码省略}classFinanceDepartmentextendsCompany{publicFinanceDepartment(Stringname){super(name);}//其余代码省略}publicclassTest{publicstaticvoidmain(String[]args){ConcreteCompanyroot=newConcreteCompany("北京总公司");root.Add(newHRDepartment("总公司人力资源部"));root.Add(newFinanceDepartment("总公司财务部"));ConcreteCompanycomp=newConcreteCompany("上海分公司");comp.Add(newHRDepartment("上海分公司人力资源部"));comp.Add(newFinanceDepartment("上海分公司财务部"));______;ConcreteCompanycomp=newConcreteCompany("南京办事处");comp1.Add(newHRDepartment("南京办事处人力资源部"));comp1.Add(newFinanceDepartment("南京办事处财务部");______;//其余代码省略}}
问答题阅读以下说明,回答问题。[说明]某公司拟开发一套小区物业收费管理系统。初步的需求分析结果如下。(1)业主信息主要包括:业主编号、姓名、房号、房屋面积、工作单位、联系电话等。房号可唯一标识一条业主信息,且一个房号仅对应一套房屋;一个业主可以有一套或多套的房屋。(2)部门信息主要包括:部门号、部门名称、部门负责人、部门电话等;一个员工只能属于一个部门,一个部门只有一位负责人。(3)员工信息主要包括:员工号、姓名、出生年月、性别、住址、联系电话、所在部门号、职务和密码等。根据职务不同员工可以有不同的权限,职务为“经理”的员工具有更改(添加、删除和修改)员工表中本部门员工信息的操作权限,职务为“收费”的员工只具有收费的操作权限。(4)收费信息包括:房号、业主编号、收费日期、收费类型、数量、收费金额、员工号等。收费类型包括物业费、卫生费、水费和电费,并按月收取,收费标准如表1所示。其中:物业费=房屋面积(平方米)×每平方米单价,卫生费=套房数量(套)×每套房单价,水费=用水数量(吨)×每吨水单价,电费=用电数量(度)×每度电单价。(5)收费完毕应为业主生成收费单,收费单示例如表2所示。表1收费标准收费类型单位单价物业费平方米1.00卫生费套10.00水费吨0.70电费度0.80表2收费单示例房号:A1608 业主姓名:李斌序号收费类型数量金额1物业费98.698.602卫生费110.003水费64.204电费10281.60合计壹佰玖拾肆元肆角整194.4收费日期:2010-9-2员工号:001[概念模型设计]根据需求阶段收集的信息,设计的实体联系图(不完整)如图所示。图中收费员和经理是员工的子实体。实体联系图[逻辑结构设计]根据概念模型设计阶段完成的实体联系图,得出如下关系模式(不完整)。业主(______,姓名,房屋面积,工作单位,联系电话)员工(______,姓名,出生年月,性别,住址,联系电话,职务,密码)部门(______,部门名称,部门电话)权限(职务,操作权限)收费标准(______)收费信息(______,收费类型,收费金额,员工号)
问答题【问题1】
顶层图如图1-16所示。指出0层图(见图1-17)中可以删去的部分。
问答题【问题2】
在加工1子图(见图1-18)中将遗漏的数据流添加在对应栏内。
问答题【问题4】
以下SQL语句用于查询没有订购产品代码为“1K10”的产品的所有客户名。请填补其中的空缺。
SELECT CustomerName FROM Customer {{U}}(1) {{/U}}
WHERE {{U}}(2) {{/U}}
(SELECT * FROM OrderDetml B,Order C
WHERE B.ProductNo=C.ProductNo
AND B.ProductNo='1KIO'
AND C.CustomerNo=A.CustomerNo)
问答题阅读下列说明和图,回答问题。[说明]某汽车停车场欲建立一个信息系统,已经调查到的需求如下。(1)在停车场的入口和出口分别安装一个自动栏杆、一台停车卡打印机、一台读卡器和一个车辆通过传感器,示意图如图10.25所示。(2)当汽车到达入口时,驾驶员按下停车卡打印机的按钮获取停车卡。当驾驶员拿走停车卡后,系统命令栏杆自动抬起;汽车通过入口后,入口处的传感器通知系统发出命令,栏杆自动放下。(3)在停车场内分布着若干个付款机器。驾驶员将在入口处获取的停车卡插入付款机器,并缴纳停车费。付清停车费之后,将获得一张出场卡,用于离开停车场。(4)当汽车到达出口时,驾驶员将出场卡插入出口处的读卡器。如果这张卡是有效的,系统命令栏杆自动抬起;汽车通过出口后,出口传感器通知系统发出命令,栏杆自动放下。若这张卡是无效的,系统不发出栏杆抬起命令而发出警告信号。(5)系统自动记录停车场内空闲的停车位的数量。若停车场当前没有车位,系统将在入口处显示“车位已满”信息。这时,停车卡打印机将不再出卡,只允许场内汽车出场。表10.10类/用例/状态列表用例名说明类名说明状态名说明Carentry汽车进入停车场CentralComputer停车场信息系统Idle空闲状态,汽车可以进入停车场Carexit汽车离开停车场PaymentMachine付款机器Disable没有车位ReportStatistics记录停车场的相关信息CarPark停车场,保存车位信息AwaitEntry等待汽车进入Barrier自动护栏AwaitTicketTake等待打印停车卡Carentrywhenfull没有车位时,汽车请求进入停车场EntryBarrier入口的护栏AwaitEnable等待停车场内有空闲车位ExitBarrier出口的护栏根据上述描述,采用面向对象方法对其进行分析与设计,得到了表10.10所示的类/用例/状态列表、图10.26所示的用例图、图10.27示的初始类图以及图10.28所示的描述入口自动栏杆行为的UML状态图。[问题1]根据说明中的描述,使用表10.10给出的用例名称,给出图10.26中U1、U2和U3所对应的用例。[问题2]根据说明中的描述,使用表10.10给出的类的名称,给出图10.27中的A~D所对应的类。[问题3]根据说明中的描述,使用表10.10给出的状态名称,给出图10.28中S1~S4所对应的状态。[问题4]简要解释图10.26中用例Ul和U3之间的extend关系的内涵。
问答题阅读下列说明和C++代码,在(n)处填入适当的字句。[说明]某软件公司现欲开发一款飞机飞行模拟系统,该系统主要模拟不同种类飞机的飞行特征与起飞特征。需要模拟的飞机种类及其特征如表10.4所示。表10.4飞机种类及特性飞机种类起飞特征飞行特征直升机(Helicopter)垂直起飞(VerticalTakeOff)亚音速飞行(SubSonicFly)客机(AirPlane)长距离起飞(LongDistanceTakeOff)亚音速飞行(SubSonicFly)歼击机(Fighter)长距离起飞(LongDistanceTakeOff)超音速飞行(SuperSonicFly)鹞式战斗机(Harrier)垂直起飞(VerticalTakeOff)超音速飞行(SuperSonicFly)为支持将来模拟更多种类的飞机,采用策略设计模式(Strategy)设计的类图如图10.11所示。图10.11中,AirCraft为抽象类,描述了抽象的飞机,而类Helicopter、AirPlane、Fighter和Harrier分别描述具体的飞机种类,方法fly()和takeOff()分别表示不同飞机都具有飞行特征和起飞特征;类FlyBehavior与TakeOffBehavior为抽象类,分别用于表示抽象的飞行为与起飞行为;类SubSonicFly与SuperSonicFly分别描述亚音速飞行和超音速飞行的行为;类VerticaITakeOff与LongDistanceTakeOff分别描述垂直起飞与长距离起飞的行为。[C++代码]#include<iostream>usingnamespacestd;classFlyBehaviorpublic:virtualvoidfly()=0;classSubSonicFly:publicFlyBehaviorpublic:voidfly()cout<<"亚音速飞行!"<<end1;;classSuperSonicFly:publicFlyBehaviorpublic:voidfly()cout<<,超音速飞行!<<endl;;classTakeOffBehaviorpublic:virtualvoidtakeOff()=0;classVerticalTakeOff:publicTakeOffBehaviorpublic:voidtakeOff()cout<<"起飞!"<<endl;;classLongDistanceTakeOff:publicTakeOffBehaviorpublic:voidtakeOff()cout<<"长距离起飞!<<endl;;classAirCraftprotected:(1);(2);public:voiclfly()(3);voidtakeOff()(4);classHelicopter:publicAirCraftpublic:Helicopter()flyBehavior=new(5);takeOffBehavior=new(6);(7)if(!flyBehavior)deleteflyBehavior;if(!takeOffBehavior)deletetakeOffBehavior;//其他代码省略
问答题【问题2】
“安排会面”加工除需要写入会面文件外,还需要访问哪些文件?
问答题【说明】
设某城市有n个车站,并有m条公交线路连接这些车站,设这些公交车都是单向的,这n个车站被顺序编号为0至n-1。输入该城市的公交线路数、车站个数,以及各公交线路上的各站编号,求得从站0出发乘公交车至站n-1的最少换车次数。
程序利用输入信息构建一张有向图G(用邻接矩阵g表示),有向图的顶点是车站,若有某条公交线路经i站能到达j站,就在顶点i到顶点j之间设置一条权为1的有向边<i,j>。如是这样,从站点x至站点y的最少上车次数便对应图G中从点x至点y的最短路径长度。而程序要求的换车次数就是上车次数减1。
【函数5-9】
#include <stdio.h>
#define M 20
#define N 50
int a[N+1]; /*用于存放一条线路上的各站编号*/
iht g[N][N]; /*存储对应的邻接矩阵*/
int dist[N]; /*存储站0到各站的最短路径*/
int m,n;
void buildG()
{
int i,j,k,sc,dd;
printf ("输入公交线路数,公交站数/n");
scanf("%d%d",
for(i=0; i<n; i++) /*邻接矩阵清0*/
for(j = 0; j < n; j++)g[i][j] = 0;
for(i=0; i<m; i++){
printf("沿第%d条公交车线路前进方向的各站编号(O<=编号<=%d,-1结束):/n",
i+1, n-1);
sc=0;/* 当前线路站计数器 */
while(1){
scanf("%d",
if(dd==-1)break;
if(dd>=0
}
a[sc]=-1;
for(k=1;a[k]>=0; k++) /* 处理第i+1条公交线路 */
for(j=0; j<k; j++)
g{{U}} (2) {{/U}}=1;
}
}
int minLen()
{
int j, k;
for(j=0;j<n;j++)dist[j]=g[0][j];
dist[0]=1;
do{
for(k=-1,j=0;j<n;j++) /* 找下一个最少上车次数的站*/
if(dist[j]>0
if (k<0 || k==n-1) break;
dist[k]=-dist[k]; /* 设置k站已求得上车次数的标记 */
for(j=1;j<n;j++) /* 调整经过k站能到达的其余各站的上车次数 */
if ({{U}} (3) {{/U}}
}while(1);
j=dist[n-1];
return {{U}}(5) {{/U}};
}
void main()
{
int t;
buildG();
if((t=minLen()<0)printf("无解!/n");
else pdnff("从0号站到%d站需换车%d次/n”,n-1,t);
}
问答题阅读下列说明和图,回答问题。[说明]某银行计划开发一个自动存提款机模拟系统(ATMSystem)。系统通过读卡器(CardReader)读取ATM卡;系统与客户(Customer)的交互由客户控制台(CustomerConsole)实现;银行操作员(Operator)可控制系统的启动(SystemStartup)和停止(SystemShutdown);系统通过网络和银行系统(Bank)实现通信。当读卡器判断用户已将ATM卡插入后,创建会话(Session)。会话开始后,读卡器进行读卡,并要求客户输入个人验证码(PIN)。系统将卡号和个人验证码信息送到银行系统进行验证。验证通过后,客户可从菜单选择如下事务(Transaction)。(1)从ATM卡账户取款(Withdraw)。(2)向ATM卡账户存款(Deposit)。(3)进行转账(Transfer)。(4)查询(Inquire)ATM卡账户信息。一次会话可以包含多个事务,每个事务处理也会将卡号和个人验证码信息送到银行系统进行验证。若个人验证码错误,则转个人验证码错误处理(InvalidPINProcess)。每个事务完成后,客户可选择继续上述事务或退卡。选择退卡时,系统弹出ATM卡,会话结束。系统采用面向对象方法开发,使用UML进行建模。系统的顶层用例图如图10.18所示,一次会话的序列图(不考虑验证)如图10.19所示。消息名称参见表10.6。表10.6可能的消息名称列表名称说明名称说明CardInserted()ATM卡已插入PerformTransaction()执行事务PerformSession()执行会话readCard()读卡readPIN()读取个人密码PIN个人验证码信息Create(atm,this,card,pin)为当前会话创建事物create(this)为当前ATM创建会话CardATM卡信息doAgain执行下一个事务ejectCard()弹出ATM卡[问题1]根据说明中的描述,给出图18.18中A1和A2所对应的参与者,U1~U3所对应的用例,以及该图中空(1)所对应的关系。(U1~U3的可选用例包括:Session、Transaction、InsertCard、InvalidPINProcess和OTransfer)[问题2]根据说明中的描述,使用表10.6中的英文名称,给出图10.19中6~9对应的消息。[问题3]解释图10.18中用例U3和用例Withdraw、Deposit等四个用例之间的关系及其内涵。
问答题阅读下列说明,回答下面问题。[说明]某电视台拟开发一套信息管理系统,以方便对全台的员工、栏目、广告和演播厅等进行管理。[需求分析](1)系统需要维护全台员工的详细信息、栏目信息、广告信息和演播厅信息等。员工的信息主要包括:工号、姓名、性别、出生日期、电话、住址等。栏目信息主要包括:栏目名称、播出时间、时长等。广告信息主要包括:广告编号、价格等。演播厅信息包括:房间号、房间面积等。(2)电视台分局调度单来协调各档栏目、演播厅和场务。一销售档栏目只会占用一个演播厅,但会使用多名场务来进行演出协调。演播厅和场务可以被多个栏目循环使用。(3)电视台根据栏目来插播广告。每档栏目可以插播多条广告,每条广告也可以在多档栏目插播。(4)一档栏目可以有多个主持人,但一名主持人只能主持一档栏目。(5)一名编辑人员可以编辑多条广告,一条广告只能由一名编辑人员编辑。[概念模型设计]根据需求阶段收集的信息设计的实体联系图(不完整)如下图所示。实体联系图[逻辑结构设计]根据概念模型设计阶段完成的实体联系图,得出如下关系模式(不完整):演播厅(房间号,房间面积)栏目(栏目名称,播出时间,时长)广告(广告编号,销售价格,______)员工(工号,姓名,性别,出生日期,电话,住址)主持人(主持人工号,______)插播单(______,播出时间)调度单(______)
问答题阅读下列说明,回答下面问题。[说明]某医院拟开发一套住院病人信息管理系统,以方便对住院病人、医生、护士和手术等信息进行管理。[需求分析](1)系统登记每个病人的住院信息,包括:病案号、病人的姓名、性别、地址、身份证号、电话号码、入院时间及病床号信息,每个病床有唯一所属的病区及病房,如下表所示。其中病案号唯一标识病人本次住院的信息。表1住院登记表病案号071002286姓名张三性别男身份证号0102196701011234入院时间2011-03-03病床号052401病房0524室病房类型三人间所属病区05Ⅱ区(2)在一个病人的一次住院期间,由一名医生对该病人的病情进行诊断,并填写一份诊断书,如表2所示。对于需要进行一次或多次手术的病人,系统记录手术名称、手术室、手术日期、手术时间、主刀医生及多名协助医生,每名医生在手术中的责任不同,如表3所示,其中手术室包含手术室号、楼层、地点和类型等信息。表2诊断书诊断时间:2011年3月病房号071002286姓名张三性别男医生李**诊断表3手术安排表手术名称**手术病案号071002286姓名张三性别男手术室032501手术日期2011-03-15手术时间8:30~10:30主刀医生李**协助医生王**(协助),周**(协助),刘**(协助),高**(麻醉)(3)护士分为两类:病床护士和手术室护士。每个病床护士负责护理一个病区内的所有病人,每个病区由多名护士负责护理。手术室护士负责手术室的护理工作。每个手术室护士负责多个手术室,每个手术室由多名护士负责,每个护士在手术室中有不同的责任,并由系统记录其责任。[概念模型设计]根据需求阶段收集的信息,设计的实体联系图(不完整)如图1所示。图1实体联系图[逻辑结构设计]根据概念模型设计阶段完成的实体联系图,得出如下关系模式(不完整)。病床(病床号,病房,病房类型,所属病区)护士(护士编号,姓名,类型,性别,级别)病床护士(______)手术室(手术室号,楼层,地点,类型)手术室护士(______)病人(______,姓名,性别,地址,身份证号,电话号码,入院时间)医生(医生编号,姓名,性别,职称,所属科室)诊断书(______,诊断,诊断时间)手术安排(病案号,手术室号,手术时间,手术名称)手术医生安排(______,医生责任)
问答题【问题2】
给出“领料单”和“入库申请单”这两个类至少应具有的属性。
