问答题
[说明]
学生信息管理系统旨在用微型计算机对全校的学生事务进行管理,其内容包括新生管理、成绩管理、重修管理、毕业资格审定以及随机查询和打印报表等。
教务人员在进入系统时,系统通过注册登录来提供用户的访问权限,系统会检查用户的合法性,如不合法,系统拒绝用户进入,如是合法用户,则根据命令要求类型处理。本系统主要有新生管理、成绩管理、重修处理、资格审定四大功能,分别进行不同的管理。
新生管理首先按照各专业录入新生信息,录入时若录入的信息不完整,则给出提示信息,要求用户录入完整信息;若新生库中已经存在该生信息了,则给出提示信息,保证不重复录入新生信息。在录入阶段,会显示新生库中的记录,可以进行浏览、删除、修改等操作,以便用户录入正确无误的新生信息。录入完毕后,打印编好学号和分好班次的新生名单并将新生记录写入学生信息库。
成绩管理使用一般方法和特殊方法对学生成绩进行管理。分别按照这两种方法进行成绩的录入和计算。成绩处理完毕后,合并到学生成绩库,可以对学生成绩总库进行浏览、修改、删除、插入、查找等操作,同时提供成绩查询功能,可按照学号、姓名、课程号、课程名称、专业班级查询学生成绩,最后打印各种形式的学生成绩单。
重修处理首先对学生重修总体情况进行浏览,可以查询未交费学生重修情况、某个学生重修情况等,打印各种形式的重修单和重修证。另外进行重修交费登记,输入某个重修学生学号,则显示该生相关信息 (姓名、专业等)、重修课程信息、重修总学分、应交金额等,交费登记后,写入重修表和交费表。资格审定主要对毕业生的毕业资格进行审定,计算毕业生的已修学分,审定后填写资格库,显示审定结果,打印毕业生资格表和毕业证书等。
学生信息管理系统顶层图如图10-1所示;学生信息管理系统的第0层DFD图如图10-2所示,其中,加工3的细化图如图10-3所示,加工4的细化图如图10-4所示。
[数据流图 10-1]
[数据流图 10-2]
[数据流图 10-3]
[数据流图 10-4]
[问题1]
(1)数据流图10-2缺少了一条数据流,请给出此数据流的指向,并采用说明中的词汇给出此数据流名。
(2)数据流图10-3缺少一条数据流,请根据说明补充完整。并指出此数据流的起点和终点。
【参考答案】
数据流名称:“非法请求信息”,起点为加工1“检查合法性”,指向外部。
(2)起点:“学生成绩表”,终点:加工3......
(↓↓↓ 点击下方‘点击查看答案’看完整答案、解析 ↓↓↓)
点击查看答案&解析
<上一题
目录
下一题>
热门
试题
问答题
[说明] 以下JAVA程序设计了类CSet,使用同一个名称(set)的method来传入数据。仔细阅读[代码6-1)、[代码6-2]和[代码6-3]和相关注释,将程序补充完整。 [代码6-1] import java.io.*; class CSet private int width; private int height; (1) public void set(String color) col=color;
点击查看答案&解析
问答题
[说明] 假设设A和B均为顺序表,A’和B’分别为A和B中除去最大共同前缀后的子表(例如,A=(x,y,y,z,x,z),B=(x,y,y,z,y,x,x,z),则两者中最大的共同前缀为(x,y,y,z),在两表中除去最大共同前缀后的子表分别为A’=(x,z)和B’=(y,x,x,z)。若A’=B’=空表,则A=B;若A’=空表,而 B’!=空表,或者两者均不为空表,且A’的首先小于B’的首元,则A<B;否则A>B。 下面程序实现了比较A、B大小的算法。 [C程序] #include<stdio.h> #include<stdlib.h> typedef struct linknode int data; struct linknode *next; node: node *creatlist ( ) *建立单链表* node*head, *r, *s; int x; head= (node *) malloc (sizeof (node)); 建立单链表的头结点head* r=head; printf ( 输入系列整数,以O标志结束 n ); scanf ( %d , &x); while (x!=O) *x==O则退出while循环* s=(node*) malloc (sizeof (node)); s->data=x; r->next=s; s->next=NULL; r=s; scanf ( %d , &x); r->next=NULL; s=head; (1) ; Free (s); return head;void subs ( ) node*p, *p1, *p2, *q, *heada, *headb; heada=creatlist ( ) ; headb=creatlist ( ) ; p=heada; p1=p; *p1指向p所指结点的前一个结点,开始时均缀向头结点* while (p!=NULL ) q=headb; while (q!=NULL&&q->data!=p->data) q=q->next; if ( (2) ) if (p==heada) (3) ; p1=heada; else if (p->next==NULL) p1->next=NULL; *该结点为最后一结点,删除* else p1->next=p->next; p2=p->next; (4) ; free (p); (5) ; else *p所指结点的元素不在B中,则直接下移p* p1=p; (6) ; p=heada; *显示删除后的结果* if (p==NULL) printf ( 两集合机减的结果为空 n );else printf ( 两集合相减的结果 n );while (p!=NULL) printf ( %d , p->data); p=p->next;void main ( ) subs ( ) ;
点击查看答案&解析
相关试题
[问题3] 请补齐下列数据字典条目:学生...
[问题3] UML设计中交互图通常可以分为...
[问题2] 数据流图10-4中遗漏了一条...
[问题3] 数据依赖对关系模式有哪些影响...
[说明] 下面代码实现类A、B、C、D的继承...