学生管理信息系统.docx
- 文档编号:2654886
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:23
- 大小:189.14KB
学生管理信息系统.docx
《学生管理信息系统.docx》由会员分享,可在线阅读,更多相关《学生管理信息系统.docx(23页珍藏版)》请在冰点文库上搜索。
学生管理信息系统
经济管理学院本科课程设计论文
数据库开发与应用课程设计
2010年1月8日
一概述3
二需求分析3
1理解需求3
2分析需求4
3学生管理信息系统的用例分析5
4学生管理信息系统的域类分析5
三概要设计6
1E-R图分析11
2数据库设计12
3创建数据库12
4创建表12
四详细设计14
1用户登录的代码实现14
2成绩管理的代码实现15
3学籍变更的代码实现16
4奖励管理的代码实现17
5查询/修改的代码实现17
学生管理信息系统
随着学校规模的不断扩大,学生数量的不断增加,学生的信息量也成倍增长。
学生管理工作是学校各项工作的一个重要部分,其管理水平的高低将直接影响到人才的培养质量。
面对庞大的信息量,如何有效地提高学生管理工作的效率是一个学校急需解决的问题。
因此开发适合学校需要的学生管理信息系统,通过这样的系统,可以做到信息的规范管理、科学统计和快速查询,并减少管理方面的工作量。
一概述
学生管理信息系统作为学校管理中的一个子系统,与其他子系统,如教学管理系统、人事管理系统、后勤管理系统,图书馆管理系统等一起构成构园管理信息系统,为校园管理信息化提供一个子功能。
所以,几乎所有的大、中、小学校都需要一套这样的管理系统来提高日常的工作效率。
一般来说学生管理信息系统应该包括学生信息管理、学籍管理、成绩管理、奖惩管理和系统管理等基本内容。
(1)学生信息管理的数据有:
学生学号、姓名、性别、出生日期、所属班级、所属院系、籍贯等,当有新生到校时,就启动相应的信息管理功能,对所有的学生信息进行入库,随时掌握学生的基本信息。
(2)学籍管理主要是对学生的学籍变更情况及时控制和管理,变更的原因有:
转系、休学、复学、退学和毕业离校。
(3)成绩管理是数据量比较大的管理工作,每次考试结束后负责对学生各个科目的成绩入库工作和对数据库成绩出错的校对工作。
(4)奖惩管理是针对学生在校的表现情况,对学生进行相应的处理工作,奖励的项目有各种奖学金和文体奖励,处罚的项目有通报批评、警告、严重警告、记过、留校查看、开除等。
(5)系统管理主要是执行数据库备份和恢复、数据库表的维护等工作,保证系统的正常运行。
学生管理信息系统作为典型的数据库项目应用的一种,其开发流程包括需求分析、UML系统建模、确定系统集成方案、数据库分析和设计以及各功以模块的开发等。
下面介绍一个学生管理信息系统的详细开发过程。
二需求分析
需求分析是数据库系统开发的第一步,也是最重要的一步。
需求分析可以分为两个过程:
一是理解需求,二是分析需求。
下面分别分析这两个过程。
1理解需求
只有通过对学生管理信息系统的终端用户和客户进行大量的调研,才能真正理解终端用户和客户的需求,才能开发出合理的、实用的管理系统,才能满足各大、中、小学校的管理需要。
基于大量的调研数据,下面列出对最典型、最关键的需求。
(1)每年开学时,新生来报琶,要对每位新生的信息建立个人档案,这部分工作由学籍科的管理人员进行维护和操作。
学生个人档案包括学生学号、姓名、性别、出生日期、所属班级、所属院系、籍贯等。
(2)考试结束时,教务科的管理人员将学生各科的成绩录入数据库,以备随时查询。
当然录入成绩也有出错的可能,所以,必须具有校对修改成绩的功能。
(3)当学生的表现出色或差的时候,学生科的管理人员应对其进行奖励或处罚,相应的奖项(或处罚)和奖励(或处罚)时间的数据都应该入库。
(4)当学生因为疾病、学业修完等原因学籍需要变更的时候,学籍科的管理人员应该对其进行学籍变更手续。
(5)学生应该具有查询个人信息和成绩的权力和权限。
(6)系统还应提供强大的数据统计、查询、报表生成以及打印等功能。
(7)系统客户端运行在Windows平台下,服务器端可以运行在Windows平台或者Unix平台下。
(8)系统应该有很好的可扩展性。
在本系统中主要提供新生信息录入、学籍变更、成绩管理和奖惩管理等相关的功能。
2分析需求
分析需求就是描述系统的需求,通过定义系统中的关键域类来建立模型。
分析的根本目的是在开发者和提出需求的人之间建立一种理解和沟通的机制,因此学生管理信息系统的需求分析是开发人员和学校管理人员一起完成的。
分析需求的第一步是描述学生管理信息系统的功能,即定义用例,以此确定系统的功能需求。
一所学校的主要成员就是学生和学校的管理人员、教师、系统管理员等,管理人员主要指学籍科、学生科和教务科的人员,他们是学生管理信息系统的主要使用者。
学生也是学生管理信息系统的重要使用者,只是具备的管理权限没有管理人员那么广。
系统管理员也是其中一个管理人员,这不影响本系统的功能。
学生管理信息系统的用例包括以下内容。
·新生信息
·学生成绩(包括录入和校对)
·学籍变更
·学生奖励
·学生处罚
·学生信息查询修改
需要注意的是,学生信息查询修改用例包括学生对个人基本信息和查询和修改,这些信息指的是新生入学时被录入的基本信息。
此外,学生还具有查询和打印成绩的权限,查询奖惩情况、学籍变更记录等权限。
学生管理信息系统的分析可以用UML的用例图来描述。
每个用例还可以以文本的方式描述,描述的内容包括用例以及用例与角色交互的更详细的信息,文本的内容是通过和用户讨论后确定的。
下面给出上述用例的描述。
(1)新世界生信息
增加学生记录→标记学生学号→确定学生院系→确定学生班级
(2)学生成绩
增加学生成绩记录→校对学生成绩
(3)学籍变更
增加学籍变更记录→标记变更原因→标记变更时间
(4)学生奖励
增加学生奖励记录→标记奖励项目→标记奖励时间
(5)学生处罚
增加学生处罚记录→标记处罚等级→标记处罚时间
(6)学生信息查询修改
查询个人信息→修改个人信息→保存个人信息→查询奖惩情况→查询学籍变更情况→打印成绩单
完成需求分析后,就需要对系统进行UML建模。
UML建模是对需求分析结果的模型建立过程。
下面进行学生管理信息系统的UML建模过程。
3学生管理信息系统的用例分析
在上一节需求分析中列出了学生管理信息系统的全部用例:
新生信息、学生成绩、学籍变更、学生奖励、学生处罚、学生信息查询修改。
这里,使用权用Rose软件进行UML建模,其用例如图1所示。
图1学生管理信息系统用例图
该用例图标记了所有的学生管理住处系统的用例,从中可以得知,学生管理信息系统的角色可以划分为两类。
·学校管理人员:
用例包括学生管理信息系统的所有用例。
·学生:
用例只有学生信息查询修改。
要注意的是,学校管理人员具有查询和修改所有数据的权限,处于高权限位置,而学生只有修改个有基本信息、查询奖惩情况、查询学籍变更情况和打印成绩单的权限,处于低权限位置。
4学生管理信息系统的域类分析
UML建模的第二步就是域类分析。
实际开发学生管理信息系统时,域类分析是建立在用例分析基础上的。
要了解系统要处理的概念,最好奖学校的管理人员组织起来开个讨论会,详细谈论和列举所需要包含水量的用例,了解概念和概念之间的关系。
学生管理信息系统中的域主要包括:
学生(Student)、成绩(Score)、学籍变更(Change)、奖励(Encourage)、处罚(Punish)。
可以在类图中将上面这些域以及它们之间的关系表示出来,如图2所示。
图2学生管理信息系统域草图
需要说明的是,这里的域类还是处于“草图”状态,定义的操作和属性不是最后的片本,只是在现阶段看来这些操作和属性是比较合适的,有些操作奖在时序图的草图中定义,而不晨用例哪定义。
有些类可以用UML状态图来显示类的对象的不同状态以及改变状态的事件。
在本系统中有状态图的类是学生,该类的状态图将在后面的内容中介绍。
为了描述域类的动态行为,可以使用权UML的时序图、协作图或者活动图来描述。
本文选用时序图。
时序图的基础是用例。
在时序图中要说明域类是如何协作以操作该系统中的用例。
当然,在建立时序图时,将会发现新的操作,并将其加入类中,这将在后面看到所建立的时序图模型。
用时序图建模时,需要窗口或对话框作为角色界面。
显然,这里需要操作界面的有基本信息、奖励、处罚、学籍变更、修改查询等,此外维护也需要一个操作界面。
三概要设计
在设计阶段,首先要设计类的状态的图。
类的状态图说明了可能的状态以及需要被处理的过渡期,使用状态图可以揭示单个对象在整个系统中的变化细凶,对了解和实现关键类有较大的帮助。
不是所有的类都有状态图,在本系统中,有状态图的类是学生。
学生的状态图如图3所示。
图3学生的状态图
设计阶段的最后一步是设计UML模型,也就是将前面设计的模型进竽扩展和细化。
下面给出各个用例的时序图。
设计的目的是产生一个可以使用的解决方案,并且可以容易地将方案转换成程序代码。
学生的时序如图6所示
图4学生时序图
成绩的时序如图7所示。
图5成绩时序图
学籍变更的时序如图8所示。
图6学籍变更时序图
奖励的时序如图9所示。
图7奖励时序图
处罚的时序如图10所示。
图8处罚时序图
查询修改的时序如图11所示。
图9查询修改时序图
时序图设计完成后,开始进行学生管理信息系统的架构设计和细节设计。
在架构设计中将定义包(子系统)、包间的相关性和基本的通信机制。
设计架构时,应该将应用逻辑和技术逻辑分割。
应用逻辑是需要编码设计的,而技术逻辑,主要包括用户界面、数据库或者通信一般是已经有的。
学生管理信息系统中的包(或者为子系统、层)有如下几个,如图9-12所示。
图10包和包间关系
·用户界面包(UserInterfacePackage):
为通用用户界面类,调用业务对象包中的操作检索和插入数据,可以简单地把它们看成将来用户要操作的界面。
·业务对象包(BusinessObjectPackage):
业务对象包包含上面设计的分析模型的域类。
业务对象包同数据库包协同完成任务。
·数据库包(DatabasePackage):
数据库包向业务对象数据包提供服务。
·应用包(UtilityPackage):
应用包向其他包提供服务。
在开发学生管理信息系统时,可以先进行E-R图分析,然后对表和字段进行分析,最后进行数据库建模。
1E-R图分析
对学生管理信息系统的E-R图分析是建立在UML系统模型基础上的。
这里给出E-R图分析的结果。
实体关系图的分析结果非常复杂,一般情况下使用从简到繁的方式进行设计。
首先从大的方面设计出各个实体之间的关系,然后在这个关系的基础上进行细化。
图15所示为学生管理信息系统的实体关系简图。
图11学生管理信息系统的实体关系简图
2数据库设计
数据库设计与应用等程序设计是分离的,数据库的设计非常重要。
有了数据库模型,数据库的设计就简单多了。
在学生管理信息系统中,首先要创建学生管理信息系统数据库,然后在数据库中创建需要的表和字段。
下面分别讲述本系统中数据库的设计。
本例采用Access2000数据库系统来进行数据库的设计。
3创建数据库
下面给出在Access中创建数据库的过程。
(1)运行Access应用程序,在“新建数据库”选项组中选取“空Access数据库”单选,按钮,然后单击“确定”按钮。
(2)在“文件新建数据库”窗口指定数据库的存放位置与数据库文件名称(本例为Stu.mdb)然后单击“创建”按钮。
4创建表
下面给出在Access中创建表的过程。
(1)在创建数据库后,进入主界面,单击“Stu:
数据库”子窗口中的“设计”按钮。
此时将会出出“表1:
表”窗口。
(2)在表的设计窗口“表1:
表”中,按表1建立数据字段,并指定字段的数据类型与相关属性。
表1学生信息数据库(Stuinfo)
字段名称
数据类型
说明
StuId
数字
编号
StuNo
数字
学号
DepartMent
文本
院系
Class
文本
班级
Name
文本
姓名
Sex
文本
性别
BirthDay
日期/时间
生日
NativePlace
文本
籍贯
建立数据库字段并指定字段的数据类型与相关属性后,字段设计界面如图21所示。
(3)在StuId字段上单击鼠标右键,选择快捷菜单中的“主键”选项,让StuId字段成为主要索引字段,则StuId字段前方将出邮一个钥匙图标。
(4)回到“Stu:
数据库”子窗口中,如果出现了StuInfo这个表项目,就代表现在已经完成学生数据文件的设计。
(5)重复步骤
(1)~(5),按表2、表3、表4、表5建立表,并指定表中各字估的数据类型与相关属性。
表2字籍变更数据表(Change)
字段名称
数据类型
说明
StuNo
数字
学号
Name
文本
姓名
Class
文本
班级
DeparMent
文本
院系
ChangeName
文本
学籍变更项
ChangeTime
日期/时间
学籍变更时间
Remark
文本
备注
表3学生奖励数据表(Encourage)
字段名称
数据类型
说明
StuNo
数字
学号
Name
文本
姓名
Class
文本
班级
DeparMent
文本
院系
EncourageName
文本
奖励项
EncourageTime
日期/时间
奖励时间
表4学生处罚数据表(Punish)
字段名称
数据类型
说明
StuNo
数字
学号
Name
文本
姓名
Class
文本
班级
DepartMent
文本
院系
PunishName
文本
处罚项
PunishTime
日期/时间
处罚时间
表5学生成绩数据表(Score)
字段名称
数据类型
说明
ScoreId
数字
编号
StuNo
数字
学号
Name
文本
姓名
Course
文本
课程
Score
数字
成绩
(7)将这些表分别名为Change、Encourage、Punish、Score,主键分别为:
StuNo、StuNo、StuNo、Scoreld,。
,
(8)回到“Stu:
数据库”子窗口中,出现了StuInfo、Change、Encourage、Punish、Scores个表项目,完成数据文件的设计。
四详细设计
以上内容完成了数据库的后台工作,建立起了能够保障系统顺利、正确运行的后台。
界面设计工作在进行系统开发的时候是必不可少,也是十分重要的。
下面就对学生管理信息系统的详细设计。
程序代码是程序的核心所在,是系统开发的灵魂。
下面对系统的代码做具体的分析。
1用户登录的代码实现
学生管理信息系统启动时,首先出现的是系统主界面。
单击系统主界面中工具栏的“用户登录”按钮,就弹出用户登录界面。
程序从配置文件中获取管理员和学生的密码,和用户输入的密码比较,如果密码正确,则根据身份配权限;如果不正确,则提示用户重输或退出:
重输3次以上,系统自动退出。
代码如下:
ProctdureTLoginFrm.BitBtn1Click(Sender:
TObject);//“用户登陆”按钮的单击事件
Varpwdfile:
textfile;
PwdStr:
string;
Begin
ifRadioButton1.checked=Truethen
assingnfile(pwdfile,’.\Admini.cfg’);
ifRadioButton2.checked=Truethen
assingfile(pwdfile,’.\student.cfg’);
reset(pwdfile);
readln(pwdfile,pwdStr);
closefile(pwdfile);
Times:
=Times=1;
Ifedit1.Text=PwdStrthen
begin
close;
StuMainFrm.Enabled:
=True
StuMainFrm.PageControll.ActivePage:
=StuMainFrm.Tabsheet6;
StuMainFrm.PageControll.Visible:
=true;
ifRadiobuttonl.checked=Truethen
begin
StuMainFrm.ToolButton2.Enabled:
=Ture;
StuMainFrm.Toolbutton3.Enabled:
=True;
StuMainFrm.ToolButton4.Enabled:
=True;
StuMainFrm.ToolButton5.Enabled:
=True;
StuMainFrm.ToolButton8.Enabled:
=True;
StuMainFrm.ToolButton6.Enabled:
=True;
end;
ifRadioButton2.checked=Truethen
begin
StuMainFrm.ToolButton6.Enabled:
=True;
end;
end
else
begin
ifMessageDlg(‘密码输入错误,是否退出?
’,mtContirmation,[mbYes,mbNo],0)=mryes
then
begin
close;
StuMainFrm.Enabled:
=True;
end
else
begin
iftimes<3theneditl.SetFocus
else
begin
MessageDlg(‘对不起,密码输入严重错误,请退出!
’,mtInformation,[mbOk],0);
Application.Terminate;
end;
end;
end;
end;
为了防止用户多次重输密码,限制了输入了次数为3次,因此需要对次数进行初始化,活加代码如下:
ProcedureTLoginFrm.FormShow(Sender:
TObject);
Begin
Times:
=0;
End;
2成绩管理的代码实现
当管理员选择了一位学生后,输入各科成绩,程序把数据保存到数据库。
代码如下:
ProcedureTStuMainFrm.BitBtn9Click(Sender:
TObject);//“添加”按钮的单击事件
varStuNo,StuName:
string;
i:
integer;
begin
withQuerydo
begin
close;
Sql.Clear;
Sql.Add(‘SelectStuNofromScoreWhersStuNo=’+’’’’+DbEdit6.Text+’’’’);
Open;
ifrecordcount=0then
begin
StuNo:
=DbEdit6.Text;
StuName:
=DbEdit7.Text;
fori:
=lto12do
begin
ifCourse[i]<>’0’then
withTable5do
begin
Open;
Append;
SetFields([nil,StuNo,kStuName,Course[i],Score[i]]);
Post;
end;
end;
end
else
MessageDlg(‘对不起,该记录已经存在!
’,mtInformation,[mbOk],0);
end;
end;
3学籍变更的代码实现
当管理员选择了学籍需要变更的学生后,输入变更项和变更时间,程序把数据保存到数据库。
代码如下:
procedureTStuMainFrm.BitbtnlClick(Sender:
Tobject);//“添加”按钮的单击事件
varStuNo,StuName,StuClass,StuDepart.ChangeName,ChangeRemark:
string;
begin
winthTable2do
begin
Open;
StuNo:
=Editl.text;
StuName:
=Edit2.text;
StuClass:
=Edit3.text;
StuDepart:
=Edit4.text;
ChangeName:
=ComboBoxl.Text;
ChangeRemark:
=Edit5.text;
append;
SetFields([StuNo,StuName,StuClass,StuDepart,ChangeName,ChangeRemark,
Formatdatetime(‘dddddde’,DateTimePicker2.Dat)]);
Post;
end;
end;
4奖励管理的代码实现
当管理员选择了需要奖励的学生后,选择了奖项和奖励时后,程序把数据保存到数据库。
代码如下:
procedureTStuMainFrm.bitbtn3Click(Sender:
TObject);//“添加”按钮的单击事件
varStuNo,StuName,StuClass,StuDepart,EncourageName:
sering;
begin
withTable3do
begin
Open;
StuNo:
=Edit6.text;
StuName:
=Edit7.text;
StuClass:
=Edit8.text;
StuDepart:
=Edit9.text;
ifRadioButtonl.checked=truethen
EncourageName:
=RadioButtonl.Caption;
ifRadioButton2.checked=truethen
EncourageName:
=RadioButton2.Caption;
ifRadioButton3.checked=truethen
EncourageName:
=RadioButton3.lCaption;
ifRadioButton4.checked=truethen
EncourageName:
=RadioButton4.Caption;
ifRadioButton5.checked=truethen
EncourageName:
=RadioButton5.Caption;
ifRadioButton6.checked=truethen
EncourageName:
=RadioButton6.Caption;
ifRadioButton7.checked=truethen
EncourageName:
=RadioButton7.Capiton;
ifRadioButton8.checked=truethen
EncourageName:
=RadioButton8.Caption;
append;
SetFields([StuNo,StuName,StuClass,StuDepart,EncourageName,
Fo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 管理信息系统