学生学籍管理系统.docx
- 文档编号:15845800
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:23
- 大小:222.07KB
学生学籍管理系统.docx
《学生学籍管理系统.docx》由会员分享,可在线阅读,更多相关《学生学籍管理系统.docx(23页珍藏版)》请在冰点文库上搜索。
学生学籍管理系统
软件工程(设计)鉴定表
题 目
学生信息管理系统
姓 名
伊长宫学号0711701070
院 系
计算机科学与技术学院
专 业
软件工程
指导教师
倪健成职称
曲阜师范大学教务处制
摘要
随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。
管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。
本文介绍了采用“自上而下地总体规划,自下而上地应用开发”的策略开发一个管理信息系统的过程。
通过分析访客管理的不足,创建了一套行之有效的计算机管理学生的方案。
文章介绍了访客管理信息系统的系统分析部分,包括可行性分析、业务流程分析等;系统设计部分主要介绍了系统功能设计和数据库设计及代码设计;系统实现部分说明了几个主要模块的算法,本系统面友好,操作简单,比较实用。
一系统需求分析
为了充分实现素质教育。
多方面发展学生的兴趣爱好,大部分学校都设立了全校范围内的选修课。
学生可以根据自己的兴趣爱好和特长,选择自己喜爱的课程。
由于高等院校的快速发展,高校的规模越来越大,学生的数量与课程的数量都在迅速的增长,管理上的手工操作不仅仅会耗费学生和工作人员大量的时间和精力。
效率以及准确性也很低。
如何使同学们方便、快捷、准确的选课,已经成为一个重要的问题。
利用计算机进行学生选课方面的管理,不仅仅能够保证准确、无误、快速输出,而且还可以利用计算机对有关信息进行查询,检索迅速、查找方便、可靠性高、存储量大、保密性好。
要科学的实现信息化管理,开发一个适合学校的,能够进行信息存储、查询、修改等功能的管理信息系统是十分必要的;
。
通过调查,要求系统需要有以下功能:
由于操作人员的计算机知识普遍较差,要求有良好的人机界面;
原始数据修改简单方便,支持多条件修
方便的数据查询,支持多条件查询;
在相应的权限下,删除数据方便简单,数据稳定性好;
数据计算自动完成,尽量减少人工干预;
二可行性分析
由于本系统管理的对象单一,都是学生,且每个数据内容具有较强的关联性,涉及的计算过程不是很复杂。
因此,比较适合于采用数据库管理。
在技术难度方面,由于有指导老师的指导和相关参考文献,特别是网上资料,特别是参考其它程序的功能,因此完全可以实现。
本系统的设计是在WindowsXP操作系统环境下,使用Java中文版开发成功的。
数据库是MIS中的重要支持技术,在MIS开发过程中,如何选择数据库管理是一个重要的问题,本系统选用的数据库语言介绍如下:
Java具有以下特点:
(1)可视化编程:
用传统程序设计语言设计程序时,都是通过编写程序代码来设计用户界面,在设计过程中看不到界面的实际显示效果,必须编译后运行程序才能观察。
如果对界面的效果不满意,还要回到程序中修改有时候,这种编程-编译-修改的操作可能要反复多次,大大影响了软件开发效率。
Java提供了可视化设计工具,把Windows界面设计的复杂性“封装”起来,开发人员不必为界面设计而编写大量程序代码。
只需要按设计要求的屏幕布局,用系统提供的工具,在屏幕上画出各种“部件”,即图形对象,并设置这些图形对象的属性。
(2)面向对象的程序设计
Java支持面向对象的程序设计,是应用面向对象的程序设计方法(OOP),把程序和数据封装起来作为一个对象,并为每个对象赋予应有的属性,使对象成为实在的东西。
在设计对象时,不必编写建立和描述每个对象的程序代码,而是用工具画在界面上。
三系统设计
3·1.系统功能分析
系统开发的总体任务是实现学生信息关系的系统化,规范化和自动化。
学生管理系统需要完成的功能主要有:
●学生信息的输入,包括输入学生基本信息、所在班级、所学课和成绩等。
●学生信息的查询,包括输入学生基本信息、所在班级、已学课程和成绩等。
●学生信息的修改。
●班级管理信息的输入、查询、修改,包括输入班级设置,年级信息等。
●基本课程信息的输入、查询、修改。
●学生成绩信息的输入、查询、修改。
对上述各功能进行集中、分块、按照结构化程序设计的要求。
3·2.系统流程图
四数据库设计
4·1.数据库需求分析
●用户信息:
包括的数据项有:
用户名、密码、用户描述。
●学生基本信息:
包括的数据项有:
学生学号、学生姓名、性别、出生日期、班号、联系电话、入校日期、家庭地址、备注等。
●班级信息:
包括的数据项有:
班号、所在年级、班主任姓名、所在教室等。
●课程基本信息:
包括的数据项有:
课程号、课程名称、课程类别、课程描述等。
●课程设置信息:
包括的数据项有:
年级信息、所学课程等。
●学生成绩信息:
包括的数据项有:
考试编号、所在班号、学生学号、学生
姓名、所学课程、考试分数等。
学生管理系统数据流程图
4·2.数据库概念结构设计
本系统的实体有:
学生实体、班级实体、年级实体、课程实体。
各个实体具体的描述E-R图如图下所示。
学生图
班级图
课程图
年级图
现在需要将上面的数据库概念结构转化为SQLServer2000数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。
学生管理系统数据库中各个表格的设计结果如下面的几个表所示。
每个表表示在数据库中的一个数据表
表student-info学生基本信息表
表4-2class-info班级基本信息表
表course-info课程基本信息表
4·3.数据库结构的实现
经过前面的需求分析和概念结构设计以后,得到数据库的逻辑结构。
就可以在SQLServr2000数据库系统中实现该逻辑结构,利用SQLServer2000数据库系统中SQL查询分析器实现的。
(1)创建系统用户表格user_info
CREATETABLE[dbo].[user_Info](
[user_ID][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[user_PWD][char](10)COLLATEChinese_PRC_CI_ASNULL,
[user_Des][char](10)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
GO
(2)创建学生基本信息表格student_info
CREATETABLE[dbo].[student_Info](
[student_ID][int]NOTNULL,
[student_Name][char](10)COLLATEChinese_PRC_CI_ASNULL,
[student_Sex][char]
(2)COLLATEChinese_PRC_CI_ASNULL,
[born_Date][datetime]NULL,
[class_NO][int]NULL,
[tele_Number][char](10)COLLATEChinese_PRC_CI_ASNULL,
[ru_Date][datetime]NULL,
[address][varchar](50)COLLATEChinese_PRC_CI_ASNULL,
[comment][varchar](200)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
GO
(3)创建班级信息表格class-info
CREATETABLE[dbo].[class_Info](
[class_No][int]NOTNULL,
[grade][char](10)COLLATEChinese_PRC_CI_ASNULL,
[director][char](10)COLLATEChinese_PRC_CI_ASNULL,
[classroom_No][char](10)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
GO
(4)创建课程基本信息表格course-info
CREATETABLE[dbo].[course_Info](
[course_No][int]NOTNULL,
[course_Name][char](10)COLLATEChinese_PRC_CI_ASNULL,
[course_Type][char](10)COLLATEChinese_PRC_CI_ASNULL,
[course_Des][char](50)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
GO
(5)创建年级课程设置信息表gradecourse-info
CREATETABLE[dbo].[gradecourse_Info](
[grade][char](10)COLLATEChinese_PRC_CI_ASNULL,
[course_Name][char](10)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
GO
(6)创建学生成绩信息表result-info
CREATETABLE[dbo].[result_Info](
[exam_No][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[student_ID][int]NOTNULL,
[student_Name][char](10)COLLATEChinese_PRC_CI_ASNULL,
[class_No][int]NULL,
[course_Name][char](10)COLLATEChinese_PRC_CI_ASNULL,
[result][float]NULL
)ON[PRIMARY]
GO
五详细设计
主窗体的创建
上面的SQL语句在SQLServer2000中查询分析器执行后,将自动产生需要的所有表。
有关数据库结构的所有后台工作已经完成。
现在将通过学生管理系统中各个功能模块的实现,来编写数据库系统的客户端程序。
创建工程项目——Student-MS
如图5-1:
创建Student-MIS项目
创建主窗体
VisualBasic创建的应用程序可以是SDI(单文档界面)和MDI(多文档界面)。
在SDI的程序中,每个窗体之间是独立的。
而MDI的程序中,有一个窗体是主窗体,可以包含其他窗体,它的类型是MDIForm。
本系统采用多文档界面,这样可以使程序更加美观,整齐有序。
单击工具栏的“ADDMDIForm”按钮,生成一个如下所示的窗体,
公用模块
在VisualBasic中可以用共用模块来存放整个工程项目公用的函数、全局变量等。
整个工程项目中的任何地方都可以调用公用模块中的函数、变量,这样可以极大地提高代码的效率。
在项目资源管理器中为项目添加一个Module,保存为Module.bas。
下面就可以开始添加需要的代码。
由于系统中各个功能模块都将频繁使用数据库中的各种数据,因此需要一个公共的数据操作函数,用以执行各种SQL语句。
添加函数ExecuteSQL,代码如下:
PublicFunctionExecuteSQL(ByValSQL_
AsString,MsgStringAsString)_
AsADODB.Recordset
'传递参数SQL查询语句,MsgString传递查询信息
'自身以一个数据集对象的形式返回
DimCNnAsADODB.Connection
'定义连接
DimrstAsADODB.Recordset
'定义字符串
DimsTokens()AsString
'异常处理
OnErrorGoToExecuteSQL_Error
'用Split函数产生一个包含各个子串的数组
sTokens=Split(SQL)
'创建连接
SetCNn=NewADODB.Connection
CNn.OpenConnectString
'判断字符串中是否有指定内容
IfInStr("INSERT,DELETE,UPDATE",_
UCase$(sTokens(0)))Then
'执行查询语句
CNn.ExecuteSQL
'返回查询信息
MsgString=sTokens(0)&_
"querysuccessful"
Else
'创建数据集对象
Setrst=NewADODB.Recordset
'返回查询结果
rst.OpenTrim$(SQL),CNn,_
adOpenKeyset,_
adLockOptimistic
'rst.MoveLast'getRecordCount
SetExecuteSQL=rst
MsgString="查询到"&rst.RecordCount&_
EndIf
ExecuteSQL_Exit:
'清空数据集对象
Setrst=Nothing
'中断连接
SetCNn=Nothing
ExitFunction
'错误类型判断
ExecuteSQL_Error:
MsgString="查询错误:
"&_
Err.Description
ResumeExecuteSQL_Exit
EndFunction
ExecuteSQL函数有两了参数:
SQL和MsgString。
其中SQL用来存放需要执行的SQL语句,MsgString用来返回执行的提示信息。
函数执行时,首先判断SQL语句中包含的内容。
当执行查询操作时,ExecuteSQL函数将返回一个与函数同名的记录名对象(Recordset),所有满足条件的记录包含在对象中。
当执行如删除、更新、添加等操作时,不返回记录集对象。
在ExecuteSQL函数中使用ConnectString函数,这个函数用来连接数据库,代码如下:
PublicFunctionConnectString()_
AsString
'返回一个数据库连接
ConnectString="FileDSN=studentinfo.dsn;UID=sa;PWD="
EndFunction
由于在后面的程序中,需要频繁检查各种文本框的内容是否为空,这里定义了Testtxt函数,代码如下:
PublicFunctionTesttxt(txtAsString)AsBoolean
IfTrim(txt)=""Then
Testtxt=False
Else
Testtxt=True
EndIf
EndFunction
由于学生管理系统启动后,需要对用户进行判断。
如果登录者是授权用户,将进入系统,否则将停止程序的执行。
这个判断需要在系统运行的最初进行,因此将代码放在公用模块中,代码如下:
PublicfMainFormAsfrmMain
PublicUserNameAsString
SubMain()
DimfLoginAsNewfrmLogin
'显示登陆窗体
fLogin.ShowvbModal
'判断是否授权用户
IfNotfLogin.OKThen
LoginFailedsoexitapp
End
EndIf
UnloadfLogin
SetfMainForm=NewfrmMain
fMainForm.Show
EndSub
过程Main将在系统启动是首先执行,这就保证对用户的管理。
3学籍管理模块的创建
学籍信息管理模块主要实现如下功能:
●添加学籍信息
●修改学籍信息
●查询学籍信息
1.添加学籍信息窗体的创建
选择“学籍管理|添加学籍信息”菜单,将出现如下的窗体;
在窗体上放置多个文本框和下拉式文本框,用来输入学籍信息。
两个按钮用来确定是否添加学籍信息。
多个标签用来提示文本框中需要输入的内容。
2.修改学籍信息窗体的创建
选择“学籍管理|修改学籍信息”菜单,将出现如下所示的窗体。
图5-8修改学籍信息窗体
3.查询学籍信息窗口的创建
选择“学籍管理|查询学籍信息”菜单,将出现如下所示的窗体。
在这里可以按照各种方式以及他们的组合进行查询。
5·4班级管理模块的创建
班级管理模块主要实现如下功能:
●添加班级信息
●修改班级信息
●查询班级信息
2.修改班级信息窗体的创建
选择“班级管理|修改班级信息”菜单,将出现。
图5-11修改班级信息窗体
窗体中“查看班级信息”中的按钮,可以浏览数据库中的个条记录,这里就不在重复。
“修改班级信息”框架中的按钮用来修改记录,实现的方法和前面介绍的一样。
3.查询班级信息窗体的创建
选择“班级管理|查询班级信息”菜单,将出现。
5·5课程设置模块的创建
课程设置模块主要实现如下功能:
●添加课程信息
●修改课程信息
●查询课程信息
1.添加课程信息窗体的创建
选择“课程设置|添加课程信息”菜单,将出现。
2.修改课程信息窗体的创建
选择“课程设置|修改课程信息”菜单,将出现
“修改课程信息”框架中的4个按钮用来修改数据集中的记录,方法见前面的内容。
3.查看年级课程窗体的创建
选择菜单“课程设置|查看年级课程”,将出现。
将触发Click事件显示所选择年级的课程,代码如下:
PrivateSubcomboGrade_Click()
DimmrcAsADODB.Recordset
DimtxtSQLAsString
DimMsgTextAsString
DimiAsInteger
'清除列表框内容
listSelectcourse.CleartxtSQL="select*fromgradecourse_Infowheregrade='"&comboGrade.Text&"'"
Setmrc=ExecuteSQL(txtSQL,MsgText)
IfNotmrc.EOFThen
Fori=1Tomrc.RecordCount
listSelectcourse.AddItemmrc.Fields
(1)
mrc.MoveNext
Nexti
EndIf
mrc.Close
EndSub
单击“确认”按钮,将显示所有课程的确认信息,代码如下:
PrivateSubcmdSet_Click()
DimmrcAsADODB.Recordset
DimtxtSQLAsString
DimMsgTextAsString
'使各个控件有效
listAllcourse.Enabled=True
listSelectcourse.Enabled=True
cmdModify.Enabled=True
'查询数据
txtSQL="select*fromcourse_Info"
Setmrc=ExecuteSQL(txtSQL,MsgText)
While(mrc.EOF=False)
listAllcourse.AddItemmrc.Fields
(1)
mrc.MoveNext
Wend
mrc.Close
flagSet=True
EndSub
单击取消按钮,可以取消查看课程的信息,代码如下:
PrivateSubcmdAdd_Click()
'判断是否有内容被选中
IflistAllcourse.ListIndex<>-1Then
listSelectcourse.AddItemlistAllcourse.List(listAllcourse.ListIndex)
EndIf
EndSub
PrivateSubcmdDelete_Click()
'判断是否有内容被选中
IflistSelectcourse.ListIndex<>-1Then
listSelectcourse.RemoveItemlistSelectcourse.ListIndex
EndIf
EndSub
列表框的ListIndex属性用来指示当前选择项,说明没有被选中的数据项。
单击“确认设置”按钮,将课程设置数据保存到数据库中,代码如下:
PrivateSubcmdModify_Click()
DimiAsInteger
DimmrcAsADODB.Recordset
DimmrccAsADODB.Recordset
DimtxtSQLAsString
DimMsgTextAsString
DimmyBookmarkAsVariant
IfNotTesttxt(comboGrade.Text)Then
MsgBox"请先选择年级!
",vbOKOnly+vbExclamation,"警告"
ExitSub
EndIf
IfNotTesttxt(listSelectcourse.List(0))Then
MsgBox"请选择课程!
",vbOKOnly+vbExclamation,"警告"
ExitSub
EndIf
txtSQL="select*fromgradecourse_Infowheregrade='"&Trim(comboGrade.Text)&"'"
Setmrc=ExecuteSQL(txtSQL,MsgText)
Ifmrc.EOFThen
Fori=1TolistSelectcourse.ListCount
mrc.AddNew
mrc.Fields(0)=comboGrade.Text
mrc.Fields
(1)=listSelectcourse.List(i-1)
mrc.Update
Nexti
mrc.Close
MsgBox"课程设置成功!
",vbOKOnly+vbExclamation,"警告"
Else
mrc.Close
txtSQL="deletefromgradecourse_Infowheregrade='"&Trim(comboGrade.Text)&"'"
Setmrcc=ExecuteSQL(txtSQL,MsgText)
txtSQL="select*fromgradecourse_Info"
Setmrcc=Exe
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 学籍 管理 系统