您的当前位置:首页正文

VB课程设计《学生公寓管理系统》

来源:画鸵萌宠网


课程设计说明书 NO.1

学生公寓管理系统 一、课程设计的目的 目的是进一步培养学生综合应用Visual Basic的各种编程知识和技巧进行程序设计的能力。通过课程设计,学生能达到具备设计功能较为复杂的Windows应用程序的能力。同时,通过课程设计,培养学生自主学习和独立创新的精神,是人才培养体系中极为重要的一环。 二、功能描述 由于传统的学生公寓管理为手工管理,效率低、易出错、手续繁琐,而且耗费大量的人力,物力,财力。希望设计一个学生公寓管理系统,管理学生住宿情况,处理学生离校,管理人员来访情况等功能。通过此系统,后勤人员可以对学生公寓的各项情况实行电脑化管理,以提高工作效率,也使得公寓管理所需的各项信息能方便快速进行“添加数据”、“打印报表”、“查询输出”、“数据维护”。 2.1、系统主要功能设计体系 学生公寓管理系统 添 加 数 据 打 印 报 表 查 询 输 出 数 据 维 护 帮 助 退 出 图1.主要功能模块图 沈 阳 大 学

课程设计说明书 NO.2

2.2、各模块主要功能: 添加数据:用于实现添加公寓基本情况、寝室基本情况、寝室基本情况输出、学生基本情况输出、卫生检查基本情况输出。 打印报表:用于打印公寓基本情况。 查询输出:用于查询和输出以上数据。 数据维护:包括数据备份,数据恢复,和清库功能。 帮 助:提供给用户简单的运行说明。 退 出:退出程序。 三、详细设计 3.1、数据库设计: 公寓信息表: 字段名 公寓号 公寓名称 公寓所属 公寓地址 公寓管理人 数据类型 数字 文本 文本 文本 文本 字段大小 8 16 16 16 16 必填字段 是 是 是 是 是 是否空符串 否 否 否 否 否 寝室信息表: 字段名 数据类型 字段大小 公寓号 数字 8 寝室号 文本 8 寝室人数 文本 16 卫生情况表: 字段名 数据类型 字段大小 寝室号 数字 8 卫生状况 文本 16 检查日期 日期 16 运用Access建立数据库表,如图2,3,4: 必填字段 是 是 是 是否空符串 否 否 否 必填字段 是 是 是 是否空符串 否 否 否 沈 阳 大 学

课程设计说明书 NO.3

图2公寓信息表 图3卫生情况表 沈 阳 大 学

课程设计说明书 NO.4

图4寝室信息表 3.2、主窗体设计 新建一个Form窗体,在其Picture属性里添加一幅图片,在菜单中输入代码,完成后整个界面如图5: 图5主窗体界面 沈 阳 大 学

课程设计说明书 NO.5

3.3“添加公寓”窗体的建立 新建一个Form窗体,在窗体上加入一个Adodc控件,其ConnectionString属性设置连接到数据库,以及RecordSource属性连接到house表。在窗体上加入两个Frame控件,在一个上放置5个TextBox控件,5个Label控件,其Captin属性分别设为“公寓号”、“公寓所属”、“公寓名称”、“公寓地址”和“公寓管理者”。在另一个Frame控件上放置八个CommandButton控件,其Caption属性分别设置为“添加”、“删除”、“更新”、“退出”、“第一条”、“前一条”、“下一条”和“末一条”。向窗体添加一个DataGrid控件,其DataSource属性连接Adodc控件,并把表里的所有字段名显示出来。完成后的整个界面如图6: 图6 “添加公寓”窗体界面 沈 阳 大 学

课程设计说明书 NO.6

3.4“卫生检查基本情况”窗体的建立 新建一个Form窗体,在窗体上加入一个Adodc控件,其ConnectionString属性设置连接到数据库,以及RecordSource属性连接到cleaner表。在窗体上加入两个Frame控件,在一个上放置4个TextBox控件,6个Lable控件,其Caption属性分别设为“公寓号”、“寝室号”、“检查日期”、“ 卫生状况”、“星期”,另一个为空。在一个Frame控件上放置八个体CommandButton控件,其Caption属性分别设置为“添加”、“删除”、“更新”、“退出”、 “第一条”、“前一条”、“下一条”和“末一条”。向窗体添加一个DataGrid控件,其DataSource属性连接Adodc控件,并把表里的所有字段名显示出来。完成后的整个界面如图7: 图7“卫生检查基本情况”窗体界面 沈 阳 大 学

课程设计说明书 NO.7

