基于VB和SDL的学生宿舍管理系统开发_第1页
基于VB和SDL的学生宿舍管理系统开发_第2页
基于VB和SDL的学生宿舍管理系统开发_第3页
基于VB和SDL的学生宿舍管理系统开发_第4页
基于VB和SDL的学生宿舍管理系统开发_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据库系统开发综合训练宿舍管理系统成 员: 路其江 20143068乜精武 20143071刘凯 20143075彭杰 20143080班 级:信1402指导老师:李静完成日期:2016年9月7日目录1 数据库设计. 11.1设计目的 . 11.2需求分析 . 11.3数据库设计 . 1 1.3.1数据字典 . 1 1.3.2数据库功能设计 . 2 1.3.3 E-R图 . 3 1.3.4数据库逻辑结构 . 42.数据库构建. 42.1数据库物理结构 . 42.2触发器 . 53.系统的开发和运行 . 731系统的开发软件 . 73.2系统的运行环境 . 74.系统的主要功能 . 75.设计总

2、结 . 16一、数据库设计1.设计目的宿舍管理系统的设计目的是为住宿大学生提供一定的查询便利,让住宿学生能够便利的查询自己的住宿信息(包括每月用电量、卫生检查得分),同时,为楼管以及更高级的领导提供一些信息管理的方便。2.需求分析宿舍管理管理系统主要面对的是学生,楼管和信息管理员,这三大人群用户,同时各个用户又有不同的使用要求。其中学生是住宿人员,具有一个唯一的学号,还有一些其他属性如,院系,宿舍号,楼号,入住时间等。同时学生还是一个用户,对一些个人数据(自身学生信息、宿舍用电量、卫生检查得分)具有查询功能。楼管具有唯一的工号,管理对应的宿舍楼,还具有年龄、工龄、电话等属性。同时,楼管还属于管

3、理人员,拥有对卫生检查打分和对外来人员记录进行登记的责任。管理员,是宿舍管理系统最高权限者,拥有对学生信息、宿舍信息、楼管信息,进行修改,添加,删除,查询的权限。管理员拥有着维护整个宿舍管理系统的责任,对已经失效的信息进行修改,对新信息进行录入的功能。3.数据库设计1数据字典学生数据字典属性名 类型 长度 备注 学号 char 10 住宿学生学号 姓名 char 10 住宿学生姓名 所在院系 char 20 楼号 int 住宿学生所在宿舍楼号 宿舍号 int 住宿学生所在宿舍号 入住时间 smalldate 住宿学生入住宿舍的时间楼管数据字典属性名 类型 长度 备注 楼管工号 char 10

4、楼管工作号 姓名 char 10 楼管姓名 性别 char 2 年龄 int 工龄 int 电话 char 10 楼管的联系电话宿舍楼数据字典属性名 类型 长度 备注楼号 int 宿舍楼编号 楼管工号 char 10 宿舍楼的负责楼管的工号 已住人数 int 宿舍楼中所居住的人数 可住人数 int 宿舍楼最大容纳人数 宿舍数据字典属性名 类型 长度 备注楼号 int 宿舍所在宿舍楼编号 宿舍号 int 舍长学号 char 10 宿舍长的学号 宿舍电话 char 11 宿舍公用电话宿舍用电量数据字典属性名 类型 长度 备注楼号 int 宿舍所在宿舍楼编号 宿舍号 int 当月电量 int 当月已

5、用电量 年月 char 10 记录月份卫生检查数据字典属性名 类型 长度 备注楼号 int 宿舍所在宿舍楼编号 宿舍号 int 卫生得分 int 日期 char 10 记录日期外来者登记数据字典属性名 类型 长度 备注 姓名 char 10 外来者姓名 是否携带贵重物品 char 20 携带什么物品 楼号 int 外来者访问的宿舍楼号日期 char 10 记录访问日期登陆数据字典属性名 类型 长度 备注 账户 用户登录账户 密码 用户登录密码2.数据库功能模块设计学生模块:修改个人基本信息,查询宿舍用电量、卫生得分楼管模块:录入,查询宿舍卫生得分,录入,查询外来人员访问记录管理员模块:添加、修

