




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一章系统概述1. 1系统开发背景和意义1.1.1系统开发背景几年前,各个学校的研究生成绩管理基木上都是靠手工进行,随着各个学校的规模 增大,有关研究生成绩管理工作所涉及的数据量越来越大,有的学校不得不靠增加人力、 物力来进行研究生成绩管理.但手工管理具冇效率底、易出错、对学校的管理捉供决策 信息较为困难等缺点。建立一个适用于其它各校的通用高校研究生成绩管理系统是必要 的.该系统面向各部门和全体研究生,实现对研究生成绩情况、学籍情况等的计算机管 理。系统支持研究生查询自己的学籍信息和成绩信息,还可以修改自己的密码,而教师 可以对研究生的学籍信息和成绩信息进行添加、删除和修改等的操作,同时本系统
2、支持 报表的输出打印功能。减少了部门z间工作的屮间环节,提高了跨部门管理的效率。1.1.2项目开发意义现在我国的人中专院校的研究生成绩管理水平普遍不高,冇的还停留在纸介质基础 上,这种管理手段已不能适应时代的发展,因为它浪费了了许多的人力和物力.在当今 信息时代这种传统的管理方法必然被计算机为基础的信息管理系统所代替如果本系统 能被学校所采用,将会改变以前靠手工管理研究生成绩的状况,可以树立良好的办学形 象,提高工作效率。第二章系统需求分析2.1系统功能要求研究生成绩管理系统对学校加强研究生成绩管理冇着极其重要的作用。出于各个人 学都在持续扩招,研究生的数量日益庞大,对于如何管理如此庞大的研究
3、生成绩数据显 得更为复杂,传统的手工成绩管理不仅工作量大,而且容易出现问题,已不能适应时代 的发展。研究生成绩管理系统基于windows 7的开发研制,该软件针对研究生成绩及其数据 特点,设计了系统维护子系统、数据处理子系统、报表打印子系统,这几个子系统包括 了研究生成绩数据管理的主要业务工作,可以全面实现对研究生成绩的输入、查询、排 序、统计和打卬等业务的计算机管理。它能使研究生成绩数据的工作人员从繁重的工作 屮解脱出来,大大减轻了工作量,减少人为的工作失误,全面提高研究生成绩管理的效 率,从而使学校对于研究生成绩的管理水平和技术水平跃上一个新的台阶。适用于各类 大中专院校、中小学校现代化教
4、学的综合管理。2. 2需求分析概述进行需求分析首先是调杳清楚用户的实际要求,与用户达成共识,然后分析与表达 这些需求。调查用户需求的具体步骤如下:1 调查用户情况,包括了解用户所在学校的组成情况,各部门的职责等,为分析信 息流程做准备。2. 调查各部门的业务活动情况。包括了解各个部门和使用什么数据,如何加工处理 这些数据,输出什么信息,输出到什么部门,输出结果的格式是什么,这些是调杳的重 点。3. 在熟悉了业务活动的基础上,协助用户明确对新系统的各种要求,包括信息要求, 处理要求,安全性与完整性要求,这是调查的乂一重点。4. 确定新系统的边界。对前而调查的结呆进行初步分析,确定哪些功能由计算机
5、完成或将来准备让计算机完成,哪些活动由人工完成。2. 3系统数据流图研究生成绩管理系统总体数据流图如图2所示。(1) 学生成绩查询系统的数据流图如图2.2所示。进入成绩讥j询界面丿7.2査洵成绩d5成绩衣图2.2成绩查询数据流图(2) 系别管理数据流程图如图2.3所示。图2.3系统管理数据流图(3) 管理员管理数据流图如图2.4所示。管理员一总4倍見a图2.4管理员数据流图(4) 登陆功能数据流图如图2.5所示。l2选择功能1.3获取信息 zx1.1用八-菇林.4住入系统界面 j丿图2.5登录数据流图2.4数据字典1数据项(1)数据项名:学号简述:作为唯一标识该研究生的主标识符,是主码数据类型
6、:字符串型长度:八位,取值任意(2)数据项名:课程编号简述:用来标识某一课程,是主码数据类型:字符型长度:五位(3)数据项名:系号简述:作为唯一标识该系的主标识符,是主码数据类型:字符型长度:四位(4)数据项名:管理员号简述:作为唯一标识该管理员的主标识符,是主码数据类型:字符型长度:十位(5)数据项名:成绩简述:登记所冇研究生的成绩情况数据类型:数值型长度:十位2数据结构1. 数据结构名称:研究生表简述:记录研究生信息数据结构组成:研究生登记表+登记研究生的相关信息,2. 数据结构名称:系别统计表简述:记录研究生所在系的相关信息数据结构组成:系表+统计各个系的相关信息;3. 数据结构名称:管
7、理员系统表简述:记录管理员相关信息数据结构组成:管理员信息表+记录管理员的相关信息;4. 数据结构名称:研究生成绩表简述:记录研究生成绩的相关信息数据结构组成:成绩信息+记录研究生成绩的相关信息;3数据流1. 数据流名:研究生表來源:研究生管理流向:研究生管理组成:学号+姓名+出生日期+系号+班级号+备注 说明:对所冇研究生的信息进行查询,修改。2. 数据流名:系别统计表来源:系管理流向:系管理组成:系号+系名称说明:对系的信息进行杳询,添加和更改。3. 数据流名:管理员信息表来源:管理员管理流向:管理员管理组成:管理员号+管理员名称说明:对班级信息进行查询,录入和更改。4. 数据流名:研究生
8、成绩表来源:成绩管理流向:成绩管理,成绩查询管理组成:学号+姓名+课程编号+开课学期+成绩 说明:对研究生成绩进行录入和修改。4数据存储数据存储名:研究生信息输入数据:有关研究生的各种信息输出数据:研究生信息表说明:存储研究生的所有相关信息数据存储名:系信息输入数据:有关系的各种信息输出数据:系表说明:存储系的所有相关信息数据存储名:管理员信息输入数据:有关管理员的各种信息输出数据:管理员表说明:存储管理员的所有相关信息数据存储名:成绩信息输入数据:有关成绩的各种信息输出数据:成绩表说明:存储研究生成绩的所有相关信息第三章系统总体设计3.1系统总体设计目标研究生管理信息系统由系统管理、专业管理
9、、课程管理、研究生管理、成绩管理、 用户管理等模块组成,具体如下。系统管理模块可以添加新用户,新建角色,并冃为角色赋予权限。专业管理模块可以浏览、添加、修改、删除专业信息。课程管理模块可以浏览、添加、修改、删除课程信息。研究生管理模块可以浏览、添加、修改、删除研究生基木信息。成绩管理模块可以浏览、添加、修改、删除研究生成绩信息。用户管理模块可以修改密码,重新登录。研究生管理信息系统功能模块结构如图所示:添加新用户修改富碍3. 2系统概念设计3.2. 1概念模型(e-r图)所要实现的功能设计,可能建立它们之间的关系,进而实现逻辑结构功能。研究生成绩 管理系统可以划分的实体有:研究生信息实体、专业
10、信息实体、班级信息实体,成绩记 录信息实体、课程信息实体。如下图3. 2所示为该系统总e-r图:图3. 2 e-r图3.2.2关系模式研究生(学号,姓名,性别,出生日期,班级号);课程(课程编号,课程名,学分,学时,系号);班级(班级号,专业号,系号);系(系号,系名);专业(专业号,专业名称,系号);成绩(学号,课程编号,分数)3. 2. 3数据模型的规范化学号,课程编号学分学号,课程编号班级号学号,课程编号成绩对于学生成绩,因为每个分量都是不可分的数据项,所以它已满足第一范式,又因 为它的主码是学号和课程编号共同决定的,可以决定其他非主屈性,即不存在非主屈性 对码的部分函数依赖,所以它达到
11、了第二范式,同时它不存在非主属性的传递函数依赖, 所以它也达到了第三范式。第四章数据库系统实现4.1系统实现工具简介sql server是一个关系数据库管理系统。它最初是由microsoft sybase和ashton-tate 三家公司共同开发的,于1988年推出了第一个os/2版木。在windows nt推出后, microsoft 与 sybase 在 sql server 的开发上就分道扬®t, microsoft 将 sql server 移植到windows nt系统上,专注于开发推广sql server的windows nt版木。sybase 则较专注于sql serv
12、er在unix操作系统上的应用。sql server 2000是microsoft公司推岀的sql server数据库管理系统,该版本 继承了 sql server 7.0版木的优点,同时又比它增加了许多更先进的功能。具有使用 方便口j伸缩性好与相关软件集成程度高等优点,可跨越从运行microsoft windows 98的 膝上型电脑到运行microsoft windows 2000的大型多处理器的服务器等多种平台使用。sql是英文structured query language的缩写,意思为结构化查询语言。sql语 言的主要功能就是同各种数据库建立联系,进行沟通。按照ansk美国国家标准
13、协会) 的规定,sql被作为关系型数据库管理系统的标准语言。sql语句可以用来执行各种各 样的操作,例如更新数据库中的数据,从数据库中提取数据等。目前,绝人多数流行的 关系型数据库管理系统,如oracle, sybase, microsoft sql server, access等都采 用了 sql语言标准。sql主要包括数拯定义、数拯操纵(包括查询)和数拯控制等三方 而功能。sql是一种非过程化程度很高的语言,用户只需说明干什么而无需具体说明 怎么干语言简洁、使用方便功能强大,集联机交互与嵌入于一体,能适应广泛的使用 环境。4. 2研究生成绩管理系统的实现4. 2.1系统结构设计1 研究生信
14、息表检设计表student".荷冒昱"student"中-“(local)"上<=> 1 回 llbl列名数据类型长度1允许空1>char8snaitiechar8sexchar2nativechar20birthdaysmalldatutima4dnochar6spnochar8classnochar4entimgsmalldatetime4homevar char40telvar char402.课程信息表检 设计表"course",位冒星mstudent-中、“(local)"上丨口 11回3列名数据
15、类型长度允许空char10cnainechar20spnochar8vctnotinyirit1vlecturgtinyirlt1vexperimentti nyint1vsemestertinyirit1vere di ttinyirit1vtnochar8vezjcazis)3班级信息表堆i 设计表"class" r 位置是"student" 口、 "(local)''上列名数据类型1长度允许空1 -?char8classnamechar20spnochar8duochar64系信息表厂.*謳设计表ttsdeptwh stu
16、 de ntn 中."(local)"上丨回4列名数据类型长度允许空丨l'itlumchar8dnamechar205专业信息表i c3 ii b lll尙设计表"speciality" r 位置昱"student" 口、"(local)"上6成绩信息表培 计表"student.course",位置星"student"中、"(local)"上 | coi4.2.2数据库中表之间的关系一般情况卞,数据库中所包含的表都不是独立存在的,而是表与表z间有一
17、定的关系, 称为关联。如果数据库中的信息不能满足正常的依赖关系,就会破坏数据的完整性和一 致性。根拯本实例的特点,需要设置课程信息表、专业信息表、研究生信息表、成绩信息 表和教师信息表之间的关系,如图4. 1所示。设置用户信息表与角色信息表之间的关系, 如图4. 2所示。其中图4. 1中成绩信息表中的学生号与研究生信息表中的学生号关联,研究生信息表中的教师号、专业名称分别与教师信息表中的教师号和专业信息表中的专业名称关 联,专业信息表中的课程名与课程信息表中的课程名关联。侖sql server enterprise ianager - 编辑关系图"课程,专业,学生,成绩.教师关系图乃
18、 > 位置是bast er;gj文件g)窗口址)帮助qp図图寻诙筋电直他 2廻g alb乜埠质叵citame cdate citum iltimecrerrurkteacherinfo_gitidtttametin ilt&me ihermrlstudent info »sid sit&me ssex shwn seirth tib tlt&meavscoreinfo *c rib sih cuame scoreav图4.1数据库关系图图4. 2中用户信息表中的角色名与角色信息表中的角色名关联。图4.2用户角色关系图fcoa student30 as s
19、tudent.couxe 2 tc where jt. sno- sc. sno4. 2. 3查询结果soix*»(d«m已i*® 宣口血歯0 q dft (3 m «*> >/»(j y iw(x if sa di -xp 201791m2240jmsiwjcp 2017(h(w224(m<immv«lof 一优标am0tselicttno. na*e, enosn*.<1sno nane enoscoretel15536874s5s1553687455515865143256竇皂s
20、155342s674515s56382398ws155342s674818902s5m67134236789451332413786913345899654788960518067775865":808080001 李干08220108080001 李干08220208080002黃思云08220308080002貢思云03220408080003 黄茬03220208080005貫三再08220408080006 林恩03220208080007程少华08220308080011号卜剛08220208081001马小刚08220308081004 王磊032201xp-201701
21、w240(eo> xm01701w24<nadft»m>tr«torqooqq 1115 行仃弭 s4. 2. 4程序代码级界面1研究生成绩管理登录界面如图所示:代码如下:include<iostream>#include<string>using namespace std;class tong /public:tong();tong(char n20,char seint ag,int te,int qq);tong();void list();显示void rearchn();void rearcht();void rearc
22、hqo;private:char name20;int age,teiphone,qq;char sex;tong:tong()/strcpy(name, hh);tong:tong(char n20,char se,int ag,int )tong:tong()tong*s50;int i=o;int j=0;char name20j;int age,teiphone,qq;char sex;void tong:set()cout«m请输入姓名:"«endl;cin»name;cout«m 学号 u«endl;j+;sf
23、i=new tong(name,sno);i+;2.删除成绩查询界面如图所示:请输入(选择)要剧除成绩记录的学号与课程号:学号:i3姓名: |课程号: |耳课程名: i成绩: i输入学号与课程号后请按确定按钮:一确定i确认返回i代码如下:application.initialize;/应用程序初始化inputs(uenter no:",info->no,l 1); /* 输入学号并校验*/ if(info->no0=,t) break; /*如果于号首字符为则结束输入*/ inputs("enter name:",info->name,15);
24、/*输入姓名,并进彳亍校验*/ printf("please input %d score n",n); /*提示开始输入成绩*/ s=0;/*计算每个学生的总分,初值为0*/for(i=0;i<n;i+) /*n 门课程循坏 n 次*/doprintf("score%d:",i+l); /* 提示输入课程 */ scanf("%d",&info->scorei); /* 输入成绩 */if(info->scorei>100llinfo->scorei<0) /*确保成绩在 0-100 之间
25、*/ printf(nbad data,repeat inputn"); /*出错提示信息*/ while(info->scorei>100llinfo->scorei<0); s=s+info->scorei; /*累加各门课程成绩*/info->sum=s; /* 将总分保存 */ info->average=(float)s/n; /*求出平均值*/ info->ordcr=0; /*未排序前此值为0*/ info->next=h; /*将头结点做为新输入结点的丿匸继结点*/h=info; /*新输入结点为新的头结点*/re
26、turn(h); /*返回头指针*/void inputs(char *prompt, char *s, int count)charp255;doprintf(prompt); /*显示提示信息*/ scanf(n%sh,p); /*输入字符串 */ if(strlen(p)>count)printf("n too long! n"); /*进行长度校验,超过 count ffi重输入*/ while(strlen(p)>count);)student *dclctc(student *h)student *p,*q; /和为查找到要删除的结点指针,q为其前驱
27、指针*/char sll;/* 存放学号 */system("cls");/* 清屏*/printf(nplease deleted nonh);/*显示提示信息*/scanf(” s”,s); /*输入要删除记录的学号*/ q=p=h; /*给q和p赋初值头指针*/ while(strcmp(p->no,s)&&p!=null) /*当记录的学号不是要找的,或指针不为空时*/ q=p;/*将p指针值赋给q作为p的前驱指针*/p=p->next;/*将p指针指向下一条记录*/if(p=null) /*如果p为空,说明链表屮没有该结点*/print
28、f(hnlist no %s studentn's);else /*p不为空,显示找到的记录信息*/printf("lno 丨 name i sell sc2l sc3l sum i ave lorderkn11);printf(hlln“);printfc'l%-1 osl%-15sl%4dl%4dl%4dl %4.2f i %4.2f i %3d ln°, p->no,p->name,p->scorc0,p->scorc 1 ,p->score2,p->sum, p->a verage,p->order);
29、亡 f i (上上 上 上 上 上上 上 上 上 士 上1上上上 f v1 1吓>3 修改学生成绩界而如图所示:代码如下:void search(student *h)student *p; /* 移动指针*/chars15;八存放姓名的字符数组*/system("cls"); /* 清屏幕 */printf("please enter name for searchn");scanf(”s”,s); /* 输入姓名 */p=h;严将头指针赋给p*/while(strcmp(p->name,s)&&p!=null) /*当记录
30、的姓名不是要找的,或指针不为空吋*/ p=p->next; /*移动指针,指向下一结点*/if(p=null)/*如果指纟i"为空*/printf("nlist no %s studentn",s); /*显示没有该学生*/else/*显示找到的记录信息*/ff if 9 9 9 sv 心 9心 2 心 sv 9 2 心 sv 心 2 心 9 9 9 心 sv 9 2 心 9 2 1/1 心 2 心2 vv 心 sv y vp 心 sv 2 2 心 sp 心2 2 心9心 sv y11 namej门nri11(yn不不半苓苓半木*苓半苓不不半苓半不半苓不苓半
31、苓不苓半不不h”v(、toi门(有木半木齐木半苓齐木半苓卞木半苓半不卞木半木下不半苓半门iprintf(nlno i name i sell sc2l sc3l sum i ave lorderliim); printf(hl1|-i.|_|11-lnh);printf(nl%-1 osl%-15sl%4dl%4dl%4dl %4.2f i %4.2f i %3d ln“,p->no, p->name,p->scorer()l,p->scorel,p->scoref21,p->sum9p->average,p->order); / i.i (、i
32、t * frj ejw rjw*prj>rp rjw *p rjwrj* rjw r| 4rj%rj rj*rj* r|rjw rj%rj%r|wrj* r|rjw rjw rj% 1 student *insert(student *h) student *p,*q,*info;/*p指向插入位置,q是其前x, info指新插入记录*/ char sll; /*保存插入点位置的学号*/int sl,i;printfc'plcasc enter location before the nonu);scanf("%s",s); /*输入插入点学号*/ print
33、f("nplease new recordnn);/*提示输入记录信息*/info=(student *)malloc(sizeof(student); /*屮请空间*/ if(!info) printf("nout of memory"); /*如没有中请到,内存溢出*/return null;/*返回空指针*/ inputs("enter no:°,info->no,l 1); /*输入学号*/ inputs("enter name:",info->name,15); /*输入姓名*/ printf(uple
34、ase input %d score n",n); /*提示输入分数*/ sl=0;严保存新记录的总分,初值为0*/ for(i=0;i<n;i+) /*n门课程循环n次输入成绩*/ do/*对数据进行验证,保证在0100之间*/printf("score%d:',i+l);scanf("%d",&info->scorei); if(info->scorci>100llinfo->scorci<0) printf("bad data,repeat inputn");while(inf
35、o->scoreij>100llinfo->scoreli<0);sl=sl +info->scorei; /* 计算总分 */ info->sum=sl; /*将总分存入新记录中*/ info->average=(float)s 1/n; /*计算均分*/ info->order=0; /*名次赋值 0*/ info->next=null;/*设后继指针为空*/p=p->next;/*将指针p后移*/if(p=null) /*如果p指针为空,说明没有指定结点*/ if(p=h) /*同吋p等于h,说明链表为空*printf(unlo
36、ading file!n");inputs(menter no:u,info->no,l 1); /*调川 inputs 输入学号*/ inputs("enter name:",info->name,15); /*调用 inputs 输入姓名 */ printfc'plcasc input %d score n",n); /*提示输入成绩*/ sl=0;for(i=0;i<n;i+)do printf(mscore%d:",i+1);scanf("%d",&info->scorei);
37、 /*输入成绩*/ if(infd->scorei>100llinfo->scorei<0)printf("bad data,repeat inputn");while(info->scorei>100llinfo->scorei<0); /* 成绩数据验证 */s 1 =s 1 +info->scoreij;/* 求总分 */end;4杳询学生信息如图所示:查询方式选择:全部学生数据浏览表格:代码如下:void tong:rearcht()int n;if(i=0)cout«h管理系统中没有输入数据! “vv
38、endl;cout«n请输入你要查询的学生的电话” vvendl; cin»n;for(int j=o;j<i;j+)if(s j ->telphone=n)cout«h您要杳询的学生是:”vvsj>namevvendl; break;/else cout«m对不起!您要查询的学生不存在!u«endl;if(i =j)cout«h对不起!您要查询的学牛:不存在!u«endl;void tong:rcarchq()int n;if(i=0)cout«h管理系统中没冇输入数据! “vvcikil;ci
39、n»n;for(int j=o;jvi;j+)cout«u您要杏询的学生是:” vvsj卜namevvcndl;/ elseif(i =j)coutvv”对不起!您要查询的学生不存在!u«endl;void caozuo(int p)tong t;switch(p)case o:t.set();break;case 1:t.set();break;case 2:t.delete();break;case 3:t.alter();break;case 4:t.list();brcak;case 5: t. rearchn(); break;case 6:t.rearcht();break;case 7:t.rearchq();break;case 8:exit();break;5. 查询学生成绩信息如图所示:xl代码如下:#include<iostream> #include<string>/控制了符串的头文件 using name
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 购销白菜种子合同协议
- 贴墙砖手工合同协议
- 解除试用期劳动合同协议
- 设备合伙购买合同协议
- 解除艺人合作协议书范本
- 2025年大学物理复习目标试题及答案
- 2025年跨文化管理能力评估试卷及答案
- 2025年科学技术创新人才选拔考试题及答案
- 2017年全国高中数学联合竞赛竞赛加试(B卷)答案
- 29届化学初赛试题及答案
- T-COFA 0021-2022 渔用油电混合多旋翼无人机安全检查和维 护保养要求
- 2025届河北省“五个一”名校联盟高三下学期4月联考化学试题(含答案)
- 山东省泰安市2025届高三二轮模拟检测考试政治(泰安二模)(含答案)
- 2025年教师资格证面试结构化模拟题:教师心理健康维护试题集
- 2025届江苏省南京一中高三第二次模拟考试物理试卷含解析
- 初中语文第16课《有为有不为》课件-2024-2025学年统编版语文七年级下册
- 2025年内蒙古化工职业学院单招职业技能考试题库必考题
- 2024-2025下学期高二化学鲁科版期中必刷题之化学键与物质的性质
- 鼻肠管的应用及护理课件
- 分娩镇痛技术与管理规范
- 2025修订版《保障中小企业款项支付条例》解读学习课件
评论
0/150
提交评论