学生信息管理系统设计说明书实验7例子.docx
- 文档编号:10887151
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:31
- 大小:321.22KB
学生信息管理系统设计说明书实验7例子.docx
《学生信息管理系统设计说明书实验7例子.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统设计说明书实验7例子.docx(31页珍藏版)》请在冰豆网上搜索。
学生信息管理系统设计说明书实验7例子
学生信息管理系统设计说明书
1系统设计
在数据库系统开发的前期,一般要对系统的开发目的、使用对象、实现的功能等进行详细的分析,确定系统的开发方案。
✧系统功能分析
✧系统功能模块设计
✧操作流程图
1.1系统功能分析
开发目的:
学生信息管理系统的开发目的是管理全校学生的各种信息,方便学生信息的查询。
系统的使用对象是学生管理部门,如教务处工作人员、校院系领导、班主任、教师等。
本章所开发的系统的主要使用对象是教务处。
主要功能:
✧学生基本信息的录入,包括:
学号、姓名、性别、班级、出生日期、籍贯等;
✧学生基本信息的修改维护;
✧学生学籍变动情况的记录,包括:
休学、复学、转系、结业、毕业等;
✧学生奖惩情况的记录和修改,包括:
奖励和处罚;
✧学生信息的查询;
✧院系设置管理,包括院系的添加、修改和删除等;
✧班级设置管理,包括班级的添加、修改和删除等。
1.2系统功能模块设计
根据系统所要实现的功能,按照结构化程序设计的原则,可以将整个系统划分为若干个功能模块。
1.3操作流程图
通过操作流程分析,不但可以具体化系统的功能模块的组成,还可以明确系统中的数据流程,明确系统中所要保存的数据以及数据间的关系,为下一步的数据库设计打好基础。
本书中采用以下的符号表示操作流程。
大家对学生信息管理是比较熟悉的,因此不难画出右图所示的学生信息管理操作流程图。
需要说明的是各所学校的实际情况可能有所不同,同学们可以根据自己学校的实际情况画出符合本校特点的操作流程图。
2数据库设计
数据库是信息管理系统的基础,在系统中占有重要的地位,数据库结构是否合理直接关系到系统功能的实现和运行的效率。
合理的数据库结构设计可以提高数据存储的效率,保证数据的完整性和一致性,也有利于系统的编程实现。
数据库系统设计一般包括如下几个步骤:
✧需求分析;
✧概念结构设计;
✧逻辑结构设计;
✧物理结构设计;
✧应用程序设计及调试;
✧性能测试与确认。
2.1数据库需求分析
需求分析是整个数据库设计过程中最重要的步骤之一,是后继各阶段的基础。
在需求分析阶段,需要从多方面对整个系统进行调查,收集和分析系统对信息和处理两个方面的需求。
收集资料是数据库设计人员和用户共同完成的。
必须强调用户的参与,这是数据库应用系统设计的特点。
收集资料的目的是明确用户的需求。
用户的需求主要包括第三个方面:
✧信息需求,用户要从数据库获取的内容;
✧处理需求,即完成什么处理功能以及采用何种处理方式;
✧安全性及完整性需求。
分析的过程是对所收集的数据进行抽象的过程。
抽象是对实际事物或事件的人为处理,抽取共同的本质特征,忽略细微末节,并用各种概念进行精确描述,这些概念组成某种数据模型。
在上节对学生信息管理系统操作流程分析的基础上,可以列出以下学生信息管理系统所需的数据项和数据结构:
✧院系设置:
院系编号、院系名称、院系描述、院系领导、领导联系方式等;
✧班级设置:
班级编号、班级名称、班级创建时间、班级描述、所属院系、班主任、班主任联系方式等;
✧学生基本情况:
学号、姓名、性别、出生日期、籍贯、所属班级等;
✧学籍变更记录:
记录号、学号、变更类别、记录时间、详细描述等;
✧奖励记录:
记录号、学号、奖励类别、记录时间、详细描述等;
✧处罚记录:
记录号、学号、处罚类别、记录时间、详细描述等。
2.2数据库概念结构设计
E-R模型(Entity-RelationshipModule)简称E-R图,是描述概念世界,建立概念模型的实用工具。
数据库设计工作比较复杂,将现实世界的数据组织成符合具体数据库管理系统所采用的数据模型一般情况下不可能一次到位,P.P.S.Chen于1976年提出形象的实体-联系方法。
通过绘制E-R图,可以描述组织模式,并可以进一步转化为任何一种DBMS所支持的数据模型。
E-R图有三要素:
✧实体:
用矩形框表示,框内标注实体名称;
✧属性:
用圆角矩形形表示,并用连线与实体连接起来,表示实体的有关属性;
✧实体间的联系:
用菱形框表示,框内注明联系名称,并用连线将菱形框与有关实体连接,在连线上注明联系的类型。
在关系复杂的数据库系统的设计中,E-R图的设计包括局部E-R图设计、综合E-R图设计、E-R图优化等步骤。
本章的学生信息管理系统的功能比较简单,其E-R图如右图所示。
2.3数据库逻辑结构设计
概念结构设计的结果得到一个与计算机、软硬件的具体性能无关的全局概念模式。
数据库逻辑设计的任务是将概念结构转换成特定DBMS所支持的数据库模型。
从E-R图所表示的概念模型可以转换成任何一种具体DBMS所支持的数据模型。
本系统采用关系模型,转换的原则是:
✧每个实体转化成一个关系模式(即数据表),实体的属性就是关系的属性,实体的关键字就是关系的关键字;
✧每个1:
1的联系转换成一个关系模式。
每个实体的关键字都是该关系模式的候选关键字;
✧每个1:
n的联系转换成一个关系模式。
多方的实体的关键字是该关系模式的关键字;
✧每个m:
n的联系转换成一个关系模式。
联系中各实体关键字的组合组成该关系模式的组合关键字;
✧具有相同关键字的关系可以合并。
在进行完概念结构的转化以后,还需要进行规范化处理,通过模式合并和模式分解,优化数据逻辑结构,使数据库既能有效减少冗余信息,又能提高数据库的查询、操纵性能。
根据学生信息管理系统的E-R图,通过简单的优化,可以设计6个关系模式(即数据表)来存储所有的信息。
为了操作的简便,系统中DBMS选用Access2000。
6个数据表的结构如表1到6所示。
表1院系设置信息表(Department)
字段名
数据类型(长度)
必添字段
说明
DepartID
文本
(2)
是
院系编号(主关键字)
DepartName
文本(20)
是
院系名称
DepartHead
文本(8)
否
院系领导
Telephone
文本(13)
否
领导联系电话
Description
备注
否
院系描述
表2班级设置信息表(Class)
字段名
数据类型(长度)
必添字段
说明
ClassID
文本(6)
是
班级编号(主关键字)
ClassName
文本(20)
是
班级名称
DepartID
文本
(2)
是
所属院系(外关键字)
BeginDate
短日期
是
班级创建日期
Master
文本(8)
否
班主任
MasterTel
文本(13)
否
班主任联系电话
Description
备注
否
班级描述
表3学生基本信息表(Student)
字段名
数据类型(长度)
必添字段
说明
StudentID
文本(8)
是
学号(主关键字)
Name
文本(8)
是
姓名
Sex
文本
(2)
是
性别
ClassID
文本(6)
是
班级编号
Birthday
短日期
否
出生日期
Native
文本(16)
否
籍贯
表4学籍变更记录表(Change)
字段名
数据类型(长度)
必添字段
说明
CID
自动编号
是
记录号(主关键字)
StudentID
文本(8)
是
学号
Change
文本(4)
是
学籍变更类型
RecDate
短日期
是
记录日期
Description
备注
否
说明
表5奖励记录表(Reward)
字段名
数据类型(长度)
必添字段
说明
RID
自动编号
是
记录号(主关键字)
StudentID
文本(8)
是
学号
Reward
文本(20)
是
奖励类型
RecDate
短日期
是
记录日期
Description
备注
否
奖励具体说明
表6处罚记录表(Punish)
字段名
数据类型(长度)
必添字段
说明
PID
自动编号
是
记录号(主关键字)
StudentID
文本(8)
是
学号
Punish
文本(8)
是
处罚类型
RecDate
短日期
是
记录日期
Description
备注
否
处罚具体说明
2.4数据库结构的实现
数据库逻辑结构设计完成以后,就可以在DBMS上创建数据库和数据表了。
一般情况下可以根据DBMS的SQL语法建立相应的SQL语句,相对于直接操作建立数据库而言,通过SQL创建数据库的好处是便于数据库的重复创建。
2.5初始数据的录入
在某些数据库系统的开发中,需要录入一些初始据。
在完成数据库的创建以后,便可以在DBMS中录入初始数据。
本章的数据库中不需要初始数据。
数据库创建完毕以后,还需要对数据库的性能进行一些测试,以确保数据库设计的合理性,避免在系统软件开发过程中发现数据库不合理而修改数据库。
3系统主窗体的创建
数据设计完成后,下一步的工作就是使用某种程序开发语言实现系统的具体功能,本书采用的语言为微软公司的中文版VisualBasic6.0程序开发语言。
本节内容包括如下几个方面:
✧创建工程文件;
✧主窗体的设计;
✧主菜单设计;
✧部分程序的实现。
3.1创建工程文件
启动VisualBasic6.0,直接单击【打开】按钮,VisualBasic创建工程文件,并自动产生一个窗体文件。
根据VisualBasic配置的不同,有时会出现不同的运行界面,系统会直接创建新的工程文件。
此外,也可以通过单击【文件】→【新建工程】菜单项来创建工程。
为了构造便于用户操作的程序界面,需要在工程中添加相应的部件。
单击【工程】→【部件】菜单项,打开“部件”对话框,在“控件”选项卡的列表框中将下面所列控件前面的方框勾选,然后单击“确定”按钮。
相应的控件就会被添加到工具箱上。
本程序需要添加如下几个部件:
✧MicrosoftDataBoundGridControl5.0(SP3)
✧MicrosoftTabbedDialogControl6.0
✧MicrosoftWindowsCommonControls-26.0
3.2主窗体的设计
在设计复杂的应用程序时,为了方便用户的操作,往往要考虑系统的界面框架结构,常用的框架结构有SDI(单文档界面)和MDI(多文档界面)两种。
为简便起见,本例采用单文档界面。
打开主窗体(文件名为FormMain),设置窗体的有关属性。
属性名
属性值
说明
名称
frmMain
主窗体的名称
Caption
学生信息管理系统
主窗体标题
BackColor
&H8000000C&
主窗体背景颜色
WindowState
2-Maximized
主窗体启动后最大化
3.3主菜单的设计
单击【工具】→【菜单编辑器】菜单项,打开菜单编辑器设计窗体的主菜单。
为每个菜单项取一个比较有意义的名称。
在系统开发时,应该养成良好的命名习惯。
推荐使用驼峰式格式,即每个标识符开头字母要大写,内嵌单词的首字母也要大写,其他字母用小写。
在给控件命名时,每个控件名称前面加上该控件的缩写,一般取2~4个字母,采用小写,缩写时取控件名的主要辅音,以元音开头的控件可以取第一个元音字母。
本书中所有标识符都采用这个约定。
菜单项结构
菜单项名称
说明
系统维护(&S)
mntSystem
一级菜单(mnt是MenuItem的缩写)
院系设置(&D)
mntSysDepart
二级菜单项
班级管理(&C)
mntSysClass
二级菜单项
-
mntSysSP
二级菜单项,分隔线
退出系统(&Q)
mntSysQuit
二级菜单项
学生管理(&t)
mntStudent
一级菜单
学生管理(&M)
mntStuManage
二级菜单项
-
mntStuSP
二级菜单项,分隔线
学生信息查询(&Q)
mntStuQuery
二级菜单项
教务管理(&E)
mntEduAdmin
一级菜单
学籍变更(&C)
mntEduChange
二级菜单项
奖励情况(&R)
mntEduReward
二级菜单项
处罚情况(&P)
mntEduPunish
二级菜单项
3.4部分程序的实现
先实现退出功能。
单击主窗体的“退出系统”菜单项,系统自动生成相应事件过程框架,并切换到代码窗口,添加退出过程代码如下:
PrivateSubmntSysQuit_Click()
End
EndSub
主窗体中其它菜单项功能的实现在后面介绍。
4院系设置模块
院系设置模块是学生信息管理系统的辅助功能模块,实现院系添加、删除以及院系信息浏览、修改等功能。
本节内容包括如下几个方面:
✧模块功能分析;
✧窗体的创建;
✧模块用户界面的设计;
✧模块功能的实现。
4.1模块功能分析
实现思路
在窗体上添加控件和数据控件,将其它控件与数据控件绑定,就可以实现院系数据的显示和浏览。
为了便于用户直观浏览院系设置信息,本系统采用数据表格的形式显示数据。
数据的添加、删除、修改可以通过数据控件和数据绑定控件来实现。
为了验证数据的有效性,保持数据库的完整性,在添加、删除、修改数据时必须对数据进行验证,可以在窗体上再添加一个数据控件,通过它查询相关数据表来验证数据。
在添加记录时,通过字段内容检验来实现域值和非空字段验证,通过对新添加的院系编号的查询,验证院系编号的唯一性(记录层验证)。
在删除记录时,通过查询是否有属于该院系的班级来确保数据的完整性。
实现步骤
✧添加、保存窗体,设置窗体属性;
✧添加控件,设置控件属性,构造窗体界面;
✧编写代码,实现相应功能;
✧和主窗体连接,测试模块功能。
4.2主窗体的设计
在VisualBasic中单击【工程】→【添加窗体】(或者工具栏的“添加窗体”按钮),给工程添加一个新窗体,将窗体保存为FormDepartment.frm。
窗体的主要属性设置如下表所示:
属性名
属性值
说明
名称
frmDepartment
窗体名称
Caption
院系设置
窗体标题
BorderStyle
1-FixedSingle
窗体为固定边界,禁止用户改变大小
StartUpPosition
1-所有者中心
窗体启动后居于主窗体中央
4.3模块用户界面的设计
在窗体上添加若干标签、文本框、按钮,并添加一个数据表格控件、两个数据控件。
窗体布局如下图所示:
其中dbgDepart是数据表格控件,如果看不到该控件,请参考相关操作。
将该控件绑定到数据控件上后(设置该控件的DataSource属性),在该控件上单击右键,选择【RetrieveFields】菜单项,将数据控件的所有字段绑定到表格上。
再次单击右键,选择【Properties】菜单项,打开属性对话框,对数据表格的各项属性进行设置。
其中在General选项卡中可以设置表格标题,去掉AllowUpdate选项,如下图所示,在Columns选项卡中可以设置各列标题,如下图所示。
在该控件上单击右键,选择【Edit】菜单项,可以设置数据表格每列的宽度以及行的高度。
此外还可以在字体选项卡中设置表头和数据项的字体。
去掉AllowUpdate选项的目的是禁止用户通过数据表格直接修改数据,从而通过程序代码更好地控制数据的有效性和数据库的完整性。
其他各项的设置可以根据需要设置。
表格控件属性设置:
4.4模块功能的实现
通用变量、通用模块定义
本模块在同一个用户界面上实现数据的浏览、添加、删除、修改等功能,为了避免用户操作不当而错误修改数据,在浏览数据时应禁止数据的修改;在添加、修改数据时允许用户输入数据并禁止移动记录集指针,可以设置一个通用过程来实现界面的切换。
单击【工具】→【添加过程】,添加一个名为ToggleEditMode的私有子过程,代码如下:
其中InEditMode是一个模块级变量,用于标识用户界面是否处在修改模式。
另外还需要定义一个模块级变量BookMK用于表示数据控件的书签。
这两个变量的定义放在模块的通用变量定义部分。
DimBookMK
DimInEditModeAsBoolean
窗体加载过程
在窗体加载时需要进行初始化处理。
首先,为了保证应用程序在任何路径下都可以访问到数据库,必须修改数据控件的DatabaseName属性,使其能自动定位到应用程序所在的路径。
其次,确保窗体加载时界面处在浏览模式下,不允许修改数据库中的数据。
代码如下:
PrivateSubForm_Load()
dataDepart.DatabaseName=App.Path&"\Student.mdb"
dataValid.DatabaseName=App.Path&"\Student.mdb"
dataValid.Visible=False
InEditMode=False
ToggleEditMode
EndSub
其中App.Path表示应用程序运行时所在的绝对路径,本系统中将数据库文件和应用程序的可执行文件放在同一个文件夹下。
窗体加载以后就可以通过数据控件的按钮和数据表格浏览数据库中的数据了。
数据添加功能的实现
数据添加功能比较容易实现,通过数据控件的数据集的AddNew方法可以添加一条空记录,同时将界面切换到编辑模式下供用户输入数据。
为了在操作完成以后数据控件能回到添加前的记录位置,需要设置数据控件的书签。
添加功能的代码如下:
PrivateSubcmdAdd_Click()
IfdataDepart.Recordset.RecordCount>0Then
BookMK=dataDepart.Recordset.Bookmark
Else
BookMK=Null
EndIf
dataDepart.Recordset.AddNew'添加记录
InEditMode=True'设置编辑模式
ToggleEditMode'切换模式
EndSub
数据记录删除功能的实现
记录删除功能通过数据控件的数据集的Delete方法实现。
为了保证数据库的完整性,在删除院系设置记录前应确保数据库中没有属于该院系的班级。
保证数据库的完整性,一般可以采取“层级更新/级联删除”或者“拒绝操作”的方法,本系统中采用“拒绝删除”的办法,同时向用户显示警告信息。
SQL语句
SELECT*FROMClassWHEREDepartID=’<院系编号>’
用于从班级数据表Class中选择属于指定院系编号的班级的信息。
过程中通过SQL语句打开dataValid数据集,如果数据集不为空则“拒绝删除”,并将属于该院系的班级名称显示出来。
注意,在修改了dataValid的RecordSource属性以后,必须调用Refresh方法才能刷新数据集里的数据。
记录删除后,需要修改数据集的指针位置,处理可能出现的异常情况。
数据修改功能的实现
调用数据控件的数据集的Edit方法可以使数据集处于编辑状态,供用户修改各个字段,同时应将界面切换到编辑模式下,并设置好数据控件的书签。
如果用户修改了Department数据表中的院系编号,而Class数据表中相关班级的院系编号不作修改,数据库的完整性就会遭到破坏,这里采用“拒绝修改”的办法,通过设置txtDepartID.Locked=True,使用户不能修改院系的编号。
这种处理限制了用户的操作,给用户使用造成一定的不便,下一章中将采用“级联更新”的办法保证数据库的完整性。
数据保存功能的实现
添加新记录或者修改记录字段值以后需要保存数据,保存通过调用数据控件的UpdateRecords方法实现。
保存数据前必须对数据进行有效性验证。
首先要对用户输入的数据进行规范化处理。
这个步骤很重要,必须确保用户输入的数据是有效的。
先利用Trim函数去掉数据前后的多余空格,然后利用Replace函数去掉数据中的非法字符“’”,请思考为什么要去掉字符“’”(提示:
“’”会破坏SQL语句而造成语法错误)。
其次要对用户输入的数据进行验证,如果用户没有给非空字段输入数据,则提示用户必须输入该字段,并通过控件的SetFocus方法直接将焦点定位到该相关控件,便于用户的操作。
最后在添加新记录的情况下还需要通过数据控件dataValid验证输入的院系编号是否唯一。
判断当前是添加状态还是修改状态可以通过txtDepartID控件的Locked属性确定(参考“数据修改功能的实现”)。
5班级管理模块
班级管理模块实现班级添加、删除以及班级信息浏览、修改等功能。
本节内容包括如下几个方面:
✧模块功能分析;
✧窗体的创建;
✧模块用户界面的设计;
✧模块功能的实现。
5.1模块功能分析
实现思路
班级管理模块的实现和院系设置模块的实现类似,本模块中需要设置班级所属院系的编号,为了防止用户输入不存在的院系编号,可以通过将Department表中所有院系的编号取出填充到ComboBox控件中供用户选择来实现。
本模块采用DTPicker控件来输入班级创建日期值,保证用户输入的日期是有效日期。
实现步骤
添加、保存窗体,设置窗体属性;
添加控件,设置控件属性,构造窗体界面;
编写代码,实现相应功能;
和主窗体连接,测试模块功能。
5.2主窗体的设计
在工程中新建一个窗体,将窗体保存为FormClass.frm。
窗体的主要属性设置如下表所示:
属性名
属性值
说明
名称
名称
名称
frmClass
frmClass
frmClass
BorderStyle
1-FixedSingle
窗体为固定边界,禁止用户改变大小
StartUpPosition
1-所有者中心
窗体启动后居于主窗体中央
5.3模块用户界面的设计
在窗体上添加若干标签、文本框、按钮、组合框,并添加一个日期选择框、一个数据表格控件、两个数据控件。
窗体布局如下图所示:
其中dtpBeginDate是日期选择框。
数据表格dbgClass的设置可以参考“院系设置模块”中对dbgDepart的操作。
5.4模块功能的实现
通用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 信息管理 系统 设计 说明书 实验 例子
![提示](https://static.bdocx.com/images/bang_tan.gif)