计算机类
公务员类
工程类
语言类
金融会计类
计算机类
医学类
研究生类
专业技术资格
职业技能资格
学历类
党建思政类
计算机软件水平考试
全国计算机应用水平考试(NIT)
计算机软件水平考试
计算机等级考试(NCRE)
全国高校计算机等级考试CCT
行业认证
信息素养
软件设计师(中级)
信息系统项目管理师(高级)
系统分析师(高级)
系统架构设计师(高级)
网络规划设计师(高级)
系统规划与管理师(高级)
软件评测师(中级)
软件设计师(中级)
网络工程师(中级)
多媒体应用设计师(中级)
嵌入式系统设计师(中级)
电子商务设计师(中级)
系统集成项目管理工程师(中级)
信息系统监理师(中级)
信息安全工程师(中级)
数据库系统工程师(中级)
信息系统管理工程师(中级)
软件过程能力评估师(中级)
计算机辅助设计师(中级)
计算机硬件工程师(中级)
信息技术支持工程师(中级)
程序员(初级)
网络管理员(初级)
信息处理技术员(初级)
电子商务技术员(初级)
信息系统运行管理员(初级)
网页制作员(初级)
多媒体应用制作技术员(初级)
PMP项目管理员资格认证
软件设计应用技术
软件设计基础知识
软件设计应用技术
问答题设有m台完全相同的机器运行n个独立的任务,运行任务i所需要的时间为ti,要求确定一个调度方案是的完成所有任务所需要的时间最短。 假设任务已经按照其运行时间从大到小排序,算法基于最长运行时间作业优先的策略;按顺序先把每个1务分配到一台机器上,然后将剩余的任务一次放入最先空闲的机器。 [C代码] 下面是算法的C语言实现。 (1)常量和变量说明 m:机器数。 n:任务数。 t[]:输入数组,长度为n,其中每个元素表示任务的运行时间,下标从0开始。 s[][]:二维数组,长度为m*n,下标从0开始,其中元素s[i][j]表示机器i运行的任务j的编号。 d[]:数组,长度为m其中元素d[i]表示机器i的运行时间,下标从0开始。 count[]:数组,长度为m,下标从0开始,其中元素count[i]表示机器i运行的任务数。 i:循环变量。 j:循环变量。 k:临时变量。 max:完成所有任务的时间。 min:临时变量。 (2)函数schedule void schedule() int i,j,k max=0; for(i=0;i<m;i++) d[i]=0; for(j=0;j<n;j++) s[i][j]=0; for(i=0;i<m;i++) //分配前m个任务 s[i][0]=i; ______; count[i]=1; for(______;i<n;i++) //分配后n-m个任务 int min=d[0]; k=0; for(j=1;j<n;j++) //确定空闲机器 if(rain>d[j]) min=d[j]; k=j; //机器k空闲 ______; count[k]=count[k]+1; d[k]=d[k]+t[i]; for(i=0;i<m;i++) //确定完成所有任务所需要的时间 if(______) max=d[i];
进入题库练习
问答题【程序说明】 本程序先从文件读人各考生的准考证号(设为整型数)及成绩,并将其存放在一棵检索二叉树上,二叉树结点的健值是成绩,每个结点带一链表,链表结点存放取得该成绩的考生的准考证号。然后,程序按中序遍历检索二叉树,从高分到低分输出结果,使每行输出成绩及其取得成绩的考生的准考证号。 【程序】 #include < stdio. h > typedef struet idnode { int id; struct idnode * next; } ldNode; typedef struct marknode I int mark; ldNode * head; struct marknode * left, * right; } MarkNode; char fname [ ] = "sp07.dat"; main( ) { int id, mark; MarkNode * root = null; FILE * fp = fopen(fname," r" ); if(!fp) { printf("file%s open error, /n" , fname); exit(0); } while (!feop(fp)) { fscanf(fp," %d%d", btree( } fclose(fp); print(root); } btree(MarkNod * * mpptr, int id, int mark) { ldNode * ip; MarkNode *mp = * mpptr; if{{U}} (1) {{/U}}{ if (mark==p->mark) addldNODE ({{U}} (2) {{/U}}, id); else if ( mark >mp -> mark) btree ( else btree( } else Imp = ( marknode * ) malloc(sizeo (marknode) ); mp -> mark = mark; mp -> left =mp -> right = NULL; {{U}}(3) {{/U}} addldNode( {{U}}(4) {{/U}}; } } addldNode(ldNode * * ipp, int id) { ldNode * ip = * ipp; if ({{U}} (5) {{/U}})addldNode ({{U}} (6) {{/U}}), id; else { ip = (ldNode * )malloc(sizeof(ldNode) ); sp - > id = id; ip -> next = NULL; {{U}} (7) {{/U}} } } print(MarkNode * rap) { ldNode *ip, *ip0; if (mp) { print ( mp -> left); printf(" %6d: /t" ,mp -> mark); ip = mp -> head; while(ip) { printf(" %6d" ,ip -> id); ip0 =ip; ip = ip -> next; free (ip0); } printf(" /n" ); printf( mp -> right); free(mp); } }
进入题库练习
问答题阅读下列说明和Java代码,回答下列问题。[说明]在超市销售管理系统中通常需要根据顾客需求打印购物小票,在购物小票中体现所购买的物品名称、数量、单价及总价等信息,以及购物时间、收银员号码等基本信息。而且有的需要打印票据的头信息(如欢迎辞等),有的需要打印票据的页脚信息(如促销打折广告提示信息等),有的只需要打印票据的内容。并且这些信息的内容及打印位置也需要根据具体情况而发生变动,相当于是对购物小票的额外装饰了。以上这些功能采用装饰器(Decorator)设计模式来设计,得到的类图如图7-16所示。以下Java代码可为购物小票动态添加各种抬头和注释信息。[Java代码]importjava.util.*;abstractclasscxlaopiaopublic______=0;;classjutixiaopiao______publicvoidDaYinXiaoPiao()System.out.println("票据正文");;______classczhuangshixiaopiao)______cxiaopiaoxpobj;publicczhuangshixiaopiao(cxiaoplsoobj)xpobj=obj;public______=0;;classheaderxiaopiaoextendsczhuangshixiaopiao)publicheaderxiaopiao(cxiaopiaoobj)extendsczhuangshixiaopiao(obj)publlcvoidDaYinXiaoPiso()System.out.printin("抬头");xpobj.DaYinXiaoPiso();;classfooterxiaopiaoextendsczhuangshixiaopiaopublicfooterxiaopiao(cxiaopiaoobj)extendsczhuangshixiaopiao(obj)publicvoidDaYinXlaoPiao()xpobj.DaYinXiaoPiao();System.out.println("脚注");;publicclassxiaopiaopublicstaticvoidmainStringargs[])czhuangshixiaopiaoxiaopiao=newheaderxiaopiao(newfooterxiaopiao(newcjutixiaopiao));xiaopiao.DaYinXiaoPiao();System.out.println();return0;装饰器(Decorator)模式是一种______型设计模式,其设计意图是:______。
进入题库练习
问答题【说明】某直达列车车票预售系统接受顾客的订票、取票和售票处工作人员的查询业务。1.顾客为了提前订票,可向系统提供个人信息及其预订购的车次及日期,系统根据个人信息是否齐全以及车次是否正确来判断订票单是否合格。对于合格的订票单系统,如果相应的车次有剩余票,则记录顾客个人信息以及订票信息,并向顾客提供取票单。2.到了可以取票的时间,顾客向系统提供取票单,在检查单据合格的情况下,系统向顾客提供火车票。3.售票处的工作人员可以利用系统查询各车次车票的售票情况。该直达列车车票预售系统的分层数据流图中部分数据流和文件的组成如下:文件:火车时刻表=车次+开车时间+到站时间+起始站+终点站+上铺票价+下铺票价订票信息表=车次+车票日期+旅客身份证号+座位号+是否领票旅客信息表=旅客身份证号+姓名+性别+联系电话座位表=车次+座位号数据流:订票单=旅客姓名+性别+身份证号+联系电话+车次十车票日期车票=车次+起始站生终点站+开车日期+开车时间+座位号+票价假定顶层图是正确的,“火车时刻表”和“座位表”文件已由其他系统生成。【数据流图】
进入题库练习
问答题[说明]传输门是传输系统中的重要装置。传输门具有Open(打开)、Closed(关闭)、Opening(正在打开)、StayOpen(保持打开)、Closing(~在关闭)5种状态。触发状态的转换事件有click、complete和timeout3种。事件与其相应的状态转换如下图所示。下面的Java程序1与Java程序2分别用两种不同的设计思路对传输门进行状态模拟,请填补代码中的空缺。[Java程序1]publicclassDoor{publicstaticfinalintCLOSED=1;publicstaticfinalintOPENING=2;publicstaticfinalintOPEN=3;publicstaticfinalintCLOSING=4;publicstaticfinalintSTAYOPEN=5;privateintstate=CLOSED;//定义状态变量,用不同整数表示不同状态privatevoidsetState(intstate){this.state=state;}//设置传输门当前状态publicvoidgetState(){//此处代码省略,本方法输出状态字符串//例如,当前状态为CLOSED时,输出字符串为"CLOSED"}publicvoidclick()//发生click事件时进行状态转换{if______setState(OPENING);elseif(______)setState(CLOSING);elseif(______state==OPEN_)setState(STAYOPEN);//发生timeout事件时进行状态转换publicvoidtimeout(){if(state==OPEN)setState(CLOSING);}publicvoidcomplete()//发生complete事件时进行状态转换{if(state==OPENING)setState(OPEN);elseif(state==CLOSING)setState(CLOSED);}publicstaticvoidmain(String[]args){DooraDoor=newDoor();aDoor.getState();aDoor.click();aDoor.getState();aDoor.complete();aDoor.getState();aDoor.click();aDoor.getState();aDoor.click();aDoor.getState();return;}}[Java程序2]publicclassDoor{publicfinalDoorStateCLOSED=newDoorClosed(this);publicfinalDoorStateOPENING=newDoorOpening(this);publicfinalDoorStateOPEN=newDoorOpen(this);publicfinalDoorStateCLOSING=newDoorClosing(this);publicfinalDoorStateSTAYOPEN=newDoorStayOpen(this);privateDoorStatestate=CLOSED;//设置传输门当前状态publicvoidsetState(DoorStatestate){this.state=state;}publicvoidgetState(){//根据当前状态输出对应的状态字符串System.out.println(state.getClass().getName());}publicvoidclick(){______;}//发生click事件时进行状态转换publicvoidtimeout(){______;}//发生timeout事件时进行状态转换publicvoidcomplete(){______;}//发生complete事件时进行状态转换publicstaticvoidmain(String[]args){DooraDoor=newDoor();aDoor.getState();aDoor.click();aDoor.getState();aDoor.complete();aDoor.getState();aDoor.timeout();aDoor.getState();return;}}publicabstractclassDoorState//定义所有状态类的基类{protectedDoordoor;publicDoorState(Doordoor){this.door=door;}publicvoidclick(){}publicvoidcomplete(){}publicvoidtimeout(){}}classDoorClosedextendsDoorState//定义一个基本的Closed状态{publicDoorClosed(Doordoor){super(door);}publicvoidclick(){______;}//该类定义的其余代码省略}//其余代码省略
进入题库练习
问答题8.
进入题库练习
问答题 阅读下列说明和图表,回答问题1到问题3。 [说明] 在多道程序系统中,各个程序之间是并发执行的,共享系统资源。CPU需要在各个运行的程序之间来回地切换,这样的话,要想描述这些多道的并发活动过程就变得很困难。为此,操作系统设计者提出了进程的概念。 进程是具有独立功能的程序关于某个数据集合上的一次动态执行过程,是系统进行资源分配和调度的独立单位。
进入题库练习
问答题【说明】下面是一个Applet程序,其功能是根据给出的小时,分钟和秒数计算相等的秒数,即将1分钟化为60秒,依此类推。要求建立一个时间类,时间参数均作为类的成员变量,并且给出换算时间的方法,也作为这个类的成员函数,可以供外部对象进行调用。同时还需要在输出窗口中显示换算结果,并且将结果写到out3_3.txt文件中,本题给出确定的时间为4小时23分47秒,要求换算成以秒做单位的时间。程序运行结果如图11所示。importjava.io.*;importjava.awt.*;impOrtjava.applet.*;/*<appletcode=ex7_7.classwidth=800height=400></applet>*/publicclassex7_7extendsAPPlet{publicvoidpaint(Graphicsg){intnSum;classmyTime7_7{publicinth;publicintm;publicints;publicintout;publicintcaculateSecond(){{{U}}(1){{/U}};returnout;}}myTime7_7objTime7_7=newmyTime7_7();ObjTime7_7.h=4;ObjTime7_7.m=23;ObjTime7_7.s=47;nSum=objTime7_7.{{U}}(2){{/U}};g.drawString("时:"+objTime7_7.h,20,30);g.drawString("分:"+objTime7_7.m,20,50);g.drawString("秒:"+objTime7_7.s,20,70);g.drawString({{U}}(3){{/U}});try{FileOutputStreamfos7_7=newFileOutputStream("out7_7.txt");BufferedOutputStreambos7_7=newBufferedOutputStream(fos7_7,1024);PrintStreamps7_7=newPrintStream(bos7_7,false);SyStem.setOut(ps7_7);System.out.println({{U}}(4){{/U}});ps7_7.close();}catch(|OExceptionioe){{{U}}(5){{/U}}(ioe);}}}ex7_7.htm|<HTML><HEAD><TITLE>ex7_7</TITLE></HEAD><BODY><appletcode="ex7_7.class"width=800height=400></applet></BODY></HTML>
进入题库练习
问答题对文法G[S]:S→a|∧|(T);T→T,S|S:回答问题1~问题3。 【表】 表4-2 预测分析表 a ∧ ( ) , # S →a →∧ (u)(2)(/u) T (u)(1)(/u) →SN →SN N (u)(3)(/u) →,SN 1. 【问题1】 对文法G进行改写,然后对每个非终结符写出不带回溯的递归子程序。
进入题库练习
问答题从下列的3道试题(试题五至试题七)中任选1道解答,如果解答的试题数超过1道,则题号小的1道解答有效。 试题五(共15 分) 阅读以下说明和C 代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 【说明】 在一个简化的绘图程序中,支持的图形种类有点(point)和圆(circle),在设计过程中采用面向对象思想,认为所有的点和圆都是一种图形(shape),并定义了类型shape_t、point_t和circle_t 分别表示基本图形、点和圆,并且点和圆具有基本图形的所有特征。
进入题库练习
问答题[问题3] 请指出问题2中给出的读者、书目关系模式的主键,以及图书、借还记录和预约登记关系模式的主键和外键。
进入题库练习
问答题[说明]某市人才交流中心为促进当地人力资源的合理配置,加强当地企业与人才的沟通,拟建立人才信息交流网。[需求分析结果]1.每个前来登记的个人需填写《人才入库登记表》,如表2-17所示,并出示相关证件,经工作人员审核后录入个人信息。表2-17人才入库登记表个人编号:_______              登记日期:___年___月___日姓名性别出生日期照片籍贯身份证号毕业院校专业学历证书名称1.编号2.移动电话家庭电话电子邮件求职意向及薪水职位名称最低薪水备注1.2.个人简历及特长  2.每个前来登记的企业需填写《企业信息登记表》,如表2-18所示,并出示相关证明及复印件,经工作人员核实后录入企业信息。  3.个人和企业的基本信息只需在第一次登记时填写,个人编号和企业编号由系统自动生成。个人和企业的基本信息由计算机长期存储,以后个人只需提供个人编号和求职意向信息,企业只需提供企业编号和岗位需求信息。  4.个人的求职意向信息和企业的岗位需求信息在两个工作日内由工作人员录入数据库并发布。  [概念模型设计]  根据需求阶段收集的信息,设计人才、岗位和企业的实体联系图如图2-24所示(不完整)。  表2-18企业信息登记表企业编号:_______               登记日期:__年__月__日企业名称地址企业网址联系人联系电话电子邮件岗位需求职位专业学历薪水备注企业简介  [逻辑结构设计]1.将概念模型设计的实体联系图转换为以下关系模式人才(个人编号,姓名,性别,出生日期,身份证号,毕业院校,专业,学历,证书名称,证书编号,联系电话,电子邮件,个人简历及特长)企业(企业编号,企业名称,联系人,联系电话,地址,企业网址,电子邮件,企业简介)求职意向((2))岗位需求((3))2.由于一个人可能持有多个证书,因此对“人才”关系模式进行优化,得到如下两个新的关系模式人才((4))证书((5))根据上述的设计过程,回答以下问题。1.[问题1]在(1)空缺处填入所需的实体、联系及其属性,完成概念模型设计。
进入题库练习
问答题【说明】 (1)流程图描述某大型商店商品销售的数据处理流程。 (2)商店设有若干柜台,同一种商品可能在几个柜台上销售,各柜台每天提供一组日销售数据,其格式如下: 日期、柜台号、商品代码、销售数量、商品代码、销售数量…… (3)数据处理系统每日产生一份反映各柜台当日销售金额和商店日销售金额的“日销售金额报告”,必要时还产生一份“商品请购报告”,给出那些低于最低库存量的商品代码、商品名称、最低库存量和实际库存量。处理过程中产生存档的“日销售文件”和临时工作文件“日销售量文件”和“旧销售金额文件”。 (4)系统中所用到的数据均来自数据文件。 (5)流程图中的商品库存文件的记录已按关键字“商品代码”排序。1.【问题1】 ①指出商品库存文件的记录中必须包括哪些数据项? ②分别指出在日销售文件,日销售量文件和日销售金额文件的记录中至少应包括哪些数据项,同时不产生数据冗余? ③错误清单可能指出哪些错误?
进入题库练习
问答题【说明】软件设计师东方飞龙利用UML设计了一个迷你小型复数类,其类图如图13-11所示。【代码13-l】/*___________________________________*//*********文件MiniComplex.h*********//*___________________________________*/#include<iostream>usingnamespacestd;classMiniComplex{{{U}}(1){{/U}}://重载流插入和提取运算符{{U}}(2){{/U}}ostreamisObject>>complex.realPart>>ch>>complex.imagPart>>ch;returnisObject;}MiniComplex(doublereal=0,doubleimag=0);//构造函数MiniComplexoperator+(constMiniComplex/*_______________________________________________________*//*********文件MiniComplex.cpp**********//*_______________________________________________________*/#include"MiniComplex.h"boolMiniComplex::operator==(constMiniComplex}MiniComplex::MiniComplex(doublereal,doubleimag){realPart=real;imagPart=imag!}MiniComplexMiniComplex::operator+(constMiniComplextemp.realPart=realPart+otherComplex.realPart;temp.imagPart=imagPart+otherComplex.imagPart;returntemp;}MiniComplexMiniComplex::operator--(constMiniComplextemp.realPart=realPart-otherComplex.realPart;temp.imagPart=imagPart-otherCompler.imagPart;returntemp;}MiniComplexMiniComplex::operator*(constMiniComplextempimagPart=(realPart*otherComplex.imagPart)+(imag-Part*otherComplex.realPart);returntemp,}MiniComplexMiniComplex::operator/(constMiniComplexfloattt;tt=1/(otherComplex.realPart*otherComplex.realPart+otherComplex.imagPart*otherComplex.imagPart);temp.realPart=((realPart*otherComplex.realPart)+(imagPart*otherComplex.imagPart))*tt;temp.imagPart=((imagPart*otherComplex.realPart)-(realPart*otherComplex.imagPart))*tt;returntemp;}/*__________________________________________________*//********主函数所在文件main.cpp********//*_________________________________________________*/#include<iostream>#include"{{U}}(5){{/U}}"usingnamespacestd;intmain(void){MiniComplexnum1(23,34),num2;cin>>num2;cout<<"InitialValueofNuml="<<num1<<"/nInitialValueofNum2="<<num2<<end1;cout<<num1<<"+"<<num2<<"="<<num1+num2<<end1;//使用重载的加号运算符cout<<num1<<"-"<<num2<<"="<<num1-num2<<end1;//使用重载的减号运算符cout<<num1<<"*"<<num2<<"-"<<num1*num2<<end1;//使用重载的乘号运算符cout<<num1<<"/"<<num2<<"="<<num1/num2<<end1;//使用重载的除号运算符return0;}
进入题库练习
问答题[问题3]将数据流图4-3(加工4的细化图)中的数据流补充完整,并指明加工名称、数据流的方向(输入/输出)和数据流名称。
进入题库练习
问答题阅读下列说明和E-R图,回答问题1~3。【说明】设有关于银行借贷管理系统的E-R图(如图4所示)。图中矩形表示实体,圆表示属性,双圆表示关键字属性,菱形表示实体间的联系。为了答题的方便,图中的实体和属性同时给出了中英文说明,回答问题时只需写出英文名即可。
进入题库练习
问答题【说明】下面是一个Applet程序,其功能是建立一个图形用户界面的窗口,包括一个文本显示区和一个按钮,点击按钮,可以在文本区已有的文本基础上追加显示10条"WelcometoChina"信息,并且文本区由滚动条控制文本的上下滚动。程序运行结果如图4所示。importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;/*<appletcode="ex5_6.class"width=800height=400></applet>*/publicclassex5_6extendsJAppletJButtonjb=newJButton("AddText");JTextPanejtp=newJTextPane();publicvoidinit()jb.addActionListener(newActionListener())publicvoidactionPerformed(ActionEvente)for(inti=1;i<10;i++)(1)+"WelcometoChina!/n";;Containercp=(2);cp.add(newJScrollPane(jtp));cp.add((3));publicstaticvoidmain(String[]args)ex5_6obj5_6=newex5_6();Stringstr=obj5_6.getClass().toString();if(str.indexOf("class")!=-1)str=str.Substring(6);JFramefrm=newJFrame(str);frm.addWindowListener(new(4)publicvoidwindowClosing(WindowEventwe)System.exit(0););(5).add(ex5_6);frm.setSize(300,400);frm.setVisble(true);ex5_6.htm|<HTML><HEAD><TITLE>ex5_6</TITLE></HEAD><BODY><appletcode="ex5_6.class"Width=800height=400></applet></BODY></HTML>
进入题库练习
问答题[说明]职工信息管理系统是用于对职工相关信息进行检索、统计、工资管理、内部调动管理等的系统。利用该系统,人事科可以对本单位职工信息进行管理,根据不同命令对信息进行增、删、改、内部调动,打印人事表格,进行统计、检索。人事科输入的系统命令需要合法性检查才能被接受、处理。系统命令包括档案维护、数据检索、统计报表、打印命令、代码维护。人事科的输入信息包括个人资料、检索选项、统计选项、代码资料、新增档案字段、档案修改资料等条目。完整的个人资料应包括职工的档案编号、姓名、工作单位、性别、出生日期、技术职称以及学历。通过系统授权,用户可以进行对职工信息数据进行查询检索,检索的条件可以是姓名、工作单位、,性别、技术职称等组合。通过系统授权,超级用户还可以对职工档案进行维护。当超级用户需要对档案进行维护时,输入档案维护命令,得到合法性确认后,可以对系统数据库档案信息进行维护,否则将拒绝执行。档案维护操作可以是增加档案、修改档案、删除档案、增加档案字段中的任何一种操作。档案维护成功后要及时更新职工信息数据文件,保存维护结果。职工管理信息系统的顶层图如图12-1所示;职工管理信息系统的第0层DFD图如图12-2所示,其中,加工3的细化图如图12-3所示,加工3.2的细化图如图12-4所示。[数据流图12-1][数据流图12-2][数据流图12-3][数据流图12-4]1.[问题1]数据流图12-2缺少了两条数据流,请采用说明中的词汇给出此数据流名称,并指出方向。
进入题库练习
问答题[说明]图3-1描述某超市销售数据的部分处理流程。超市中有若干台收款机和若干名收款员。这里,我们把一个收款员开始使用一台收款机到离开这台收款机称为该收款员的一次作业。作业开始时,收款员先在收款机上输入收款员号和作业前金额。作业前金额是为了销售时的找零而在作业前预先放入钱柜的金额数。作业结束时,收款员要打开钱柜,取走全部现金,并把这些现金的金额数(称为作业后金额)输入收款机。当作业前金额+本次作业售货总金额-本次作业退货总金额≠作业后金额时,表示这次作业存在金额差错。本流程图已作简化,并作以下假定;该超市只有现金交易(不用信用卡和礼券);一个收款员因某种原因(如吃饭)在一天中可以有多个作业;销售方式只有售货和退货两种。整个超市分成若干部门(如食品部、服装部),系统按部门统计一个月中各类货物的销售数量和金额,最后根据月销售计划文件分析各部门完成销售计划的情况。系统还统计每个收款员的差错情况和退货情况。图中处理4和处理8每月的最后一天执行一次(营业结束后),其他处理每天执行一次。图中部分数据、文件的记录格式如下:日销售数据:收款机号+收款员号+作业前金额+(售货标记|退货标记)+货号+数量+单价+金额+作业后金额日销售文件记录:(作业开始标记+收款机号+收款员号+作业前金额)|((售货标记|退货标记)+货号+数量+金额)|(作业结束标记+收款机号+收款员号+作业后金额)部门目销售文件记录:部门号+(售货标记|退货标记)+货号+数量+金额部门月销售计划文件记录:部门号+月计划金额收款员差错月报:月份+收款员号+差错作业数+差错总金额收款员退货月报:月份+收款员号+退货次数+退货总金额其中w表示w重复出现多次;a|b表示a或b;a+b表示a与b。[图3-1]
进入题库练习
阅读下列说明和数据流图,回答问题1至问题3。[说明]图书管理系统旨在用计算机对图书进行管理,包括图书的购入、借阅、归还以及注销。管理人员可以查询某位读者、某种图书的借阅情况,还可以对当前图书借阅情况进行一些统计,给出统计表格,以便掌握图书的流通情况。系统要实现以下四方面的功能:购入新书、读者借书、读者还书以及图书注销。(1)购入新书:需要为该书编制图书卡片,包括分类目录号、图书流水号(要保证每本书都有唯一的流水号,即使同类图书也是如此)、书名、作者、内容摘要、价格和购书日期等信息,写入图书目录文件中。(2)读者借书:填写借书单,包括读者号、欲借图书分类目录号,系统首先检查该读者号是否有效,若无效,则拒绝借书,否则进一步检查该读者所借图书是否超过最大限制数,若已达到最大借阅数,则拒绝借书,否则读者可以借出该书,登记图书分类目录号、图书流水号、读者号和借阅日期等,写回到借书文件中去。(3)读者还书:根据图书流水号,从借书文件中读出和该图书相关的借阅记录,表明还书日期,再写回借书文件中;如果图书逾期未还,则处以相应罚款。(4)图书注销:将一些过时或无保留价值的图书注销,从图书文件中删除相关记录。(5)流通查询:管理员可以对图书流通情况进行查询,包括某位读者、某种图书和全局图书,给出流通情况统计表。以下是经分析得到的数据流图及部分数据字典,有些地方有待填充,假定顶层数据流图是正确的。图1-1是顶层数据流图,图1-2是第0层数据流图,图1-3是第1层数据流图。[图1-1][图1-2][图1-3][数据字典](1)数据流条目图书管理要求=[入库单|借书单|还书单|注销单]入库单=分类目录号+数量+书名+作者+内容摘要+价格+购书日期借书单=读者号+(d)+借阅日期还书单=(e)+还书日期(2)文件说明文件名:目录文件组成:分类目录号+书名+作者+内容摘要+价格+入库日期+总数+库存数+(f)
进入题库练习