问答题阅读以下说明和流程图,回答问题1至问题3,将解答写在对应栏内。
【说明】 (1)流程图描述某大型商店商品销售的数据处理流程。
(2)商店设有若干柜台,同一种商品可能在几个柜台上销售,各柜台每天提供一组日销售数据,其格式如下:
日期、柜台号、商品代码、销售数量、商品代码、销售数量……
(3)数据处理系统每日产生一份反映各柜台当日销售金额和商店日销售金额的“日销售金额报告”,必要时还产生一份“商品请购报告”,给出那些低于最低库存量的商品代码、商品名称、最低库存量和实际库存量。处理过程中产生存档的“日销售文件”和临时工作文件“日销售量文件”和“旧销售金额文件”。
(4)系统中所用到的数据均来自数据文件。 (5)流程图中的商品库存文件的记录已按关键字“商品代码”排序。
问答题[说明]已知某企业欲开发一家用电器遥控系统,即用户使用一个遥控器即可控制某些家用电器的开与关。遥控器面板如图1-16所示。该遥控器共有4个按钮,编号分别是0至3,按钮0和2能够遥控打开电器1和电器2,按钮1和3则能遥控关闭电器1和电器2。由于遥控系统需要支持形式多样的电器,因此,该系统的设计要求具有较高的扩展性。现假设需要控制客厅电视和卧室电灯,对该遥控系统进行设计所得类图如图1-17所示。在图1-17中,类RomoteController的方法onPressButton(intbutton)表示当遥控器按键按下时调用的方法,参数为按键的编号;Command接口中on和off方法分别用于控制电器的开与关;Light中turnLight(intdegree)方法用于调整电灯灯光的强弱,参数degree值为0时表示关灯,值为100时表示开灯并且将灯光亮度调整到最大;TV中setChannel(intchannel)方法表示设置电视播放的频道,参数channel值为0时表示关闭电视,为1时表示开机并将频道切换为第1频道。[C++代码]本试题应用命令模式能够有效让类(5)和类(6)、类(7)之间的耦合性降至最小。
问答题请补充函数fun(),该函数可以统计一个长度为n的字符串在另一个字符串中出现的次数。例如,假定输入的字符串为:asd ascasdfg asd as asd mlosd,子字符串为asd,则应输出4。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填人所编写的若干表达式或语句。
试题程序:
#include < stdio. h >
#include < string. h >
#include < conio. h >
int fun(char * str,char * substr)
{
int n;
char *p,*r;
{{U}} (1) {{/U}};
while( * str)
{
p = str;
r = substr
while( * r)
if({{U}} (2) {{/U}})
{
r++;
p++;
{
else
break;
if({{U}} (3) {{/U}})
n++;
str ++;
}
return n;
}
main( )
{
char str[81],substr[3];
int n;
clrscr ( );
printf("输入主字符串:');
gets(str);
printf('输入子字符串:" );
gets( substr );
puts(str);
puts(substr);
n = fun(str,substr);
printf("n=%d/n",n)
}
问答题【说明】某教学管理系统的用户是教学管理人员、教师和学生。系统主要提供学生选课管理和学生成绩管理两方面的功能。(1)学生选修课管理主要功能是管理新学期开始时,学生对选修的课程进行选课注册工作。新学期开始后的前两周为学生试听、选课注册时间;允许校内各院系学生跨专业跨年级选修课程;学生可以在校园网的任何一个终端进行选课。①新学期选修课程表生成:各学院教学管理人员在新学期开始前,将准备开设的选修课程名称、课程代码、总课时、上课时间、学分、任课教师和上课教室录入系统,供学生选课使用。新学期开学两周后,系统自动将实际选课学生少于10人的课程停开,并删除该课程;教学管理人员打印学生选课注册名单和开课通知书,送交有关部门和任课教师。②学生选课注册:新学期开学前两周为学生试听、选课注册时间,并允许改变或取消注册申请。学生调用待选课程表,系统显示课程名、课程代码、任课教师、上课时间、总课时、上课教室、学分和本课程已选修人数。学生所选几门课程在上课时间上不能冲突;若一门课程实际选课学生已达到40人时,停止选课。当学生退出系统时,系统提示该学生所选的几门课程、任课教师、上课时间、教室、学分和学分总计。③选修课程查询:选修课程表信息查询,用户是教师、学生和教学管理人员。系统显示课程名、课程代码、任课教师、上课时间、总课时、上课教室、学分和本课程已选修人数。查询关键词可为学院名称、专业、授课教师等。学生选课情况查询:教师和教学管理人员可以查看学生的选课情况。查询关键词可以为学生姓名(学号)、课程名称(课程代码)、授课教师等。学生只能查自己所选课程内容,不允许查其他同学选课情况。教师简历查询:用户是学生、教师和教学管理人员。查询关键词可为教师姓名、性别、职称、年龄等单关键词或组合关键词。④信息统计与报表生成:各学院教学管理人员对学生选课注册信息进行统计(按课程、专业等),打印汇总报表。⑤把学生选课注册信息传送到财务管理系统,计算学生应交纳的费用。(2)学生成绩管理①学生考试成绩录入:各学院教学管理人员将学生考试成绩录入系统。录入学生成绩时,系统自动检查财务系统传来的选课交费信息,核对该学生是否已经交纳本门课程的费用,没有交纳费用者,不给成绩。②成绩查询:教师和教学管理人员可查询学生各门课程的成绩。查询关键词可为学生姓名(学号),课程名(课程代码)等。学生只能查自己各门课程的成绩,不允许查其他同学成绩。③成绩汇总与报表生成:教学管理人员对学生考试成绩信息进行统计(按学生、课程、专业等),打印汇总报表。向学校教务管理系统发送汇总信息表格等,不反馈信息。现在已建立教学管理最高层用例图,如下:1.【问题1】完成学生成绩管理子系统用例图。
问答题阅读以下某仓储超市进、销、存数据库管理系统的设计说明,根据要求回答问题1~问题5。[说明]某仓储超市采用POS(PointOfSale)收银机负责前台的销售收款,为及时掌握销售信息,并依此指导进货,拟建立商品进、销、存数据库管理系统。该系统的需求分析已经基本完成,紧接着将进入概念模型的设计。[需求分析结果]1.销售业务由POS收银机来辅助实现。POS机外接条码阅读器,结账时收银员将商品的条码通过阅读器输入POS机中。所售商品数量默认值为1,可以由收银员修改。POS机根据输入的商品信息,打印出如图4-11所示的购物清单。{{B}}欢迎光临XX超市{{/B}}{{B}}销售流水号:20070910003900101{{/B}}{{B}}商品编码{{/B}}{{B}}商品名称{{/B}}{{B}}数量{{/B}}{{B}}金额{{/B}}290801019永春老醋12.90290803053鸡蛋面11.60290807086闽清酸菜31.80实收:6.30 预收:10.00 找零:3.70收银员:02069 时间:2007-09-1012:15 2.将经销的商品分为直销商品和库存商品两大类。直销商品的保质期较短,如食品类,由供应商直接送达超市,管理员将过期的商品返还给供应商处理;库存商品由采购员向供应商提交订购单,供应商根据订购单送货。超市会不定期对库存商品按照折扣率进行打折优惠。 直销商品和库存商品送货单的样单分别如图4-12和图4-13所示,其中直销商品生产批号的前6位表示生产日期。{{B}}好再来企业商品送货单{{/B}}{{B}}经销商{{/B}}{{B}}XX超市{{/B}}{{B}}送货号码{{/B}}{{B}}ZN20070910018{{/B}}{{B}}日期{{/B}}{{B}}2007-09-10{{/B}}{{B}}NO{{/B}}{{B}}商品编号{{/B}}{{B}}商品名称{{/B}}{{B}}数量{{/B}}{{B}}生产批号{{/B}}{{B}}消费期限{{/B}}01290106051即食蛋糕5200709100202007-09-1102290102035花生肉粽25200709101082007-09-1103290108076甜玉米15200709100232007-09-11………………图4-12直销商品送货单样单{{B}}吉祥公司商品送货单{{/B}}{{B}}经销商{{/B}}{{B}}XX超市{{/B}}{{B}}送货号码{{/B}}{{B}}ZN0070910018{{/B}}{{B}}日期{{/B}}{{B}}2007-09-10{{/B}}{{B}}商品编码{{/B}}{{B}}商品名称{{/B}}{{B}}数量{{/B}}290500516圆珠笔500290500325铅笔350………3.超市的硬件系统拓扑结构如图4-14所示。4.业务处理过程。由POS机存储每一笔销售记录,在每个工作日结束前汇总当日各商品的销售量至中心数据库(销售日汇总);根据当日的销售日汇总更新存货表;每笔进货记入进货表中,并及时更新存货表。[概念模型设计]根据需求阶段收集的信息,设计的实体—联系图和关系模式(不完整)如图4-15所示。1.实体联系图2.关系模式存货表(商品编码,数量)进货表(送货号码,商品编码,数量,日期)销售详单(销售流水号,商品编码,数量,金额,收银员,时间)销售日汇总(商品编码,日期,数量)3.关系模式存货表({{U}}商品编码{{/U}},数量)进货表(送货号码,商品编码,数量,日期)销售详单(销售流水号,商品编码,数量,金额,收银员,时间)销售日汇总(商品编码,日期,数量)商品((1))
问答题试题三(共15分)阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】某网上药店允许顾客凭借医生开具的处方,通过网络在该药店购买处方上的药品。该网上药店的基本功能描述如下:(1)注册。顾客在买药之前,必须先在网上药店注册。注册过程中需填写顾客资料以及付款方式(信用卡或者支付宝账户)。此外顾客必须与药店签订一份授权协议书,授权药店可以向其医生确认处方的真伪。(2)登录。已经注册的顾客可以登录到网上药房购买药品。如果是没有注册的顾客,系统将拒绝其登录。(3)录入及提交处方。登录成功后,顾客按照“处方录入界面”显示的信息,填写开具处方的医生的信息以及处方上的药品信息。填写完成后,提交该处方。(4)验证处方。对于已经提交的处方(系统将其状态设置为“处方已提交”),其验证过程为:①核实医生信息。如果医生信息不正确,该处方的状态被设置为“医生信息无效”,并取消这个处方的购买请求;如果医生信息是正确的,系统给该医生发送处方确认请求,并将处方状态修改为“审核中”。②如果医生回复处方无效,系统取消处方,并将处方状态设置为“无效处方”。如果医生没有在7天内给出确认答复,系统也会取消处方,并将处方状态设置为“无法审核”。③如果医生在7天内给出了确认答复,该处方的状态被修改为“准许付款”。系统取消所有未通过验证的处方,并自动发送一封电子邮件给顾客,通知顾客处方被取消以及取消的原因。(5)对于通过验证的处方,系统自动计算药品的价格并邮寄药品给己经付款的顾客。该网上药店采用面向对象方法开发,使用UML进行建模。系统的类图如图3-1所示。
问答题阅读以下说明,根据要求回答下列问题。 [说明] 现需在某城市中选择一个社区建一个大型超市,使该城市的其他社区到该超市的距离总和最小。用图模型表示该城市的地图,其中顶点表示社区,边表示社区间的路线,边上的权重表示该路线的长度。 现设计一个算法来找到该大型超市的最佳位置:即在给定图中选择一个顶点,使该顶点到其他各顶点的最短路径之和最小。算法首先需要求出每个顶点到其他任一顶点的最短路径,即需要计算任意两个顶点之间的最短路径;然后对每个顶点,计算其他各顶点到该顶点的最短路径之和;最后,选择最短路径之和最小的顶点作为建大型超市的最佳位置。
问答题【说明】某考务处理系统主要功能是考生管理和成绩管理:1.对考生送来的报名表进行检查。2.对合格的报名表编好准考证号码后将准考证送给考生,将汇总后的考生名单送给阅卷站。3.对阅卷站送来的成绩表进行检查,并根据考试中心指定的合格标准审定合格者。4.填写考生通知单(内容包含该考生的准考证号、姓名、各课程成绩及最终合格/不合格标志),送给考生。5.根据考生信息及考试成绩,按地区、年龄、文化程度和职业进行成绩分类统计及试题难度分析,产生统计分析表。考务处理系统的顶层图如图1-1所示,第0层图如图1—2所示,加工2子图如图1-3所示。【数据流图】
问答题请阅读以下技术说明、类图及Java代码,回答下列问题。[说明]已知某企业的采购审批是分级进行的,即根据采购金额的不同由不同层次的主管人员来审批,主任可以审批5万元以下(不包括5万元)的采购单,副董事长可以审批5万元至10万元(不包括10万元)的采购单,董事长可以审批10万元至50万元(不包括50万元)的采购单,50万元及以上的采购单就需要开会讨论决定。采用责任链设计模式(ChainofResponsibility)对上述过程进行设计后得到的类图如图8-24所示。[Java代码]classPurchaseRequestpublicdoubleAmount;//采购金额publicintNumber;//采购单编号publicStringPurpose;//采购目的;classApprover//审批者类publicApprover()successor=null;publicvoidProcessRequestPurchaseRequestaRequest)if(successor!=null)successor.______;publicvoidSetSuccessor(ApproveraSuccesssor)successor=aSuccesssor;private______successor;;classCongressextendsApproverpublicvoidProcessRequest(PurchaseRequestaRequest)if(aRequesr.Amount>:500000)/*决定是否审批的代码省略*/else______.ProcessRequest(aRequesut);;classDirectorextendsApproverpublicvoidProcessRequest(PurchaseRequestaRequest)/*此处代码省略*/;classPresidentextendsApproverpublicvoidProcessRequest(PurchaseRequestaRequest)/*此处代码省略*/;classVicePresidentextendsApproverpublicvoidProcessRequest(PurchaseRequestaRequest)/*此处代码省略*/;publicclassrspublicstaticvoidmain(String[]args)throwsIOExceptionCongressMeeting=newCongress();VicePresidentSam=newVicePresident();DirectorLarry=newDirector();PresidentTammy=newPresident();//构造责任链Meeting.SetSuccessor(null);Sam.SetSuccessor(______);Tammy.SetSuccessor(______);Larry.SetSuccessor(______);//构造一采购审批请求PurchaseRequestaRequest=newPurchaseRequest();BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));aRequest.Amount=Double.parseDouble(br.readLine());______.ProcessRequest(aRequest);//开始审批return;
问答题现要求实现一个能够自动生成求职简历的程序,简历的基本内容包括求职者的姓名、性别、年龄及工作经历。希望每份简历中的工作经历有所不同,并尽量减少程序中的重复代码。现采用原型模式(Prototype)来实现上述要求,得到如图1所示的类图。[C++代码]#include<string>Usingnamespacestd;ClassClonealolePublic:______,ClassWorkExperience:publicCloneable//经历Private:StringworkDate;Stringcompany;Public:Cloneable*Clone()______Obj->workDate=this->workDate;Obj->company=this->company;Returnobj;//其余代码省略;ClassResume:publicCloneable//简历Private:Stringname;stringsex;stringage;WorkExperience*work;Resume(WorkExperience*work)This->work=______;Public:Resume(stringname)/*实现省略*/VoidSetPersonallnfo(stringsex,stringage)/*实现省略*/VoidsetWorkExperience(stringworkDate,stringcompany)/*实现省略*/Cloneable*Clone()______;Obj->name=this->name;Obj->sex=this->sex;Obj->age=this->age;Returnobj;;Intmain()Resume*a=newResrune("张三");A->SetPersonalInfo("男","29");A->SetWorkExperience("1998~2000","XXX公司");Resume*b=______;B->SetWorkExperience("2001~2006","YYY公司");Return0;
问答题[说明]某图书管理系统的主要功能如下。1.图书管理系统的资源目录中记录着所有可供读者借阅的资源,每项资源都有一个唯一的索引号。系统需登记每项资源的名称、出版时间和资源状态(可借阅或已借出)。2.资源可以分为两类:图书和唱片。对于图书,系统还需登记作者和页数;对于唱片,还需登记演唱者和介质类型(CD或者磁带)。3.读者信息保存在图书管理系统的读者信息数据库中,记录的信息包括:读者的识别码和读者姓名。系统为每个读者创建了一个借书记录文件,用来保存读者所借资源的相关信息。现采用面向对象方法开发该图书管理系统。识别类是面向对象分析的第一步。比较常用的识别类的方法是寻找问题描述中的名词,再根据相关规则从这些名词中删除不可能成为类的名词,最终得到构成该系统的类。表3-1给出了说明中出现的所有名词。通过对表3-1中的名词进行分析,最终得到了图3-1所示的UML表类图(类的说明见表3-21。
问答题某基于微处理器的住宅系统,使用传感器(如红外探头、摄像头等)来检测各种意外情况,如非法进入、火警、水灾等。房主可以在安装该系统时配置安全监控设备(如传感器、显示器、报警器等),也可以在系统运行时修改配置,通过录像机和电视机监控与系统连接的所有传感器,并通过控制面板上的键盘与系统进行信息交互。在安装过程中,系统给每个传感器赋予一个编号(即ID)和类型,并设置房主密码以启动和关闭系统,设置传感器事件发生时应自动拨出的电话号码。当系统检测到一个传感器事件时,就激活警报,拨出预置的电话号码,并报告关于位置和检测到的事件的性质等信息。住宅安全系统顶层数据流图和第0层数据流图如图1和图2所示。图1住宅安全系统顶层数据流图图2住宅安全系统第0层数据流图
问答题{{B}}试题1~试题4是必答题{{/B}}阅读以下说明和图,根据要求回答问题1~问题4。[说明]某音像制品出租商店欲开发一个音像管理信息系统,管理音像制品的租借业务。需求如下。1.系统中的客户信息文件保存了该商店的所有客户的用户名、密码等信息。对于首次来租借的客户,系统会为其生成用户名和初始密码。2.系统中音像制品信息文件记录了商店中所有音像制品的详细信息及其库存数量。3.根据客户所租借的音像制品的品种,会按天收取相应的费用。音像制品的最长租借周期为1周,每位客户每次最多只能租借6件音像制品。4.客户租借某种音像制品的具体流程如下。(1)根据客户提供的用户名和密码,验证客户身份。(2)若该客户是合法客户,查询音像制品信息文件,查看商店中是否还有这种音像制品。(3)若还有该音像制品,且客户所要租借的音像制品数小于等于6个,就可以将该音像制品租借给客户。这时,系统给出相应的租借确认信息,生成一条新的租借记录并将其保存在租借记录文件中。(4)系统计算租借费用,将费用信息保存在租借记录文件中并告知客户。(5)客户付清租借费用之后,系统接收客户付款信息,将音像制品租借给该客户。5.当库存中某音像制品数量不能满足客户的租借请求数量时,系统可以接受客户网上预约租借某种音像制品。系统接收到预约请求后,检查库存信息,验证用户身份,创建相应的预约记录,生成预约流水号给该客户,并将信息保存在预约记录文件中。6.客户归还到期的音像制品,系统修改租借记录文件,并查询预约记录文件和客户信息文件,判定是否有客户预约了这些音像制品。若有,则生成预约提示信息,通知系统履行预约服务,系统查询客户信息文件和预约记录文件,通知相关客户前来租借音像制品。现采用结构化方法对音像管理信息系统进行分析与设计,获得如图7-10所示的顶层数据流图和图7-11所示的0层数据流图。
问答题[C++代码]
#include <iostream>
const OBS_MAXNUM=20;//最多与OfficeDoc对象相关联的DocExplorer对象的个数
{{U}} (1) {{/U}};
class DocExplorer{ //关注OfficeDoc公文对象的类
public:
DocExplorer({{U}} (2) {{/U}} *doc); //构造函数
{{U}} (3) {{/U}} void update(OfficeDoc *doc)=0;//更新自身状态的函数
//其他相关属性和方法省略
};
class OfficeDoc{ //公文类
private:
DocExplorer *myObs[OBS_MAXNUM];
//关注此公文类的DocExplorer类对象指针数组
int index; //与OfficeDoc对象关联的DocExplorer对象的个数
public:
OfficeDoe()
index=0;
}
void attach(DocExplorer *o){
//将一DoeExplorer对象与OfficeDoe对象相关联
if(index >=OBS_MAXNUM ||o=NULL)return;
for(int loop=0; loop<index; loop++)
if(myObs[loop]==o) return;
myObs[index]=o;
index++;
}
void detaeh(DocExplorer *o){
//接触某DoeExplorer对象与OfficeDoc对象的关联
if(0==NULL) return;
for(int loop=0; loop<index; loop++){
if(myObs[loop]==o){
if(loop<=index-2)myObs[loop]=myObs[index-1];
myObs[index-1]=NULL;
index--;
break;
}
}
}
private:
void notifyObs(){ //通知所有的DocExplorer对象更改自身状态
for(int loop=0; loop<index; loop++){
myObs[loop]->{{U}} (4) {{/U}}; //DocExplorer对象更新自身状态
}
}
//其他公文类的相关属性和方法
};
DocExplorer::DocExplorer(OfficeDoc *doc){//DocExplorer 类对象的构造函数
doc->{{U}} (5) {{/U}}; //将此DocExplorer对象与doc对象相关联
}
问答题
问答题【说明】 应用Prim算法求解连通网络的最小生成树问题。请阅读程序后填空。
const int MaxInt=INT MAX; //INT MAX的值在<limits.h>中
const int n=6; //图的顶点数,应由用户定义
typedef int AdjMatrix[n][n]; //用二维数组作为邻接矩阵表示
typedef struct{ //生成树的边结点
int fromVex,to Vex; //边的起点与终点
int weight; //边上的权值
}TreeEdSenode;
typedef TreeEdgeNode MST[n-1]; //最小生成树定义
void PrimMST (AdjMatrix G,MST T,int rt){
//从顶点rt出发构造图G的最小生成树T,rt成为树的根结点
TreeEdgeNode e; int i,k=0,min,minpos,v;
for(i=0;i<n;i++) //初始化最小生成树T
if(i!=rt){
T[k].fromVex=rt;
{{U}} (1) {{/U}};
T[k++].weight=G[rt][i];
}
for(k=0;k<n-1;k++){ //依次求MST的候选边
{{U}} (2) {{/U}};
for(i=k;i<n-1;i++) 八遍历当前候选边集合
if(T[i].weight<min) //选具有最小权值的候选边
{min=T[i].weight;{{U}} (3) {{/U}};}
if(min==MaxInt) //图不连通,出错处理
{cerr<<“Graph is disconnected!”<<endl; exit(1);}
e=T[minpos];T[minpos]=T[k];{{U}} (4) {{/U}};
v=T[k].to Vex;
for(i=k+1;i<n-1;i++) //修改候选边集合
if(G[v][T[i].to Vex]<T[i].weight){
T[i].weight=G[v][T[i].toVex];
{{U}} (5) {{/U}};
}
}
}
问答题[说明] 在多道程序系统中,各个程序之间是并发执行的,共享系统资源。CPU需要在各个运行的程序之间来回地切换,这样的话,要想描述这些多道的并发活动过程就变得很困难。为此,操作系统设计者提出了进程的概念。 进程是具有独立功能的程序关于某个数据集合上的一次动态执行过程,是系统进行资源分配和调度的独立单位。
问答题阅读以下算法说明,根据要求回答问题1~问题3。
[说明]
快速排序是一种典型的分治算法。采用快速排序对数组A[p..r]排序的3个步骤如下。
1.分解:选择一个枢轴(pivot)元素划分数组。将数组A[p..r]划分为两个子数组(可能为空)A[p..q-1]和A[q+1..r],使得A[q]大于等于A[p..q-1]中的每个元素,小于A[q+1..r]中的每个元素。q的值在划分过程中计算。
2.递归求解:通过递归的调用快速排序,对子数组A[p..q-1]和A[q+1..r]分别排序。
3.合并:快速排序在原地排序,故无需合并操作。
问答题【说明】 本流程图实现从成绩文件生成学生成绩一览表。 某中学某年级的学生成绩数据(分数)登录在成绩文件10中,其记录格式见表2: 表2 学号 姓名 课程1成绩 课程2成绩 …… 课程6成绩 由该成绩文件生成见表3的学生成绩一览表。生成的学生成绩一览表按学号升序排列。表中的名次是指该生相应课程在年级中的名次。 表3 学号 姓名 课程1 课程2 …… 课程6 成绩 名次 成绩 名次 …… …… 成绩 名次 流程图中的顺序文件F0是学生成绩文件,F0文件经处理1处理后产生顺序文件F,然后经过处理2至处理4对文件F进行处理和更新。在处理5中,仅对文件F的纪录进行学生成绩一览表的编排输出,不进行排序和增加名次等处理。1. 【问题1】 流程图中文件F的纪录格式设定为见表4形式: 表4 学号 姓名 课程代码 ① ②其中的①、②应定义为何种数据项?
问答题请仔细阅读以下关于某传输系统的技术说明、状态转换图及Java程序,根据要求回答问题1~问题2。[说明]传输门是传输系统中的重要装置。传输门具有Open(打开)、Closed(关闭)、Opening(正在打开)、StayOpen(保持打开)和Closing(正在关闭)5种状态。触发状态的转换事件有click、complete和timeout3种。事件与其相应的状态转换如图7-16所示。下面的[Java代码1]与[Java代码2]分别用两种不同的设计思路对传输门进行状态模拟,请填补代码段中的空缺语句。[Java代码1]