6、改、删除学生基本信息,查询宿舍用电量(总表),卫生得分(总表),外来登记登陆功能:根据不同的账号,将所访问人员分为四种权限,分别是,访客权限、学生权限、楼管权限以及管理员权限。3.E-R图1包含卫生检查检查得分楼号宿舍号日期宿舍号学生姓名学号院系楼号入住时间住宿宿舍楼号宿舍电话宿舍号舍长学号用电量包含楼号宿舍号用电量年月年月宿舍楼存在楼号楼管工号可住人数已住人数出入登记楼号姓名包含日期是否携带贵重物品楼管包含楼管工号年龄工龄性别电话n11111n1111姓名· n4.数据库的逻辑结构宿舍楼:楼号、楼管工号、可住人数、已住人数、学生表:学号、姓名、所在院系、楼号、宿舍号、入住时间 宿舍

7、表:宿舍号、楼号、舍长学号、宿舍电话楼管表:楼管工号、姓名、性别、年龄、工龄、楼管电话 用电表:楼号、宿舍号、当月用电量、年月 卫生检查表:楼号、宿舍号、检查卫生得分、日期 出入登记表:外来者姓名、日期、是否携带贵重物品、楼号二、数据库构建 1.数据库的物理结构 学生表: 学生表 数据项名 数据含义 数据类型 是否为空 学号 学生学号 char(10) 否(主键) 姓名 学生姓名 char(10) 否 所在院系 学生所在院系 char(20) 否 楼号 学生所在宿舍楼号 int 否 宿舍号 学生所在宿舍号 int 否 入住时间 学生入住宿舍的时间 smalldate 否 楼管表: 楼管表 数据

8、项名 数据含义 数据类型 是否为空 楼管工号 楼管工作号 char(10) 否(主键) 姓名 楼管姓名 char(10) 否 性别 楼管性别 char(2) 否 年龄 楼管年龄 int 否 工龄 楼管工作时间长度 int 否 电话 楼管的联系电话 插入(11) 否 宿舍楼表: 宿舍楼表 数据项名 数据含义 数据类型 是否为空 楼号 宿舍楼编号 int 否(主键)楼管工号 宿舍楼的负责楼管的工号 char(10) 否已住人数 宿舍楼中所居住的人数 int 否可住人数 宿舍楼最大容纳人数 int 否 宿舍表: 宿舍表 数据项名 数据含义 数据类型 是否为空 楼号 宿舍所在宿舍楼编号 int 否(主

9、键)宿舍号 宿舍具体编号 int 否(主键)舍长学号 宿舍长的学号 char(10) 否电话 宿舍公用电话 char(11) 否 用电表:用电表 数据项名 数据含义 数据类型 是否为空 楼号 宿舍所在宿舍楼编号 int 否(主键)宿舍号 宿舍具体编号 int 否(主键)当月用电量 具体道某月的用电量 int 否年月 记录用电量的日期 char(10) 否(主键) 卫生检查表:卫生检查表 数据项名 数据含义 数据类型 是否为空 楼号 宿舍所在宿舍楼编号 int 否(主键)宿舍号 宿舍具体编号 int 否(主键)检查得分 某日的卫生检查得分 int 否年月 记录用电量的日期 char(10) 否(

10、主键) 出入登记表:出入登记表 数据项名 数据含义 数据类型 是否为空 姓名 学生姓名 char(10) 否(主键)楼号 宿舍所在宿舍楼编号 int 否(主键)是否携带贵重物品 携带什么物品 char(10) 否日期 外来者登记的时间 char(10) 否(主键)2.触发器1.执行修改学生的楼号宿舍号时,失去这名学生的宿舍楼已住人数自动减一,得到这名学生的宿舍楼自动加一。create trigger tri_name2 on 学生表 for updateasdeclare qian int,hou intselect qian=楼号 from deleted select hou=楼号 fro

