学生信息管理系统设计与开发.docx
《学生信息管理系统设计与开发.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统设计与开发.docx(26页珍藏版)》请在冰点文库上搜索。
学生信息管理系统设计与开发
河南工程学院
《数据库原理及应用》课程设计
成果报告
学生信息管理系统设计与开发
学生学号:
学生姓名:
学院:
计算机学院
专业班级:
专业课程:
数据库原理及应用课程设计
指导教师:
年月日
课程设计指导教师评分表
课程设计题目
学生信息管理系统设计与开发
成员
姓名
学号
任务分工
2
VB系统窗体设计及数据库设计
数据库代码片段筛选及整理
数据库及系统整体修改调试
评分项目及分值要素
成绩评定
项目
最高分
评分要素
成绩
1.学习态度
20
上机出勤及端正的学习态度、认真刻苦程度,工作量饱满程度等
2.软件设计质量
40
采用的算法、设计方案,设计结果,界面友好等方面进行综合评定
3.答辩过程
20
能简明扼要地阐述设计的主要内容,能准确流利地回答各种问题
4.设计报告书写
10
内容按要求步骤书写,条理清晰,表述清楚、措词得当
5.实际动手能力
10
熟练使用开发工具,能够迅速准确的进行调试、纠错与运行;组长全面负责,承担复杂的模块设计分值就高
总成绩
等级
评语
1、数据需求分析………………………………………………………………………、3
、2、概念结构设计(ER图)………………………………………………………………、4
3、逻辑结构设计(规范化)…………………………………………………………………5
4、物理结构设计(索引)……………………………………………………………………6
学生信息管理系统设计与开发
一、设计目的
设计目的:
建立高效利用的学生信息管理系统,实现大量信息的规范管理、科学统计与快速查询,从而更好的减少管理方面的工作量。
学生信息管理系统提供了强大的学生信息管理功能,方便管理员对学生信息进行添加、修改、删除、查询、统计等操作。
因此,学生信息管理系统能够满足学校的需要,简化学生信息的管理过程,提高管理效率,就是学校学生信息管理的一种重要的工具。
二、系统实现思路
1、需求分析
本次的实训课程着手于学生信息管理系统,原因在于学校的规模不断扩大,学生数量也在急剧增加,有关学生的各种信息量也在成倍增长。
对于庞大的信息量,一个高效的信息管理系统就是能够很大程度上提高学生管理工作的效率。
2、总体设计
系统功能分析:
系统开发的目的就是实现学生信息管理系统的关系化、规范化与自动化。
学生信息管理系统主要提供对学生信息的管理、班级信息的管理、课程信息的管理以及学生成绩的管理。
主要功能有:
(1)有关学生信息的输入、修改与查询。
(2)班级信息的输入、修改与查询。
(3)基本课程的输入、修改与查询。
(4)成绩的输入、修改与查询。
(5)学生成绩信息的统计。
(6)模拟用户登录操作。
系统功能模块设计:
图1系统功能模块
三、系统数据库设计
1、数据需求分析
用户的需求具体体现在各种信息的提供、保存、更新与查询方面,这就要求数据库结构能充分满足各种信息的输出与输入。
收集基本的数据、数据结构以及数据处理的流程,组成一份相近的数据字典,为后面的具体设计打下良好的基础。
2、概念结构设计(ER图)
图2学生实体E-R图
图3班级实体E-R图
图4课程实体E-R图
图5实体与实体之间E-R图
3、逻辑结构设计(规范化)
学生管理系统数据库中各个表格的设计如下所示:
表1学生基本信息
字段名
数据类型
大小
就是否为空
说明
student_no学号
int
4
否
主键
student_name姓名
char
10
能
无
student_sex性别
char
2
否
无
Born_date出生日期
Datatime
8
能
无
class_no班级号
int
能
无
Tele_number联系方式
char
10
能
外关键字
ru_date入学日期
Datatime
能
无
address地址
Varchar
50
能
无
comment备注
Varcher
200
能
无
表2班级基本信息
字段名
数据类型
大小
就是否可空
说明
class_no班级编号
Int
10
否
主关键字
class_name班级名
Char
20
否
无
profession专业
Char
14
能
无
director班主任
charr
10
能
外关键字
字段名
数据类型
大小
就是否可空
说明
course_no课程号
Int
否
关键字
course_name课程名
Char
10
否
无
course_score学分
Int
4
能
无
course_time学时
int
4
能
无
course_type课程类型
char
10
能
无
course_start开课时间
char
1
能
无
表3课程基本信息
表4成绩基本信息
字段名
数据类型
大小
就是否可空
说明
exam_no成绩号
Char
10
否
主关键字
Student_no学号
Int
4
否
外关键字
course_no课程号
Char
10
否
外关键字
result成绩
Int
4
就是
无
4、物理结构设计(索引)
班级设置
班级信息录入
班级信息管理
学生信息录入
班级设置
学生信息管理
成绩信息录入
成绩信息管理
班级设置
学生信息录入
课程管理
登录
图6学生信息管理系统数据流程图
学生基本信息:
包括学生学号、姓名、性别、出生日期、联系电话、家庭住址等。
班级基本信息:
包括班级号、班级名、班主任等。
课程基本信息:
包括课程编号、课程名称、课程类型、学分等。
学生成绩信息:
包括学生学号、课程编号与考试成绩等。
四、详细系统设计
针对此次学生信息管理系统,分为了学生信息管理,班级信息管理,课程信息管理与成绩信息管理界面,分多种功能操作,由于时间原因,简单针对学生信息管理进行了比较详细的功能操作测试,先就是通过菜单编辑器实现了多功能布局操作,选取了学生信息进行了窗口功能操作。
例如:
点击添加学生信息,可以实现添加学生信息功能,并且单独设置了模拟用户登录界面,实现了用户隐私安全性保护数据。
图7窗口目录的创建
图8班级信息管理创建
图9学生信息管理创建
图10课程信息创建
图11成绩信息管理创建
图12工程主窗体的创建
用户登录:
DimaAsString
DimbAsString
DimstrAsString
DimstrrAsString
str=InStr(Text2、Text,"'")
Ifstr<>0Then
MsgBox"不能输入非法字符!
!
",vbCritical+vbOKOnly,"错误"
ExitSub
Else
strr=InStr(Text1、Text,"'")
Ifstrr<>0Then
MsgBox"不能输入非法字符!
!
",vbCritical+vbOKOnly,"错误"
ExitSub
EndIf
EndIf
a=Trim(Text1)
b=Trim(Text2)
Ifa=""Then
MsgBox"用户名不能为空!
",vbCritical,"错误"
Text1、SetFocus
Text1、SelStart=0
Text1、SelLength=Len(Text1)
Else
DimrAsNewADODB、Recordset
Setr=DataEnvironment1、rsuser
DimcAsString
StaticnTryCountAsInteger
c="select*from用户登陆where用户名='"&a&"'"
Ifr、State=adStateOpenThenr、Close
r、Openc
Ifr、EOFThen
MsgBox"无此用户!
请重新登陆!
!
",vbCritical,"错误"
Text1、SetFocus
Text1、SelStart=0
Text1、SelLength=Len(Text1)
nTryCount=nTryCount+1
IfnTryCount>=5Then
MsgBox"您无权操作本系统!
",vbCritical,"错误"
UnloadMe
EndIf
Else
Ifb=Trim(r、Fields
(1))Then
quanxian=Trim(r、Fields
(2))
MDIForm1、Show
UnloadMeElse
MsgBox"密码错误!
请重新登陆!
!
",vbCritical,"错误"
Text2、SetFocus
Text2、SelStart=0
Text2、SelLength=Len(Text2)
nTryCount=nTryCount+1
IfnTryCount>=5Then
MsgBox"您无权操作本系统!
",vbCritical,"错误"
UnloadMe
EndIfEndIf
EndIfEndIf
图13系统启动窗体
图14用户登录窗体
五、系统调试运行
数据库的创建与调试:
1、创建学生信息表
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,
[tale_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
2、创建班级信息表
CREATETABLE[dbo]、[class_info](
[class_No][int]NOTNULL,
[class_Name][char](20)COLLATEChinese_PRC_CI_ASNOTNULL,
[director][char](10)COLLATEChinese_PRC_CI_ASNULL,
[profession][char](14)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
GO
3、创建课程信息表
CREATETABLE[dbo]、[class_info](
[course_No][int]NOTNULL,
[course_Name][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[course_Type][char](10)COLLATEChinese_PRC_CI_ASNULL,
[course_start][char]
(1)COLLATEChinese_PRC_CI_ASNULL,
[course_time][int]NULL,
[course_score][int]NULL
)ON[PRIMARY]
GO
4、创建成绩信息表
CREATETABLE[dbo]、[class_info](
[student_Id][int]NOTNULL,
[course_No][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[result][float]NULL
)ON[PRIMARY]
GO
学生信息管理系统主窗体的创建与调试:
图15基础工程窗体概览
图16工程窗体的代码展示
添加学生信息:
图17添加学生信息窗体
PrivateSubFrom_Load()
DimrstAsADODB、Recordset
DimsqlstrAsString
DimMsgTextAsString
DimiAsInteger
Text1、Text=“20000101”:
Text2、Text=“”:
Combo1、Text=“男”
Combo2、Text=“200001”:
Text5、Text=“2000-01-01”:
Text6、Text=“2000-01-01”
Text7、Text=“”:
Text8、Text=“”:
Text9、Text=“”
Combo1、AddItem“男”
Combo1、AddItem“女”
sqlstr=“selectfromclass_Info“
Setrst=QuerySQL(sqlstr,MsgText)
Fori=1Torst、RecordCount
Combo2、AddItemrst、Fields(0)
Rst、moveNext
Nexti
Rst、Close
EndSub
PrivateSubCommand1_Click()
DimrstAsADODB、Recordset
DimsqlstrAsString
DimMsgTextAsString
IfNotTesttxt(Text1、Text)Then
MsgBox“请输入学号!
”,vbOKOnly+vbExclamation,“警告”
Text1、SetFocus
ExitSub
EndIf
IfNotTesttxt(Text2、Text)Then
MsgBox“请输入姓名!
”,vbOKOnly+vbExclamation,“警告”
Text2、SetFocus
ExitSub
EndIf
IfNotTesttxt(Combo1、Text)Then
MsgBox“请选择性别!
”,vbOKOnly+vbExclamation,“警告”
Combo1、SetFocus
ExitSub
EndIf
IfNotTesttxt(Combo2、Text)Then
MsgBox“请输入班号!
”,vbOKOnly+vbExclamation,“警告”
Combo2、SetFocus
ExitSub
EndIf
IfNotTesttxt(Text5、Text)Then
MsgBox“请输入出生日期!
”,vbOKOnly+vbExclamation,“警告”
Text5、SetFocus
ExitSub
EndIf
IfNotTesttxt(Text6、Text)Then
MsgBox“请输入入校日期!
”,vbOKOnly+vbExclamation,“警告”
Text6、SetFocus
ExitSub
EndIf
IfNotTesttxt(Text7、Text)Then
MsgBox“请输入电话号码!
”,vbOKOnly+vbExclamation,“警告”
Text7、SetFocus
ExitSub
EndIf
IfNotTesttxt(Text8、Text)Then
MsgBox“请输入家庭住址!
”,vbOKOnly+vbExclamation,“警告”
Text8、SetFocus
ExitSub
EndIf
IfNotTesttxt(Text9、Text)Then
MsgBox“请输入备注信息!
”,vbOKOnly+vbExclamation,“警告”
Text9、SetFocus
ExitSub
EndIf
IfNotIsNumeric(Trim(Text1、Text))Then
MsgBox“请输入数字!
”,vbOKOnly+vbExclamation,“警告”
Text5、SetFocus
ExitSub
EndIf
sqlstr=“selectfromclass_Info“
student_ID=’”&Trim(Text1、Text)&“’”
Setrst=QuerySQL(sqlstr,MsgText)
Ifrst、EOF=FalseThen
MsgBox“学号重复,请重新输入!
”,vbOKOnly+vbExclamation,“警告”
rst、Close
Text1、SetFocus
Else
rst、Close
IfNotIsDate(Text5、Text)Then
MsgBox“此出生日期应输入格式(yyyy-mm-dd)!
”,
vbOKOnly+vbExclamation,“警告”
Text5、SetFocus
Else
Text5=Format(Text5,“yyyy-mm-dd”)
IfNotIsDate(Text6、Text)Then
MsgBox“入校时间应填日期格式(yyyy-mm-dd)!
”,
vbOKOnly+vbExclamation,“警告”
Text6、SetFocus
Else
Text6=Format(Text6,“yyyy-mm-dd”)
sqlstr=“select*fromstudent_Info”
Setrst=QuerySQL(sqlstr,MsgText)
rst、AddNew
rst、Fields(0)=Trim(Text1、Text)
rst、Fields
(1)=Trim(Text2、Text)
rst、Fields
(2)=Trim(Combo1、Text)
rst、Fields(3)=Trim(Text5、Text)
rst、Fields(4)=Trim(Combo2、Text)
rst、Fields(5)=Trim(Text7、Text)
rst、Fields(6)=Trim(Text6、Text)
rst、Fields(7)=Trim(Text8、Text)
rst、Fields(8)=Trim(Text9、Text)
MsgBox“添加学籍信息成功!
”,vbOKOnly+vbExclamation,“警告”
rst、Close
EndIf
EndIf
EndIf
EndSub
PrivateSubCommand2_Click()
UnloadMe
EndSub
图18修改学生信息窗体
图19查询学生信息窗体
模块的创建调试:
PublicfMainFormAsfrmMain
PublicUserNameAsString
SubMain()
DimfLoginAsNewfrmLogin
fLogin、ShowvbModal
IfNotfLogin、succThen
‘登录失败,退出应用程序
End
EndIf
UnloadfLogin
SetfMainForm、Show
EndSub
PublicFunctionQuerySQL(ByValSQL_图20模块的创建与调试
AsString,MsgAsString)_
AsADODB、Recordset
DimcnAsADODB、Connecrion
DimrSAsADODB、Recordset
Dimss()AsString
OnErrorGoToQuerySQL_Error
ss=Sqlit(SQL)
Setcn=NewADODB、Connection
ConnectString=“Driver=SQLServer;Server=zcj;UID=sa;PWD=sa;Database=Student”cn、OpenConnectString
IfInStr(“INSERT,DELETE,UPDATE”,UCase$(ss(0)))Then
cn、ExecuteSQL
Msg=ss(0)&_“查询成功”Else
SetrS=NewADODB、Recordset
rS、OpenTrim$(SQL),cn,adOpenKeyset,adLockOptimistic
SetQuerySQL=rS
Msg=“查询到”&rS、RecordCount&“条记录”EndIf
QuerySQL_Exit:
SetrS=NothingSetcn=NothingExitFunction
QuerySQL_Error:
Msg=“查询错误:
“&Err、Description
ResumeQuerySQL_Exit
EndFunction
PublicFunctionTesttxt(txtAsString)AsBoolean
IfTrim(txt)=“”Then
Testtxt=FalseElse
Testtxt=True
EndIf
EndFunction
六、总结及心得体会(感受、不足)
短暂的一周数据库实训课程转眼间已经结束,通过此次的实训课程练习,大大的提高了我的团队协作能力,我们分工明确,对本次的数据库设计内容进行了比较详细的规划。
首先,实训前针对所需要的文件进行了提前准备,调试了有关