问答题[说明]图书管理系统旨在用计算机对图书进行管理,包括图书的购入、借阅、归还以及注销。管理人员可以查询某位读者、某种图书的借阅情况,还可以对当前图书借阅情况进行一些统计,给出统计表格,以便掌握图书的流通情况。系统要实现以下四方面的功能:购入新书、读者借书、读者还书以及图书注销。(1)购入新书:需要为该书编制图书卡片,包括分类目录号、图书流水号(要保证每本书都有唯一的流水号,即使同类图书也是如此)、书名、作者、内容摘要、价格和购书日期等信息,写入图书目录文件中。(2)读者借书:填写借书单,包括读者号、欲借图书分类目录号,系统首先检查该读者号是否有效,若无效,则拒绝借书,否则进一步检查该读者所借图书是否超过最大限制数,若已达到最大借阅数,则拒绝借书,否则读者可以借出该书,登记图书分类目录号、图书流水号、读者号和借阅日期等,写回到借书文件中去。(3)读者还书:根据图书流水号,从借书占文件中读出和该图书相关的借阅记录,表明还书日期,再写回借书文件中;如果图书逾期未还,则处以相应罚款。(4)图书注销:将一些过时或无保留价值的图书注销,从图书文件中删除相关记录。(5)流通查询:管理员可以对图书流通情况进行查询,包括某位读者、某种图书和全局图书,给出流通情况统计表。以下是经分析得到的数据流图及部分数据字典,有些地方有待填充,假定顶层数据流图是正确的。图1是顶层数据流图,图2是第0层数据流图,图3是第1层数据流图。图1图2图3[数据字典](1)数据流条目图书管理要求=[入库单|借书单|还书单|注销单]入库单=分类目录号+数量+书名+作者+内容摘要+价格+购书日期借书单=读者号+(d)+借阅日期还书单=(e)+还书日期(2)文件说明文件名:目录文件组成:分类目录号+书名+作者+内容摘要+价格+入库日期+总数+库存数+(f)
问答题[说明]某汽车维修站拟开发一套小型汽车维修管理系统,对车辆的维修情况进行管理。1.对于新客户及车辆,汽车维修管理系统首先登记客户信息,包括:客户编号、客户名称、客户性质(个人、单位)、折扣率、联系人、联系电话等信息;还要记录客户的车辆信息,包括:车牌号、车型、颜色、车辆类别等信息。一个客户至少有一台车。客户及车辆信息如表2-1所示。2.记录维修车辆的故障信息。包括:维修类型(普通、加急)、作业分类(大、中、小修)、结算方式(自付、三包、索赔)等信息。维修厂的员工分为:维修员和业务员。车辆维修首先委托给业务员。业务员对车辆进行检查和故障分析后,与客户磋商,确定故障现象,生成维修委托书。如表2-2所示。3.维修车间根据维修委托书和车辆的故障现象,在已有的维修项目中选择并确定一个或多个具体维修项目,安排相关的维修工及工时,生成维修派工单。维修派工单如表2-3所示。4.客户车辆在车间修理完毕后,根据维修项目单价和维修派工单中的工时计算车辆此次维修的总费用,记录在委托书中。根据需求阶段收集的信息,设计的实体联系图(见图2-1)和关系模式(不完整)如下所示。图2-1中业务员和维修工是员工的子实体。[概念结构设计][逻辑结构设计]客户((5),折扣率,联系人,联系电话)车辆(车牌号,客户编号,车型,颜色,车辆类别)委托书((6),维修类型,作业分类,结算方式,进厂时间,预计完工时间,登记日期,故障描述,总费用)维修项目(维修项目编号,维修项目,单价)派工单((7),工时)员工((8),工种,员工类型,级别)
问答题请补充函数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; (1) ; while( * str) p = str; r = substr while( * r) if( (2) ) r++; p++; else break; if( (3) ) 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)
问答题阅读下列函数说明,将应填入{{U}} (n) {{/U}}处的字句写在答卷纸的对应栏内。 【函数1说明】 函数compare(SqList A,SqList B)的功能是:设A=(al,…,am)和B=(b1,…,bn)均为顺序表,“比较”两个顺序表A和B的大小。设A'和B'分别为A和B中除去最大共同前缀后的子表(例如,A=(y,X,X,Z,X,Z),B=(y,x,x,z,y,x,x,2),则两者中最大的共同前缀为(y,x,x,2),在两表中除去最大共同前缀后的子表分别为A'=(X,Z)和B'=(y,x,x,2))。若A'=B'=空表,则 A=B:若A'=空表,而B'≠空表,或者两者均不为空表,且A'的首元小于B,的首元,则A<B;否则A>B。 提示:算法的基本思想为:若相等,则j+1,之后继续比较后继元素:否则即可得山比较结果。显然,j的初值应为0,循环的条件是j不超出其中任何一个表的范围。若在循环内不能得出比较结果,则循环结束时有3种可能出现的情况需要区分。 【函数1】 int compare(SqList A,SqList B) { //若A<B,则返回-1;若A=B,则返回o:若A>B,则返回1 j=0; while(j<{{U}} (1) {{/U}} else if( A.elem[j] > B.elem[j] ) return(i); else{{U}} (2) {{/U}} ff (A.length == B.length) return (0); else fi(A.length < B.length ) return(-1); else return(1); }//compare //函数1的时间复杂度是{{U}} (3) {{/U}} 【函数2说明】 函数 exchange_L( SLink k = 1; while( k< m ++k; } if({{U}} (6) {{/U}} // 以指针ha记a1 结点的位置 L->next = p->next; // 将b1结点链接在头结点之后 p->next = NULL; // 设am的后继为空 q:{{U}} (7) {{/U}}; // 令q 指向b1结点 while(q->next)q={{U}} (8) {{/U}}; // 查的bn结点 q->next ={{U}} (9) {{/U}}; // 将a1 结点链接到bn 结点之后 } } } //函数2的时间复杂度是{{U}} (10) {{/U}}。
问答题【说明】 一个野生动物园,有如下动物:老虎、豹、狼、丹顶鹤、鹦鹉、天鹅、金鱼、热带鱼、鳄鱼等等。
问答题从下列的3道试题(试题五至试题七)中任选1道解答,如果解答的试题数超过1道,则题号小的1道解答有效。试题五(15分,每空3分)阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。[说明]函数intToplogical(LinkedWDigraphG)的功能是对图G中的顶点进行拓扑排序,并返回关键路径的长度。其中图G表示一个具有n个顶点的AOE-网,图中顶点从1~n依次编号,图G的存储结构采用邻接表表示,其数据类型定义如下:[图5-1][图5-2]
问答题阅读以下说明和数据流图,回答问题1~问题3。[说明]职工信息管理系统是用于对职工相关信息进行检索、统计、工资管理、内部调动管理等的系统。利用该系统,人事科可以对本单位职工信息进行管理,根据不同命令对信息进行增、删、改、内部调动,打印人事表格,进行统计、检索。人事科输入的系统命令需要合法性检查才能被接受、处理。系统命令包括档案维护、数据检索、统计报表、打印命令、代码维护。人事科的输入信息包括个人资料、检索选项、统计选项、代码资料、新增档案字段、档案修改资料等条目。完整的个人资料应包括职工的档案编号、姓名、工作单位、性别、出生日期、技术职称以及学历。通过系统授权,用户可以进行对职工信息数据进行查询检索,检索的条件可以是姓名、工作单位、,性别、技术职称等组合。通过系统授权,超级用户还可以对职工档案进行维护。当超级用户需要对档案进行维护时,输入档案维护命令,得到合法性确认后,可以对系统数据库档案信息进行维护,否则将拒绝执行。档案维护操作可以是增加档案、修改档案、删除档案、增加档案字段中的任何一种操作。档案维护成功后要及时更新职工信息数据文件,保存维护结果。职工管理信息系统的顶层图如图12-1所示;职工管理信息系统的第0层DFD图如图12-2所示,其中,加工3的细化图如图12-3所示,加工3.2的细化图如图12-4所示。[数据流图12-1][数据流图12-2][数据流图12-3][数据流图12-4]
问答题阅读以下说明和流程图,回答问题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层数据流图
