已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库系统开发综合训练宿舍管理系统成员:班级:信1402指导老师: 完成日期:2016年9月7日目录1 数据库设计. 11.1设计目的. 11.2需求分析. 11.3数据库设计. 11.3.1数据字典. 1 1.3.2数据库功能设计. 2 1.3.3 E-R图. 31.3.4数据库逻辑结构. 42.数据库构建. 42.1数据库物理结构. 42.2触发器. 53.系统的开发和运行. 731系统的开发软件. 73.2系统的运行环境. 74.系统的主要功能. 75.设计总结 . 16一、数据库设计1.设计目的宿舍管理系统的设计目的是为住宿大学生提供一定的查询便利,让住宿学生能够便利的查询自己的住宿信息(包括每月用电量、卫生检查得分),同时,为楼管以及更高级的领导提供一些信息管理的方便。2.需求分析宿舍管理管理系统主要面对的是学生,楼管和信息管理员,这三大人群用户,同时各个用户又有不同的使用要求。其中学生是住宿人员,具有一个唯一的学号,还有一些其他属性如,院系,宿舍号,楼号,入住时间等。同时学生还是一个用户,对一些个人数据(自身学生信息、宿舍用电量、卫生检查得分)具有查询功能。楼管具有唯一的工号,管理对应的宿舍楼,还具有年龄、工龄、电话等属性。同时,楼管还属于管理人员,拥有对卫生检查打分和对外来人员记录进行登记的责任。管理员,是宿舍管理系统最高权限者,拥有对学生信息、宿舍信息、楼管信息,进行修改,添加,删除,查询的权限。管理员拥有着维护整个宿舍管理系统的责任,对已经失效的信息进行修改,对新信息进行录入的功能。3.数据库设计1数据字典学生数据字典属性名 类型 长度 备注学号 char10住宿学生学号 姓名 char10住宿学生姓名所在院系char20楼号 int住宿学生所在宿舍楼号宿舍号 int住宿学生所在宿舍号 入住时间 smalldate住宿学生入住宿舍的时间楼管数据字典属性名 类型 长度 备注楼管工号 char10楼管工作号 姓名 char10楼管姓名 性别 char2年龄 int工龄 int电话 char10楼管的联系电话宿舍楼数据字典属性名 类型 长度 备注楼号 int宿舍楼编号 楼管工号 char10宿舍楼的负责楼管的工号已住人数 int宿舍楼中所居住的人数可住人数 int宿舍楼最大容纳人数宿舍数据字典属性名 类型 长度 备注楼号 int宿舍所在宿舍楼编号 宿舍号 int舍长学号 char10宿舍长的学号宿舍电话 char11宿舍公用电话宿舍用电量数据字典属性名 类型 长度 备注楼号 int宿舍所在宿舍楼编号 宿舍号 int当月电量 int当月已用电量年月 char10记录月份卫生检查数据字典属性名 类型 长度 备注楼号 int宿舍所在宿舍楼编号 宿舍号 int卫生得分 int日期 char10记录日期外来者登记数据字典属性名 类型 长度 备注 姓名 char10外来者姓名 是否携带贵重物品char20携带什么物品楼号 int外来者访问的宿舍楼号日期 char10记录访问日期登陆数据字典属性名 类型 长度 备注账户 用户登录账户 密码 用户登录密码2.数据库功能模块设计学生模块:修改个人基本信息,查询宿舍用电量、卫生得分楼管模块:录入,查询宿舍卫生得分,录入,查询外来人员访问记录管理员模块:添加、修改、删除学生基本信息,查询宿舍用电量(总表),卫生得分(总表),外来登记登陆功能:根据不同的账号,将所访问人员分为四种权限,分别是,访客权限、学生权限、楼管权限以及管理员权限。3.E-R图1包含卫生检查检查得分楼号宿舍号日期宿舍号学生姓名学号院系楼号入住时间住宿宿舍楼号宿舍电话宿舍号舍长学号用电量包含楼号宿舍号用电量年月年月宿舍楼存在楼号楼管工号可住人数已住人数出入登记楼号姓名包含日期是否携带贵重物品楼管包含楼管工号年龄工龄性别电话n11111n1111姓名 n4.数据库的逻辑结构宿舍楼:楼号、楼管工号、可住人数、已住人数、学生表:学号、姓名、所在院系、楼号、宿舍号、入住时间 宿舍表:宿舍号、楼号、舍长学号、宿舍电话楼管表:楼管工号、姓名、性别、年龄、工龄、楼管电话 用电表:楼号、宿舍号、当月用电量、年月卫生检查表:楼号、宿舍号、检查卫生得分、日期出入登记表:外来者姓名、日期、是否携带贵重物品、楼号二、数据库构建1.数据库的物理结构学生表:学生表数据项名 数据含义 数据类型 是否为空 学号 学生学号 char(10) 否(主键)姓名 学生姓名 char(10) 否所在院系 学生所在院系 char(20) 否楼号 学生所在宿舍楼号 int 否宿舍号 学生所在宿舍号 int 否入住时间 学生入住宿舍的时间 smalldate 否楼管表:楼管表 数据项名 数据含义 数据类型 是否为空 楼管工号 楼管工作号 char(10) 否(主键)姓名 楼管姓名 char(10) 否性别 楼管性别 char(2) 否年龄 楼管年龄 int 否工龄 楼管工作时间长度 int 否电话 楼管的联系电话 插入(11) 否宿舍楼表:宿舍楼表数据项名 数据含义 数据类型 是否为空 楼号宿舍楼编号 int否(主键)楼管工号 宿舍楼的负责楼管的工号 char(10) 否已住人数宿舍楼中所居住的人数 int否可住人数 宿舍楼最大容纳人数 int 否宿舍表:宿舍表数据项名 数据含义 数据类型 是否为空 楼号宿舍所在宿舍楼编号 int否(主键)宿舍号 宿舍具体编号int否(主键)舍长学号 宿舍长的学号 char(10) 否电话 宿舍公用电话 char(11) 否用电表:用电表数据项名 数据含义 数据类型 是否为空 楼号宿舍所在宿舍楼编号 int否(主键)宿舍号 宿舍具体编号int否(主键)当月用电量 具体道某月的用电量 int 否年月 记录用电量的日期 char(10) 否(主键)卫生检查表:卫生检查表数据项名 数据含义 数据类型 是否为空 楼号宿舍所在宿舍楼编号 int否(主键)宿舍号 宿舍具体编号int否(主键)检查得分 某日的卫生检查得分 int 否年月 记录用电量的日期 char(10) 否(主键)出入登记表:出入登记表数据项名 数据含义 数据类型 是否为空 姓名 学生姓名 char(10) 否(主键)楼号宿舍所在宿舍楼编号 int否(主键)是否携带贵重物品 携带什么物品 char(10) 否日期 外来者登记的时间 char(10) 否(主键)2.触发器1.执行修改学生的楼号宿舍号时,失去这名学生的宿舍楼已住人数自动减一,得到这名学生的宿舍楼自动加一。createtriggertri_name2on学生表forupdateasdeclareqianint,houintselectqian=楼号fromdeletedselecthou=楼号frominsertedifupdate(楼号)andUPDATE(宿舍号)beginupdate宿舍楼表set已住人数=已住人数+1 where楼号=houupdate宿舍楼表set已住人数=已住人数-1 where楼号=qianendgo2.执行向学生表插入一名新的学生时,相应的宿舍楼表的已住人数自动加一。createtriggertri_name4on学生表forinsertasdeclare楼号intselect楼号=楼号frominsertedbeginupdate宿舍楼表set已住人数=已住人数+1 where楼号=楼号endgo3.执行删除学生表的某个人时,相应的宿舍楼表的已住人数自动减一createtriggertri_name3on学生表fordeleteasbeginupdate宿舍楼表set已住人数=已住人数-1 where楼号=(select楼号frominserted)endgo4.执行删除学生表的某个人时,判断是否此人是舍长,若是,修改该宿舍的舍长学号未0createtriggertri_name1on学生表fordeleteasdeclare学号char(10)select学号=学号fromdeletedbeginupdate宿舍表set舍长学号=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 宿舍号=宿舍号and 楼号=楼号update 学生表set 宿舍号=宿舍号where 宿舍号=宿舍号and 楼号=楼号endgo三、系统的开发与运行1系统的开发工具VisualBasic 6.0SQLServer 20082.系统的运行环境需先用SQLServer 2008还原存在目录下已备份的数据库文件,然后用VisualBasic 6.0运行管理系统应用程序,这期间可以关闭SQLServer 2008。四、系统主要功能1.登陆功能:根据账号的不同,自动区分用户角色2.主窗口代码:包含所有主要代码Public LoginSucceeded As BooleanPublic QX 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 = Falsenew_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 ThenWith 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, 35Frame1.Move 80, 80, ScaleWidth - 110, ScaleHeight - 110DataGrid1.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 判断是否按动鼠标器右键判断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 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 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, 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 outpeopel_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=Z8YRK3H8XGXHTPBSQLEXPRESScn.Open stra1:x = InputBox(请输入外来人员姓名, 提示)If x = ThenIf MsgBox(姓名不能为空,是否继续。, vbYesNo) = vbYes ThenGoTo a1ElseGoTo lastlEnd IfEnd Ifb1:y = InputBox(请输入外来人员备注, 提示)If y = ThenIf MsgBox(备注不能为空,是否继续。, vbYesNo) = vbYes ThenMsgBox 备注不能为空,请重新输入。GoTo b1ElseGoTo lastlEnd IfEnd Ifc1:z = InputBox(请输入外来人员楼号, 提示)If z = ThenIf MsgBox(楼号不能为空,是否继续。, vbYesNo) = vbYes ThenMsgBox 楼号不能为空,请重新输入。GoTo c1ElseGoTo lastlEnd IfEnd Ifd1:u = InputBox(请输入外来人员日期, 提示)If u = ThenIf MsgBox(日期不能为空,是否继续。, vbYesNo) = vbYes ThenMsgBox 日期不能为空,请重新输入。GoTo d1:ElseGoTo lastlEnd IfEnd Ifcn.Execute insert into 出入登记表(姓名,是否携带贵重物品,楼号,日期) values( & x & , & y & , & 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_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=Z8YRK3H8XGXHTPBSQLEXPRESScn.Open strx = InputBox(请输入你要删除的学生学号, 提示)cmm = select * from 学生表 where 学号= & x & rs.Open cmm, cnIf rs.EOF = False ThenIf MsgBox(您确定要删除学号为 & x & 的学生嘛, vbYesNo, 警告) = vbYes Thencmm = delete from 学生表 where 学号= & 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 = Provider=SQLOLEDB.1;Password=std2014;Persist Security Info=True;User ID=std2014;Initial Catalog=宿舍管理系统;Data Source=Z8YRK3H8XGXHTPBSQLEXPRESScn.Open strx = InputBox(请输入你要删除的楼号, 提示)y = InputBox(请输入你要删除的宿舍号, 提示)cmm = select * from 宿舍表 where 楼号= & x & and 宿舍号 = & y & rs.Open cmm, cnIf rs.EOF = False ThenIf MsgBox(您确定要删除 & x & 栋 & y & 宿舍吗?, vbYesNo, 警告) = vbYes Thencmm = delete from 宿舍表 where 楼号= & 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学生信息查询卫生得分查询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.RecordsetDim conn As New ADODB.ConnectionAdodc1.ConnectionString = Provider=SQLOLEDB.1;Password=std2014;Persist Security Info=True;User ID=std2014;Initial Catalog=宿舍管理系统;Data Source=Z8YRK3H8XGXHTPBSQLEXPRESSAdodc1.CommandType = adCmdTextAdodc1.RecordSource = select * from 宿舍表Adodc1.RefreshDataGrid1.DefColWidth = form1.ScaleWidth / Adodc1.Recordset.Fields.Count - 1DataGrid1.Visible = TrueDataGrid1.RefreshEnd SubPrivate Sub student_all_Click()Dim rs As New ADODB.RecordsetDim conn As New ADODB.ConnectionAdodc1.ConnectionString = Provider=SQLOLEDB.1;Password=std2014;Persist Security Info=True;User ID=std2014;Initial Catalog=宿舍管理系统;Data Source=Z8YRK3H8XGXHTPBSQLEXPRESSAdodc1.CommandType = adCmdTextAdodc1.RecordSource = select * from 学生表Adodc1.RefreshDataGrid1.DefColWidth = form1.ScaleWidth / Adodc1.Recordset.Fields.Count - 1DataGrid1.Visible = TrueDataGrid1.RefreshEnd SubPrivate Sub else_b_Click()MsgBox 本软件仅适用于石家庄铁道大学, vbInformation, hahahahhahahahaEnd SubPrivate Sub student_search_Click()Dim xh As Stringxh = InputBox(请输入学号, 提示)Adodc1.ConnectionString = Provider=SQLOLEDB.1;Password=std2014;Persist Security Info=True;User ID=std2014;Initial Catalog=宿舍管理系统;Data Source=Z8YRK3H8XGXHTPBSQLEXPRESSAdodc1.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_new_win.next_b.Enabled = Falsestudent_new_win.next_b.Visible = FalseEnd SubPrivate Sub clean_record_Click()End Su
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年安庆市人力资源服务有限公司招聘劳务外包员工1名笔试历年常考点试题专练附带答案详解试卷3套
- 2025年及未来5年市场数据中国嵌入式双灶行业市场调查研究及投资战略数据分析研究报告
- 副高转公务员考试试题及答案
- 光电组件生产线项目风险评估报告
- 2025年及未来5年市场数据中国过氧化二异丙苯行业全景评估及投资规划建议报告
- 德宏公务员考试大纲试题及答案
- 大邑公务员考试试题及答案
- 中心城区供排水系统提升工程风险评估报告
- 成武公务员考试试题及答案
- 集中供热热源厂建设项目风险评估报告
- 《工程勘察设计收费标准》(2002年修订本)
- 热力发电厂课程设计说明书
- 斑点叉尾鮰鱼种培育技术
- 南方科技大学自述信800字范文六篇
- “双减”背景下小学语文个性化作业设计策略
- 工厂化学品管理知识培训
- 期货基础知识(期货入门)
- 房产公司施工图设计标准
- GB/T 19685-2005预应力钢筒混凝土管
- 网络安全教育课件PPT(30张)
- 唐山市基层诊所基本公共卫生服务医疗机构卫生院社区卫生服务中心村卫生室地址信息
评论
0/150
提交评论