11、m inserted if update(楼号)and UPDATE(宿舍号)beginupdate 宿舍楼表 set 已住人数=已住人数+1 where 楼号=hou update 宿舍楼表 set 已住人数=已住人数-1 where 楼号=qianendgo2.执行向学生表插入一名新的学生时,相应的宿舍楼表的已住人数自动加一。create trigger tri_name4 on 学生表 for insertasdeclare 楼号 intselect 楼号=楼号 from inserted beginupdate 宿舍楼表 set 已住人数=已住人数+1 where 楼号=楼号 endg

12、o3.执行删除学生表的某个人时,相应的宿舍楼表的已住人数自动减一create trigger tri_name3 on 学生表 for deleteas beginupdate 宿舍楼表 set 已住人数=已住人数-1 where 楼号=(select 楼号 from inserted ) endgo4.执行删除学生表的某个人时,判断是否此人是舍长,若是,修改该宿舍的舍长学号未0create trigger tri_name1 on 学生表 for deleteas declare 学号 char(10)select 学号=学号 from deletedbeginupdate 宿舍表 set

13、舍长学号=0000 where 舍长学号=学号endgo5.执行修改宿舍表宿舍号和楼号时,修改该宿舍成员的宿舍号和楼号。create trigger tri_name5 on 宿舍表for updateasdeclare 楼号int,宿舍号int,楼号int,宿舍号intselect 楼号=楼号from deleted select 楼号=楼号from inserted select 宿舍号=宿舍号from deletedselect 宿舍号=宿舍号from inserted if update(楼号) and UPDATE(宿舍号)beginupdate 学生表set 楼号=楼号where

14、宿舍号=宿舍号and 楼号=楼号update 学生表set 宿舍号=宿舍号where 宿舍号=宿舍号and 楼号=楼号endgo三、系统的开发与运行 1系统的开发工具Visual Basic 6.0SQL Server 20082.系统的运行环境需先用SQL Server 2008还原存在目录下已备份的数据库文件,然后用Visual Basic 6.0运行管理系统应用程序,这期间可以关闭SQL Server 2008。四、系统主要功能 1.登陆功能:根据账号的不同,自动区分用户角色2.主窗口代码:包含所有主要代码Public LoginSucceeded As BooleanPublic QX

15、 As IntegerPublic ZH As StringPrivate Sub exit_m_Click()EndEnd Sub'*' 初始化Private Sub form_load()With DataGrid1.Height = ScaleHeight - 60.Width = ScaleWidth.Left = ScaleLeft.Top = ScaleTop + 60.Font.Size = 11.HeadFont.Size = 13.RefreshEnd WithIf LoginSucceeded = False Thendelete_m.Enabled = F

16、alsenew_m.Enabled = Falsepassword_updata.Enabled = Falseq_mene.Visible = Falsefunction_m.Enabled = FalseEnd IfMe.Hidestart_login.ShowEnd SubPrivate Sub form_resize()With Image1.Stretch = True.Height = ScaleHeight.Width = ScaleWidth.Left = ScaleLeft.Top = ScaleTopEnd WithIf DataGrid1.Visible = True T

17、henWith DataGrid1.Height = ScaleHeight - 60.Width = ScaleWidth.Left = ScaleLeft.Top = ScaleTop + 60.Font.Size = 11.HeadFont.Size = 13.DefColWidth = ScaleWidth / .Columns.Count.RefreshEnd WithEnd IfLabel2.Move ScaleWidth - 250, 10, 150, 30Label1.Move ScaleWidth - 90, 10, 40, 35'Frame1.Move 80, 80

18、, ScaleWidth - 110, ScaleHeight - 110'DataGrid1.Move 0, 80, ScaleWidth, ScaleHeight - 80End SubPrivate Sub image1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)Dim MnuFile As Menu '声明一个菜单类型的变量Set MnuFile = form1.q_mene '将MenuEdit赋给菜单变量If Button = 2 Then '判断是

19、否按动鼠标器右键'判断RichTexBox控件上选择了的内容是否存在,决定复制、剪切菜单条是否可操作。PopupMenu MnuFileEnd IfEnd SubPrivate Sub hourse_su_Click()hourse_su_win.ShowEnd Sub'*' 注册Private Sub Label1_Click()reg_win.Showform1.Enabled = FalseEnd SubPrivate Sub label1_Mousedown(Button As Integer, Shift As Integer, x As Single, y