3.5“查询”窗体的建立 新建一个Form窗体,在窗体上加入一个Data控件,其DatabaseName属性设置连接到数库,RecordSource属性连接到roomcleaner表。在窗体上加入两个Frame控件,在一个上放置7wh TextBox控件,7个Label控件,其Caption属性分别设为“公寓号”、“寝室号”、“检查日期”、“ 卫生状况”、“寝室名称”、“寝室人数”和“寝室责任人”。在另一个Frame控件上放置3个CommandButton控件,其Caption 属性分别设置为“查找”、“继续查找”、“退出”。完成后的整个界面如图8所示: 图8寝室卫生检查情况查找界面 在主窗体中按下“查询输出”,将显示如图所示的“查询输出”窗体。此窗体是用于查询,首先点击“查找”,这时将弹出设置查询条件对话框,如图9 沈 阳 大 学

课程设计说明书 NO.8

图9寝室卫生检查情况查找运行界面 3.6“卫生检查情况报表”的建立 首先,添加一个DataEnvironment窗体,其ConnectionSource属性连接到数据库。再添加DataReport窗体,该窗体的最重要属性是DataSource,把它连接到DataEnvironment窗体,并在DataMember属性里设置cleaner表。其他设置的主要属性是DataField(设置字段名)和DataMember(设置表),读者可以完成后面的设计,完成后的整个界面如图10: 沈 阳 大 学

课程设计说明书 NO.9

图10卫生检查情况报表 3.7、控件菜单: 控件编号 Command1 Command Command3 Command4 Command5 Command6 Command7 Command8 Command9 Command10 Command11 控件用途 添加 删除 清库 查找第一条记录 查找上一条记录 查找最后一条记录 查找下一条记录 更新 查询 打开数据库 退出 沈 阳 大 学

课程设计说明书 NO.10

六、必得体会 这次的课程设计将我们这学期所学的数据库的理论知识用到具体的实践中去,深化了理论知道,同时也锤炼了我们的动手实践能力,有了以前的练习为前提做起来也比较的顺利。不过在具体的实践的时候还是遇到了一些小的问题,比如数据类型的定义错误,字符的错误输入等等,这些虽然都是小问题,不过在具体实践过程中却浪费了不少时间,看来平时要多多的实践才是,除了要考虑问题周到还要多多注意一些细小的问题才是,做的熟练了问题也很容易的解决。我觉得这次的课程设计重点在于触发器和存储过程。通过本次的设计使我们对SQL的功能又多了些了解,同时也较为熟悉的掌握了VB这门语言。一开始的时候遇到了不少小问题,后来多和同学讨论,多看看书,理论联系实践,许多问题就迎刃而解了。在本次的课程设计中我觉得应该注意的加强对触发器和存储过程的操作能力。虽然不是很难,但很多细小的问题需要认真的对待,稍有不注意问题就会在具体的应用程序调试过程中出现,这要求我们在实践的过程中除了要了解理论知识还要细心,有耐必。当然在本次的设计过程中还出现了其他不少的问题,问题随着设计思想的深入而不断变化,不断的产生新问题,而我也在这过程中不断的解决问题,正是在这一过程中,我加深了对原理的认识,完善了设计思想,使自己问题解决问题的能力得到进一步的加强。 七、参考文献 [1]刘天惠. Visual Basic程序设计教程[M].清华大学出版社.2006.2:156-184 [2]甘仞初.信息系统开发[M].北京经济科学出版社.2009.1:88-112 [3]何旭洪. Visual Basic数据库开发实例导航[M].南京东南大学出版社.2008.3:310-342 [4]郝春强.新概念Visual Basic6教程[M].工业出版社.2007.8:153-174 [5]白晓勇,余健.Visual Basic课程设计案例精编[M].清华大学出版 沈 阳 大 学

课程设计说明书 NO.11

八、源程序代码 //添加公寓对话框代码 Option Explicit Private Sub Command1_Click() On Error GoTo adder Text1.SetFocus Adodc1.Recordset.AddNew Exit Sub Adder: MsgBox Err.Description End Sub Private Sub Command10_Click() Dim db As Database Dim dt As TableDef Set db=OpenDatabase(App.Path&”mydb.mdb”) db.TableDefs.Delete”backup 1” db.Execute”select house.*into backup1 from house” db.Close End Sub Private Sub Command2_Click() On Error GoTo deleteerr With Adodc1.Recordset If Not. .EOF And Not .BOF Then If MsgBox(“删除当前记录吗?”,vbYesNo+vbQuestion)=vbYes Then .Delete .MoveNext If .EOF Then .MoveLast End If End If End With Exit Sub Deleteerr: MsgBox Err.Description End Sub Private Sub Command3_Click() On Error GoTo cancelupdateerr 沈 阳 大 学

