学生信息管理系统设计与开发Word格式.docx
《学生信息管理系统设计与开发Word格式.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统设计与开发Word格式.docx(27页珍藏版)》请在冰点文库上搜索。
VB系统窗体设计及数据库设计
数据库代码片段筛选及整理
数据库及系统整体修改调试
评分项目及分值要素
成绩评定
项目
最高分
评分要素
成绩
1.学习态度
20
上机出勤及端正的学习态度、认真刻苦程度,工作量饱满程度等
2.软件设计质量
40
采用的算法、设计方案,设计结果,界面友好等方面进行综合评定
3.答辩过程
能简明扼要地阐述设计的主要内容,能准确流利地回答各种问题
4.设计报告书写
10
内容按要求步骤书写,条理清晰,表述清楚、措词得当
5.实际动手能力
熟练使用开发工具,能够迅速准确的进行调试、纠错和运行;
组长全面负责,承担复杂的模块设计分值就高
总成绩
等级
评语
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
能
无
student_sex性别
2
Born_date出生日期
Datatime
8
class_no班级号
Tele_number联系方式
外关键字
ru_date入学日期
address地址
Varchar
50
comment备注
Varcher
200
表2班级基本信息
是否可空
class_no班级编号
Int
主关键字
class_name班级名
Char
profession专业
14
director班主任
charr
course_no课程号
关键字
course_name课程名
course_score学分
course_time学时
course_type课程类型
course_start开课时间
1
表3课程基本信息
表4成绩基本信息
exam_no成绩号
Student_no学号
result成绩
是
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<
EndIf
a=Trim(Text1)
b=Trim(Text2)
Ifa="
Then
用户名不能为空!
vbCritical,"
Text1.SetFocus
Text1.SelStart=0
Text1.SelLength=Len(Text1)
DimrAsNewADODB.Recordset
Setr=DataEnvironment1.rsuser
DimcAsString
StaticnTryCountAsInteger
c="
select*from用户登陆where用户名='
&
a&
Ifr.State=adStateOpenThenr.Close
r.Openc
Ifr.EOFThen
无此用户!
请重新登陆!
!
nTryCount=nTryCount+1
IfnTryCount>
=5Then
您无权操作本系统!
UnloadMe
Ifb=Trim(r.Fields
(1))Then
quanxian=Trim(r.Fields
(2))
MDIForm1.Show
UnloadMeElse
密码错误!
Text2.SetFocus
Text2.SelStart=0
Text2.SelLength=Len(Text2)
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
3、创建课程信息表
[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
4、创建成绩信息表
[student_Id][int]NOTNULL,
[course_No][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[result][float]NULL
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()
IfNotTesttxt(Text1.Text)Then
MsgBox“请输入学号!
”,vbOKOnly+vbExclamation,“警告”
Text1.SetFocus
ExitSub
EndIf
IfNotTesttxt(Text2.Text)Then
MsgBox“请输入姓名!
Text2.SetFocus
IfNotTesttxt(Combo1.Text)Then
MsgBox“请选择性别!
Combo1.SetFocus
IfNotTesttxt(Combo2.Text)Then
MsgBox“请输入班号!
Combo2.SetFocus
IfNotTesttxt(Text5.Text)Then
MsgBox“请输入出生日期!
Text5.SetFocus
IfNotTesttxt(Text6.Text)Then
MsgBox“请输入入校日期!
Text6.SetFocus
IfNotTesttxt(Text7.Text)Then
MsgBox“请输入电话号码!
Text7.SetFocus
IfNotTesttxt(Text8.Text)Then
MsgBox“请输入家庭住址!
Text8.SetFocus
IfNotTesttxt(Text9.Text)Then
MsgBox“请输入备注信息!
Text9.SetFocus
IfNotIsNumeric(Trim(Text1.Text))Then
MsgBox“请输入数字!
student_ID=’”&
Trim(Text1.Text)&
“’”
Setrst=QuerySQL(sqlstr,MsgText)
Ifrst.EOF=FalseThen
MsgBox“学号重复,请重新输入!
rst.Close
Else
IfNotIsDate(Text5.Text)Then
MsgBox“此出生日期应输入格式(yyyy-mm-dd)!
”,
vbOKOnly+vbExclamation,“警告”
Text5=Format(Text5,“yyyy-mm-dd”)
IfNotIsDate(Text6.Text)Then
MsgBox“入校时间应填日期格式(yyyy-mm-dd)!
Text6=Format(Text6,“yyyy-mm-dd”)
sqlstr=“select*fromstudent_Info”
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“添加学籍信息成功!
PrivateSubCommand2_Click()
UnloadMe
图18修改学生信息窗体
图19查询学生信息窗体
模块的创建调试:
PublicfMainFormAsfrmMain
PublicUserNameAsString
SubMain()
DimfLoginAsNewfrmLogin
fLogin.ShowvbModal
IfNotfLogin.succThen
‘登录失败,退出应用程序
End
UnloadfLogin
SetfMainForm.Show
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
Quer