计算机类
公务员类
工程类
语言类
金融会计类
计算机类
医学类
研究生类
专业技术资格
职业技能资格
学历类
党建思政类
计算机软件水平考试
全国计算机应用水平考试(NIT)
计算机软件水平考试
计算机等级考试(NCRE)
全国高校计算机等级考试CCT
行业认证
信息素养
软件设计师(中级)
信息系统项目管理师(高级)
系统分析师(高级)
系统架构设计师(高级)
网络规划设计师(高级)
系统规划与管理师(高级)
软件评测师(中级)
软件设计师(中级)
网络工程师(中级)
多媒体应用设计师(中级)
嵌入式系统设计师(中级)
电子商务设计师(中级)
系统集成项目管理工程师(中级)
信息系统监理师(中级)
信息安全工程师(中级)
数据库系统工程师(中级)
信息系统管理工程师(中级)
软件过程能力评估师(中级)
计算机辅助设计师(中级)
计算机硬件工程师(中级)
信息技术支持工程师(中级)
程序员(初级)
网络管理员(初级)
信息处理技术员(初级)
电子商务技术员(初级)
信息系统运行管理员(初级)
网页制作员(初级)
多媒体应用制作技术员(初级)
PMP项目管理员资格认证
问答题【说明】 “背包问题”的基本描述是:有一个背包,能盛放的物品总重量为S,设有N件物品,其重量分别为w1,w2,…,wn。希望从N件物品中选择若干件物品,所选物品的重量之和恰能放入该背包,即所选物品的重量之和等于S。 如下程序均能求得“背包问题”的一组解,其中程序1是“背包问题”的递归解法,而程序2是“背包问题”的非递归解法。 【程序1】 #include<stdio.h> #define N 7 #define S 15 int w[N+1]={0,1,4,3,4,5,2,7}; int knap(int s, int n) { if(s==0) return 1; if(s<0 || (s>0 if({{U}} (1) {{/U}}){/*考虑物品n被选择的情况*/ printf("%4d",w[n]); return 1; } return {{U}}(2) {{/U}};/*考虑不选择物品n的情况*/ } main() { if(knap(S,N))printf("OK!/n"); else printf("N0!/n"); } 【程序2】 #include<stdio.h> #define N 7 #define S 15 typedef struct{ int s; int n; int job; }KNAPTP; int w[N+1]={0,1,4,3,4,5,2,7}; int knap(int s, int n); main() { if(knap(S,N)) printf("0K!/n"); else printf("N0!/n"); } int knap(int s, int n) { KNAPTP stack[100],x; int top, k, rep; x.s=s;x.n=n; x.job=0; top=1; stack[top]=x; k=0; while({{U}} (3) {{/U}}){ x=stack[top]; rep=1; while(!k /*已求得一组解*/ else if(x.s<0 || x.n<=0) rep=0; else{ x.s={{U}} (4) {{/U}}; x.job=1; {{U}} (5) {{/U}}=x; } }/*while*/ if(!k){ rep=1; while(top>=1 if(x.job==1){ x.s +=w[x.n+1]; x.job=2; stack[++top]=x; {{U}}(6) {{/U}}; }/*if*/ }/*while*/ }/*if*/ /*while*/ if(k){ /*输出一组解*/ while(top>=1){ x=stack[top--]; if(x.job==1)printf("%4d/t",w[x.n+1]); } } return k; }
进入题库练习
问答题【程序说明】 下列文法可用来描述化学分子式的书写规则(例如,A12(C03)、Cu(OH)2): λ→β|βλ β→δ|δn δ→ξ|ξθλ 其中,λ是一个分子式;δ或是一个元素,或是一个带括号的(子)分子式,元素或是一个大写字母(记为ξ),或是一个大写字母和一个小写字母(记为ξθ);β或是一个δ,或是在δ之后接上一个整数n,δn表示β有n个δ的元素或(子)分子式。一个完整的分子式由若干个β组成。 当然一个正确的分子式除符合上述文法规则外,还应满足分子式本身的语义要求。下面的程序输入分子式,按上述文法分析分子式,并计算出该分子式的分子量。例如,元素H的原子量是1,元素O的原子量是16。输入分子式H2O,程序计算出它的分子量为重18(1×2+16)。程序中各元素的名及它的原子量从文件atom.dat中读入。 【程序】 #include <stdio.h> #include <string.h> #define MAXN 300 #define CMLEN 30 struct elem{ char name[3];/*元素名*/ double v; /*原子量*/ }nTbl[MAXN]; char cmStr[CMLEN], *pos; int c; FILE *fp; double factor(); double atom() /*处理文法符号δ*/ { char w[3]; int i; double num; while((c = *pos++)=="|| c=='/t'); /* 略过空白字符 */ if(c=='/n') return 0.0; if(c>='A' c=*pos++; if(c>='a' else pos--; w[++i]='/0'; for(i=0; nTbl[i].v>0.0; i++) if(strcmp(w, nTbl[i].name)==0) return nTbl[i].v; printf("/n 元素表中没有所输入的元素: /t%s/n",w); return -1.0; } else if(c=='('){ if((num ={{U}} (1) {{/U}}<0.0)return -1.0; /* 包括可能为空的情况 */ if(*pos++ !=')'){ printf(" 分子式中括号不匹配!/n"); return -1.0; } return num; } printf("分子式中存在非法字符: /t%c/n",c); return -1.0; } double mAtom() /* 处理文法符号β*/ { double num; int n=1; if((num = {{U}}(2) {{/U}})<0.0) return -1.0; c = *pos++; if(c>='0' while(c>='0' c=*pos++; } } pos--; return num *n; } double factor() /* 处理文法符号λ */ { double num=0.0, d; if((num=mAtom())<0.0) return -1.0; while(*pos>='A' } return num; } void main() { char fname[]="atom.dat"; /*元素名及其原子量文件*/ int i; double num; if((fp=fopen(fname, "r"))==NULL){/* 以读方式打开正文文件*/ printf("Can not open %s file./n", fname); return;/* 程序非正常结束 */ } i=0; while(i<MAXN fclose(fp); nTbl[i].v=-1.0; while(I){ /* 输入分子式和计算分子量循环,直至输入空行结束*/ printf ("/n 输入分子式!(空行结束)/n"); gets(cmStr); pos=cmStr; if(cmStr[0]=='/0')break; if((num=factor())>0.0) if (*pos != '/0')printf("分子式不完整!/n"); else printf(" 分子式的分子量为 %f/n", num); } }
进入题库练习
问答题阅读以下说明和图,根据要求回答问题。[说明]某大学欲开发一个基于Web的课程注册系统,该系统的主要功能如下:1.验证输入信息(1)检查学生信息:检查学生输入的所有注册所需信息。如果信息不合法,返回学生信息不合法提示;如果合法,输出合法学生信息。(2)检查学位考试结果:检查学生提供的学位考试结果。如果不合法,返回学位考试结果不合法提示;如果合法,检查该学生注册资格。(3)检查学生注册资格:根据合法学生信息和合法学位考试结果,检查该学生对欲选课程的注册资格。如果无资格,返回无注册资格提示;如果有注册资格,则输出注册学生信息(包含选课学生标识)和欲注册课程信息。2.处理注册申请(1)存储注册信息:将注册学生信息记录在学生库。(2)存储所注册课程:将选课学生标识与欲注册课程进行关联,然后存入课程库。(3)发送注册通知:从学生库中读取注册学生信息,从课程库中读取所注册课程信息,给学生发送接受提示;给教务人员发送所注册课程信息和已注册学生信息。现采用结构化方法对课程注册系统进行分析与设计,获得如图1所示的0层数据流图和图2所示的1层数据流图。图1某课程注册系统0层数据流图图2某课程注册系统1层数据流图
进入题库练习
问答题阅读下列说明和C代码,回答下面问题。[说明]计算一个整数数组a的最长递增子序列长度,对其方法描述如下。假设数组a的长度为n,用数组b的元素b[i]记录以a[i](0≤i<n)为结尾元素的最长递增子序列的长度为max(0≤i<n){b[i]},其中b[i]满足最优子结构,可递归定义为:[C代码]下面是算法的C语言实现。(1)常量和变量说明●a:长度为n的整数数组,求其最长递增子序列。●b:长度为n的数组,b[i]记录以a[i](0≤i<n)为结尾元素的最长递增子序列的长度,其中0≤i<n。●len:最长递增子序列的长度。●ij:循环变量。●temp:临时变量。(2)C程序#jnclude<stdio.h>mtmaxL(int*b,mtn){mtI,temp=0;for(i=0;i<n;i++){(b[i]>temp)temp=b[i]}returntemp;intmain(){intn,a[100],b[100],i,j,len;Scanf("%d",for(i=0;i<n;i++){scanf("%d",}______:for(i=1;i<n;i++){for(j=0,len=0;______;j++){if(______}______;}Printf("len:%d\n",maxL(b,n));Printf("\n");}
进入题库练习
问答题阅读下列说明和C++代码,将应填入空白处的字句写在答题纸的对应栏内。[说明]某公司的组织结构图如图1所示,现采用组合(Composition)模式来构造该公司的组织结构,得到如图2所示的类图。图1某公司的组织结构图图2类图其中Company为抽象类,定义了在组织结构图上添加(Add)和删除(Delete)分公司/办事处或者部门的方法接口。类ConcreteCompany表示具体的分公司或者办事处,分公司或办事处下可以设置不同的部门。类HRDepartment和FinanceDepartment分别表示人力资源部和财务部。[C++代码]#include<iostream>#include<list>#include<string>usingnamespacestd;classCompany{//抽象类protected:stringname;public:Company(stringname){______=name;}______;//增加子公司、办事处或部门______;//删除子公司、办事处或部门};classConcreteCompany:publicCompany{private:list<______>children;//存储子公司、办事处或部门public:ConcreteCompany(stringname):Company(name){}voidAdd(Company*c){______.pushback(c);}voidDelete(Company*c){______.remove(c);}};classHRDepartment:publicCompany{public:HRDepartment(stringname):Company(name){}//其余代码省略};classFinanceDepartment:publicCompany{public:FinanceDepartment(stringname):Company(name){}//其余代码省略};voidmain(){ConcreteCompany*root=newComcreteCompany("北京总公司");root->Add(newHRDepartment("总公司人力资源部"));root->Add(newFinanceDepartment("总公司财务部"));ConcreteCompany*comp=newConcreteCompany("上海分公司");comp->Add(newHRDepartment("上海分公司人力资源部"));comp->Add(newFinanceDepartment("上海分公司财务部"));______;ConcreteCompany*comp1=newConcreteCompany("南京办事处");comp1->Add(newHRDepartment("南京办事处人力资源部"));comp1->Add(newFinanceDepartment("南京办事处财务部"));______;//其余代码省略}
进入题库练习
问答题阅读下列说明和图,回答下面问题。[说明]某公司欲开发招聘系统以提高招聘效率,其主要功能如下。(1)接受申请验证应聘者所提供的自身信息是否完整,是否说明了应聘职位,受理验证合格的申请,给应聘者发送致谢信息。(2)评估应聘者根据部门经理设置的职位要求,审查已经受理的申请;对未被录用的应聘者进行谢绝处理,将未被录用的应聘者信息存入未录用的应聘者表,并给其发送谢绝决策;对录用的应聘者进行职位安排评价,将评价结果存入评价结果表,并给其发送录用决策,发送录用职位和录用者信息给工资系统。现采用结构化方法对招聘系统进行分析与设计,获得如图1所示的顶层数据流图、如图2所示的0层数据流图和如图3所示的1层数据流图。图1顶层数据流图图20层数据流图图31层数据流图
进入题库练习
问答题阅读以下说明和图,回答问题。[说明]某营销企业拟开发一个销售管理系统,其主要功能描述如下。(1)接受客户订单,检查库存货物是否满足订单要求。如果满足,进行供货处理:即修改库存记录文件,给库房开具备货单并且保留客户订单至订单记录文件;否则进行缺货处理:将缺货订录单入缺货记录文件。(2)根据缺货记录文件进行缺货统计,将缺货通知单发给采购部门。(3)根据采购部门提供的进货通知单进行进货处理:即修改库存记录文件,并从缺货记录文件中取出缺货订单进行供货处理。(4)根据保留的客户订单进行销售统计,打印统计报表给经理。现采用结构化方法对销售管理系统进行分析与设计,获得如图4.12所示的顶层数据流图和图4.13所示的0层数据流图。1.使用说明中的词语,给出图4.12的外部实体E1~E4的名称。
进入题库练习
问答题阅读下列说明,回答问题1至问题3。 [说明] 快速排序是一种典型的分治算法。采用快速排序对数组A[P..r]排序的3个步骤如下。 (1)分解:选择一个枢轴(pivot)元素划分数组。将数组A[p..r]划分为两个子数组(可能为空)A[p..g-1]和A[q+1..],使得A[g]大于等于A[p..q-1]中的每个元素,小于A[q+1..r]中的每个元素。q的值在划分过程中计算。 (2)递归求解:通过递归的调用快速排序,对子数组A[p..q-1]和A[q+1..r]分别排序。 (3)合并:快速排序在原地排序,故不需合并操作。 [问题1] 下面是快速排序的伪代码,请填补其中的空缺。伪代码中的主要变量说明如下。 A:待排序数组。 p,r:数组元素下标,从p到r。 q:划分的位置。 x:枢轴元素。 i:整型变量,用于描述数组下标。下标小于或等于i的元素的值小于或等于枢轴元素的值。 j:循环控制变量,表示数组元素下标。 QUICKSORT (A,p, r) if (p<r) q = PARTITION(A,p,r); QUICKSORT(A,p,q-1); QUICKSORT (A,q+1,r); PARTITION (A,p,r) x=A[r]; i=p-1; for(j=p;j≤r-1; j++) if(A[j]≤x) i=i+1; 交换A[i]和A[j] 交换 (1) 和 (2) //注:空(1)和空(2)答案可互换,但两空全部答对方可得分 return (3) [问题2] (1)假设要排序包含n个元素的数组,清给出在各种不同的划分情况下,快速排序的时间复杂度,用0记号。最佳情况为 (4) ,平均情况为 (5) ,最坏情况为 (6) 。 (2)假设要排序的n个元素都具有相同值时,快速排序的运行时间复杂度属于哪种情况? (7) 。(最佳、平均、最坏) [问题3] (1)待排序数组是否能被较均匀地划分对快速排序的性能有重要影响,因此枢轴元素的选取非常重要。有人提出从待排序的数组元素中随机地取出一个元素作为枢轴元素,下面是随机化快速排序划分的伪代码。利用原有的快速排序的划分操作,请填充其中的空缺处。其中,RANDOM(i/j)表示随机取i到j之间的一个数,包括i和j。 RANDOMIZED-PARTITION(A,p,r) i= RANDOM(p,r); 交换 (8) 和 (9) ;//注:空(8)和空(9)答案可互换 return PARTITION(A,p,r); (2)随机化快速排序是否能够消除最坏情况的发生? (10) 。(是或否)
进入题库练习
问答题阅读下列说明和图,回答下面问题。[说明]某公司欲开发招聘系统以提高招聘效率,其主要功能如下:(1)接受申请验证应聘者所提供的自身信息是否完整,是否说明了应聘职位,受理验证合格的申请,给应聘者发送致谢信息。(2)评估应聘者根据部门经理设计的职位要求,审查已经受理的申请;对未被录用的应聘者进行谢绝处理,将未被录用的应聘者信息存入未录用的应聘者表,并给其发送谢绝决策;对录用的应聘者进行职位安排评价,将评价结果存入评价结果表,并给其发送录用决策,发送录用职位和录用者信息给工资系统。现采用结构化方法对招聘系统进行分析和设计,获得如图1所示的顶层数据流图、图2所示0层数据流图和图3所示1层数据流图。图1顶层数据流图图20层数据流图图31层数据流图
进入题库练习
问答题【问题1】根据以上说明设计的实体联系图如图2-1所示,请指出读者与图书、书目与读者、书目与图书之间的联系类型。
进入题库练习
问答题【问题1】 转换图中缺少哪3条数据流?请指明每条数据流的名称、起点和终点。
进入题库练习
问答题阅读下列说明和图,回答下面问题。[说明]某学校开发图书管理系统,以记录图书馆藏书及其借出和归还情况,提供给借阅者借阅图书功能,提供给图书馆管理员管理和定期更新图书表功能。主要功能的具体描述如下。(1)处理借阅。借阅者要借阅图书时,系统必须对其身份(借阅者ID)进行检查。通过与教务处维护的学生数据库、人事处维护的职工数据库中的数据进行比对,以验证借阅者ID是否合法,若合法,则检查借阅者在逾期未还图书表中是否有逾期未还图书,以及罚金表中的罚金是否超过限额。如果没有逾期未还图书并且罚金未超过限额,则允许借阅图书,更新图书表,并将借阅的图书存入借出图书表。借阅者归还所借图书时,先由图书馆管理员检查图书是否缺失或损坏,若是,则对借阅者处以相应罚金并存入罚金表;然后,检查所还图书是否逾期,若是,执行“处理逾期”操作;最后,更新图书表,删除借出图书表中的相应记录。(2)维护图书。图书馆管理员查询图书信息;在新进图书时录入图书信息,存入图书表;在图书丢失或损坏严重时,从图书表中删除该图书记录。(3)处理逾期。系统在每周一统计逾期未还图书,逾期未还的图书按规则计算罚金,并记入罚金表,给有逾期未还图书的借阅者发送提醒消息。借阅者在借阅和归还图书时,若罚金超过限额,管理员收取罚金,并更新罚金表中的罚金额度。现采用结构化方法对该图书管理系统进行分析与设计,获得如图1所示的顶层数据流图和如图2所示的0层数据流图。图1顶层数据流图图20层数据流图
进入题库练习
问答题【问题2】 (1)用SQL定义“职员”关系模式,请在空缺处填入正确的内容。 Create Table职员(职员号CHAR(5){{U}} (a) {{/U}}, 职员姓名 CHAR(8), 月工资 NUMBER(4), 部门号 CHAR(1), 办公室 CHAR(20), 电话 CHAR(8), {{U}} (b) {{/U}} (部门号), CHECK(月工资>=1000 AND 月工资<=8000)); (2)针对人数大于等于2的部门创建视图D_View(Dept,D_num,D_Totals,D_AvgPay),其中,Dept为部门号,D_Num为部门人数,D_Totals为工资总数,D_AvgPay为平均工资,请在空缺处填入正确的内容。 Create View D_View(Dept,D_num,D_Totals,D_AvgPay)As (Select 部门号,{{U}} (c) {{/U}} from 职员 {{U}} (d) {{/U}} count(*)>=2 WHERE 部门号 IS NOT NULL):
进入题库练习
问答题阅读下列说明和Java代码,将应填入(n)处的字句写在对应栏内。[说明]某软件公司现欲开发一款飞机飞行模拟系统,该系统主要模拟不同种类飞机的飞行特征与起飞特征。需要模拟的飞机种类及其特征如表10.5所示。表10.5飞机种类的特性飞机种类起飞特征飞行特征直升机(Helicopter)垂直起飞(VerticalTakeOff)亚音速飞行(SubSonicFly)客机(AirPlane)长距离起飞(LongDistanceTakeOff)亚音速飞行(SubSonicFly)歼击机(Fighter)长距离起飞(LongDistanceTakeOff)超音速飞行(SuperSonicFly)鹞式战斗机(Harrier)垂直起飞(VerticaITakeOff)超音速飞行(SuperSonicFly)为支持将来模拟更多种类的飞机,采用策略设计模式(Strategy)设计的类图如图10.12示。图10.12中,AirCraft为抽象类,描述了抽象的飞机,而类Helicopter、AirPlane、Fighter和Harrier分别描述具体的飞机种类,方法fly()和takeOff()分别表示不同飞机都具有飞行特征和起飞特征类FlyBehavior与TakeOffBehavior为抽象类,分别用于表示抽象的飞行为与起飞行为;类SubSonicFly与SuperSonicFly分别描述亚音速飞行和超音速飞行的行为;类VerticalTakeOff与LongDistanceTakeOff分别描述垂直起飞与长距离起飞的行为。[Java代码]interfaceFlyBehaviorpublicvoidfly();;classSubSonicFlyimplementsFlyBehaviorpublicvoidfly()(System.out.println("亚音速飞行!");;classSuperSonicFlyimplementsFlyBehaviorpublicvoidfly()(System.out.println("超音速飞行!");;interfaceTakeOffBehaviorpublicvoidtakeOff();;classVerticalTakeOffimplementsTakeOffBehaviorpublicvoidtakeOff()(System.out.println("垂直起飞!");;classLongDistanceTakeOffimplementsTakeOffBehaviorpublicvoidtakeOff()System.out.println("长距离起飞!");;abstractclassAirCraftprotected(1);protected(2);publicvoidfly()((3);)publicvoidtakeOff()(4);;classHelicopter(5)AirCraftpublicHelicopter()flyBehavior=new(6);takeOffBehavior=new(7);;//其他代码省略
进入题库练习
问答题【问题3】 将数据流图如图1-11(加工4的细化图)所示中的数据流补充完整,并指明加工名称、数据流的方向(输入/输出)和数据流名称。
进入题库练习
问答题设有部门管理系统,需要对部门信息、部门职工信息、产品的信息和制造商信息进行管理。 已知部门信息(Dept):部门号(DNO)、部门经理(DMan);部门职工信息(worker):职工号(WNo)、职工姓名(WName)、家庭住址(WAdd);产品的信息(Product):产品号(PNO)、产品名(PName)、价格(PPrice)、产品型号(PType);制造商信息(Maker):制造商号(MNO)、制造商名称(MName)、制造商地址(MAdd)。 其中的规则为: Ⅰ.一个职工属于一个部门,一个部门有多个职工; Ⅱ.一个部门可销售多种产品,一种产品可被多个部门销售; Ⅲ.一种产品可被多个制造商生产,一个制造商可生产多种产品。 请针对以上描述,完成下列设计内容: ①构建该部门管理系统的ER图。 ②根据构建的ER图,设计满足3NF的关系模式,并标出每个关系模式的主码和外码。
进入题库练习
问答题阅读下列说明,回答下面问题。[说明]某物流公司为了整合上游供应商与下游客户,缩短物流过程,降低产品库存,需要构建一个信息系统以方便管理其业务运作活动。[需求分析结果](1)物流公司包含若干部门,部门信息包括部门号、部门名称、经理、电话和邮箱。一个部门可以有多名员工处理部门的日常事务,每名员工只能在一个部门工作。每个部门有一名经理,只需负责管理本部门的事务和人员。(2)员工信息包括员工号、姓名、职位、电话号码和工资,其中,职位包括:经理、业务员等。业务员根据托运申请负责安排承运货物事宜,如装货时间、到达时间等。一个业务员可以安排多个托运申请,但一个托运申请只由一个业务员处理。(3)客户信息包括客户号、单位名称、通信地址、所属省份、联系人、联系电话、银行账号,其中,客户号唯一标识客户信息的每一个元组。每当客户要进行货物托运时,先要提出货物托运申请。托运申请信息包括申请号、客户号、货物名称、数量、运费、出发地、目的地。其中,一个申请号对应唯一的一个托运申请;一个客户可以有多个货物托运申请,但一个托运申请对应唯一的一个客户号。[概念模型设计]根据需求阶段收集的信息,设计的实体联系图和关系模式(不完整)如图所示。实体联系图[关系模式设计]部门(部门号,部门名称,经理,电话,邮箱)员工(员工号,姓名,职位,电话号码,工资,(a))客户((b),单位名称,通信地址,所属省份,联系人,联系电话,银行账号)托运申请((c),货物名称,数量,运费,出发地,目的地)安排承运((d),装货时间,到达时间,业务员)
进入题库练习
问答题【问题2】 数据流图1-8中缺少3条数据流,请指出这3条数据流的起点和终点。
进入题库练习
问答题阅读下列说明和图,回答问题1至问题3,将解答填入对应栏内。[说明]希赛公司拟开发一个销售管理系统,其主要功能描述如下:(1)接受客户订单,检查库存货物是否满足订单要求。如果满足,进行供货处理,即修改库存记录文件,给库房开具备货单并且保留客户订单至订单记录文件;否则进行缺货处理,即将缺货订单录入缺货记录文件。(2)根据缺货记录文件进行缺货统计,将缺货通知单发给采购部门。(3)根据采购部门提供的进货通知单进行进货处理,即修改库存记录文件,并从缺货记录文件中取出缺货订单进行供货处理。(4)根据保留的客户订单进行销售统计,打印统计报表给经理。现采用结构化方法对销售管理系统进行分析与设计,获得如图15-17所示的顶层数据流图和如图15-18所示的第0层数据流图。
进入题库练习
问答题阅读下列说明和图,回答下面问题。[说明]某学校开发图书管理系统,以记录图书馆藏图书及其借出和归还情况,提供给借阅者借阅图书功能,提供给图书馆管理员管理和定期更新图书表功能,主要功能的具体描述如下。(1)处理借阅。借阅者要借阅图书时,系统必须对其身份(借阅者ID)进行检查。通过与教务处维护的学生数据库、人事处维护的职工数据库中的数据进行比对,以验证借阅者ID是否合法,若合法,则检查借阅者在逾期未还图书表中是否有逾期未还图书,以及罚金表中的罚金是否超过限额。如果没有逾期未还图书并且罚金未超过限额,则允许借阅图书,更新图书表,并将借阅的图书存入借出图书表,借阅者归还所借图书时,先由图书馆管理员检查图书是否缺失或损坏,若是,则对借阅者处以相应罚金并存入罚金表;然后,检查所还图书是否逾期,若是,执行“处理逾期”操作;最后,更新图书表,删除借出图书表中的相应记录。(2)维护图书。图书馆管理员查询图书信息;在新进图书时录入图书信息,存入图书表;在图书丢失或损坏严重时,从图书表中删除该图书记录。(3)处理逾期。系统在每周一统计逾期未还图书,逾期未还的图书按规则计算罚金,并记入罚金表,并给有逾期未还图书的借阅者发送提醒消息。借阅者在借阅和归还图书时,若罚金超过限额,管理员收取罚金,并更新罚金表中的罚金额度。现采用结构化方法对该图书管理系统进行分析与设计,获得如图1所示的顶层数据流图和图2所示的0层数据流图。图1顶层数据流图图20层数据流图
进入题库练习