课程设计说明书 NO.12

Adodc1.Recordset.CancelBatch Exit Sub Cancelupdateerr: MsgBox Err.Description End Sub Private Sub Command4_Click() If Adodc1.Recordset.RecordCount=0 Then MsgBox”记录空”,vbOKCancel+vbQuestion End Else Adodc1.Recordset.MoveFirst End If Exit Sub Exit Sub Private SubCommand5_Click() Adodc1.Recordset.MovePrevious If Adodc1.Recordset.BOF Then MsgBox” 这是第一条记录”,vbOKCanel+vbQuestion Adodc1.Recordset.MoveFirst End If End Sub Private SubCommand6_Click() Adodc1.Recordset.EOF Then MsgBox” 这是最后一条记录”,vbOKCancel+vbQuestion Adodc1.Recordset.MoveLast End If End Sub Private Sub Command7_Click() If Adodc1.Recordset.RecordCount=0 Then MsgBox” 空记录”,vbOKCancel+vbQuestion End Else Adodc1.Recordset.MoveLast End If End Sub Private Sub Command8_Click() 沈 阳 大 学

课程设计说明书 NO.13

On Error GoTo updateerr Adodc1.Recordset.UpdataBatch Exit Sub Updateerr: MsgBox Err.Description End Sub Private Sub Command9_Click() Caidan.show Form1.Hide End Sub //打印窗体代码: Option Explicit Private Sub about_Click() frmAbout.Show End Sub Private Sub chaxun_Click() Form5.Show Caidan.Hide End Sub Private Sub clean_Click() Dim mydb As Database Dim dbpath As String dbpath=”d:\\data\\mydb.mdb” If MsgBox(“此功能将清除库中所有记录,你确定要执行吗?”,vbOKCancel)=vbOK Then Set mydb=OpenDatabase(dbpath) Sql=”delete*from house” mydb.Execute sql Sql=”delete*from room” mydb.Execute sql Sql=”delete*from student” mydb.Execute sql Sql=”delete*from cleaner” mydb.Execute sql MsgBox(“清库完成!”) End If End Sub 沈 阳 大 学

课程设计说明书 NO.14

Private Sub cleanerinput_Click() Form4.Show Caidan.Hide End Sub Private Sub cleaneroutput_Click() DtaRepor4.Show End Sub Private Sub datacopy_Click() Dim db As Database Dim dt As New TableDef If MsgBox(”是否备份”,vbYesNo,”备份”)=vbYes Then Set db=OpenDatabase(app.path&”\\mydb.mdb”) Set dt=db.CreateTableDef(backup1) db.TableDefs.Delete”backup1” db.Execute”select house.*into backup1 from house” db.TableDefs.Delete”backup2” db.Execute”select house.*into backup1 from room” db.TableDefs.Delete”backup3” db.Execute”select house.*into backup1 from student” db.TableDefs.Delete”backup4” db.Execute”select house.*into backup1 from cleaner” db.Close Else:Exit Sub End If End Sub Private Sub datasave_Click() Dim db As Database Dim dt As New TableDef If MsgBox(“是否还原”,vbYesNo,”还原”)=vbYes Then Set db=OpenDatabase(app.path&”\\mydb.mdb”) db.TableDefs.Delete”house” db.Execute”select.*into house from backup1” db.TableDefs.Delete”room” db.Execute”select.*into house from backup2” db.TableDefs.Delete”student” db.Execute”select.*into house from backup3” db.TableDefs.Delete”cleaner” 沈 阳 大 学

课程设计说明书 NO.15

db.Execute”select.*into house from backup4” db.Close Else Exit Sub End If End Sub Private Sub exit_Click() End End Sub Private SubForm_Resize() Caidan.Width=Screen.With Caidan.Height=Screen.Height Caidan.Left=0 Caidan.Top=0 End Sub Private Sub houseinput_Click() Form1.Show Caidan.Hide End Sub Private Sub houseinput_Click() DataReport1.Show End Sub Private Sub roomoutput_Click() Form2.Show Caidan.Hide End Sub Private Sub roomoutput_Click() DataRepor2.Show End Sub Private Sub studentoutput_Click() Form3.Show Caidan.Hide End Sub Private Sub studentoutput_Click() DataRepor3.Show End Sub //查找对话框代码 沈 阳 大 学

课程设计说明书 NO.16

