学生成绩管理系统需求文档.docx
《学生成绩管理系统需求文档.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统需求文档.docx(38页珍藏版)》请在冰点文库上搜索。
![学生成绩管理系统需求文档.docx](https://file1.bingdoc.com/fileroot1/2023-5/25/eaf1518f-3523-4f9e-a59c-aa27ee3cc71d/eaf1518f-3523-4f9e-a59c-aa27ee3cc71d1.gif)
学生成绩管理系统需求文档
学生成绩管理系统需求文档
一、项目概述
1.开发背景
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已经进入人类社会的各个领域并发挥着越来越重要的作用,然而在计算机应用普及以前我国大部分高校的学生信息管理仅靠人工进行管理和操作,这种管理方式存在着许多缺点,如:
效率低,密保性差,另外时间一长,将产生大量的文件和数据,其中有些是冗余或者针对同一目的的数据不相吻合,这对于查找、更新和维护文件等管理工作带来了不少困难,同时也跟不上信息时代高速、快捷的要求,严重影响了消息的传播速度。
然而现今学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息也成倍增长,人工管理信息的缺点日渐突出,面对庞大的学生信息量,如何利用现代信息技术使其拥有快捷、高效的适应能力已成为当务之急。
正因为如此,学生信息管理系统成为了教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。
作为计算机应用的一部分,使用计算机对学生信息进行管理,具有着手工管理所无法比拟的优点。
例如:
检索迅速。
查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大的提高学生信息管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件,由此看来开发这样一套管理软件是很有必要的。
学生信息管理系统是典型的信息管理系统(MIS),其开发功能主要包括对学生各种信息的建立、管理、查询等功能。
2.项目描述
该学生管理系统应用于高校学生信息管理,主要有3个主要功能模块组成,分别是:
学生信息管理系统模块,学生成绩管理模块和系统管理模块。
学生信息管理模块包括对学生的学籍等基本信息的查看和维护管理;学生成绩管理模块主要包括对学生成绩的录入和查询;系统管理主要包括对系统数据字典以及管理员的维护模块。
除了这三大主要功能模块之外还涉及到于本系统相关的一系列小的功能模块,例如,学科管理、班主任管理等。
本系统设计的学生信息管理系统很好的解决了学生信息管理方面的困难,提高了学生信息管理效率、减轻了教务员的工作负担,节省了大量的人力、物力资源,给高校学生信息管理带来了很大的方便
3.系统目标
该系统要实现的功能有:
●学生信息管理:
包括添加学生信息,修改学生信息
●学生成绩管理:
包括添加学生成绩、修改学生成绩、删除学生成绩
●系统管理:
维护系统数据字典、添加管理员、删除管理员、修改管理员信息
除了这三大主要功能模块之外还涉及到于本系统相关的一系列小的功能模块,例如,学科管理、班主任管理等。
4.性能需求
数据精确度:
经多次测试,该系统最终的输出数据的精确度达到95%以上
时间特性:
该系统在响应时间、更新处理时间,数据转换与传输时间、与运行时间等方面时间短、速度快。
适应性:
该系统专为高校量身定做,对高校有很强的适应性
复用性:
该系统的功能和大多数高校基本吻合,所以可以在大多数高校中复用
灵活性:
该系统可以在大多数WindowsXP以上版本上应用,与微软的office办公软件相结合,可以打印该系统中的成绩、学生表等,该系统采用团队分块制作,以后维护、改方便
运行需求
本系统服务器的环境如下:
操作系统:
WindowsXP以上
服务器:
IIS5.0以上
数据库:
SQLServer2005Express
硬件配置:
CPU:
P41.8GHz
内存:
256MB以上
分辨率:
最佳效果1024×768像素
二、系统设计
1.总体设计
1)项目概述
该学生管理系统应用于高校学生信息管理,主要有3个主要功能模块组成,分别是:
学生信息管理系统模块,学生成绩管理模块和系统管理模块。
学生信息管理模块包括对学生的学籍等基本信息的查看和维护管理;学生成绩管理模块主要包括对学生成绩的录入和查询;系统管理主要包括对系统数据字典以及管理员的维护模块。
除了这三大主要功能模块之外还涉及到于本系统相关的一系列小的功能模块,例如,学科管理、班主任管理等。
本系统设计的学生信息管理系统很好的解决了学生信息管理方面的困难,提高了学生信息管理效率、减轻了教务员的工作负担,节省了大量的人力、物力资源,给高校学生信息管理带来了很大的方便
2)系统功能架构图
整个系统大体上可分为4可主要模块,分别是“学生信息管理,学生成绩管理,班级管理,系统管理”,他们分别管理学生信息,学生成绩,班级信息,系统。
每个功能又可以细分实现具体的增删改查等功能。
3)根据需求分析。
找出参与者,和参与者的功能,画出用例图
4)采用面向对象分析,画出类图和时序图
学生管理系统类图
学生管理系统时序图
5)系统的业务流程图和数据流向。
(流程图,活动图)
流程图
活动图
6)实现各个模块的关键的算法和技术描述
学生信息模块
关键算法:
技术描述:
学生成绩模块
关键算法:
技术描述:
班级模块管理
关键算法:
技术描述:
系统模块设置
关键算法:
技术描述:
7)软件的开发环境:
本系统以Windows为开发平台,采用面向对象的软件开发方式,以Microsoft公司的可视开发环境VisualStudio2008作为主要开发工具,使用MicrosoftSqlServer2005作为关系数据库,并为C#编程语言中采用ADO数据库编程模型,配合功能强大的SQL查询语言实现建立关系数据库,访问数据库,对数据库的更新,较好的实现了预定的需求功能。
2.详细设计
1)学生信息管理模块详细设计
学生信息模块详细架构图
学生信息管理主要有三大功能:
1.添加学生信息,信息包括:
基本信息、学籍信息、联系方式;
2.学生属性管理,包括:
基本信息、学籍信息、联系方式、学籍异动、获奖记录、处分记录;
3.信息编辑管理,包括:
基本信息、学籍信息、联系方式、学籍异动、获奖记录、处分记录;
学生信息模块详细用例图
学生信息管理模块详细时序图
2)学生成绩管理模块详细设计
学生成绩管理模块详细架构图
学生成绩管理主要包括四个主要功能:
1.添加成绩2.成绩浏览3.成绩排名4.成绩查询
学生成绩管理模块详细用例图
学生成绩详细管理模块时序图
3)班级管理模块详细设计
班级管理模块详细架构图
班级管理系统主要分为三个主要功能:
1.班级浏览2.添加班级3.班级查询
班级管理模块详细用例图
班级管理模块详细时序图
4)系统信息设置模块详细设计
系统信息设置模块详细设计
系统信息设置主要分为两个主要功能:
1.数据字典,包括:
班级设置、专业设置、学员设置、学科设置、学籍异动、处分类型
2.用户管理,包括:
管理用户、密码修改
系统信息设置模块详细设计用例图
系统信息设置详细时序图
5)数据库设计(跟据类图映射过来)(画概念数据模型图,和物理数据模型图)
概念数据模型设计
物理结构模型设计
1.Colloges(学院表)
字段名
数据类型
长度
是否主键
是否外键
描述
备注
CollogeID
Int
4
是
否
学院编号
CollogeName
Varchar(50)
50
否
否
学院名称
2.Speciality(专业表)
字段名
数据类型
长度
是否主键
是否外键
描述
备注
SpecialityID
Int
4
是
否
专业编号
SpecialityName
Varchar(50)
50
否
否
专业名称
CollogeID
Int
4
否
是
所属学院
参照
Colleges
表主键
SpecialityYears
Int
4
否
是
学制
参照
Speyears
表主键
3.Speyears(学制表)
字段名
数据类型
长度
是否主键
是否外键
描述
备注
SpeyearID
Int
4
是
否
学制编号
Identity(1,1)
SpeyearName
Varchar(50)
50
否
否
学制名称
SpeyearYears
Int
4
否
否
学制时间
单位:
年
4.Classes(班级表)
字段名
数据类型
长度
是否主键
是否外键
描述
备注
ClassID
Int
4
是
否
班级编号
ClassName
Varchar(50)
50
否
否
班级名称
SpecialityID
Int
4
否
是
所属专业
参照
Speciality
表主键
TeacherID
Int
4
否
是
班主任编号
参照
Teachers
表主键
5.ChangeTypesRecode(学籍变动记录表)
字段名
数据类型
长度
是否主键
是否外键
描述
备注
ChangeTypesRecodeID
Int
4
是
否
记录编号
Identity(1,1)
ChangeTypeID
Int
4
否
是
变动类型
参照
ChangeTypes
表主键
ChangeReason
Varchar(500)
500
否
否
变动原因
ChangeStudentID
Int
4
否
是
变动
学生
编号
参照
Students
表主键
ChangDate
DateTime
8
否
否
变动时间
6.ChangeTypes(学籍变动类型表)
字段名
数据类型
长度
是否主键
是否外键
描述
备注
ChnageTypeID
Int
4
是
否
学籍变
动类型
编号
Identity(1,)
ChangeTypeName
Varchar(50)
50
否
否
变动类型名称
7.PunishmentAwardsRecode(奖惩记录表)
字段名
数据类型
长度
是否主键
是否外键
描述
备注
PunishAwardsRecodeID
Int
4
是
否
奖惩记录编号
小于0表示惩罚,大于0表示奖励
PunishAwardTypeID
Int
4
否
是
奖惩记录类别
参照Punishment
AwardTypes
表主键
StudentID
Int
4
否
是
获奖学生编号
参照
Students
表主键
PunishAwardContent
Varchar(500
500
否
否
获奖信息
PunishAwardReasion
Varchar(500
500
否
否
获奖原因
PunishAwardDate
DateTime
8
否
否
获奖时间
8.PunishmentAwardsTypes(奖惩记录类别表)
字段名
数据类型
长度
是否主键
是否外键
描述
备注
PunishAwardTypeID
Int
4
是
否
奖惩记录类型编号
编号>0表示奖励,编号<0表示惩罚
PunishAwardTypeName
Varchar(50)
50
否
否
奖惩记录类型名称
9.AdminInfo(管理员表)
字段名
数据类型
长度
是否主键
是否外键
描述
备注
AdminID
Int
4
是
否
管理员编号
Identity(1,1)
AdminName
Varchar(50)
50
否
否
管理员名称
AdminPwd
Varchar(50)
50
否
否
管理员密码
AdminLevel
Varchar(50)
50
否
否
管理员权限
10.Students(学生表)
字段名
数据类型
长度
是否主键
是否外键
描述
备注
StudentID
Int
4
是
否
学生编号
Identity(1,1)
Name
Varcahr(50)
50
否
否
学生名字
Gender
Varcahr
(2)
2
否
否
学生性别
ClassID
Int
4
否
是
所属班级
参照
Classes
表主键
StudentNum
Varcahr(50)
50
否
否
学号
EnterYear
DateTime
8
否
否
入学时间
Origin
Varcahr(50)
50
否
否
籍贯
Birthday
DateTime
8
否
否
出生日期
PersionCard
Varcahr(50)
50
否
否
身份证号
Address
Varcahr(50)
50
否
否
家庭住址
FamilyTel
Varcahr(50)
50
否
否
家庭电话
DromTel
Varcahr(50)
50
否
否
寝室电话
Mobile
Varcahr(50)
50
否
否
移动电话
Email
Varcahr(50)
50
否
否
电子邮件
11.Teachers(班主任表)
字段名
数据类型
长度
是否主键
是否外键
描述
备注
TeacherID
Int
4
是
否
班主任编号
Identity(1,1)
TeacherName
Varchar(50)
50
否
否
班主任姓名
TeacherTel
Varchar(50)
50
否
否
班主任电话
TeacherGender
Varchar
(2)
2
否
否
班主任性别
Indate
8
8
否
否
入职日期
TeacherBirthday
8
8
否
否
出生年月
TeacherOrigin
Varcahr(50)
50
否
否
班主任籍贯
12.Sepc_Subjects(专业科目关系表)
字段名
数据类型
长度
是否主键
是否外键
描述
备注
SepcID
Int
4
是
否
专业编号
联合主键
SubjectID
Int
4
是
否
科目编号
联合主键
13.Subjects(科目表)
字段名
数据类型
长度
是否主键
是否外键
描述
备注
SubjectID
Int
4
是
否
科目编号
Identity(1,1)
SubjectName
Varchar(50)
50
否
否
科目名称
14.Examination(考务表)
字段名
数据类型
长度
是否主键
是否外键
描述
备注
ExaminationID
Int
4
是
否
考试编号
Identity(1,1)
StudentID
Int
4
否
否
学生编号
SubjectID
Int
4
否
否
科目编号
ExamScore
Int
4
否
否
考试成绩
6)界面设计(静态原型图,界面的统一风格…)
主窗体界面
添加学生信息
班级信息浏览
班级信息查询
组织机构设置
用户管理
编辑学生的基本信息
学生的属性
成绩查询
类型参数设计
添加班级
添加成绩
设置学科
用户登录
修改密码
7)数据结构和算法设计具体实现
三、编码计划
1.人员配置(建立项目开发小组,分工,设定项目/模块负责人,制定小组章程)
001
彭小敏
界面设计
C#
界面负责人
002
张航
界面设计
C#
003
杨光远
代码编写
C#
004
刘晓朋
代码编写
C#
005
焦学军
代码编写
C#
代码编写负责人
006
李旭东
代码编写
C#
007
李旺盛
软件测试
C#
软件测试负责人
2.根据总体设计中的分模块来进行编码工作分工。
代码编写分工
003
杨光远
系统管理模块
C#
004
刘晓朋
学生信息管理模块
C#
005
焦学军
学生成绩管理模块
C#
006
李旭东
班级管理模块
C#
3.项目开发进度计划。
(画甘特图)
4.项目开发采用的工具。
(有哪些工具,用了哪些编程语言)
开发工具:
VisualStudio2008,SqlServer2005
语言:
C#,数据库语言
5.编码规范(数据库命名规范,C#编程规范)
目标:
●安全:
代码完成所需的功能之余,不要产生负作用,即要稳定可靠
●易读:
类、实例、成员变量、成员函数的命名一目了然。
●美观:
尽量同意项目组内人员的编程风格。
数据库命名规范:
1.数据库文件名
数据文件命名采用系统名+_+文件类型,比如系统名为ComSys,则数据库文件名为ComSys_datebase.mdf,有的数据库文件有多个,比如SQLServer就有2个,一个是数据库文件,另一个是日志文件,那么他们的文件名分别为ComSys_datebase.mdf,ComSys_datebase.log。
2.数据库对象命名规范
数据库对象包括表、视图(查询),存储过程(参数查询),函数,约束,对象名字有前缀和实际名字组成,长度不超30.
(1).前缀
使用小写字母。
如:
表:
tb
视图vi
存储过程sp
函数fn
(2).实际名字
实际名字尽量描述实体内容,由单词或单词组合,每个单词的首字母大写,其他字母小写,不以数字和_开头。
如:
表User_Info
视图User_List
存储过程User_Delete
(3).示例
合法的对象名字类似如下:
表tb_User_Infotb_Message_Detail
视图vi_Message_List
存储过程sp_Message_Add
3.表的命名
(1).表名由前缀和实际名字组成。
前缀使用小写字母tb,表示表。
(2).如果表或者是字段的名称仅有一个单词,那么建议不使用缩写,而是用完整的单词。
(3).所有的存储值列表的表前面加上前缀Z
目的是将这些值列表类排序在数据库最后。
(4).所有的冗余类的命名(主要是累计表)前面加前缀X
冗余类是为了提高数据库效率,非规范化数据库的时候加入的字段或者表。
(5).
4.字段的命名
5.师徒的命名
6.触发器的命名
7.索引命名
8.存储过程命名
9.变量名
10.命名中其他注意事项
数据库名:
StudentDB
数据库表名:
不要根据自己的爱好随意命名,要根据数据库设计图名词英文名命名
学院表:
Colloges
专业表:
Speciality
学制表:
SpeYears
班级表:
Classes
学籍变动记录表:
ChangeTypeRecode
学籍变动类型表:
ChangeTypes
奖惩记录表:
PunishmentAwardsRecode
奖惩记录类别表:
PunishmentAwardsTypes
管理员表:
AdminInfo
学生表:
Students
班主任表:
Teachers
专业科目关系表:
Sepc_Subjects
科目表:
Subjects
考务表:
Examination
C#编码规范:
Ø命名原则
(1).所有的函数(变量/类/文件名)应该代表其实际的作用,应该使用有意义的单词或多个词组合,但不要使用人名,项目组名。
(2).所有的函数(变量/类名)一律使用英文。
(3).使用多个单词时不需要使用连线(如下划线),但对于全部大写的宏要连线
(4).多个词组合较长时,可以使用单词的缩写。
(5).不得使用非常相近的名字类表示不同含义的函数(变量/类)。
(6).命名时请考虑名字的唯一性和含义的准确性。
(7).使用项目组专用词汇来表达特定的含义(概念),不得把专用词汇挪用作它用
Ø变量命名
原则:
使用匈牙利命名法命名变量
(1).变量名一般由“类型修饰+代表变量含义的英文单词或单词缩写”等部分组成。
类型修饰(小写字母)
n:
int,LONG/long,s:
short,u:
UNIT,f:
float
b:
bool,by:
BYTE,ch:
char,sz:
char[],str:
string
(2).针对异常捕获过程中的Exception变量命名,在没有冲突的情况下,统一命名为e;如果有冲突的情况下,可以重复e,比如:
ee。
Ø函数的命名
(1).使用动宾词组表达函数实际所做的事。
(2).同名的函数(重载函数)在功能上应该完全相同,在参数差别也应一目了然。
(3).不得出现名字非常相近但功能不同的函数,如CreatePage1(),CreatePage2()等。
Ø类命名
(1).名字应该能够标识事物的特征。
(2).名字尽量不使用缩写,除非他是众所周知的。
(3).名字可以是两个或三个单词组成,但通常不应多余三个。
(4).在名字中所有单词第一个字母大写,缩写都要大写。
(5).不要使用下划线字符(_).
Ø控件命名规则
控件命名=控件缩写前缀+“_”+变量名。
控件
Label
TextBox
Button
ListBox
DropdownList
等等
缩写
lb_xxx
Tb_xxx
Btn_xxx
Lb_xxx
Drd_xxx
xxxx
6.使用技术
该项目使用到的技术有:
1.面向对象编程
2.WinForm窗体设计
3.C#程序设计
四、测试计划
五、工程实施计划与维护
1.配置图
2.客户培训PPT
六、参考资料