宿舍管理系统参考模板.doc
职业技能训练报告题目 组长姓名 学号 专业 13级计算机应用技术 班级 班 指导教师 张晖 开课学期 2015 至2016 学年 第 一 学期上课时间 2015年 9 月 7日 至 2015 年 1 月 9 日 各阶段打分情况表由组长填写小组合作是 ( ) 否( )小组成员XXX、XXX、XXX、XXX1 组长给组员打分:(要求:1-6,6-8,8-9,9-10。四个档次,必须每个档次一个人。组长要写出每个组员在每个阶段的工作情况以和打分!)第一阶段:请写出自己的内容,不要抄模板的内容。XXX: XXX同学在这段时间积极和组员讨论项目问题,从与组员讨论做什么项目,到做这个项目有什么要求,如:分析宿舍管理系统需要什么功能等。并主动帮忙完成组织结构表的制作,参与业务流程图的部分修改和补充,配合组员讨论业务流程表中业务过程描述,表现很出色。XXX: XXX同学在这段时间表现刻苦,从与组员讨论做什么项目,到了解项目的基本要求后,能积极地收集材料,如:人员的宿舍的分配的情况、以和电费使用情况等。并参与业务流程表的制作以和业务流程图的部分修改,配合组员讨论业务流程表中的存储数据和业务过程描述,有良好的团体精神。XXX: XXX同学在这段时间表现良好,积极和组员讨论问题,如:这个项目会涉和到哪些功能,以和这些功能需要用到哪些信息(数据)等。并主动去了解宿舍安排的情况,电费缴费方式等等,了解到不少有用的资料,积极配合组员讨论,并在讨论时时常提出有很帮助的建议,表现相当不错。第二阶段:请写出自己的内容,不要抄模板的内容。XXX: XXX同学在这段时间积极和组员讨论ER图的排版和亲自设计排版样图,并主动帮忙完成ER图的制作,配合组员,积极讨论,表现很出色。XXX: XXX同学在这段时间表现刻苦,积极讨论,查阅了大量关于本宿舍管理系统相关的知识。并对ER图进行了部分修改。XXX: XXX同学在这段时间表现的十分认真,查阅了大量关于ER图的相关知识,如:本系统会涉和到哪些ER图知识,怎么排版怎么设计才能更加美观,以和这些需要用到哪些信息等。积极配合组员讨论ER图描述,表现相当不错。第三阶段:略第四阶段:略第五阶段:略小组成员最终评分:XXX:97分XXX:88分XXX:79分1、系统需求分析功能结构图系统需求分析功能说明以和原始数据序号功能名称功能描述原始数据数据列1基本信息1、 学生可以查询个人信息2、 管理员可以增删改学生的个人信息1、 学生基本信息(学号、姓名、性别、专业(年级、学院、专业、班级)、联系电话,入学日期、学年制)2、 学生宿舍分配情况(学号、宿舍编号、入住时间、离开时间、)3、 增加学生信息(宿舍分配信息+宿舍编号+缴费状态+增加日期)4、 修改学生信息(宿舍分配信息+宿舍编号+缴费状态+修改日期)5、 删除学生信息(宿舍分配信息+宿舍编号+缴费状态+删除日期)备注(删除毕业学生数据)学号、姓名、性别、年级、学院、专业、班级、联系电话、入学日期、学年制、宿舍编号、备注2宿舍人员安排1、 可以查询宿舍人员分配2、 宿舍人员调整(申请调整、数据修改)1、 学生宿舍分配(学号、宿舍编号)2、 申请人员的个人信息(学号、姓名、调整宿舍类型、目标宿舍编号、原宿舍编号、申请时间、审核结果、审核人员、审核时间)3、 宿舍内部信息(宿舍编号,学号,姓名,舍长,宿舍类型4人间与6人间,楼号,层数)宿舍编号、楼层数、学号、姓名、调整宿舍类型、目标宿舍编号3宿舍电费1、 每月一次抄表2、 缴费3、 欠费处理抄表:1、总用电量 2、抄表时间3、抄表人员编号 4、抄表人员姓名 5、上个月的度数 6、本月的度数缴费:1、电价(0.5元1度电)2、宿舍编号3、用电量(度) 4、应缴金额 5、缴费状态6、缴费时间欠费处理:1、宿舍编号2、缴费状态3、实际缴费时间 4、有无停电 5、应缴时间(备注:缴费时间每月1-5日,6号未缴费的宿舍给予停电处理)总用电量、抄表人员编号、抄表人员姓名、总用电量、电价、宿舍编号、用电量、应缴金额、缴费状态、缴费时间、有无停电4外来人员1、 登记外来人员个人信息2、 登记外来人员来访时间3、 外来人员访问对象信息和关系4、 查询来访者信息外来人员信息(1、来访人员姓名2、证件号3、联系方式4、来访时间5、访问对象宿舍号6、访问对象姓名7、双方关系8、离开时间)来访人员姓名、证件号、联系方式、来访时间、访问对象宿舍号、访问对象姓名、双方关系、离开时间系统需求分析功能说明以和规则说明序号功能或规则功能过程描述1学生基本信息管理管理员可以对学生的个人信息进行增删改任意操作,也可以查看学生个人信息,而学生则受限于权限,对个人信息只有只读功能,只允许查看,不允许增删改。2宿舍人员安排管理由管理员登记学生的宿舍人员分配情况,而学生可以通过系统查询学生的宿舍分配情况。当学生要换宿舍时,向管理员提出申请,告知其对宿舍的要求,管理员则查询到学生满意的宿舍供学生选择,最后管理员再对该学生调换宿舍进行记录,修改其人员安排。3宿舍电费管理电费实行一个月抄表一次制度,每月1日抄表人员进行各个宿舍抄表,并告知宿舍人员用电情况,要求在1-5号内缴费,如遇到缴费不够或未缴费,6号给予停电处理。4外来人管理有外来人员进行来访时,需对其身份进行确认,登记其个人信息,来访时间,来访的对象和其关系。在来访者离开时要对其离开时间进行记录。2概念模型设计3逻辑模型设计 1、访客实体集转换为 - 关系:访客(证件号,姓名,联系方式)2、学生实体集转换为 - 关系:学生(学号,姓名,性别,联系电话,入学日期,班级编号*)3、访问实体集转换为 -关系:访问(访问时间,离开时间,证件号*,学号*)4、班级实体集转换为 -关系:班级(班级编号,班级名称,年级,专业编号*)5、专业实体集转换为 -关系:专业(专业编号,专业名称,学年制,学员编号*)6、学院实体集转换为 -关系:学院(学院编号,学院名称)7、入住实体集转换为 -关系:入住(入住时间,离开时间,学号*,宿舍编号*)8、宿舍实体集转换为 -关系:宿舍(宿舍编号,楼号,层数,宿舍类型,可住人数,学号*)9、调整实体集转换为 -关系:调整(申请编号*,宿舍编号*,学号*)10、申请实体集转换为 -关系:申请(申请编号,申请时间,学号*,账号*,审核时间,审核编号,审核人员,审核结果,申请内容)11、管理员实体集转换为 -关系:管理员(账号,密码)12、编辑实体集转换为 -关系:编辑(增加时间,修改时间,删除时间,宿舍编号*,账号*)13、抄表情况实体集转换为 -关系:抄表情况(抄表编号,开始度数,结束度数,抄表日期,电价0.5元/度,宿舍编号*,账号*)14、缴费情况实体集转换为 -关系:缴费情况(缴费编号,缴费日期,缴费状态,缴费金额,有无停电,宿舍编号*,超标编号*,账号*,标准编号*)15、缴费标准实体集转换为 -关系:缴费标准(缴费开始日期,缴费结束日期,标准编号)4物理模型设计4.1、存储记录结构设计 (1)访客表列名数据类型长度约束证件号varchar20主键姓名varchar20NOT NULL联系方式varchar12NOT NULL check(联系方式 like 0-90-9)(2)、学生表列名数据类型长度约束学号Varchar15主键姓名varchar20NOT NULL性别char2NOT NULL ,check(性别=男 or 性别=女)联系电话varchar12入学日期smalldatetimeNOT NULL班级编号varchar20外键(3)、访问表列名数据类型长度约束访问时间datetimeNOT NULL离开时间datetimeNOT NULL证件号varchar20主键学号varchar20(4)、班级表列名数据类型长度约束班级编号varchar20主键班级名称varchar20NOT NULL年级Varchar4NOT NULL专业编号varchar10外键(5)、专业表列名数据类型长度约束专业编号varchar10主键专业名称varchar20NOT NULL学年制tinyintDEFAULT(4) check(this=3 or this=4)学院编号varchar10外键(6)、学院表列名数据类型长度约束学院编号varchar10主键学院名称varchar20NOT NULL(7)、入住表列名数据类型长度约束入住时间smalldatetime离开时间smalldatetime学号varchar15主键宿舍编号varchar10(8)、宿舍表列名数据类型长度约束宿舍编号varchar10主键楼号varchar10NOT NULL层数tinyintNOT NULL宿舍类型varchar10DEFAULT(1) 可住人数tinyintDEFAULT(0), check(this>=0 and this<=6) 学号varchar15外键(9)、调整表列名数据类型长度约束申请编号varchar20主键宿舍编号varchar10学号varchar15(10)、申请表列名数据类型长度约束申请编号varchar20主键申请时间smalldatetimeNOT NULL学号varchar15外键账号varchar20外键审核时间smalldatetime审核编号varchar20NOT NULL申请内容text申请结果Bit(11)、管理员表列名数据类型长度约束账号varchar20主键密码varchar20NOT NULL(12)、编辑表列名数据类型长度约束增加时间smalldatetime修改时间smalldatetime删除时间smalldatetime宿舍编号varchar10主键账号varchar20(13)、抄表情况列名数据类型长度约束抄表编号varchar20主键开始度数FloatNOT NULL结束度数floatNOT NULL抄表日期smalldatetimeNOT NULL电价floatNOT NULL宿舍编号varchar10外键账号varchar20外键(14)、缴费情况列名数据类型长度约束缴费编号varchar20主键缴费日期smalldatetimeNOT NULL缴费状态bitDEFAULT(0)缴费金额moneyNOT NULL有无停电bitDEFAULT(0)宿舍编号varchar10外键抄表编号varchar20外键账号varchar20外键标准编号varchar20外键(15)、缴费标准表列名数据类型长度约束标准编号varchar20主键缴费结束日期intNOT NULL缴费开始日期intNOT NULL4.2、为了提高在表中搜索元组的速度,在实际实现的时候应该基于键码建立索引是各表中建立索引的表项: 1、访客表(姓名)2、学生表(姓名)3、访问表(访问时间,离开时间)4、班级表(班级名称)5、专业表(专业名称)6、学院表(学院名称)7、入住表(入住时间,离开时间)8、宿舍表(可住人数)9、申请表(申请时间,学号,审核时间,审核人员)10、编辑表(修改时间)11、抄表情况表(电价)12、缴费情况表(缴费金额)4.3、查询 名称作用1查询(本年内)指定的学生(访问对象)的来访人员信息2查询指定学生现在是在哪个宿舍3查询出指定宿舍中有哪些学生,并显示学生的信息。4查询所有宿舍的剩余可住人数5查询管理员一个月内修改宿舍的信息(修改人的账号、修改时间,宿舍编号)6查询指定学生递交申请表的审核结果7查询还有哪些学生递交的申请表还未审核8查询指定学生(一年内)提交的申请表信息9查询(一年内)指定宿舍每月用电度数10查看指定宿舍可知道这个宿舍本月需要缴费多少金额的电费11查看指定宿舍可知道这个宿舍本月用了多少度电12查看“缴费情况表”可知道本月全校内有哪些宿舍没交电费13查询指定学生递交申请表的内容4.4、视图 视图名称作用学生视图快速显示学生信息(学号,姓名,性别,联系电话,班级名称,年纪,专业名称,学年制,学院名称,宿舍编号,宿舍类型,入住时间)访客访问记录视图快速显示访客信息(姓名、联系方式、访问时间、离开时间),被访问学生的信息(学号、姓名、宿舍编号)宿舍电费使用情况(学生)快速显示楼号、层数、宿舍编号、开始度数、结束度数、缴费状态、缴费金额、缴费日期管理员管理修改信息视图快速显示管理员账号、操作记录(修改时间)、楼号、层数、宿舍编号、宿舍类型、可住人数管理员审核申请视图快速显示申请学生的学号、姓名、班级、楼号、层数、宿舍编号、申请时间、审核结果、审核时间、审核人员宿舍用电情况快速显示楼号、宿舍编号、开始度数、结束度数、抄表日期、缴费状态、有无停电5.实现(数据库、数据表、索引、视图、查询、触发器、存储过程的脚本代码复制到此处。)(1)数据库 USE masterGOCREATE DATABASE Dormitory ON PRIMARY ( NAME = N'Dormitory', = N'D:DormitoryDormitory.mdf' , SIZE = 3072KB , MAXSIZE = UNLIMITED, = 1024KB ) LOG ON ( NAME = N'Dormitory_log', = N'D:DormitoryDormitory_log.ldf' , SIZE = 1024KB , MAXSIZE = 2048GB , = 10%) COLLATE Chinese_PRC_CI_ASGO(2) 数据表 create table 访客表证件号 varchar(20) constraint PK_证件号 primary key,姓名 varchar(20) not null,联系方式 varchar(12) not null ,constraint CK_联系方式check(联系方式 like '0-90-90-90-90-90-90-90-90-90-90-9')create table 学生表学号varchar(15) primary key,姓名varchar(20) not null,性别char(2) not null,联系电话varchar(12) ,入学日期smalldatetime not null,班级编号varchar(20) ,Constraint Fk_班级编号foreign key(班级编号) references 班级表(班级编号)create table 访问表访问时间 datetime not null,离开时间 datetime not null,证件号 varchar(20),学号 varchar(20) ,constraint PK_证件号_学号 primary key (证件号,学号)create table 班级表班级编号varchar(20) constraint PK_班级编号primary key,班级名称varchar(20) not null,年级varchar(4) not null,专业编号varchar(10),constraint FK_专业编号 foreign key(专业编号) references 专业表(专业编号)create table 专业表专业编号 varchar(10) constraint PK_专业编号primary key,专业名称 varchar(20) not null,学年制 tinyint default(4),学院编号 varchar(10), constraint CK_学年制check (学年制=3 or 学年制=4 ), constraint FK_学院编号 foreign key(学院编号) references 学院表(学院编号) create table 学院表学院编号varchar(10) constraint PK_学院编号primary key,学院名称varchar(20) not nullcreate table 入住表(入住时间smalldatetime ,离开时间smalldatetime ,学号varchar(15),宿舍编号varchar(10),constraint PK_学号_宿舍编号primary key(学号,宿舍编号)create table 宿舍表宿舍编号 varchar(10) constraint PK_宿舍编号编号 primary key,楼号 varchar(10) not null,层数 tinyint not null,宿舍类型 varchar(10) default(1),可住人数 tinyint default(0),学号 varchar(15),constraint CK_可住人数 check (可住人数>=0 and 可住人数<=6 ),constraint FK_学号 foreign key(学号) references 学生表(学号) create table 调整表申请编号varchar(20) , 宿舍编号varchar(10),学号varchar(15),constraint PK_申请编号_宿舍编号_学号 primary key(申请编号,宿舍编号,学号)create table 申请表申请编号 varchar(20) constraint PK_申请编号 primary key,申请时间 smalldatetime not null,学号 varchar(15) ,账号 varchar(20) ,审核时间 smalldatetime ,审核编号 varchar(20) not null,申请内容 text ,审核人员 varchar(20) not null,constraint FK_学号 foreign key(学号) references 学生表(学号) ,constraint FK_账号 foreign key(账号) references 管理员表(账号)create table 管理员表(账号varchar(20) constraint PK_账号primary key,密码varchar(20) not null)create table 编辑表增加时间 smalldatetime ,修改时间 smalldatetime ,删除时间 smalldatetime ,宿舍编号 varchar(10),账号 varchar(20),constraint PK_宿舍编号_账号 primary key (宿舍编号,账号)create table 抄表情况表抄表编号 varchar(20) primary key,开始度数 float not null,结束度数 float not null,抄表日期 smalldatetime not null,电价 float not null,宿舍编号 varchar(10),账号 varchar(20),constraint PK_宿舍编号 foreign key (宿舍编号) references 宿舍表(宿舍编号),constraint PK_账号 foreign key (账号) references 管理员表(账号)create table 缴费情况表缴费编号 varchar(20) primary key,缴费日期 smalldatetime not null,缴费状态 bit default(10),缴费金额 money not null,有无停电 bit default(0),宿舍编号 varchar(20),抄表编号 varchar(20),账号 varchar(20),constraint PK_宿舍编号 foreign key (宿舍编号) references 宿舍表(宿舍编号),constraint PK_抄表编号 foreign key (抄表编号) references 抄表情况表(抄表编),constraint PK_账号 foreign key (账号) references 管理员表(账号)create table 缴费标准表标准编号 varchar(20) primary key,缴费结束日期 init not null,缴费开始日期 int not null(3) 索引 create nonclustered index Index_姓名 on 访客表(姓名)create nonclustered index Index_姓名 on 学生表(姓名)create nonclustered index Index_访问时间 on 访问表(访问时间)create nonclustered index Index_离开时间 on 访问表(离开时间)create nonclustered index Index_班级名称 on 班级表(班级名称)create nonclustered index Index_专业名称 on 专业表(专业名称)create nonclustered index Index_学院名称 on 学院表(学院名称)create nonclustered index Index_入住时间 on 入住表(入住时间)create nonclustered index Index_离开时间 on 入住表(离开时间)create nonclustered index Index_可住人数 on 宿舍表(可住人数)create nonclustered index Index_申请时间 on 申请表(申请时间)create nonclustered index Index_学号 on 申请表(学号)create nonclustered index Index_审核时间 on 申请表(审核时间)create nonclustered index Index_审核人员 on 申请表(审核人员)create nonclustered index Index_修改时间 on 编辑表(修改时间)create nonclustered index Index_电价 on 抄表情况表(电价)create nonclustered index Index_缴费金额 on 缴费情况表(缴费金额)(4) 查询 查询1use DormitorygoSelect 访客姓名,联系方式,访问时间,离开时间,证件号,学生姓名,学号,联系电话from 访客访问记录Where 学号='1201001001' and CONVERT(int,year(访问时间)=convert(int,year(getdate()查询2use DormitorygoSelect 学号,姓名,宿舍编号,楼号,层数,宿舍编号,宿舍类型From 学生视图Where 学号='1201001001'查询3use DormitorygoSelect 学号,姓名,性别,联系电话,班级名称,楼号,层数,宿舍编号,班级编号From 学生视图Where 宿舍编号='01#201'查询4Select 宿舍编号,可住人数From 宿舍表查询5use DormitorygoSelect 账号,修改时间,宿舍编号,增加时间,删除时间From 管理员管理修改信息Where DATEDIFF(day,修改时间,convert(varchar(10),getdate(),102) between 0 and 30查询6use DormitorygoSelect 审核结果,学号,姓名,宿舍编号,申请时间,审核时间,审核结果,账号,申请内容From 管理员审核申请视图Where 学号='1201002003'查询7use DormitorygoSelect 审核结果,申请编号,审核结果,学号,姓名,宿舍编号From 管理员审核申请视图Where 学号='1201002003' and 审核结果=0查询8use DormitorygoSelect 申请编号,申请时间,申请内容,宿舍编号,学号,姓名from 管理员审核申请视图Where 学号='1201002003' and CONVERT(int,year(申请时间)=convert(int,year(getdate()查询9use Dormitorygoselect 开始度数,结束度数 ,(结束度数-开始度数) as 本月用电度数 ,楼号,层数,宿舍编号,抄表日期From 宿舍用电情况Where 宿舍编号='02#201' and CONVERT(int,year(抄表日期)=convert(int,year(getdate()查询10use DormitorygoSelect 宿舍编号,(结束度数-开始度数)*电价 as 应缴金额 ,month(抄表日期) as 抄表月份,楼号,宿舍编号,层数,缴费金额From 宿舍电费使用情况Where 宿舍电费使用情况.宿舍编号='02#201' and convert(int,month(宿舍电费使用情况.抄表日期)=convert(int,month(getdate()查询11use DormitorygoSelect 宿舍编号,(结束度数-开始度数) as 用电度数,month(抄表日期) as 抄表日期,楼号,层数From 宿舍电费使用情况Where 宿舍编号='01#202' and convert(int,month(抄表日期)=convert(int,month(getdate()查询12use DormitorygoSelect 宿舍编号,楼号,层数,缴费状态,缴费金额,有无停电from 宿舍电费使用情况Where DATEDIFF(day,getdate(),缴费日期)>0 and 缴费状态+查询13use DormitorygoSelect 学号,姓名,申请时间,申请内容from 管理员审核申请视图Where 学号='1201001001'(5)视图 1use Dormitorygocreate view 学生视图asSelect distinct xs.姓名,xs.学号,xs.性别,xs.联系电话,bj.班级名称,bj.年级,zy.专业名称,zy.学年制,xy.学院名称,ss.宿舍编号,ss.宿舍类型,rz.入住时间,bj.班级编号,楼号,层数from 学生表 as xs,入住表 as rz,宿舍表 as ss,班级表 as bj,专业表 as zy,学院表 as xy where xs.学号=rz.学号 and xs.班级编号=bj.班级编号 and rz.宿舍编号=ss.宿舍编号 and bj.专业编号=zy.专业编号 and zy.学院编号=xy.学院编号2use Dormitorygocreate view 访客访问记录asselect distinct fk.姓名 as 访客姓名,fk.联系方式,fw.访问时间,fw.离开时间,xs.学号,ss.宿舍编号,xs.姓名 as 学生姓名,xs.联系电话,xs.班级编号,fk.证件号From 学生表 as xs,访客表 as fk,访问表 as fw,宿舍表 as sswherexs.学号=fw.学号 andfk.证件号=fw.证件号 andfw.学号=ss.学号3use Dormitorygocreate view 宿舍电费使用情况asSelect distinct 楼号,层数,ss.宿舍编号,开始度数,结束度数,缴费状态,缴费金额,缴费日期,抄表日期,有无停电,电价from 宿舍表 as ss,抄表情况表 as cbqk,缴费情况表 as jfqkwheress.宿舍编号=cbqk.宿舍编号 andss.宿舍编号=jfqk.宿舍编号 andjfqk.抄表编号=cbqk.抄表编号4use Dormitorygocreate view 管理员管理修改信息asSelect distinct gly.账号,修改时间,楼号,层数,ss.宿舍编号,宿舍类型,可住人数,增加时间,删除时间from 管理员表 gly,宿舍表 ss,编辑表 bjwheregly.账号=bj.账号 andss.宿舍编号=bj.宿舍编号5use Dormitorygocreate view 管理员审核申请视图asSelect distinct xs.学号,姓名,xs.班级编号,楼号,层数,ss.宿舍编号,sq.申请时间,sq.审核结果,sq.审核时间,sq.申请内容,sq.账号,xs.联系电话,sq.申请编号from学生表 xs,宿舍表 ss,申请表 sq,调整表 tzwherexs.学号=ss.学号 andxs.学号=sq.学号 andxs.学号=tz.学号 and sq.申请编号=tz.申请编号6use Dormitorygocreate view 宿舍用电情况asSelect distinct 楼号,ss.宿舍编号,开始度数,结束度数,抄表日期,缴费状态,有无停电,层数 from宿舍表 ss,抄表情况表 cbqk,缴费情况表 jfqkwheress.宿舍编号=cbqk.宿舍编号 andss.宿舍编号=jfqk.宿舍编号 andcbqk.抄表编号=jfqk.抄表编号 6.数据库数据(将插入到表中的插入数据脚本源代码,复制到此处。) (1)访客表insert 访客表 values('3513511','张三','16584987451')insert 访客表 values('3533541','李四','18546875654')insert 访客表 values('3542684','王五','16958421654')insert 访客表 values('3531542','赵六','')insert 访客表 values('3543201','李七','')insert 访客表 values('3531401','石八','')insert 访客表 values('3503566','陈九','')(2) 学生表01电科学院 insert 学生表 values('1201001001','路飞','男','18549845752',2012-09-01 ,'0001')insert 学生表 values('1201001002','索隆','男','',2012-09-01 ,'0001')insert 学生表 values('1201001003','娜美','女','',2012-09-01 ,'0001')insert 学生表 values('1201001004','罗杰','男','',2012-09-01 ,'0001')insert 学生表 values('1201001005','鸣人','男','',2012-09-01 ,'0001')insert 学生表 values('1201001006','佐助','男','14865975130',2012-09-01 ,'0002')insert 学