资源描述
数据库原理及应用课程设计
设计说明书
学生宿舍管理系统
vb
学生姓名
学号
班级
成绩
指导教师
计算机科学与技术系
2009 年 3月 6 日
数据库原理及应用课程设计评阅书
题 目
学生宿舍管理系统设计与实现
学生姓名
学号
指导教师评语及成绩
成绩: 教师签名: 年 月 日
答辩教师评语及成绩
成绩: 教师签名: 年 月 日
教研室意见
总成绩: 室主任签名: 年 月 日
注:指导教师成绩60%,答辩成绩40%,总成绩合成后按五级制记入。
课程设计任务书
2008 —2009 学年第二学期
专业: 学号: 姓名:
课程设计名称: 数据库原理及应用课程设计
设计题目: 学生宿舍管理系统设计与实现
完成期限:自 2009年 2 月 23 日至 2009 年 3 月 6 日共 2 周
设计依据、要求及主要内容(可另加附页):
通过对学校公寓管理处业务进行分析、调查,设计学生宿舍管理系统。
内容及要求
(1)建立数据库
根据系统功能设计的要求以及功能模块的划分,设计相关数据库。
(2)卫生评比管理模块
该模块提供对卫生评比信息的管理功能,主要完成评比信息的录入、修改和删除以及评比结果的查询功能。
(3)违纪处理管理模块
该模块实现违纪处理信息的管理,主要完成违纪信息的录入、修改、删除和查询等功能。
(4)来客登记管理模块
该模块提供对来访人员信息的管理功能,主要提供来访登记、离开登记和来访信息查询功能。
(5)房间信息管理模块
该模块提供房间信息维护功能,主要是提供对房间信息的录入、修改、删除功能,同时提供房间分配和房间信息查询功能。
指导教师(签字): 教研室主任(签字):
批准日期: 年 月 日
5
摘 要
本软件的前台设计由Visual Basic 6.0实现,后台数据库用SQL Server进行创建和管理。本系统界面设计大方、简洁、实用,操作简单方便,是一款完全适合普通学校公寓管理的软件。该系统具有卫生评比、违纪处理、来客登记和房间信息功能。卫生评比管理模块提供对卫生评比信息的管理功能,违纪处理管理模块实现违纪处理信息的管理,来客登记管理模块提供对来访人员信息的管理功能,房间信息管理模块提供房间信息维护功能。
关键词 :公寓管理系统;Visual Basic 6.0;SQL Server
目 录
1 课题描述 1
2 需求分析 2
2.1 可行性研究 2
2. 1.1 技术可行性 2
2. 1.2经济可行性 2
2. 1.3操作可行性 2
2.2 功能需求 2
3系统设计 3
3.1系统层次模块图 3
3.2数据库设计 3
3.2.1数据库实体图设计 3
3.2.2数据库E-R图设计 4
3.2.3数据库关系模型设计 4
3.2.4数据库物理设计 5
3.3主控平台界面设计 6
4系统实现 7
4.1系统用户管理模块 7
4.2卫生评比管理模块 9
4.3违纪处理管理模块 14
4.4来客登记管理模块 19
4.5房间信息管理模块 26
5 系统测试 33
总 结 34
参考文献 35
陕西理工学院设计论文
1 课题描述
各个学校对学生宿舍的管理已经有了很长的历史,并且已经具备了一定的规模和形态,同时对学生公寓的服务和管理也要求很高.诸如对学生入住情况的详细了解,以及来访者的情况都要求宿舍管理人员做的好,做的完善。这样要求公寓管理人员对学生宿舍管理进行宏观的和微观的细致管理,其中最好的办法是用计算机操作的学生宿舍管理系统来实现对学生宿舍的管理。学生宿舍管理系统在各个学校中都具有广泛的应用,它具有卫生评比、违纪处理、来客登记和房间信息功能。它不仅具有检索迅速、查找方便、操作简单、可靠性高、存储量大、保密性好、寿命长和成本低的优点,还可以极大地提高宿舍管理员的工作效率和质量。
开发工具:Visual Basic 6.0
2 需求分析
2.1 可行性研究
可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决,是否值得去解。我们从三个方面来进行可行性研究,即技术可行性、经济可行性和操作可行性。
2. 1.1 技术可行性
学生宿舍管理系统,采用Visual Basic 6.0进行编程和界面设计,以 SQL server 2000为后台数据库来实现的,全面采用以窗口、表单、对话框和联机帮助为特征的图形用户界面的技术和操作方法。系统操作简单,功能大,使用方便,具有很强的技术可行性。
2. 1.2经济可行性
学生宿舍管理是一个很大的项目,在早期,还没有利用计算机管理时,一切都是利用人工进行管理的,这样管理起来既烦琐又复杂,资料也很容易被丢失,而且耗时、耗资金。而利用本系统,可以高效地对学生宿舍进行统一管理与控制,资料也不容易被丢失,这样大大节省了人力与资源,提高了管理效率,给管理人员带来很多方便。
2. 1.3操作可行性
操作可行性也即实用性。
随着计算机技术的发展以及网络的发展,对学生宿舍的管理与控制越来越实用并且得到管理者的证实,无论是查询还是修改都有很方便,查询的信息一目了然。因此,它具有很强的实用性。因此本系统在操作上也可行。
根据上述三个方面的研究得出:可以开发本系统。
2.2 功能需求
基于系统需求分析,该系统需要实现以下基本功能:
卫生评比管理模块,主要完成评比信息的录入、修改和删除以及评比结果的查询功能。
违纪处理管理模块,主要完成违纪信息的录入、修改、删除和查询等功能。
来客登记管理模块,主要提供来访登记、离开登记和来访信息查询功能。
房间信息管理模块,主要是提供对房间信息的录入、修改、删除功能,同时提供房间分配和房间信息查询功能。
数据库管理:对现有的数据库进行管理,包括数据备份和恢复,以方便用户对数据库的管理和维护工作,提高系统的数据安全性。
2.3 性能需求
系统运行环境:Windows 2000及其以上
数据库:SQL server 2000
3系统设计
3.1系统层次模块图
学生宿舍管理系统
宿舍信息管理
卫生情况管理
违规情况管理
访客信息管理
卫生情况录入
评分查询
违规处理情况录入
违规处理情况查询
来访登记
离开登记
来访查询
图3.1 系统层次模块图
3.2数据库设计
3.2.1数据库实体图设计
宿舍
宿舍号
备 注
卫生情况
图3.2 宿舍实体图
学生
学 号
姓 名
卫生情况
班 级
图3.3 学生实体图
访客
姓 名
来访时间
离开时间
图3.4 访客实体图
3.2.2数据库E-R图设计
宿 舍
学 生
访 客
宿舍信息
访客信息
图3.5宿舍管理系统E-R图
3.2.3数据库关系模型设计
宿舍(宿舍号,卫生情况,备注)
学生(学号,姓名,班级,违纪处理情况)
宿舍信息(宿舍号,学号)
访客(姓名,来访时间,离开时间)
访客信息(姓名,来访时间,学号)
3.2.4数据库物理设计
系统建立的数据库表主要有五个,如下图所示。
字段名
数据类型
字段长度与格式
关键字
宿舍号
varchar
5
是
卫生情况
varchar
50
否
备注
varchar
50
否
图3.6“宿舍”信息表结构
字段名
数据类型
字段长度与格式
关键字
学号
varchar
5
是
姓名
varchar
50
否
班级
varchar
50
否
违纪处理情况
varchar
50
否
图3.7“学生”信息表结构
字段名
数据类型
字段长度与格式
关键字
学号
varchar
5
是
宿舍号
varchar
5
是
图3.8“宿舍信息”信息表结构
字段名
数据类型
字段长度与格式
关键字
姓名
varchar
50
是
访问时间
varchar
50
是
离开时间
varchar
50
否
图3.9“访客”信息表结构
字段名
数据类型
字段长度与格式
关键字
学号
varchar
50
是
姓名
varchar
50
是
来访时间
varchar
50
否
图3.10“访客信息”信息表结构
3.3主控平台界面设计
充分考虑易于操作的系统需求,主控制平台使用简单和直观的布局设计。
4系统实现
4.1系统用户管理模块
创建一个系统登录窗体、一个转入窗体的主窗口窗体,利用组合框为用户提供数据,实现多项选择的功能,如图4.1所示。
图4.1 登录窗口
其主要代码如下:
Option Explicit
Public strcon As String
Private Sub btnCancel_Click()
txtUserName.Text = ""
txtPassword.Text = ""
If MsgBox("退出吗?", vbOKCancel, "提示") = vbOK Then
End
End If
End Sub
Private Sub cmdok_Click()
Rem 判断是否为空
If Len(txtUserName.Text) <= 0 Then
MsgBox "用户名不能为空", vbExclamation, "警告"
Exit Sub
End If
If Len(txtPassword.Text) <= 0 Then
MsgBox "密码不能为空", vbExclamation, "警告"
Exit Sub
End If
Rem 获取密码用户
Dim struser As String
struser = txtUserName.Text
Dim strpw As String
strpw = txtPassword.Text
Dim strsql As String
strsql = "select [ano] as [user],[secret] as [pw] from adminer "
Dim conn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim cmd As New ADODB.Command
conn.ConnectionString = strcon '引用公共变量
On Error GoTo con
conn.Open
cmd.ActiveConnection = conn
cmd.CommandText = strsql
Set rst = cmd.Execute
Do Until rst.EOF
If UCase(struser) = UCase(rst("user")) Then
If strpw = rst("pw") Then
'密码正确,显示窗体,退出循环
main.Show
Unload Me
rst.Close
conn.Close
txtUserName.Text = ""
txtPassword.Text = ""
Exit Sub
Else
'密码错误
MsgBox "密码错误", vbExclamation, "警告"
txtPassword.Text = ""
rst.Close
conn.Close
Exit Sub
End If
End If
rst.MoveNext
Loop
rst.Close
conn.Close
MsgBox "不存在该用户", vbExclamation, "警告"
txtPassword.Text = ""
Exit Sub
con:
MsgBox "请确认以下设置" & Chr(13) + Chr(10) & "SQL Server 服务器已经启动;" & Chr(13) + Chr(10) & "数据库身份验证模式为[SQL Server 和 Windows身份验证模式]"
End Sub
Private Sub Form_Load()
strcon = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=学生宿舍管理系统;server=(local)"
End Sub
Private Sub Label1_Click()
End Sub
4.2卫生评比管理模块
创建一个卫生评比管理窗体,里面包括查询、添加和修改功能,利用Label、Textbox、Button和 DatGird等画出如下窗体。
图4.2卫生评分录入界面
图4.2卫生评分录入界面
图4.3卫生评分查询界面
其主要代码如下:
Public strcon As String
Private Sub Command1_Click()
If Trim(Text1.Text) = "" Then
MsgBox "没有选中任何行或则[学号]为空!", vbInformation, "提示"
Exit Sub
End If
On Error GoTo myError:
Dim strsql As String
strsql = "select 宿舍号 from 宿舍 "
Dim conn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim cmd As New ADODB.Command
conn.ConnectionString = strcon '引用公共变量
conn.Open
cmd.ActiveConnection = conn
cmd.CommandText = strsql
Set rst = cmd.Execute
Do Until rst.EOF
Dim strsno As String
strsno = UCase(rst("宿舍号"))
rst.MoveNext
Loop
If strsno <> UCase(Text1.Text) Then
MsgBox "该宿舍不存在!", vbExclamation, "提示"
conn.Close
Exit Sub
End If
strsql = "update 宿舍 set 卫生情况='" & Text2.Text & "' where 宿舍号='" & Text1.Text & "'"
Call sqlcmd(strsql)
MsgBox "执行成功!", vbInformation, "提示"
Text1.Text = ""
Text2.Text = ""
Exit Sub
myError:
MsgBox "更新失败!" & Chr(10) + Chr(13) & "更新的数据中存在非法字符[空格、单引号、双引号、空]", vbExclamation, "提示"
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
Sub sqlcmd(strsql As String)
'更新、删除、插入数据
Dim conn As New ADODB.Connection
Dim cmd As New ADODB.Command
conn.ConnectionString = strcon '引用公共变量
conn.Open
cmd.ActiveConnection = conn
cmd.CommandText = strsql
cmd.Execute
conn.Close
End Sub
Private Sub Form_Load()
strcon = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=学生宿舍管理系统;server=(local)"
End Sub
Private Sub Text1_Change()
End Sub
Option Explicit
Public blnNeedUpdate As Boolean
Public blnAdding As Boolean
Public strcon As String
Private Sub Command1_Click()
Dim struser As String
If Len(Text1.Text) <> 0 Then
struser = Text1.Text
Else
If Len(Text2.Text) <> 0 Then
struser = Text2.Text
Else
MsgBox "信息不能为空", vbExclamation, "警告"
End If
End If
Dim strsql As String
Dim strsql1 As String
strsql = "select [宿舍号] as [sushe] from 宿舍 "
Dim conn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim cmd As New ADODB.Command
conn.ConnectionString = strcon '引用公共变量
conn.Open
cmd.ActiveConnection = conn
cmd.CommandText = strsql
Set rst = cmd.Execute
Do Until rst.EOF
If UCase(struser) = UCase(rst("sushe")) Then
strsql1 = "select 宿舍号,卫生情况 from 宿舍 where 宿舍号='" & Text1.Text & "'"
Call bindGrid(strsql1)
Exit Sub
Else
strsql1 = "select 宿舍号,卫生情况 from 宿舍 where 卫生情况='" & Text2.Text & "'"
Call bindGrid(strsql1)
End If
rst.MoveNext
Loop
rst.Close
conn.Close
End Sub
Sub bindGrid(strsql As String)
Rem 绑定datagrid
Dim conn As New ADODB.Connection
Dim rst As New ADODB.Recordset
conn.ConnectionString = strcon '引用公共变量
conn.CursorLocation = adUseClient
conn.Open
rst.Open strsql, conn, adOpenDynamic, adLockBatchOptimistic
Set DataGrid1.DataSource = rst.DataSource
Call gridWidth
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
Private Sub Command3_Click()
If Trim(Text1.Text) = "" Then
MsgBox "没有选中任何行或则[宿舍号]为空!", vbInformation, "提示"
Exit Sub
End If
On Error GoTo myError:
Dim strsql As String
strsql = "update 宿舍 set 宿舍号='" & Text1.Text & "',卫生情况='" & Text2.Text & "' where 宿舍号='" & Text1.Text & "'"
Call sqlcmd(strsql)
blnAdding = False
strsql = "select 宿舍号,卫生情况 from 宿舍 where 宿舍号='" & Text1.Text & "'"
Call bindGrid(strsql)
MsgBox "执行成功!", vbInformation, "提示"
Text1.Text = ""
Text2.Text = ""
Exit Sub
myError:
MsgBox "更新失败!" & Chr(10) + Chr(13) & "更新的数据中存在非法字符[空格、单引号、双引号、空]", vbExclamation, "提示"
End Sub
Private Sub Command4_Click()
Text1.Locked = False
Text1.Text = ""
Text2.Text = ""
End Sub
Private Sub DataGrid1_Click()
blnAdding = False
Text1.Locked = True
Dim n As Integer
Dim DgCount As Integer
DgCount = DataGrid1.Columns.Count
For n = 0 To DgCount - 1
DataGrid1.Col = n
Select Case n
Case 0
Text1.Text = DataGrid1.Text
Case 1
Text2.Text = DataGrid1.Text
End Select
Next n
End Sub
Private Sub Form_Load()
strcon = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=学生宿舍管理系统;server=(local)"
End Sub
Sub gridWidth()
Dim n As Integer
Dim DgCount As Integer
DgCount = DataGrid1.Columns.Count
For n = 0 To DgCount - 1
DataGrid1.Columns(n).Width = Len(DataGrid1.Columns(n).Caption) * 350
DataGrid1.Col = n
DataGrid1.AllowAddNew = False
DataGrid1.AllowArrows = False
DataGrid1.AllowDelete = False
DataGrid1.AllowUpdate = False
Next n
End Sub
Private Sub DridStudent_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
End Sub
Sub sqlcmd(strsql As String)
'更新、删除、插入数据
Dim conn As New ADODB.Connection
Dim cmd As New ADODB.Command
conn.ConnectionString = strcon '引用公共变量
conn.Open
cmd.ActiveConnection = conn
cmd.CommandText = strsql
cmd.Execute
conn.Close
End Sub
4.3违纪处理管理模块
创建一个违纪处理管理窗体,里面包括查询、添加和修改功能,利用Label、Textbox、Button和 DatGird等画出如下窗体,如下图所示。
图4.4违纪情况录入界面
图4.5违纪情况查询界面
其主要代码如下:
Public strcon As String
Private Sub Command1_Click()
If Trim(Text1.Text) = "" Then
MsgBox "没有选中任何行或则[学号]为空!", vbInformation, "提示"
Exit Sub
End If
On Error GoTo myError:
Dim strsql As String
strsql = "select 学号 from 学生 "
Dim conn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim cmd As New ADODB.Command
conn.ConnectionString = strcon '引用公共变量
conn.Open
cmd.ActiveConnection = conn
cmd.CommandText = strsql
Set rst = cmd.Execute
Do Until rst.EOF
Dim strsno As String
strsno = UCase(rst("学号"))
rst.MoveNext
If strsno = UCase(Text1.Text) Then
strsql = "update 学生 set 违纪处理情况='" & Text2.Text & "' where 学号='" & Text1.Text & "'"
Call sqlcmd(strsql)
MsgBox "执行成功!", vbInformation, "提示"
Text1.Text = ""
Text2.Text = ""
Exit Sub
End If
Loop
MsgBox "该学生不存在!", vbExclamation, "提示"
conn.Close
Exit Sub
myError:
MsgBox "更新失败!" & Chr(10) + Chr(13) & "更新的数据中存在非法字符[空格、单引号、双引号、空]", vbExclamation, "提示"
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
Sub sqlcmd(strsql As String)
'更新、删除、插入数据
Dim conn As New ADODB.Connection
Dim cmd As New ADODB.Command
conn.ConnectionString = strcon '引用公共变量
conn.Open
cmd.ActiveConnection = conn
cmd.CommandText = strsql
cmd.Execute
conn.Close
End Sub
Private Sub Form_Load()
strcon = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=学生宿舍管理系统;server=(local)"
End Sub
Private Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single)
End Sub
Option Explicit
Public blnNeedUpdate As Boolean
Public blnAdding As Boolean
Public strcon As String
Private Sub Command1_Click()
Dim struser As String
If Len(Text1.Text) <> 0 Then
struser = Text1.Text
Else
If Len(Text2.Text) <> 0 Then
struser = Text2.Text
Else
MsgBox "信息不能为空", vbExclamation, "警告"
End If
End If
Dim strsql As String
Dim strsql1 As String
strsql = "select [学号] as [sushe] from 学生 "
Dim conn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim cmd As New ADODB.Command
conn.ConnectionString = strcon '引用公共变量
conn.Open
cmd.ActiveConnection = conn
cmd.CommandText = strsql
Set rst = cmd.Execute
Do Until rst.EOF
If UCase(struser) = UCase(rst("sushe")) Then
strsql1 = "select 学号,违纪处理情况 from 学生 where 学号='" & Text1.Text & "'"
Call bindGrid(strsql1)
Exit Sub
Else
strsql1 = "select 学号,违纪处理情况 from 学生 where 学号='" & Text2.Text & "'"
Call bindGrid(strsql1)
End If
rst.MoveNext
Loop
rst.Close
conn.Close
End Sub
Sub bindGrid(strsql As String)
Rem 绑定datagrid
Dim conn As New ADODB.Connection
Dim rst As New ADODB.Recordset
conn.ConnectionString = strcon '引用公共变量
conn.CursorLocation = adUseClient
conn.Open
rst.Open strsql, conn, adOpenDynamic, adLockBatchOptimistic
Set DataGrid1.DataSource = rst.DataSource
Call gridWidth
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
Private Sub Command3_Click()
If Trim(Text1.Text) = "" Then
MsgBox "没有选中任何行或则[学号]为空!", vbInformation, "提示"
Exit Sub
End If
On Error GoTo myError:
Dim strsql As String
strsql = "update 学生 set 学号='" & Text1.Text & "',违纪处理情况='" & Text2.Text & "' where 学号='" & Text1.Text & "'"
Call sqlcmd(strsql)
blnAdding = False
strsql = "select 学号,违纪处理情况 from 学生 where 学号='" & Text1.Text & "'"
Call bindGrid(strsql)
MsgBox "执行成功!", vbInformation, "提示"
Text1.Text = ""
Text2.Text = ""
Exit Sub
myError:
MsgBox "更新失败!" & Chr(10) + Chr(13) & "更新的数据中存在非法字符[空格、单引号、双引号、空]", vbExclamation, "提示"
End Sub
Private Sub Command4_Click()
Text1.Locked = False
Text1.Text = ""
T
展开阅读全文