20、As Single)Label1.ForeColor = &H80FFFFLabel1.BorderStyle = 1End SubPrivate Sub label1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)Label1.ForeColor = &H80FFFFLabel1.BorderStyle = 0End SubPrivate Sub form1_MouseMove(Button As Integer, Shift As Integer, x As Single, y

21、 As Single)Label1.ForeColor = &HFFFFFFLabel1.BorderStyle = 0End SubPrivate Sub image1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)Label1.ForeColor = &HFFFFFFLabel1.BorderStyle = 0End SubPrivate Sub frame1_MouseMove(Button As Integer, Shift As Integer, x As Single,

22、 y As Single)Label1.ForeColor = &HFFFFFFLabel1.BorderStyle = 0End Sub'*' 快捷菜单'工作人员登录Private Sub worker_load_Click()worker_login_win.ShowEnd Sub'管理员登录Private Sub manager_load_Click()manager_login_win.ShowEnd Sub'登录Private Sub login_m_click()start_login.ShowEnd SubPrivate Sub o

23、utpeopel_new_Click()Dim x, y, z, u As StringDim cn As New ADODB.ConnectionDim rs As New ADODB.RecordsetDim str As StringDim cmm As Stringstr = "Provider=SQLOLEDB.1;Password=std2014;Persist Security Info=True;User ID=std2014;Initial Catalog=宿舍管理系统;Data Source=Z8YRK3H8XGXHTPBSQLEXPRESS"cn.Op

24、en stra1:x = InputBox("请输入外来人员姓名", "提示")If x = "" ThenIf MsgBox("姓名不能为空,是否继续。", vbYesNo) = vbYes ThenGoTo a1ElseGoTo lastlEnd IfEnd Ifb1:y = InputBox("请输入外来人员备注", "提示")If y = "" ThenIf MsgBox("备注不能为空,是否继续。", vbYesNo) = v

