教务管理系统.docx
《教务管理系统.docx》由会员分享,可在线阅读,更多相关《教务管理系统.docx(24页珍藏版)》请在冰豆网上搜索。
教务管理系统
信息系统分析设计与管理期末课程设计
班级:
15信息管理与信息系统
指导老师:
黄梅
完成日期:
17.12.25
教务管理信息系统
第1章系统开发的目的和意义
1.1现行系统的现状和存在的问题
1.2系统开发的目的
1.3系统开发的意义
第2章系统分析
2.1可行性分析
2.2业务流程调查和分析
2.3数据流图
2.4数据字典
2.5E-R图
第3章系统设计
3.1系统总体布局
3.2软件总体布局
3.3数据库设计
3.4用户界面设计
一、系统开发的目的和意义
1.1现行系统的现状和存在的问题
现行系统过于简单,而且BUG较多,并且缺少很多实用的功能。
列如:
在某些情况下无法返回到上一个界面。
网站经常报错无响应。
无法实现成绩的排序。
选课系统经常爆掉,并且存在漏洞,在某些情况下不提示选课冲突的提示。
以下是之前的教务管理信息系统
1.2系统开发的目的
本系统是将现代化的计算机技术和传统的教学、教务工作相结合,按照学院的工作流程设计完成的。
为了使系统在学院的管理中发挥更大的作用,实现工作过程的计算机化,提高工作效率和工作质量,现提出如下的系统开发目的:
a.系统应具有实用性、可靠性和适用性,同时注意到先进性。
b.对各个数据库进行动态管理,防止混乱。
c.能够按照用户选择的不同的条件进行简单查询和复合查询。
d.能够对查询结果进行分类汇总,实现报表打印。
e.注意数据的安全性,具有数据备份和恢复的功能。
f.方便用户的操作,尽量减少用户的操作
1.3系统开发的意义
学生信息管理是学校管理中异常重要的一个环节,作为学校,除了育人,就是育知,学生信息管理的计算机化是整个学校教务管理中的重要一部分,能否实现这一步关系到学校办学整体效率的高低,介与它的重要性,学生信息管理系统的开发与应用就逐渐提入议程,并占着越来越重要的份量。
运用学生信息管理系统可以减轻学院教学人员的工作量,缩小开支,提高工作效率与准确率,能够合理安排时间,能够尽快的知道自己的考试成绩,投入新的课程的学习或复习这次没有考过的课程。
而学生信息管理系统的应用也为今天的民办教育在未来市场的竞争力有所提高。
在现代,高科技的飞跃发展,人们工作习惯的改变,特别是电脑的大量普及,人们生活节奏越来越快,怎样提高工作效率是人们首先考虑的问题。
学生信息管理是非常繁琐与复杂的一项工作,一个原因就是工作量大,不好管。
对于一个学校而言,更应该运用一些本地资源,提高管理的力度,对学生负责,对国家负责。
一、
二、系统分析
2.1可行性分析
2.1.1技术可行性
系统现阶段的发展过程中,利用现有人力和物力是完全具备的能力开发出来的,作为阶段性产品,日后的发展空间很大,实现方法逐步简单容易,所以学生管理系统是技术上是完全可行的
2.1.2 经济可行性
现在,计算机的价格已经十分低廉,性能却有了长足的进步。
而本系统的开发,为学校的工作效率带来了一个质的飞跃,为此主要表现有以下几个方面:
a.本系统的运行可以代替人工进行许多繁杂的劳动;
b.本系统的运行可以节省许多资源;
c.本系统的运行可以大大的提高学校的工作效率;
d.本系统可以使敏感文档更加安全,等等。
所以,本系统在经济上是可行的。
2.1.3 操作可行性
本系统为一个小型的学生信息管理系统,所耗费的资源非常的小,学校的电脑无论是硬件还是软件都能够满足条件,因此,本系统在运行上是可行的。
2.2业务流程调查和分析
2.2.1业务流程调查:
通过对学生信息管理系统的了解,该业务主要是以学生信息为主,并且与教师,系办相互连接,构成一个完整的学生信息系统。
2.2.2业务流程分析:
通过对学生信息管理系统的规划和设计,可以清晰的了解到:
学生档案管理:
记录了学生信息的基本情况,学号,姓名,年龄,性别等基本信息,方便管理学生。
班级管理:
多个学生组成1个班级,班级管理制定了相关班级管理制度,日常交流活动,方便学生互相交流,同时也能够使学校通过班级了解到每个学生的动态。
成绩管理:
成绩管理分为每一科目成绩,包括课堂考勤,平时作业,期末考试,各大竞赛,综合而得到学生成绩管理,促进学生互相学习和交流。
教务管理:
科学合理的安排学生和老师的课程表,编制学生学年计划,和老师教学计划,使两者相辅相成。
选课管理:
学生选修的课程不能和正常课程产生冲突,同时每门选课的人数有一个上限值,保准每位学生能选到课程,并且该课程不能超过预计选修的最大上限。
缴费管理:
学生支付信息要与财务信息相互吻合,学生缴完费用,要提示相关支付信息,对于没有交费的同学,通过教务处,学院,辅导员,班长一一传达此消息,提醒该同学缴费。
2.3数据流图
通过对数据流图的了解,绘制数据流图的五大步骤;
1.明确系统界面
2.自顶向下逐层扩展
3.合理布局
4.数据流图只反映数据流向,数据加工和逻辑意义上的数据存储,不反映任何数据处理的计数过程,处理方式和时间顺序。
5.数据流图的绘制过程就是系统逻辑模型的形成过程,与用户交流,接触,不断完善。
关联图:
顶层图:
第一层数据流程图:
通过对数据流图编写,知道学生档案成绩,需要和学生,教师,教务处相互关联,能够清晰的了解到学生成绩录入的清晰走向。
2.4数据字典
数据流
系统名:
成绩管理编号:
26222xx
条目名:
学生成绩通知别名:
成绩通知单
来源:
成绩管理
去处:
学生
数据流结构:
学生成绩通知:
{学号+学生姓名+{课程名称+成绩}该生本期所修课程+(补考课程名+补考时间)}所有在册学生
简要说明:
学生成绩单学生登陆自己学号和密码在教务处成绩系统查看。
修改记录:
编写
聂*
日期
2017.12.25
审核
邹*
日期
2017.12.28
数据元素
系统名:
成绩管理编号:
26222xx
条目名:
学号别名:
学生id
来源:
成绩单
存储处:
成绩单,课程,档案
数据元素结构:
代码类型:
取值范围含义
字符0000000000-9999999999xxxxxxxxxx
(由数字组成的字符串)年份院系专业id
简要说明:
学号是学生的识别符,具有唯一性
修改记录:
编写
聂*
日期
2017.12.25
审核
邹*
日期
2017.12.28
数据存储
系统名:
成绩管理编号:
26222xx
条目名:
学生名单别名:
存储组织:
每个学生一条记录(学生相关信息)
记录数:
1000
主键:
学号
记录组成:
项名:
学号姓名身份证号码手机号注册学期选修课1…选修课n备注
长度1111181186620
(字节)
简要说明:
学生转专业要备注并及时更正
补考和清考标红线,特别提醒
修改记录:
编写
聂*
日期
2017.12.25
审核
邹*
日期
2017.12.28
加工
系统名:
成绩管理编号:
26252xx
条目名:
学生成绩通知别名:
来源:
学生各个科目成绩
输出流:
成绩档案管理
加工逻辑:
学生名册中获取选修同一门课学生成绩
统计每门课程选修人数,以便下学期做调整
根据教学办安排,通知学生时间,地点考试
教师批改作业,录入成绩
成绩统计,计算每门课不同分数线下人数的多少,一边做好质量分析和报告
通知学生下学期来进行补考
简要说明:
教学办发布每个院考试计划和学年计划安排,由学院传到到每位学生
修改记录:
编写
聂*
日期
2017.12.25
审核
邹*
日期
2017.12.28
外部项
系统名:
成绩管理编号:
26222xx
条目名:
教师别名:
来源:
教学办安排
去处:
输出成绩
主要特征:
教师:
教师姓名,授课名称,学生名单册,课程量,教学任务,联系方式
简要说明:
教师由教学办发布的教学任务,根据自身情况进行相应调整
修改记录:
编写
聂*
日期
2017.12.25
审核
邹*
日期
2017.12.28
2.5E-R图
(1)分E-R图设计
本设计根据上面的设计规划出的实体有教师、学生、院系、班级、课程、选修课。
各个实体的E-R图描述如下:
图3-教师实体E-R图
图3-学生E-R图
图3-院系E-R图
图3-班级实体E-R图
图3-课程实体E-R图
图3-选修课实体E-R图
图3-总体E-R图
三、系统设计
3.1系统总体布局
图3.1教务管理信息系统的结构总图
图3.2学校校园网网络拓扑图
3.1.1系统结构
教务信息系统的结构总图如上所示,学校网络是校园网(局域网的一种)所以应该采用客户机/服务器结构(C/S模式),即分布式网络。
根据学校网络图,可以确定教务信息系统采用的是二层的cs架构。
图3.3数据库服务器客户机模式
3.1.2数据存储
教务信息系统主要储层,学生,教师,教务处的信息,包括文字,图片,表格等,储层在硬盘中,
3.1.3网络
学校内采用校园网,即局域网的一种,网络图如上所示。
3.1.3数据资源的空间配置策略
学校是局域网,学生信息系统采用采用单个数据库服务器方案。
图3.4单个服务器
3.1.5数据库管理系统的选择
考虑到学校的硬件,以及操作系统,以及数据的完整性和一致性,数据存储的安全性等因素,选择MSSQLserver.
3.2软件总体设计
学生信息系统采用web前端平台,需要使用关系数据库储层数据,可以采用mysql或者SQLserver,通过ASP.net进行相关开发。
通过网页方便使用,效率高,可以款平台、无论是android,windows,ios等,只要有browser都可以使用,节约了成本。
3.3数据库设计
学生信息系统主要储层的是文字信息,可以通过一张二维表格表示,故可以采用关系型数据库,在设计表格时候,要考虑三范式,减少数据冗余,便于维护等相关因素。
综述
数据库逻辑设计
实体:
学生信息表(student):
(学号,姓名,性别,年龄,所在系)
学生课程表(Scourse):
(课程号,课程名,先行课,学分)
学生选修课表(SC):
(学号,课程号,成绩)
学生成绩表(Smark):
(学号,姓名,成绩)
班级信息表(class):
(班级号,班级名,老师名,班级课程名)
教师信息表(Teacher):
(职工号,姓名,性别,年龄)
教师课程表(Tcourse)(职工号,课程号,班级名)
管理员信息表(Admin)(管理员账号,姓名,性别)
数据库物理设计
(1)学生信息表:
(student):
(学号,姓名,性别,年龄,所在系)
列名
数据类型
可否为空
学号(主键):
sno
字符型(12)
不能为空
姓名:
sname
字符型(20)
不能为空
性别:
Ssex
字符型
(2)
可为空
年龄:
sage
Smallint
不能为空
所在系:
Sdept
字符型(20)
不能为空
(2)学生课程表:
(Scourse):
(课程号,课程名,先行课,学分)
列名
数据类型
可否为空
课程号(主键):
cno
字符型(8)
不能为空
课程名:
cname
字符型(30)
不能为空
先行课:
cpno
字符型(8)
不能可为空
学分:
Ccredit
Smallint
能为空
(3)学生选修课表:
(SC):
(学号,课程号,成绩)
列名
数据类型
可否为空
课程号(主键)[外键]:
Sno
字符型(8)
不能为空
课程名:
(主键)[外键]:
cno
字符型(30)
不能为空
成绩:
Grade
Smallint
可为空
(4)学生成绩表:
(Smark):
(学号,姓名,成绩)
列名
数据类型
可否为空
学号(主键):
Sno
字符型(12)
不能为空
姓名:
sname
字符型(20)
不能为空
成绩:
Grade
Smallint
可为空
课程名:
cname
字符型(30)
不可为空
(5)班级信息表(class):
(班级号,班级名,老师名,班级课程名)
列名
数据类型
可否为空
班级号(主键):
cno
字符型(6)
不能为空
班级名:
cname
字符型(30)
不能为空
老师名:
tname
字符型(20)
不能为空
班级课程名:
Cname
字符型(8)
不能为空
(6)教师信息表(Teacher):
(职工号,姓名,性别,年龄)
列名
数据类型
可否为空
职工号(主键):
tno
字符型(10)
不能为空
姓名:
tname
字符型(20)
不能为空
性别:
tsex
字符型
(2)
能为空
年龄:
tage
Smallint
不能为空
(7)教师课程表(Tcourse)(职工号,课程号,班级名)
列名
数据类型
可否为空
职工号(主键)[外键]:
Tno
字符型(12)
不能为空
课程号(主键)[外键]:
cno
字符型(20)
不能为空
班级名:
Cnmae
字符(30)
不能为空
(8)管理员信息表(Admin)(管理员账号,姓名,性别)
列名
数据类型
可否为空
课程号(主键)[外键]:
Ano
字符型(12)
不能为空
姓名:
Aname
字符型(20)
不能为空
SQL语句
createdatabasestuinf/*创建数据库主文件与日志*/
on
(
name="stuinf",
filename="D:
\database\stuinf.mdf",
size=5MB,
maxsize=10MB,
filegrowth=10%
)
logon
(
name="stuinf_log",
filename="D:
\database\stuinf.ldf",
size=2MB,
maxsize=5MB,
filegrowth=1MB
);
usestuinf
go
createtablestudent/*()创建学生表*/
(
snochar(12)notnullprimarykey,
snamechar(20)notnull,
ssexchar
(2)null,
sagesmallintnotnull,
sdeptchar(20)notnull
);
createtablecourse/*()创建课程表*/
(
cnochar(8)notnullprimarykey,
cnamechar(30)notnull,
cpnochar(8)notnull,
ccreditsmallintnotnull
);
createtablesc/*()创建学生选修课成绩表*/
(
snochar(12)notnull,
cnochar(8)notnull,
gradesmallintnotnull,
primarykey(sno,cno),
foreignkey(sno)referencesstudent(sno),/*sno与cno作为联合主键以及外键*/
foreignkey(cno)referencescourse(cno)
);
createtablesmark/*()创建学生成绩表*/
(
snochar(12)notnull,
snamechar(20)notnull,
cnamechar(30)notnull,
gradesmallintnotnull,
primarykey(sno,cname),/*sno与cname作为联合主键*/
foreignkey(sno)referencesstudent(sno),
);
createtableclass1/*()创建班级信息表*/
(
clanochar(6)notnullprimarykey,
clanamechar(30)notnull,
tnamechar(20)notnull,
);
createtableteacher/*()创建教师表*/
(
tnochar(10)notnullprimarykey,
tnamechar(20)notnull,
tsexchar
(2)notnull,
tagesmallintnotnull
);
createtabletcourse/*()创建教师课程表*/
(
tnochar(10)notnull,
clanochar(6)notnull,
clanamechar(30)notnull,
primarykey(tno,clano),
foreignkey(tno)referencesteacher(tno),
foreignkey(clano)referencesclass1(clano)
);
3.4用户界面设计
四、系统实施
4.1系统实施的目的和条件
在经过之前的工作之后,本阶段开始进行程序的编写、系统测试、检验、安装、以及系统维护的环节。
编程环节主要用C++或C#处理计算数据信息,使连接的数据库得到需要的数据或者处理数据库中的相关数据,得到需要的结果,并将其呈现到网页上。
系统的测试主要测试系统的可靠性,保证系统在运行时不会出现异常的情况,同时测试系统在大量人员试用下的可靠性,发现和排除系统存在的相关问题。
系统的安装主要是系统相关的各种软件硬件的调试运行。
4.2编程
照之前设计好的数据库建立系统所需要的基本表,使用SQLServer进行创库创表。
之后按照用户界面设计的内容使用HTML语言设计用户界面,然后链接数据库。
然后使用ASP.NET课程中的知识,用C++或者C#等语言编写相关的程序和方法使数据库得到需要的数据,让数据到达用户界面。
4.3系统测试
系统测试时,先是测试系统的各个单元部分的功能是否能正确运行(单元测试),针对测试中出现的问题进行相关的调试。
之后将系统组装之后进行整体的全方面的测试,充分考虑现实使用中的各个情况进行检验测试。
测试的数据从上一代的系统、或者实际中得到。
这一阶段的测试之后可以进行一段时间的试用,在此过程中发现和解决系统的问题。