


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学 生 宿 舍 管 理 系 统 课 程 设 计摘要:学生宿舍管理系统是应对学生宿舍管理的现代化、网络化,逐步摆脱当前学生宿舍管 理的人工管理方式,提高学生宿舍管理效率而开发的,它包括宿舍学生基本信息管理、楼 道工人基本信息管理、宿舍楼基本信息管理、宿舍基本信息管理、宿舍事故基本信息管理、 宿舍楼物品出入基本信息管理、宿舍楼保卫处基本信息管理、宿舍配备物品及处理管理等 八大功能模块,并提供了对各功能模块的查询和更新功能,且这两种功能基本上是通过存 储过程来实现的,其中宿舍学生基本信息管理、宿舍基本信息管理是系统开发的重点。该系统开发由系统需求分析、概念设计、逻辑设计、数据库实施、系统调试和测试阶
2、段组成。目录1、概述: 02、课程设计的需求分析 02.1、设计任务: 02.1、设计要求: 13、概念结构设计 13.1、概念结构设计工具(E-R模型) 13.2、入住登记子系统(局部) 13.2.1、子系统描述 1322、分 E-R 图 1323、说明 13.3、 外出登记子系统 23.3.1、子系统描述 23.3.2、分 E-R 图 23.3.3、说明 23.4、 调整宿舍子系统 23.4.1、子系统描述 23.4.2、分 E-R 图 23.4.3、说明 23.5、 宿舍智能分配子系统 23.5.1、子系统描述 23.5.2、分 E-R 图 33.5.3、说明 33.6、 信息查询子系统
3、 3361、子系统描述 3362、分 E-R 图 33.6.3、说明 33.7、总体E-R图 34、逻辑结构设计 34.1、关系数据模式 34.1.1、学生信息(stu info ) 34.1.2、宿舍信息(dorm_info) 44.1.3、出入信息(inout_info ) 54.1.4、入住信息(staynfo) 64.1.5、调整信息 74.2视图的设计 74.2.1宿舍信息表视图 75、数据库物理设计与实施 95.1、数据库应用的硬件、软件环境介绍 95.2、物理结构设计 95.3、索引的设计 95.4、建立数据库 105.4.1、创建宿舍信息表 105.4.2、创建学生信息表 11
4、5.4.3、创建出人登记信息表 125.4.4、创建入住信息登记表 125.4.5、创建宿舍调整登记表 135.5、加载测试数据 145.5.1、加载住宿信息 145.5.2、记载学生信息 155.5.3、加载宿舍信息 16&数据操作与实现 176.1、数据查询操作 176.2、数据更新操作 196.3、数据维护操作 206.3.1同步更新触发器 206.3.2、按学院分配宿舍存储过程 227、收获、体会和建议 248、主要参考文献。 25备注 错误!未定义书签。任务分配 错误!未定义书签。1、概述:旧的手工纪录的宿舍管理方式已经不能适应高速发展的信息化时代,新的宿舍管理系统开发出来之
5、后,学校的现有的宿舍信息管理将有很大的改观, 由过去 的人工方式转变为计算机方式,由效率低、数据冗余、易产生错误转变为检索迅 速、查找方便、可靠性高、存储量大。这些优点能够极大地提高效率,也是学校科学化、正规化管理的重要条件。学生宿舍管理系统采用的是计算机化管理,系 统做的尽量人性化,使用者会感到操作非常方便,管理人员需要做的就是将数据 输入到系统的数据库中去。由于数据库的存储容量相当大,而且比较稳定,适合 较长时间的保存,也不容易丢失。这无疑是为信息存储量比较大的学校提供了一 个方便、快捷的操作方式。2、课程设计的需求分析2.1、设计任务:学生宿舍是同学最为熟悉的领域,假定学校有多栋宿舍楼,
6、每栋楼有多层, 每层有多个寝室,每个寝室可住多名学生,学生宿舍管理系统对学校的学生宿舍 进行规范管理,其管理的对象如下:宿舍信息:编号、楼层、床位数、单价等。学生:学号、姓名、性别、年龄、所在院系、年级、电话等。每个宿舍最多可以住4位同学,每个同学只能在一个宿舍,不同宿舍的费用标准可以不同。不同院系、年级的同学可以住同一间宿舍2.1、设计要求:系统要能够对宿舍、学生、住宿信息进行登记、调整,并能随时进行各种查 询、统计等处理。包括:寝室分配:根据院系、年级分配寝室。学生管理:实现入住学生信息的登记、维护和查询功能。信息查询:按公寓楼号、学生姓名等查询住宿信息。出入登记(可选):对学生进出公寓的
7、情况进行登记、实现基本的出入监控 功能3、概念结构设计3.1、概念结构设计工具(E-R模型)3.2、入住登记子系统(局部)3.2.1、子系统描述主要是学生入住的管理,包括学生入住的申请,查询是否存在该学生,查询 是否有空余的宿舍以及宿舍的分配3.2.2、分 E-R 图3.2.3、说明可以通过这个系统来解决学生入住的申请和分配等各种问题3.3、外出登记子系统331、子系统描述主要是学生外出的管理问题,包括学生外出的申请,外出的审核,外出的等级等为题。3.3.2、分 E-R 图3.3.3、说明可以通过这个系统解决学生外出的登记的各种问题。3.4、调整宿舍子系统3.4.1、子系统描述主要是学生宿舍的
8、调整,宿舍表的更新问题。3.4.2、分 E-R 图3.4.3、说明可以通过这个系统解决学生宿舍的调整问题,包括宿舍的申请调整,调整原因的判断以及调整后宿舍表的更新问题。3.5、宿舍智能分配子系统3.5.1、子系统描述主要是学生宿舍的分配问题。3.5.2、分 E-R 图3.5.3、说明可以通过这个子系统来分配学生的宿舍,包括按学院分配以及按年级分配3.6、信息查询子系统3.6.1、子系统描述主要是查询学生宿舍的问题。3.6.2、分 E-R 图3.6.3、说明可以通过子系统来查询学生的宿舍包括按公寓查询以及按学生名字查询。3.7、总体E-R图4、逻辑结构设计4.1、关系数据模式4.1.1、 学生信
9、息(stu_info )字段描述数据类型数据长NULLPrimaryk约束度eyStu_num学号IntNYn ame姓名varchar12NNsex性别varchar4NN男/女age年龄intNN0-99fac所在学院varchar50NNclass所在班级varchar50NNcelph one电话varchar16NNEn try_date入学日期dateNN4.1.2、宿舍信息(dormnfo)字段描述数据类型数据长度NULLPrimaryk约束eydorm_ num宿舍编号intNYflo所在楼层intNN0-20Bad_amou nt床位数IntNN<=4Avi_bad可用
10、床位数IntYN<=4uni t_price单价floatNN4.1.3、出入信息(inout_info)字段描述数据类型数据长度NULLPrimaryk ey约束stu_ num学号intNforeig nkeydorm_ num所住宿舍intNforeig nkeyleft_time离开时间DatetimeNNback_time回来时间DatetimeNNreas on离开原因varchar50NNover_tim e是否晚归varchar2NN是/否4.1.4、入住信息(staynfo)字段描述数据类型数据长度NULLPrimaryk ey约束dorm_ num宿舍编号intNfo
11、reig nkeystu_ num学号intNforeig nkeyHave_i n已住人数intNN<=4in_date入住日期dateNN4.1.5、调整信息字段描述数据类型数据长度NULLPrimaryk ey约束stu_ num学号intNYsrc原宿舍intNNdst调后宿舍intNNch_date调整日期dateNNch_reaso调整原因varchar50NNn4.2视图的设计4.2.1宿舍信息表视图创建查看宿舍信息表的视图,其中应该包含宿舍的所有信息。并且应该按可用床 位数递减create view view dormASSELECTtop 100 dorm_num, f
12、lo , bad_amount , unit_price , avi_badFROMiormnfo order by avi_bad desc创建按宿舍号查看住宿信息的视图,其中应包含住宿登记时的所有信息,并且按照宿舍号递减排列create view view_stay_bydormASSELECTtop 100 dorm_num stu_num, haven, in_dateFROM stay_info order by dorm_numdesc创建按学号查看住宿信息的视图,其中应包含住宿登记时的所有信息,并且按照宿舍号递减排列create view view_stay_bystuASSEL
13、ECTtop 100 dorm_num stu_num, have_in, in_dateFROM stay_info order by stu_num desc创建查看出入信息的视图,其中应包含出入登记时的所有信息,并且按照离开时间递减排列create view view_io_infoasSELECTtop 100stu_num, dorm_num left_time , back_time , reason,over_timeFROMdbo. inout_infoorder by left_time5、数据库物理设计与实施5.1、数据库应用的硬件、软件环境介绍电脑配置为AMDAthlon
14、(速龙)II X2 260双核 处理器,2G内存,WindowsXP专业版32位SP3 ( DirectX 9.0c)操作系统,安装mysql数据库服务做测试。5.2、物理结构设计考虑到索引能加快查询的速度,所以在需要经常进行查询的列创建索引。其中学生信息的学号、宿舍信息的宿舍编号、入住信息中学生的学号和宿舍 的编号,这几个列都需要创建索引。由于前两项已经是主键,所以无需额外创建 索引。现在为后两项创建索引。5.3、索引的设计为入住信息中学生的学号和宿舍的编号创建索引:create unique index 入 住信息 中学生 的学号 ix_stay_infolonstaynfo (stu_n
15、um)create index 宿舍的编号 ix_stay_info2on stay_info (dorm_num5.4、建立数据库首先创建名为sdms的学生宿舍管理数据库,create database sdms.5.4.1、创建宿舍信息表use sdmscreate table dormnfo (dorm_numint not null primary key,flo int not null,bad_amount int not null ,avi_bad int null ,unit_pricefloat not null)并且创建约束,使床位数和可用床位数不能大于4个,因为一个宿舍最
16、多能住四个人,并且楼层数在0-20之间。alter table dormnfo add constraint ck_bad check(bad_amoun<=4)alter table dorm_info add constraint ck_avi check( avi_bad <=4)alter table dormnfo add constraint ck_flo check( flo >=0 and flo <=20)542、创建学生信息表create table stunfo (stu_num int not null primary key,namevarch
17、ar(12) not null,sex varchar(4) not null ,age int not n ull,fac varchar(50) not null,class varchar(50) not null,celphone varchar(16)notnull,entry_date date not null)创建约束,性别只能是男或女,并且年龄只能在0-99之间alter table stu_info add constraint ch_sex check(sex in('男','女')ALTER TABLE stu_infoADD const
18、raint ck_age check(age>=0 andage<=99)543、创建出人登记信息表create table inout_info (stu_num int not null references stu_info (stu_num),dorm_numint not null references dormnfo (dorm_num , left_time datetime not null,back_time datetime not null,reason varchar (50) not null,over_time varchar (2) not null)
19、创建约束,是否晚归字段这能选择是或者否。alter table inout_info add c on stra intck_ot check( over_time in ('是','否')544、创建入住信息登记表create table stay_info ( dorm_numint not null references dormnfo (dorm_numstu_num int not null references stu_info (stu_num).haven int not nuII,in_date date)创建约束,已住人数不能超过 4个.al
20、ter table stay_infoadd constraintck_in check( have_in v=4)545、创建宿舍调整登记表create table change_info (stu_num int not null primary key,src int not nuII,dst int not nuII,ch_date date not nuII,ch_reason varchar (50) not null5.5、加载测试数据5.5.1、加载住宿信息创建一个存储过程用于录入住宿信息。USEsdmsGOSETANSI_NULLSONGOSET QUOTED_IDENTIF
21、IERNGOCREAT田ROCEDURdbo . insert_stay_infodorm_nunint , stu_numint , have_in intASBEGINSETNOCOUNONin sert in to stay_i nfo values (dorm _n unstu_ numhave_in GETDATE)END其中包括要住宿的宿舍号,要住宿的学生学号,该宿舍应经住了多少人。如图所示:单击确定后数据成功的录入到数据库的住宿信息表中,如图:学号为1104402302的学号已经插入到住宿信息表中。5.5.2、记载学生信息创建一个存储过程用于录入学生信息。USEsdmsGOSET
22、ANSI_NULLSONGOSET QUOTED_IDENTIFIERNGOCREATEPROCEDURdbo . insert_stunfostu_numint , namvarchar (12), sexvarchar (4), fac varchar (50), classvarchar (50), celphone varchar (16) , ageintSETNOCOUNONin sert in to stunfovalues (stu_numnamesexfac class, celphone GETDATE agpEND其中包括要住宿的学号、姓名、性别、所在学院、班级、电话、年
23、龄。如图所示:单击确定后数据成功的录入到数据库的学生信息表中,如图:学号为1104402304的学生已经成功录入到学生信息表中。5.5.3、加载宿舍信息创建一个存储过程用于录入宿舍信息。SETANSI_NULLSONGOSET QUOTED_IDENTIFIERNGOCREAT EPROCEDURE5ert_dormnfodorm_nurint , flo int , bad_amountnt , unit_price float , avi_bad intBEGINSETNOCOUNONin sert in to dor mnfovalues (dorm_nunflo, bad_amounu
24、nit_price , avi_bac)ENDGO其中包括要住宿的宿舍号、所在楼层、床位位数、单价、空余床位。如图所示:击确定后数据成功的录入到数据库的宿舍信息表中,如图:SQL6数据操作与实现根据需求中给出的数据处理要求,设计访问数据库的具体要求,并用语言加以实现。运行SQL语句进行测试。6.1、数据查询操作创建存储过程view_dorm_bydrom,实现按公寓查找宿舍的住宿信息。CREATEPROCEDUFVfew_dorm_bydromdorm_nunt /定义变量用于等待用户输入宿舍号SETNOCOUNONSELECT* from dormnfo where dorm_nur=dor
25、m_num/ 查询出与输入宿舍号相符的结果END结果如图:单击确定后:创建存储过程view_dorm_bystu,实现按学号查询学生的住宿信息CREATEPROCEDUFVfew_dorm_bystustu_ numintASBEGINSETNOCOUNONSELECT* from stay_info where stu_num=stu_numEND执行存储过程结果如图所示:单击“确定”,显示出学生在哪个宿舍住,该宿舍住着几个人,什么时候入6.2、数据更新操作宿舍调整登记。创建一个存储过程用于登记个别学生调整宿舍的记录。同时跟新原来的住宿信息表,使得调整后学生的宿舍信息表能同步进行。这里避免创
26、建触发器的繁杂,只使用了更新的语句。CREAT 田ROCEDUREa nge_dormstu_numint , dst_dorm int , reasonvarchar (50)ASBEGINSETNOCOUNONdeclare cur1 cursor forSELECTdorm_numfrom stay_info where stu_num=stu_num- 查询需要调整的人员的原来住的宿舍open cur1declare src int -声明游标以获取查询结果fetch cur1 into srcinsert into change_info (stu_num, src , dst, c
27、h_date, ch_reason)values (stu_numsrc dst_dorm GETDATE reasor)update staynfo set dorm_nur=dst_dorm where stu_num=stu_num-将调整的信息插入到调整登记信息表中close cur1END执行存储过程如下:需要登记的信息成功录入到调整信息表中原住宿信息表数据。调整宿舍后:6.3、数据维护操作631同步更新触发器是系统使用过程中,需要使用一个触发器来同步信息。例如当有学生要住宿时,该宿舍已住人数要增加1,而宿舍信息中的相应空余床位数要减 1。所以在住宿 登记表中使用以下触发器。SETA
28、NSI_NULLSONSET QUOTED IDENTIFIERNGOCREATETRIGGERrilONstay_i nfoAFTERINSERTASBEGINSETNOCOUNONdeclare dorm_nunint , have_in intdeclare cur2 cursor forselect dorm_num,have_in from stay_infoopen cur2fetch cur2while (FETCH_STATU®beg infetch next from cur2 into dorm_nu,nhave_inupdate stay_infoset hav
29、e_in =(have_in+1) wheredorm_nun=dorm_num - 更新相应宿舍的已住人数,增加 1.update dormnfo set avi_bad =( select avi_bad from dormnfowhere dorm_nun=dorm_nu)m1) where dorm_nun=dorm_num- 更新宿舍信息表中的可用床位数(空余床位数)endclose cur2ENDGO执行登记住宿信息表的存储过程插入前:插入后:632、按学院分配宿舍存储过程创建一个存储过程,用于按学院分配宿舍。使得能按同学院的学生能尽量的在同 一宿舍住。USEsdmsGOSET ANSI NULLSONGOSET QUOTED_IDENTIFIERNGOCREATEPROCEDUFRBbo . allowdorm_byfacfac varchar (20)ASBEGINdeclare offset int , bad_amountint , sumintset offset =1set bad_amour=t1set suff( select distinet (stu_num) from s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 呼叫中心员工心理健康促进考核试卷
- 泡沫塑料的耐黄变性能考核试卷
- 珠海三中高一下学期期中考试文科化学试题
- 苏州工艺美术职业技术学院《中学数学教学设计与案例研究》2023-2024学年第二学期期末试卷
- 四川省泸县一中2025年高三4月综合练习(一模)化学试题试卷含解析
- 天津市蓟州区2024-2025学年中考物理试题原创模拟卷(四)含解析
- 沈阳化工大学《医学发育生物学》2023-2024学年第二学期期末试卷
- 山东省德州市夏津一中2025届高三仿真模拟(打靶卷)英语试题试卷含解析
- 山东省临沂临沭县联考2025届学术联盟初三教学质量检测试题考试(二)数学试题试卷含解析
- 吉林省白城市洮北区第一中学2025届高三第一次调研考试英语试题试卷含解析
- 《功能性食品开发与应用》课件-维持血糖健康水平功能食品的开发与应用
- 12G614-1 砌体填充墙结构构造
- 2024年乡村振兴(产业、文化、生态)等实施战略知识考试题库与答案
- Q195L板坯工艺方案
- 江苏省园林绿化工程施工测量标准
- 14-10 投资项目敏感性分析的方法
- 《初中七年级期中考试家长会》课件模板(五套)
- 学术规范和论文写作-教学大纲
- 工笔花鸟学习心得范文
- DL T 5745-2016 电力建设工程工程量清单计价规范
- 初中生机器人课程课件
评论
0/150
提交评论