Option Explicit Private Sub about_Click() frmAbout.Show End Sub Private Sub chaxun_Click() Form5.Show Caidan.Hide End Sub Private Sub clean_Click() Dim mydb As Database Dim dbpath As String Dbpath=app.path&”\\mydb.mdb” If MsgBox(”此功能将清除库中所有记录,你确定要执行吗?”,vbOKCancel)=vbOK Then Set mydb=OpenDatabase(dbpath) Sql=”delete*from house” Mydb.Execute sql Sql=”delete*from room” Mydb.Execute sql Sql=”delete*from student” Mydb.Execute sql Sql=”delete*from cleaner” Mydb.Execute sql MsgBox(“清库完毕!”) End If End Sub Private Sub cleanerinput_Click() Form4.Show Caidan.Hide End Sub Private Sub cleaneroutput_Click() DataReport4.Show End Sub Private Sub datacopy_Click() Dim db As Database Dim dt As New TableDef If MsgBox(”是否备份”,vbYesNo,”备份”)=vbYes Then Set db=OpenDatabase(app.path&”\\mydb.mdb”) 沈 阳 大 学

课程设计说明书 NO.17

Set dt=db.CreateTableDef(backup1) db.TableDefs.Delete”backup1” db.Execute”select house.*into backup1 from house” db.TableDefs.Delete”backup2” db.Execute”select house.*into backup1 from room” db.TableDefs.Delete”backup3” db.Execute”select house.*into backup1 from student” db.TableDefs.Delete”backup4” db.Execute”select house.*into backup1 from cleaner” db.Close Else:Exit Sub End If End Sub Private Sub datasave_Click() Dim db As Database Dim dt As New TableDef If MsgBox(“是否还原”,vbYesNo,”还原”)=vbYes Then Set db=OpenDatabase(app.path&”\\mydb.mdb”) db.TableDefs.Delete”house” db.Execute”select.*into house from backup1” db.TableDefs.Delete”room” db.Execute”select.*into house from backup2” db.TableDefs.Delete”student” db.Execute”select.*into house from backup3” db.TableDefs.Delete”cleaner” db.Execute”select.*into house from backup4” db.Close Else Exit Sub End If End Sub Private Sub exit_Click() End End Sub Private SubForm_Resize() Caidan.Width=Screen.With Caidan.Height=Screen.Height 沈 阳 大 学

课程设计说明书 NO.18

Caidan.Left=0 Caidan.Top=0 End Sub Private Sub houseinput_Click() Form1.Show Caidan.Hide End Sub Private Sub houseinput_Click() DataReport1.Show End Sub Private Sub roomoutput_Click() Form2.Show Caidan.Hide End Sub Private Sub roomoutput_Click() DataRepor2.Show End Sub Private Sub studentoutput_Click() Form3.Show Caidan.Hide End Sub Private Sub studentoutput_Click() DataRepor3.Show End Sub //查询条件生成对话框代码 Option Explicit Private Sub Comlo1_Click() Labfield.Caption=Combo1.Text End Sub Private Sub Combo2.ListIndex Case 0 Temp=”=” Case 1 Temp=”>=” Case 2 Temp=”>” Case 3 沈 阳 大 学

课程设计说明书 NO.19

Temp=”<” Case 4 Temp=”<=” Case 5 Temp=”<>” End Select Laboperate.Caption=Temp End Sub Private Sub Combo3_Change() Labvalue.Caption=Combo3.Text End Sub Private Sub Combo3_KeyPress(KeyAscii As Integer) If KeyAscii=13Then labvalue.Caption=Combo3.Text End Sub Private Sub Command1_Click() Dim fieldname,operate,value As String Select Case Combo2.ListIndex Case 0 Temp=”=” Case 1 Temp=”>=” Case 2 Temp=”>” Case 3 Temp=”<” Case 4 Temp=”<=” Case 5 Temp=”<>” End Select Fieldname=Combo1.Text Value=Combo3.Text Select Case Combo1.ListIndex Case 3,4,6 Findsrtring=fieldname&operate&””&value&”” Case 0,1,5 Findstring=fieldname&operate&”#”&value&”#” 沈 阳 大 学

课程设计说明书 NO.20

Case 2 Findstring=fieldname&operate&”#”&value&”#” End Select Unload Me End Sub Private Sub Command2_Click() Cancelflag=ture Unload Me End Sub Private Sub Form_Load() Dim num As INTEGER For num=0 To Form5.Data1Recordset.Fields(num).Name Next num Combo3.AddItem”1” Combo3.AddItem”2” Combo3.AddItem”3” Combo3.AddItem”4” Combo3.AddItem”5” Combo3.AddItem”6” Combo3.AddItem”7” End Sub , 沈 阳 大 学

因篇幅问题不能全部显示,请点此查看更多更全内容

Top