25、bYes ThenMsgBox "备注不能为空,请重新输入。"GoTo b1ElseGoTo lastlEnd IfEnd Ifc1:z = InputBox("请输入外来人员楼号", "提示")If z = "" ThenIf MsgBox("楼号不能为空,是否继续。", vbYesNo) = vbYes ThenMsgBox "楼号不能为空,请重新输入。"GoTo c1ElseGoTo lastlEnd IfEnd Ifd1:u = InputBox("请输入外

26、来人员日期", "提示")If u = "" ThenIf MsgBox("日期不能为空,是否继续。", vbYesNo) = vbYes ThenMsgBox "日期不能为空,请重新输入。"GoTo d1:ElseGoTo lastlEnd IfEnd Ifcn.Execute "insert into 出入登记表(姓名,是否携带贵重物品,楼号,日期) values('" & x & "','" & y &

27、"','" & Val(z) & "','" & u & "')"lastl:cn.CloseEnd Sub'学生信息导入Private Sub student_re_new_click()student_new_win.ShowEnd Sub'宿舍信息导入Private Sub hourse_re_new_click()hourse_new_win.ShowEnd Sub'学生信息删除Private Sub student_delete_

28、click()Dim x As StringDim cn As New ADODB.ConnectionDim rs As New ADODB.RecordsetDim str As StringDim cmm As Stringstr = "Provider=SQLOLEDB.1;Password=std2014;Persist Security Info=True;User ID=std2014;Initial Catalog=宿舍管理系统;Data Source=Z8YRK3H8XGXHTPBSQLEXPRESS"cn.Open strx = InputBox(&qu

29、ot;请输入你要删除的学生学号", "提示")cmm = "select * from 学生表 where 学号= '" & x & "' "rs.Open cmm, cnIf rs.EOF = False ThenIf MsgBox("您确定要删除学号为" & x & "的学生嘛", vbYesNo, "警告") = vbYes Thencmm = "delete from 学生表 where 学号= &#

30、39;" & x & "' "cn.Execute cmmrs.Closecn.ClosePrint "删除成功"End IfElseMsgBox "改学号不存在"End IfEnd Sub'宿舍信息删除入Private Sub hourse_delete_click()Dim x As StringDim cn As New ADODB.ConnectionDim rs As New ADODB.RecordsetDim str As StringDim cmm As Stringstr =

31、 "Provider=SQLOLEDB.1;Password=std2014;Persist Security Info=True;User ID=std2014;Initial Catalog=宿舍管理系统;Data Source=Z8YRK3H8XGXHTPBSQLEXPRESS"cn.Open strx = InputBox("请输入你要删除的楼号", "提示")y = InputBox("请输入你要删除的宿舍号", "提示")cmm = "select * from 宿舍表 w

32、here 楼号= '" & x & "' and 宿舍号 ='" & y & "'"rs.Open cmm, cnIf rs.EOF = False ThenIf MsgBox("您确定要删除" & x & "栋" & y & "宿舍吗?", vbYesNo, "警告") = vbYes Thencmm = "delete from 宿舍表 where 楼号=

33、'" & x & "' and 宿舍号 ='" & y & "' "cn.Execute cmmrs.Closecn.ClosePrint "删除成功"End IfElseMsgBox "改宿舍不存在"End IfEnd Sub'修改密码Private Sub password_updata_click()password_update_win.Showform1.Enabled = FalseEnd Sub'学生信息查询&#

34、39;卫生得分查询Private Sub clean_check_click()clean_check_win.ShowEnd SubPrivate Sub dian_check_Click()dian_check_win.ShowEnd SubPrivate Sub clean_all_Click()clean_all_win.ShowEnd SubPrivate Sub hourse_all_Click()'Dim rs As New ADODB.Recordset'Dim conn As New ADODB.ConnectionAdodc1.ConnectionStrin

35、g = "Provider=SQLOLEDB.1;Password=std2014;Persist Security Info=True;User ID=std2014;Initial Catalog=宿舍管理系统;Data Source=Z8YRK3H8XGXHTPBSQLEXPRESS"Adodc1.CommandType = adCmdTextAdodc1.RecordSource = "select * from 宿舍表"Adodc1.RefreshDataGrid1.DefColWidth = form1.ScaleWidth / Adodc1

36、.Recordset.Fields.Count - 1DataGrid1.Visible = TrueDataGrid1.RefreshEnd SubPrivate Sub student_all_Click()'Dim rs As New ADODB.Recordset'Dim conn As New ADODB.ConnectionAdodc1.ConnectionString = "Provider=SQLOLEDB.1;Password=std2014;Persist Security Info=True;User ID=std2014;Initial Cat

37、alog=宿舍管理系统;Data Source=Z8YRK3H8XGXHTPBSQLEXPRESS"Adodc1.CommandType = adCmdTextAdodc1.RecordSource = "select * from 学生表"Adodc1.RefreshDataGrid1.DefColWidth = form1.ScaleWidth / Adodc1.Recordset.Fields.Count - 1DataGrid1.Visible = TrueDataGrid1.RefreshEnd SubPrivate Sub else_b_Click()

38、MsgBox "本软件仅适用于石家庄铁道大学", vbInformation, "hahahahhahahaha"End SubPrivate Sub student_search_Click()Dim xh As Stringxh = InputBox("请输入学号", "提示")Adodc1.ConnectionString = "Provider=SQLOLEDB.1;Password=std2014;Persist Security Info=True;User ID=std2014;Initia

39、l Catalog=宿舍管理系统;Data Source=Z8YRK3H8XGXHTPBSQLEXPRESS"Adodc1.CommandType = adCmdTextAdodc1.RecordSource = "select * from 学生表 where 学号 = '" & xh & "'"Adodc1.RefreshDataGrid1.DefColWidth = form1.ScaleWidth / Adodc1.Recordset.Fields.Count - 1DataGrid1.Visible = TrueDataGrid1.RefreshEnd SubPrivate Sub student_updata_Click()student_new_win.Showstudent_n

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论