资源描述
河南工程学院
《数据库原理及应用》课程设计
结果汇报
学生信息管理系统设计和开发
学生学号:
学生姓名:
学 院: 计算机学院
专业班级:
专业课程: 数据库原理及应用课程设计
指导老师:
年 月 日
课程设计指导老师评分表
课程设计题目
学生信息管理系统设计和开发
组员
姓名
学号
任务分工
VB系统窗体设计及数据库设计
数据库代码片段筛选及整理
数据库及系统整体修改调试
评分项目及分值要素
成绩评定
项 目
最高分
评 分 要 素
成 绩
1.学习态度
20
上机出勤及端正学习态度、认真刻苦程度,工作量饱满程度等
2.软件设计质量
40
采取算法、设计方案,设计结果,界面友好等方面进行综合评定
3.答辩过程
20
能简明扼要地叙述设计关键内容,能正确流利地回复多种问题
4.设计汇报书写
10
内容按要求步骤书写,条理清楚,表述清楚、措词适当
5.实际动手能力
10
熟练使用开发工具,能够快速正确进行调试、纠错和运行;组长全方面负责,负担复杂模块设计分值就高
总 成 绩
等 级
评语
目 录
一、 系统设计目标 1
二、 系统实现思绪 1
1、需求分析 1
2、总体设计 1
三、 系统数据库设计 3
1、数据需求分析……………………………………………………………………….3
.2、概念结构设计(ER图)……………………………………………………………….4
3、逻辑结构设计(规范化)…………………………………………………………………5
4、物理结构设计(索引)……………………………………………………………………6
四、 系统具体设计 7
五、 系统调试运行 12
六、 总结设计体会 19
学生信息管理系统设计和开发
一、 设计目标
设计目标:建立高效利用学生信息管理系统,实现大量信息规范管理、科学统计和快速查询,从而愈加好降低管理方面工作量。
学生信息管理系统提供了强大学生信息管理功效,方便管理员对学生信息进行添加、修改、删除、查询、统计等操作。所以,学生信息管理系统能够满足学校需要,简化学生信息管理过程,提升管理效率,是学校学生信息管理一个关键工具。
二、系统实现思绪
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 工程主窗体创建
用户登录:
Dim a As String
Dim b As String
Dim str As String
Dim strr As String
str=InStr(Text2.Text,"'")
If str<>0 Then
MsgBox"不能输入非法字符!!",vbCritical+vbOKOnly,"错误"
Exit Sub
Else
strr=InStr(Text1.Text,"'")
If strr<>0 Then
MsgBox"不能输入非法字符!!",vbCritical+vbOKOnly,"错误"
Exit Sub
End If
End If
a=Trim(Text1)
b=Trim(Text2)
If a=""Then
MsgBox"用户名不能为空!",vbCritical,"错误"
Text1.SetFocus
Text1.SelStart=0
Text1.SelLength=Len(Text1)
Else
Dim r As New ADODB.Recordset
Set r=DataEnvironment1.rsuser
Dim c As String
Static nTryCount As Integer
c="select*from用户登陆where用户名='"&a&"'"
If r.State=adStateOpen Then r.Close
r.Open c
If r.EOF Then
MsgBox"无此用户!请重新登陆!!",vbCritical,"错误"
Text1.SetFocus
Text1.SelStart=0
Text1.SelLength=Len(Text1)
nTryCount=nTryCount+1
If nTryCount>=5 Then
MsgBox"您无权操作本系统!",vbCritical,"错误"
Unload Me
End If
Else
If b=Trim(r.Fields(1))Then
quanxian=Trim(r.Fields(2))
MDIForm1.Show
Unload Me Else
MsgBox"密码错误!请重新登陆!!",vbCritical,"错误"
Text2.SetFocus
Text2.SelStart=0
Text2.SelLength=Len(Text2)
nTryCount=nTryCount+1
If nTryCount>=5 Then
MsgBox"您无权操作本系统!",vbCritical,"错误"
Unload Me
End If End If
End If End If
图13 系统开启窗体
图14 用户登录窗体
五、系统调试运行
数据库创建和调试:
1、创建学生信息表
CREATE TABLE [dbo].[student_Info] (
[student_ID] [int] NOT NULL ,
[student_Name] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[student_Sex] [char] (2) COLLATE Chinese_PRC_CI_AS NULL ,
[born_Date] [datetime] NULL ,
[class_NO] [int] NULL ,
[tale_Number] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[ru_Date] [datetime] NULL ,
[address] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[comment] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
2、创建班级信息表
CREATE TABLE [dbo].[class_info] (
[class_No] [int] NOT NULL ,
[class_Name] [char] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[director] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[profession] [char] (14) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
3、创建课程信息表
CREATE TABLE [dbo].[class_info] (
[course_No] [int] NOT NULL ,
[course_Name] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[course_Type] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[course_start] [char] (1) COLLATE Chinese_PRC_CI_AS NULL ,
[course_time] [int] NULL ,
[course_score] [int] NULL
) ON [PRIMARY]
GO
4、创建成绩信息表
CREATE TABLE [dbo].[class_info] (
[student_Id] [int] NOT NULL ,
[course_No] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[result] [float] NULL
) ON [PRIMARY]
GO
学生信息管理系统主窗体创建和调试:
图15 基础工程窗体概览
图16 工程窗体代码展示
添加学生信息:
图17 添加学生信息窗体
Private Sub From_Load()
Dim rst As ADODB.Recordset
Dim sqlstr As String
Dim MsgText As String
Dim i As Integer
Text1.Text = “0101”:Text2.Text = “”: Combo1.Text = “男”
Combo2.Text = “01”:Text5.Text = “-01-01”: Text6.Text = “-01-01”
Text7.Text = “”: Text8.Text = “”: Text9.Text = “”
Combo1.AddItem “男”
Combo1.AddItem “女”
sqlstr = “select from class_Info “
Set rst = QuerySQL(sqlstr,MsgText)
For i = 1 To rst.RecordCount
Combo2.AddItem rst.Fields(0)
Rst.moveNext
Next i
Rst.Close
End Sub
Private Sub Command1_Click()
Dim rst As ADODB.Recordset
Dim sqlstr As String
Dim MsgText As String
If Not Testtxt (Text1.Text) Then
MsgBox “请输入学号!”, vbOKOnly + vbExclamation, “警告”
Text1.SetFocus
Exit Sub
End If
If Not Testtxt (Text2.Text) Then
MsgBox “请输入姓名!”, vbOKOnly + vbExclamation, “警告”
Text2.SetFocus
Exit Sub
End If
If Not Testtxt (Combo1.Text) Then
MsgBox “请选择性别!”, vbOKOnly + vbExclamation, “警告”
Combo1.SetFocus
Exit Sub
End If
If Not Testtxt (Combo2.Text) Then
MsgBox “请输入班号!”, vbOKOnly + vbExclamation, “警告”
Combo2.SetFocus
Exit Sub
End If
If Not Testtxt (Text5.Text) Then
MsgBox “请输入出生日期!”, vbOKOnly + vbExclamation, “警告”
Text5.SetFocus
Exit Sub
End If
If Not Testtxt (Text6.Text) Then
MsgBox “请输入入校日期!”, vbOKOnly + vbExclamation, “警告”
Text6.SetFocus
Exit Sub
End If
If Not Testtxt (Text7.Text) Then
MsgBox “请输入电话号码!”, vbOKOnly + vbExclamation, “警告”
Text7.SetFocus
Exit Sub
End If
If Not Testtxt (Text8.Text) Then
MsgBox “请输入家庭住址!”, vbOKOnly + vbExclamation, “警告”
Text8.SetFocus
Exit Sub
End If
If Not Testtxt (Text9.Text) Then
MsgBox “请输入备注信息!”, vbOKOnly + vbExclamation, “警告”
Text9.SetFocus
Exit Sub
End If
If Not IsNumeric (Trim(Text1.Text)) Then
MsgBox “请输入数字!”, vbOKOnly + vbExclamation, “警告”
Text5.SetFocus
Exit Sub
End If
sqlstr = “select from class_Info “
student_ID =’” & Trim(Text1.Text) & “’”
Set rst = QuerySQL(sqlstr, MsgText)
If rst.EOF = False Then
MsgBox “学号反复,请重新输入!”, vbOKOnly + vbExclamation, “警告”
rst.Close
Text1.SetFocus
Else
rst.Close
If Not IsDate(Text5.Text) Then
MsgBox “此出生日期应输入格式 (yyyy-mm-dd)! ”,
vbOKOnly + vbExclamation, “警告”
Text5.SetFocus
Else
Text5 = Format(Text5, “yyyy-mm-dd”)
If Not IsDate(Text6.Text) Then
MsgBox “入校时间应填日期格式 (yyyy-mm-dd)! ”,
vbOKOnly + vbExclamation, “警告”
Text6.SetFocus
Else
Text6 = Format(Text6, “yyyy-mm-dd”)
sqlstr = “select * from student_Info”
Set rst = 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
End If
End If
End If
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
图18 修改学生信息窗体
图19 查询学生信息窗体
模块创建调试:
Public fMainForm As frmMain
Public UserName As String
Sub Main ()
Dim fLogin As New frmLogin
fLogin.Show vbModal
If Not fLogin.succ Then
‘登录失败,退出应用程序
End
End If
Unload fLogin
Set fMainForm.Show
End Sub
Public Function QuerySQL(ByVal SQL_ 图20 模块创建和调试
As String, Msg As String)_
As ADODB.Recordset
Dim cn As ADODB.Connecrion
Dim rS As ADODB.Recordset
Dim ss () As String
On Error GoTo QuerySQL_Error
ss = Sqlit(SQL)
Set cn = New ADODB.Connection
ConnectString=“Driver=SQLServer;Server=zcj;UID=sa;PWD=sa;Database=Student” cn.Open ConnectString
If InStr(“INSERT,DELETE,UPDATE”,UCase$(ss(0))) Then
cn.Execute SQL
Msg = ss(0) & _ “查询成功” Else
Set rS = NewADODB.Recordset
rS.Open Trim$(SQL), cn,adOpenKeyset, adLockOptimistic
Set QuerySQL = rS
Msg = “查询到” & rS.RecordCount & “ 条统计” End If
QuerySQL_Exit:
Set rS = Nothing Set cn = Nothing Exit Function
QuerySQL_Error:
Msg = “查询错误: “ & Err.Description
Resume QuerySQL_Exit
End Function
Public Function Testtxt(txt As String) As Boolean
If Trim(txt) = “” Then
Testtxt = False Else
Testtxt = True
End If
End Function
六、总结及心得体会(感受、不足)
短暂一周数据库实训课程转眼间已经结束,经过此次实训课程练习,大大提升了我团体协作能力,我们分工明确,对此次数据库设计内容进行了比较具体计划。
首先,实训前针对所需要文件进行了提前准备,调试了相关程序能够正常运行,确保了实训正常操作。对书本实例进行了具体了解,选择了其中内容作为关键参考,确定了以学生信息管理系统为关键内容数据库模拟系统,真正模拟了学生用户操作体验。
其次,我对于我们组关键负责系统布局设计一个步骤,我担负了关键责任,不仅对学生用户信息系统进行了比较综合布局分析,同时完善了各个布局页面页面信息设置,和我事先设计好学生信息管理主窗体完成了对接,以此完成了信息系统调用操作。
最终,遗憾是在时间催促下,我们未能将此系统很好和数据库数据进行对接操作,使我们模拟操作系统不能完美实现模拟数据操作等其它功效,以后,我们会尽力将此系统进行改善,期望能够完美对接数据库并实现更多操作功效。
总接下来,此次实训课程我收获颇丰,老师悉心讲解,使我们在迷惑中得以解惑,这次实训,带给我不仅是设计出系统喜悦,更多是体会到了大家团结一起,各尽其责感觉,这些全部是值得我们去深深回味,也是值得去珍爱,也期望实训课程能够越来越丰富,不停加强和鼓舞我们大家每个人心理素质。
展开阅读全文