收藏 分销(赏)

小区物业管理系统内附代码.docx

上传人:xrp****65 文档编号:6026647 上传时间:2024-11-25 格式:DOCX 页数:29 大小:29.92KB 下载积分:10 金币
下载 相关 举报
小区物业管理系统内附代码.docx_第1页
第1页 / 共29页
小区物业管理系统内附代码.docx_第2页
第2页 / 共29页


点击查看更多>>
资源描述
苏 州 市 职 业 大 学 实习(实训)报告 名称  SQLServer数据库项目实训01 2013年 7月 1日至 2013年7月5日共1 周 学院(部) 计算机工程学院 班 级 姓 名 学院(部)负责人 系 主 任 指 导 教 师 目 录 目 录 I 1. 课程设计的目的与要求 1 2. 题目说明 1 3. 需求分析和数据库设计 1 3.1信息收集和需求分析 1 3.2概念设计——E-R图 2 3.3逻辑设计 4 4. 表和索引的创建及数据完整性 6 5. 数据库结构的实现 7 6. 遇到的问题和解决方法 9 7. 课程设计总结 11 8. 参考文献 11 1. 课程设计的目的与要求 数据库基础与应用课程设计是计算机专业集中实践性环节之一,是学习完《数据库系统概论》课程后进行的一次全面的综合练习。其目的在于加深对数据库基础理论和基本知识的理解,掌握使用VB、C、C++、PowerBuilder等进行数据库开发的全过程,提高运用数据库解决实际问题的能力。 用VB、PB、C++等或其它软件工具制作一个小型管理系统。所设计的小型管理系统应包含查询、插入、删除、修改、报表、统计、用户权限管理等基本功能,界面采用菜单的形式。根据课程设计1周时间的安排选择适当大小的设计课题。根据题目的基本需求,给出概念模型与逻辑模型,编写程序,并写出详细的设计说明书。 2. 题目说明 本案例为一个小区物业管理系统主要包括:对小区所有房屋资料的录入、增加、删除、查询等多个功能的实现,是基于在这些小区的房屋资源对小区进行管理;对小区内住户的详细资料的管理,包括增加、删除、修改、查询等功能的实现,这些也是一个小区的基本资料,毕竟物业管理最后是针对小区的所有住户而言的。在具有了所有的基本资料信息后,需要实现实质性的物业管理。主要的管理物业包括:物业设备管理仪表(水、电表)数据管理、收费管理、住户投诉管理、住户报修管理。以及上述物业信息的统计报表,这样可以便于物业公司对小区进行全面的了解和管理。 本次课程设计将按照图中数据库生命周期的各个阶段,逐步完成整个系统的设计。 3. 需求分析和数据库设计 3.1信息收集和需求分析 小区物业管理系统的系统结构分为个部分,如图1-2所示。 系统功能:用户注册、用户管理、修改密码、退出系统。 楼盘管理功能:楼盘管理、添加修改楼盘信息。 住户管理功能:住户管理、添加修改住户信息。 报修管理功能:报修管理、添加删除报修信息。 投诉管理功能:投诉管理。 住 户 管 理 楼 盘 管 理 报 修 管 理 投 诉 管 理 住 户 管 理 住 房 编 辑 楼 盘 管 理 楼 盘 编 辑 报 修 管 理 报 修 编 辑 投 诉 管 理 投 诉 编 辑 小区物业管理系统 小区物业管理系统 图1-2 物业管理系统工作流程 3.2概念设计——E-R图 本系统的实体有:小区住户基本信息实体、报修信息实体、投诉信息实体、楼盘信息实体。各个实体具体的描述E-R图如图1-3到图1-7所示。 住户信息 业主编号 姓名 性别 电话 名牌号 面积 身份证 图1-3 住户基本信息实体属性图 楼盘信息 楼盘编号 楼盘名称 楼层数 户型 面积 地址 图1-4楼盘信息实体属性图 报修信息 报修事项编号 报修名称 业主编号 维修状态 日期 受理人 图1-5 住户报修基本信息实体属性图 投诉信息 投诉事项编号 投诉名称 业主编号 解决状态 日期 受理人 图1-6 住户投诉基本信息实体属性图 住户信息 提交 申请 报修信息 投诉信息 n n 1 m m n 楼盘信息 拥有 图1-7 实体之间关系E—R图 3.3逻辑设计 现在需要将上面的数据库概念结构转化为SQL Server 2000 数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。 小区物业管理系统数据库中各个表格的设计结果如下面的几个表所示。每个表表示在数据库中的一个数据表。 表1-1 用户表(user1表) 字段名 数据类型 可否为空 业主编号(主键) Int NOT NULL 楼盘编号 Int NOT NULL 表1-2 住户基本信息表 字段名 数据类型 可否为空 业主编号(主键) Int NOT NULL 姓名 Char(20) NOT NULL 性别 Char(20) NOT NULL 电话 Int NOT NULL 门牌号 Int unique NOT NULL 面积 Int NOT NULL 身份证 Char(20) NOT NULL 表1-3 楼盘基本信息表 字段名 数据类型 可否为空 楼盘编号(主键) Int NOT NULL 楼盘名称 Char(20) NOT NULL 楼层数 Int NOT NULL 面积 Int NOT NULL 户型 Char(20) NOT NULL 地址 Char(20) NOT NULL 表1-4 报修处理表 字段名 数据类型 可否为空 保修事项编号(主键) Int NOT NULL 业主编号 Int NOT NULL 报修名称 Char(20) NOT NULL 维修状态 Char(20) NOT NULL 日期 Datetime NOT NULL 受理人 Char(20) NOT NULL 表1-5 投诉管理表 字段名 数据类型 可否为空 投诉事项编号(主键) Int NOT NULL 业主编号 Int NOT NULL 投诉名称 Char(20) NOT NULL 解决状态 Char(20) NOT NULL 受理人 Char(20) NOT NULL 日期 Detetime NOT NULL 4. 表和索引的创建及数据完整性 4.1 建立数据库 create database 物业管理系统 4.2 建立数据表 用户表 Create table 用户表 ( 业主编号 int primary key not nul, 楼盘编号 int not nul, ); 住户信息表 Create table 住户信息表 (业主编号 int primary key not null, 姓名 char(20) not null, 性别 char(20) check(性别 in('男','女')), 电话 int not null, 门牌号 int unique not null , 面积 int not null, 身份证 char(20) unique not null ); 楼盘信息表 Create table 楼盘信息表 (楼盘编号 int primary key not null, 楼盘名称 char(20) not null, 楼层数 int not null, 面积 int not null, 户型 char(20) not null , 地址 char(20) not null ); 报修信息表 Create table 报修信息表 (报修事项编号 int primary key not null, 业主编号 int not null, 报修名称 char(20) not null, 维修状态 char(20) default 'not', 日期 datetime default getdate() , 受理人 char(20) not null, foreign key (业主编号) references 住户信息表(业主编号) ); 投诉信息表 Create table 投诉信息表 (投诉事项编号 int primary key not null, 业主编号 int not null, 投诉名称 char(20) not null, 解决状态 char(20) default 'not', 日期 datetime default getdate(), 受理人 char(20) not null, foreign key (业主编号) references 住户信息表(业主编号) ); 5. 数据库结构的实现 5.1 创建数据表 (1)创建住户表 create table 住户信息表 (业主编号 int primary key not null, 姓名 char(20) not null, 性别 char(20) check(性别 in('男','女')), 电话 int not null, 门牌号 int unique not null , 面积 int not null, 身份证 char(20) unique not null ) (2)创建楼盘信息表 create table 楼盘信息表 (楼盘编号 int primary key not null, 楼盘名称 char(20) not null, 楼层数 int not null, 面积 int not null, 户型 char(20) not null , 地址 char(20) not null ) (3)创建报修表 Create table 报修信息表 (报修事项编号 int primary key not null, 业主编号 int not null, 报修名称 char(20) not null, 维修状态 char(20) default 'not', 日期 datetime default getdate() , 受理人 char(20) not null, ); (4) 创建投诉表 Create table 投诉信息表 (投诉事项编号 int primary key not null, 业主编号 int not null, 投诉名称 char(20) not null, 解决状态 char(20) default 'not', 日期 datetime default getdate(), 受理人 char(20) not null, ); 5.2 建立视图 (1)创建业主信息视图 create view 业主信息视图 as select 姓名 业主姓名,楼盘名称,门牌号,性别,电话,住户信息表.面积,身份证 from 住户信息表,楼盘信息表,拥有信息表 where 楼盘信息表.楼盘编号 = 拥有信息表.楼盘编号 and 住户信息表.业主编号 = 拥有信息表.业主编号 (2) 创建未维修事项信息视图 create view 未维修事项信息视图 as select 报修名称,姓名 报修人,楼盘名称,门牌号,电话,日期 保修日期,受理人 from 报修信息表,住户信息表,楼盘信息表,拥有信息表 where 维修状态 != 'ok' and 楼盘信息表.楼盘编号 = 拥有信息表.楼盘编号 and 住户信息表.业主编号 = 拥有信息表.业主编号 and 报修信息表.业主编号 = 住户信息表.业主编号 (3)创建报修视图,只显示ID,Name,日期和维修否信息 create view 未解决投诉信息视图 as select 投诉名称,姓名 投诉人,楼盘名称,门牌号,电话,日期 保修日期,受理人 from 投诉信息表,住户信息表,楼盘信息表,拥有信息表 where 解决状态 != 'OK' and 楼盘信息表.楼盘编号 = 拥有信息表.楼盘编号 and 住户信息表.业主编号 = 拥有信息表.业主编号 and 投诉信息表.业主编号 = 住户信息表.业主编号 5.3 创建触发器 住户信息表的级联更新删除 create trigger tri_Delete_Update on 住户信息表 instead of update ,delete as begin declare @inset char(6),@delet char(6) select @inset=业主编号 from inserted select @delet=业主编号 from deleted if (update(业主编号)) begin 5.4 创建存储过程 (1)查询住户的信息存储过程 create proc 查询住户信息 as select * from 住户信息表 (2)创建添加报修信息记录的存储过程 create proc 添加报修信息 @报修事项编号 char(20), @业主编号 char(20), @报修名称 char(20), @受理人 char(20) as begin insert into 报修信息表(报修事项编号,业主编号,报修名称,受理人) values(@报修事项编号,@业主编号,@报修名称,@受理人) end 6. 遇到的问题和解决方法 (1) 问题:T-SQL语句运行成功,切换到原有的表记录窗口没有变化 解决:原有的表记录窗口只有被刷新才能显示当前记录,方法是选择主菜单【查询】-【执行】命令或单击工具栏的【执行】按钮。 (2) 问题:对表设置数据完整性后,没有马上起作用 解决:数据完整性设置的调整和表结构修改后一样,在保存后才能起作用 7. 课程设计总结 至此,小区物业管理系统设计与实现顺利完成。由于当今的物业管理部门还不能有一个很统一的模式化,所以本系统仅考虑到一般小区所需要的物业管理的基本和主要的几项功能。本系统的开发应用能使小区物业管理实现信息化,查询方便、可靠性高、信息存储量大。 本系统在开发过程中,在固定的物业管理要求的模式下还添加了一些人性化的,个人的构思和创意。 本套小区物业管理系统符合基本需求功能,易于操作,应该可以在简单化模式下的小区内应用,存在要改进的地方再以后会进一步完善。 8. 参考文献 [1] 高云,崔艳春.《SQL Server 2008数据库技术实用教程》.清华大学出版社 [2] 《数据库原理及应用》 钱雪忠主编 北京邮电大学出版社 [3] 《SQL server 2000数据仓库与Analysis Services》 Bain T著 中国电力出版社 create database 物业管理系统 use 物业管理系统 --创建 楼盘信息表 create table 楼盘信息表 ( 楼盘编号 int primary key not null, 楼盘名称 char(20) not null, 楼层数 int not null, 面积 int not null, 户型 char(20) not null , 地址 char(20) not null ) go --创建表 住户信息表 create table 住户信息表 ( 业主编号 int primary key not null, 姓名 char(20) not null, 性别 char(20) check(性别 in('男','女')), 电话 int not null, 门牌号 int unique not null , 面积 int not null, 身份证 char(20) unique not null ) go --创建投诉信息表 create table 投诉信息表 ( 投诉事项编号 int primary key not null, 业主编号 int not null, 投诉名称 char(20) not null, 解决状态 char(20) default 'not', 日期 datetime default getdate(), 受理人 char(20) not null, foreign key (业主编号) references 住户信息表(业主编号) ) go --创建表 报修信息表 create table 报修信息表 ( 报修事项编号 int primary key not null, 业主编号 int not null, 报修名称 char(20) not null, 维修状态 char(20) default 'not', 日期 datetime default getdate() , 受理人 char(20) not null, foreign key (业主编号) references 住户信息表(业主编号) ) go --创建拥有信息表 create table 拥有信息表 ( 业主编号 int primary key not null, 楼盘编号 int not null ) go --楼盘信息的添加 insert into 楼盘信息表 values(1,'海天',5,120,'三室一厅','中山路号') insert into 楼盘信息表 values(2,'柠檬夏天',10,120,'四室一厅','中山路号') insert into 楼盘信息表 values(3,'指尖刹那',9,300,'四室一厅','中山路号') --住户信息的添加 insert into 住户信息表 values(11,'林达','女','15980123','520','120','3505251992') insert into 住户信息表 values(12,'谢可','女','15980147','521','100','3505251993') insert into 住户信息表 values(13,'谢华','男','15980520','522','180','3505251994') insert into 住户信息表 values(14,'张琳','男','15980369','523','250','3505251995') insert into 住户信息表 values(15,'仲夏','男','15980789','524','300','3505251996') --报修信息的添加 insert into 报修信息表(报修事项编号,业主编号,报修名称,受理人) values(10,15,'水管爆裂','王砖家') insert into 报修信息表(报修事项编号,业主编号,报修名称,受理人) values(11,14,'电线端口安装','王砖家') insert into 报修信息表(报修事项编号,业主编号,报修名称,受理人) values(12,13,'大门锁坏掉','王砖家') insert into 报修信息表(报修事项编号,业主编号,报修名称,受理人) values(13,12,'灯泡更换','王砖家') --投诉信息的添加 insert into 投诉信息表(投诉事项编号,业主编号,投诉名称,受理人) values(100,11,'墙壁裂痕','胡说') insert into 投诉信息表(投诉事项编号,业主编号,投诉名称,受理人) values(101,12,'停水','胡说') insert into 投诉信息表(投诉事项编号,业主编号,投诉名称,受理人) values(102,13,'周围太吵','胡说') insert into 投诉信息表(投诉事项编号,业主编号,投诉名称,受理人) values(103,14,'乱丢垃圾','胡说') --拥有信息表的添加 insert into 拥有信息表 values(11,1) insert into 拥有信息表 values(12,2) insert into 拥有信息表 values(13,2) insert into 拥有信息表 values(14,2) insert into 拥有信息表 values(15,3) --查询结果 select * from 楼盘信息表 select * from 住户信息表 select * from 报修信息表 select * from 投诉信息表 select * from 拥有信息表 --楼盘信息编辑 update 楼盘信息表 set 楼盘名称 = '彩虹之家' where 楼盘名称 = '海天' go --住户信息的编辑 update 住户信息表 set 电话 = '1314520' where 电话 = '15980123' go --业主信息视图:通过该视图可以得到住户信息,包含业主姓名,楼盘名称,门牌号,性别,电话,面积,身份证 create view 业主信息视图 as select 姓名 业主姓名,楼盘名称,门牌号,性别,电话,住户信息表.面积,身份证 from 住户信息表,楼盘信息表,拥有信息表 where 楼盘信息表.楼盘编号 = 拥有信息表.楼盘编号 and 住户信息表.业主编号 = 拥有信息表.业主编号 --未维修事项信息视图:报修名称,报修人,楼盘名称,门牌号,电话,保修日期,受理人。 create view 未维修事项信息视图 as select 报修名称,姓名 报修人,楼盘名称,门牌号,电话,日期 保修日期,受理人 from 报修信息表,住户信息表,楼盘信息表,拥有信息表 where 维修状态 != 'ok' and 楼盘信息表.楼盘编号 = 拥有信息表.楼盘编号 and 住户信息表.业主编号 = 拥有信息表.业主编号 and 报修信息表.业主编号 = 住户信息表.业主编号 --未解决投诉信息视图: create view 未解决投诉信息视图 as select 投诉名称,姓名 投诉人,楼盘名称,门牌号,电话,日期 保修日期,受理人 from 投诉信息表,住户信息表,楼盘信息表,拥有信息表 where 解决状态 != 'OK' and 楼盘信息表.楼盘编号 = 拥有信息表.楼盘编号 and 住户信息表.业主编号 = 拥有信息表.业主编号 and 投诉信息表.业主编号 = 住户信息表.业主编号 --创建触发器 --实现级联更新和级联删除 --住户信息表的级联更新删除 create trigger tri_Delete_Update on 住户信息表 instead of update ,delete as begin declare @inset char(6),@delet char(6) select @inset=业主编号 from inserted select @delet=业主编号 from deleted if (update(业主编号)) begin EXEC sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL' --禁用约束 update 报修信息表 set 业主编号=@inset where 业主编号=@delet update 投诉信息表 set 业主编号=@inset where 业主编号=@delet update 拥有信息表 set 业主编号=@inset where 业主编号=@delet update 住户信息表 set 业主编号= @inset where 业主编号= @delet EXEC sp_msforeachtable 'ALTER TABLE ? CHECK CONSTRAINT ALL' --启用约束 end else begin delete from 报修信息表 where 业主编号=@delet delete from 投诉信息表 where 业主编号=@delet delete from 拥有信息表 where 业主编号=@delet delete from 住户信息表 where 业主编号=@delet end end --查询结果 select * from 住户信息表 select * from 投诉信息表 select * from 报修信息表 --测试代码 update 住户信息表 set 业主编号 = 520 where 业主编号 = 11 --楼盘信息表的级联更新删除 create trigger tri_楼盘 on 楼盘信息表 instead of update ,delete as begin declare @inset char(6),@delet char(6) select @inset=楼盘编号 from inserted select @delet=楼盘编号 from deleted if (update(楼盘编号)) begin EXEC sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL' --禁用约束 update 拥有信息表 set 楼盘编号=@inset where 楼盘编号=@delet update 楼盘信息表 set 楼盘编号 = @inset where 楼盘编号 = @delet EXEC sp_msforeachtable 'ALTER TABLE ? CHECK CONSTRAINT ALL' --启用约束 end else begin delete from 拥有信息表 where 楼盘编号=@delet delete from 楼盘信息表 where 楼盘编号=@delet end End --如当删除一条住户信息记录能够显示提示,当添加一条报修信息能够显示提示。 create trigger 删除住户 on 住户信息表 after delete as print '删除成功!!' go create trigger 添加报修 on 报修信息表 after insert as print '添加成功!!' go --创建存储过程: --创建查询某一业主信息的存储过程 --查询住户的信息存储过程 create proc 查询住户信息 as select * from 住户信息表 exec 查询住户信息 --创建添加报修信息记录的存储过程 create proc 添加报修信息 @报修事项编号 char(20), @业主编号 char(20), @报修名称 char(20), @受理人 char(20) as begin insert into 报修信息表(报修事项编号,业主编号,报修名称,受理人) values(@报修事项编号,@业主编号,@报修名称,@受理人) end --创建返回某个楼盘的业主人数,并设置没有指定值时,指定一个默认楼盘 --默认楼盘编号为2 create proc 业主人数 as select COUNT(*) 业主人数 from 拥有信息表 where 楼盘编号 = 2 create proc 楼盘住户表 @楼盘名称 char(20) as print @楼盘名称 begin declare @姓名 char(10) declare @性别 char(10) declare @电话 char(10) declare @门牌号 char(10) declare @面积 char(10) declare @身份证 char(10) declare GR cursor for select 姓名,性别,电话,门牌号,面积,身份证 from 住户信息表 where 业主编号 in (select 业主编号 from 拥有信息表 where 楼盘编号 in (select 楼盘编号 from 楼盘信息表 where 楼盘名称 = @楼盘名称)) open GR fetch next from GR into @姓名,@性别,@电话,@门牌号,@面积,@身份证 print '--------------------------------------------------------------------------------' print '业主姓名' +' '+ '性别' +' '+ '电话'+' '+ '门牌号' +' '+ '面积'+' '+ '身份证' while @@FETCH_STATUS = 0 begin print @姓名 + @性别 + @电话+ @门牌号 + @面积+ @身份证 fetch next from GR into @姓名,@性别,@电话,@门牌号,@面积,@身份证 end print '--------------------------------------------------------------------------------' close GR deallocate GR end go --b.设计一个存储过程,在该存储过程中建立生成报表的游标,分别显示 --已解决的报修事项信息和未解决的报修事项信息。 --存储过程...生成报表 create proc 报修情况 as begin declare @业主编号 char(10),@报修名称 char(10), @日期 char(22) declare @受理人 char(10) --已解决的报修 declare BX_OK cursor for select 业主编号,报修名称,日期,受理人 from 报修信息表 where 维修状态 = 'ok' open BX_OK fetch next from BX_OK into @业主编号,@报修名称,@日期,@受理人 print '已经解决的报修事项' print '--------------------------------------------------------------------------------' print '业主编号 ' + '报修名称 ' + '日期 ' + '受理人 ' while @@FETCH_STATUS = 0 begin print @业主编号 + @报修名称 + @日期 + @受理人 fetch next from BX_OK into @业主编号,@报修名称,@日期,@受理人 end print '--------------------------------------------------------------------------------' close BX_OK deallocate BX_OK print '' print '' --未完成报修的游标操作 declare BX_NOT cursor for select 业主编号,报修名称,日期,受理人 from 报修信息表 where 维修状态 = 'not' open BX_NOT fetch next from BX_NOT into @业主编号,@报修名称,@日期,@受理人 print '未解决的报修事项' print '--------------------------------------------------------------------------------' print '业主编号 ' + '报修名称 ' + '日期 ' + '受理人 ' while @@FETCH_STATUS = 0 begin print @业主编号 + @报修名称 + @日期 + @受理人 fetch next from BX_NOT into @业主编号,@报修名称,@日期,@受理人 end print '--------------------------------------------------------
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 环境建筑 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服