数据库课程设计.docx
《数据库课程设计.docx》由会员分享,可在线阅读,更多相关《数据库课程设计.docx(19页珍藏版)》请在冰豆网上搜索。
数据库课程设计
河南理工大学
计算机科学与技术学院
课程设计报告
2011—2012学年第一学期
课程名称:
数据库课程设计
设计题目:
学生宿舍管理系统
学生姓名:
学号:
专业班级:
指导教师:
2012年9月15日
摘要
随着信息技术的在管理上越来越深入而广泛的应用,管理信息系统在技术上已经渐渐成熟。
管理信息系统是一个不断发展的新型学科,任何一各单位要发展要生存,都需要把内部活动有机的组织起来,就必须建立与自身特点相适应的管理信息系统。
本系统根据大学生宿舍管理的实际情况而设计,采用VisualC++为开发工具,数据库采用了最为普及的小型数据库管理系统Access,能实现宿舍管理中的添加信息,删除信息,修改信息,查询信息等必不可少的功能。
关键词:
VC++,宿舍管理系统,Access,数据库,MFC编程。
前言
宿舍,是大学生在高校校园里一个重要的学习,生活,交往的空间环境。
随着高校办学的扩大,学生人数的不断增多,高校学生宿舍管理信息量日益庞大,如果依然采用传统的工作方式——纸媒介的账本工作模式,会存在获取信息慢,查询困难,准确性差等问题,很难适应高水平宿舍管理的需求。
而采用计算机软件来实现信息的的管理能很好的解决传统工作方式存在的问题。
因此,我们设计开发了学生宿舍管理系统,旨在提高宿舍管理的效率和准确性,减少工作的盲目性,对后勤管理的现代化建设有一定的指导意义。
设计平台:
开发本系统的过程中主要用到的软件开发工具有:
VC++6.0、Access2003,Photoshop。
现将使用情况分别介绍如下:
VC++6.0:
MFC方式设计系统界面,采用OLEDB方式访问数据库。
Access:
采用Access设计本系统中的数据库。
Photoshop:
用于相关图片的美工设计。
需求规定:
如何有效地管理宿舍已成为信息时代的大势所趋,在这种情况下,我们开发出来了宿舍管理系统。
学生可以根据宿舍管理系统查询自己宿舍的卫生情况,个人信息,室友信息,以及宿舍通知等,并能及时的修改自己的联系电话,方便室友和宿管的联系。
宿管可以每天将卫生情况记录到宿管系统,并可以通过管理系统评定优秀良好和不及格宿舍。
宿舍管理员可以通过宿舍管理系统完成学生床位的安排和删除,输入宿舍重要的通知,比如停水电等重要的通知,录入学生信息,并且还能查看学生基本信息,便于联系学生。
软件相关功能的说明:
(1)学生的登陆界面:
登录后可以查看最近的宿舍通知,查看室友的基本信息,以及基本信息。
有以下基本的功能板块:
修改联系电话
考虑到现在学生手机号换的频繁,故特增加修改联系电话的功能,学生可以即时的修改自己的联系电话,便于自己和宿管的联系。
卫生情况
学生可以查看每天的卫生情况,提高同学们打扫卫生的积极性,以此养成一个良好的卫生习惯。
个人信息修改:
此功能的出现是为了应对宿舍可能出现的人员流动现象,同时也可以用于大学新生,大四毕业生的进入、离开宿舍的相关管理。
(2)宿舍管理员的登陆界面:
这个界面能实现的功能较多是本软件的核心所在,可以根据公寓管理系统来查看各公寓学生能入住的基本信息,也可以根据班级来查看学生入住的基本信息。
同时,宿管还可以查看上次或这次卫生检查过后的评分情况,便于宿管老师进行评比管理。
学生用户设置
新增学生用户,记录学生的院系、专业、班级、学号、姓名等重要的信息,用户增加过后,该学生即可登录宿舍管理系统。
管理员设置
新增宿舍管理员,便于宿舍的管理。
删除学生用户
为了便于宿舍管理人员删除学生用户,此项功能提供了两个选择,宿管可以按照院系来删除,也可以按照学生的学号来删除。
删除管理员
删除管理员后,该管理员也即将被取消了登录宿舍管理系统的权限。
新增公寓设置
宿舍管理员既可以增加公寓,也可以增加公寓楼区或楼栋本系统的楼栋统一为如下标准:
每栋有七层高,每层有30间宿舍,每间宿舍为标准的四人房。
删除公寓
操作删除时,可以删除整栋公寓、楼区、删除时与该删除项(公寓、楼区或整栋楼)相关的的一些信息也同时将被删除。
学生床位安排:
将给未安排床位的学生安排床位,该操作中显示的床位始终是空床位。
删除学生床位
学生床位删除后,该床位置空,此时床位可以安排给其他的学生。
添加检查记录:
宿管可以每天将宿舍的卫生情况按宿舍登录,便于学生登录宿舍管理系统进行查看。
通知更新:
宿管可以输入一些重要的通知,及时提醒学生一些重要的事情。
相关数据库
本数据库采用的是ACCESS数据库,并用Active数据对象ADO这种新的数据库访问系统来访问ACCESS数据库。
我对此建立了三个表,分别是:
(1)学生基本信息表格:
该表格包含了学生的学号(学号是唯一的)、姓名、籍贯、院系、专业、年级、联系电话等基本信息。
表(学生基本信息)与(公寓)通过学号来联系。
(2)公寓表:
保存公寓名称、楼区、楼区性质、宿舍、床号信息、同时如果某学生安排了床位,则会在相应床位出现学生的学号处为空值,表示尚未安排学生。
该表与学生基本信息表通过学号来联系。
(3)卫生表:
该表项记录公寓名、楼区、宿舍、四个域的值唯一的确定了一间宿舍。
而门窗、床铺、地板、阳台、评分等级则记录该宿舍的检查情况。
该表与公寓之间通过(公寓名、楼区、楼栋、宿舍)四个属性值联系。
(4)宿管表:
该表相对独立,与其他的表没有联系。
其记录宿管的工号和密码、密码可以为空。
关于通知的处理:
该系统的通知保存在Notify.txt文件中,通过文件读写的顺序访问模式来进行对其的读写操作。
考虑到系统的稳定性和运行效率,只保留最后一次的通知,而将以前的通知清除了。
部分相关代码:
1.用户类型判断
在数据库中建了学生表,管理员表。
在添加人员时有两种默认级别。
管理员、学生。
管理员拥有对数据库操作的一切权限。
普通用户只有普通的查看,信息更换等。
没有删除等操作功能。
前用户成功登录时会显示其登陆类型主要代码如下:
设置当前控件连接的数据库
DimproviderAsString
DimdatasourceAsString
provider="provider=Microsoft.jet.oledb.4.0"
datasource="datasource="&App.Path&"\DB.mdb"
WithAdodc1
.Mode=adModeReadWrite
.ConnectionString=provider&";"&datasource
.CommandType=adCmdTable
.RecordSource="yonghu"
.Refresh
.Recordset.MoveFirst
EndWith
对用户进行判断
IfText1.Text=""Then
MsgBox"请输入用户名!
",48,"提示"
ExitSub
EndIf
Adodc1.Recordset.Find"用户='"&Text1.Text&"'"
IfAdodc1.Recordset.EOF=FalseAndText2.Text=Trim(Adodc1.Recordset.Fields("pass"))Then
main.Text1.Text=Adodc1.Recordset.Fields("级别")
main.Text2.Text=Adodc1.Recordset.Fields("用户")
main.Show
UnloadMe
Else
Text1.Text=""
Text2.Text=""
MsgBox"密码或用户名错误!
",48,"提示"
EndIf
2.添加用户即添加使用该管理软件的用户。
软件默认为两个级别:
管理员、学生。
管理员拥有对此软件管理操作等一切的权力。
普学生用户,只有普通的查看、查询、修改等权力。
没有对记录删除等权力。
在添加用户时通过管理员的相关操作进行。
然后输入此用户的用户名和密码和相关信息即可!
添加用户主要代码:
IfCommand1.Caption="添加"Then
Command2.Enabled=False
Command5.Enabled=False
Command6.Enabled=False
Command1.Caption="确定"
Command3.Caption="取消"
Adodc1.Recordset.AddNew
Option1.Enabled=True
Option2.Enabled=True
Text1.Enabled=True
Text2.Enabled=True
Text3.Enabled=True
Text2.Text=""
ElseIfText1.Text=""Then
MsgBox"用户名不能为空!
",48,"提示"
ElseIfText2.Text=""Then
MsgBox"密码不能为空!
",48,"提示"
ElseIfText2.Text<>Text3.TextThen
MsgBox"密码两次需一致!
",48,"提示"
Else
Command2.Enabled=True
Command3.Enabled=True
Command5.Enabled=True
Command6.Enabled=True
Command3.Caption="编辑"
Command1.Caption="添加"
Adodc1.Recordset.Update
Text1.Enabled=False
Text2.Enabled=False
Text3.Enabled=False
Text4.Enabled=False
Option1.Value=False
Option2.Value=False
Option1.Enabled=False
Option2.Enabled=False
EndIf
删除操作可以把当前记录删除掉。
一经删除即不可以在恢复。
所以在操作前要想好。
删除操作部分代码:
IfAdodc1.Recordset.RecordCount=1Then
Command2.Enabled=False
EndIf
If(MsgBox("你真的想删除当前记录吗?
",vbOKCancel,"系统提示"))=vbOKThen
Adodc1.Recordset.Delete
Adodc1.Recordset.MoveFirst
Adodc1.Refresh
EndIf
3.公寓设置
公寓设置可以说是本程序中一关键部分。
因为所有的设置都在此进行。
包括公寓添加、修改、删除。
寝室的添加、修改、删除以及班级的添加、修改和删除操作。
只有正确的对这些设置进行添加修改,才能输入正确的记录。
这里主要涉及到的问题是datagrid的显示,以及treeview及时形成新的结构。
还有一些就是对表记录的复杂操作。
在点击sstab各版的时候,要在这时重新生成寝室设置中的树型结构,
SelectCasePreviousTab
Case0
Callstartree1
Case1
Combo1.Clear
DimIAsInteger
I=1
IfAdodc1.Recordset.RecordCount<>0Then
Adodc1.Recordset.MoveFirst
DoWhileICombo1.AddItem(Adodc1.Recordset.Fields("公寓名称"))
Adodc1.Recordset.MoveNext
I=I+1
Loop
EndIf
Callstartree1
Case2
Callstartree1
EndSelect
EndSub
4.连接数据库代码:
PubliccnnAsNewADODB.Connection'新建一个数据源
Publicqy1AsNewADODB.Recordset'数据一个记录集
Publicqy2AsNewADODB.Recordset'数据一个记录集
SubMain()
tkOpenAccessDBApp.Path&"\base.mdb"'连接数据库
Ifqy1.State=adStateOpenThen'表状态
qy1.Close
EndIf
qy1.Open"select*from登陆",cnn,adOpenStatic,adLockReadOnly,adCmdText'查询表内是否有数据
Ifqy1.RecordCount=0Then
Setqy1=cnn.Execute("insertinto登陆values('admin','admin','超级管理员')")'表内无数据执行此语句新建用户
EndIf
Form3.Show
EndSub
PrivateSubtkOpenAccessDB(_
tkFileNameAsString,_
OptionaltkUserIDAsString,_
OptionaltkPasswordAsString_
)'连接数据库参数
OnErrorGoTotkFinish
cnn.Open"Provider=Microsoft.Jet.OLEDB.4.0;"&_
"DataSource="&tkFileName&";"&_
"Mode=ShareDenyNone;"&_
"ExtendedProperties=;"&_
"JetOLEDB:
Systemdatabase=;"&_
"JetOLEDB:
RegistryPath=;"&_
"JetOLEDB:
DatabasePassword=;"&_
"JetOLEDB:
EngineType=5;"&_
"JetOLEDB:
DatabaseLockingMode=1;"&_
"JetOLEDB:
GlobalPartialBulkOps=2;"&_
"JetOLEDB:
GlobalBulkTransactions=1;"&_
"JetOLEDB:
NewDatabasePassword=;"&_
"JetOLEDB:
CreateSystemDatabase=False;"&_
"JetOLEDB:
EncryptDatabase=False;"&_
"JetOLEDB:
Don'tCopyLocaleonCompact=False;"&_
"JetOLEDB:
CompactWithoutReplicaRepair=False;"&_
"JetOLEDB:
SFP=False;"&_
tkUserID,_
tkPassword
ExitSub
tkFinish:
MsgBoxErr.Description
End
EndSub
5.主窗体界面与代码
PrivateSubabou_Click()
frmAbout.Show
EndSub
PrivateSubcmai_Click()
Ifadmin=FalseThen
MsgBox"你没有管理本功能的权限,请与管理员联系!
"
ExitSub
EndIf
Ifmdi=TrueThen
Form10.Show
Else
MsgBox"每次只能打开一个窗口,请关闭正在打开的窗口!
",vbInformation,"
不允许当前操作!
"
EndIf
EndSub
PrivateSubbak_Click()
Ifmdi=TrueThen
Form9.Show
Else
MsgBox"每次只能打开一个窗口,请关闭正在打开的窗口!
",vbInformation,"不允许当前操作!
"
EndIf
EndSub
PrivateSubexit_Click()
Ifmdi=FalseThen
MsgBox"请保存数据!
",vbInformation,"不允许当前操作!
"
Else
End
EndIf
EndSub
PrivateSubgongzi_Click()
Ifmdi=TrueThen
Form5.Show
Else
MsgBox"每次只能打开一个窗口,请关闭正在打开的窗口!
",vbInformation,"不允许当前操作!
"
EndIf
EndSub
PrivateSubhuifu_Click()
Ifmdi=TrueThen
Form10.Show
Else
MsgBox"每次只能打开一个窗口,请关闭正在打开的窗口!
",vbInformation,"不允许当前操作!
"
EndIf
EndSub
PrivateSubkecheng_Click()
Ifmdi=TrueThen
Form7.Show
Else
MsgBox"每次只能打开一个窗口,请关闭正在打开的窗口!
",vbInformation,"不允许当前操作!
"
EndIf
EndSub
PrivateSubkfsycx_Click()
Ifmdi=TrueThen
Form21.Show
Else
MsgBox"每次只能打开一个窗口,请关闭正在打开的窗口!
",vbInformation,"不允许当前操作!
"
EndIf
EndSub
PrivateSubkgsyap_Click()
Ifmdi=TrueThen
Form20.Show
Else
MsgBox"每次只能打开一个窗口,请关闭正在打开的窗口!
",vbInformation,"不允许当前操作!
"
EndIf
EndSub
程序的相关截图:
1.登陆页面
:
2.管理员登陆界面
3.进入程序后:
管理员界面:
管理员相关操作:
数据库的相关截图:
小结
系统的功能
该系统主要包括:
查询、修改信息、设置楼区、分配寝室发布信息等。
通过对宿舍活动各环节产生的数据进行处理,将为上级管理层提供一系列有关宿舍情况的动态信息,使宿舍管理工作规范化、制度化、程序化,促进了宿舍管理的基础水平,避免了宿舍管理的随意性,提高信息处理的速度和准确性。
本系统以Access作为数据库平台和开发工具,应用结构化设计方法与面向对象的程序设计技术开发而成。
在整个开发过程中采用了生命周期法,进行了系统需求分析
、总体结构设计、详细设计、系统实施和系统运行维护。
编写系统的经验与体会
在宿舍管理系统的实际开发工作之后,辛苦之余,带来的收获和经验是巨大的:
1)各种编程技术是相通的,以前曾经学习过一个学校图书管理信息系统,采用的技术与宿舍管理系统的技术差不多,这也意味着,采用同样的技术,也可以实现销售管理信息系统、采购管理信息系统、酒店管理信息系统等等其它管理信息系统的开发工作。
2)软件复用。
因为各种管理类软件的技术差不多,所以很多设计方法、流程、甚至源代码都可以复用,减少工作量。
3)前期的需求分析和软件设计工作非常重要,特别整体框架的搭建要多花功夫。
在收获之余,同时,也发现存在一些需要注意的地方:
1)需求分析如果没有做好,会给开发带来很多无用功,在宿舍管理系统开发的工作过程中,曾多次向宿舍管理部门的老师咨询具体的需求;为此,开发工作被数次停下,甚至返工重来。
所以,做好需求分析至关重要。
工作量非常大。
所以,错误特别是一些严重的错误,最好在用户正式使用前被发现,及时更改。
2)测试不可轻视。
因为一旦测试没有发现的错误到用户那里才被发现,再返工修改的
3)在与用户打交道的过程中,在实际开发设计中,也发现了许多知识的不足和技术的欠缺。
该系统系统的局限性与展望
虽然本系统在整体上设计较为成功,达到了相关的要求但由于系统开发在时间上比较仓促以及本人水平有限,导致该系统仅为应用范围较小的单机系统,没有与上级管理系统中的财务系统、人事系统等相结合,缺少对现在流行的网络办公室概念的技术支持。
因而,目前该系统还是十分稚嫩的,不够成熟,有待于在实践中进一步改进和提高。
随着校园网络化的迅猛发展,实现学生宿舍的信息化管理以及和学校其它管理系统的无缝连接,必将是一种趋势。
这也将极大的改善高校后勤管理工作的效率,节约大量人力、物力和财力;同时,将每个学生的生活起居纳入系统的管理计划中,也可以为学生们创造一个优质、有序、高效地生活环境。
综上所述,各类管理软件的网络化、集成化、智能化、一体化是今后的发展方向。
参考文献:
1.沈大林。
中文VisualBisic6.0人民邮电出版社
2.萨师煊王珊.数据库系统概论(第三版)高等教育出版社
3.VisualBisic6.0控件时尚编程百例。
机械工业出版社
4.贾长云陆卫忠可视化编程应用-VisualBasic高等教育出版社
5.谭浩强薛淑斌袁玫VisualBasic程序设计清华大学出版社