书湘里物业管理系统Word格式文档下载.docx
《书湘里物业管理系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《书湘里物业管理系统Word格式文档下载.docx(26页珍藏版)》请在冰豆网上搜索。
11
5.2.2员工基本信息的界面和代码:
14
5.2.3用户管理的主要界面和代码:
16
6总结和展望19
6.1收获与体会19
6.2未来的展望19
参考文献20
致谢21
课程设计检查表22
1绪论
1.1课题背景
今天,随着信息技术和因特网的发展,在住宅小区管理中运用传统的手工操作方式在现在这个数字化的时代已显得极不适应,因此,工作人员对于运用计算机来辅助协调和管理自身工作的需求正在逐步提高。
随着我国现代化技术的不断提高和普及,住宅小区也在不断的提高它的各个部门的管理质量,而物业管理系统则是住宅小区管理的一个重要部分。
本系统针对学校附近的书湘里住宅小区做出系统需求分析,为了提高工作的效率以及办公自动化而设计本系统。
通过本系统可以查询员工的值班时间,可以管理员工的工资以及添加修改删除员工的信息等功能,为工作带来了方便。
1.2控件开发相关技术介绍
本系统前台用Delphi语言。
Delphi是著名的Borland(现在已和Inprise合并)公司开发的可视化软件开发工具。
“真正的程序员用c,聪明的程序员用Delphi”,这句话是对Delphi最经典、最实在的描述。
Delphi被称为第四代编程语言,它具有简单、高效、功能强大的特点。
和VC相比,Delphi更简单、更易于掌握,而在功能上却丝毫不逊色;
和VB相比,Delphi则功能更强大、更实用。
可以说Delphi同时兼备了VC功能强大和VB简单易学的特点。
它一直是程序员至爱的编程工具。
Delphi具有以下的特性:
基于窗体和面向对象的方法,高速的编译器,强大的数据库支持,与Windows编程紧密结合,强大而成熟的组件技术。
但最重要的还是ObjectPascal语言,它才是一切的根本。
ObjectPascal语言是在Pascal语言的基础上发展起来的,简单易学。
在Delphi众多的优势当中,它在数据库方面的特长显得尤为突出:
适应于多种数据库结构,从客户机/服务机模式到多层数据结构模式;
高效率的数据库管理系统和新一代更先进的数据库引擎;
最新的数据分析手段和提供大量的企业组件。
本系统采用的数据库是Oracle10g。
因ORICLE具有高性能,可靠性,安全性和可扩充性的优点,同时又引进了数据库和服务器增强功能以及其他一些新的特性,它实现了真正的客户机/服务器体系结构,具有丰富的编程接口,类似SQL中的数据仓库功能和很好的伸缩性。
在实际应用方面,它具有完全的Web功能,大大增强了数据库本身的实用性。
它能够满足各种类型机构和个人对数据库的需求,并且在操作的易用性,功能的可伸缩性,安全的可靠性等方面具有明显的优势,因此,我们首选它作为本次系统开发的后台语言。
2系统分析
2.1需求分析
(1) 分三种用户,给予不同的操作权限,根据不同的权限进行管理;
(2) 能够根据不同的需求对员工轮班时间情况进行查询;
(3) 能够根据不同的需求对员工基本信息情况进行查询;
(4) 能够查看员工工资的信息以及调整工资(月末结工资时打印输出);
(5)超级管理员能够对业主的购买信息进行统一管理;
(6) 超级管理员能够对房子信息进行统一管理;
(7)超级管理员能够对房子各种费用进行管理;
(8)超级管理员能够查询房子的详细信息并打印输出;
2.2工作流程
一般访客可以根据四种条件:
员工号码,员工姓名,开始时间,和完成时间进行员工轮班的查询,管理员分为普通管理员和超级管理员。
普通管理员登陆之后可以:
★ 管理员工基本信息的添加、修改和删除;
★ 管理轮班制度的添加、修改和删除;
★ 管理员工工资的调整以及查询工资的发放情况;
★ 能够在查询员工轮班情况中看到员工的图像。
超级管理登陆之后,除了普通管理员所以的外,还可以:
★ 管理用户基本信息的添加、修改和删除;
★ 对书湘里小区的住宅用户信息的查询、修改、添加和删除;
★ 管理住宅用户的各种交费情况;
★打印输出每月的员工工资发放情况;
★ 打印输出房子的详细信息。
3系统设计
3.1系统功能结构图
本系统编写的目的,是实现一个住宅小区的物业管理系统,为工作带来更高的工作效率以用方便员工的管理。
由于本程序的功能是和数据库相关的数据查询和数据操作,所以程序至少具有以下功能:
1.数据库的连接;
2.对数据表的基本操作,如插入、修改、删除;
3.根据条件进行查询;
4.程序界面显示数据的动态刷新,本例是运用按钮控件实现的。
鉴于以上的功能,本系统的系统结构图如下:
.
图3.1系统结构图
3.2模块功能设计
系统功能设计是使整个系统能基本实现员工轮班制度的查询,员工基本信息的查询和管理,员工工资的管理,小区住宅用户的查询和管理,房子基本信息的井底和管理和用户管理等管理功能,能够进行有效率的管理。
本系统共包括四大模块,分别是用户模块,员工管理模块,业主信息管理模块,房子信息管理模块。
每个模块的功能如下:
1.用户模块功能:
(1)用户的普通登陆;
(2)用户的超级管理员登陆;
(3)用户基本信息的添加、修改和删除。
2.员工管理模块功能:
(1)实现员工基本信息的查询;
(2)实现员工基本信息的添加、修改和删除;
(3)实现员工工资的管理;
(4)实现员工工资的调整;
(5)打印输出每月的员工工资发放情况。
3.业主信息管理模块功能:
(1)实现业主信息的查询;
(2)实现信息管理的增加、删除、修改功能;
(3)管理住宅用户的各种交费情况;
4.房子信息管理模块功能:
(1)房子基本信息的查询;
(2)房子基本信息的添加、修改和删除功能;
(3)打印输出房子的详细信息;
4系统数据库设计
4.1系统E-R图
图4.1数据库E-R模型图
4.2数据表的设计
根据该系统的特点,本次设计采用Oracle数据库,数据库名称为property,根据该系统的分析,包含以下几个表:
表4.1员工信息表Employees
列名
数据类型
长度
允许为空
说明
EmpId
CHAR
5
否
员工号码
EmpName
10
员工姓名
EmpSex
NUMBER
1
员工性别
EmpAddr
30
员工地址
EmpTell
11
是
员工电话
EmpType
员工类型
EmpSDate
DATE
开始工作日期
EmpImage
VARCHAR2
500
员工相片
EmpJob
员工工作职位
EmpIdenId
18
员工身份证
表4.2用户信息表Users
是否为空
UserName
用户名字
UserPwd
用户密码
UserType
用户类型
表4.3业主信息表Owner
OwnId
业主编号
OwnName
业主改名
OwnSex
业主性别
OwnHouse
业主房子
OwnTell
业主电话
OwnType
业主类型
OwnSDate
业主入住时间
BLOB
是
业主图像
表4.4房子信息表House
HouseNum
6
房子号码
HouseType
房子类型
HouseSize
3
房子大小
Selled
是否卖出
HouseMemo
50
房子备注
表4.5房子交费情况表HoserRate
ManageRate
物业管理费
Doorbell
可视门铃费
LDate
资费最后日期
表4.6员工工资表Salary
EmpSalary
INTEGER
员工工资
SalaryDate
工资最后时间
ChangeDate
调整工资时间
表4.7员工排班表AllotDate
SDate
开始时间
Fdate
结束时间
4.3存储过程,触发器的设计
为了提高该系统的运行环境,后台有关数据的操作使用了存储过程和触发器。
4.3.1存储过程
createorreplaceprocedureInsOrUpEmp_proc//添加、修改删除员工信息
(in_EmpIdinEmployees.Empid%type,
in_EmpNameinEmployees.Empname%type,
in_EmpSexinEmployees.Empsex%type,
in_EmpAddrinEmployees.Empaddr%type,
in_EmpTellinEmployees.Emptell%type,
in_EmpTypeinEmployees.Emptype%type,
in_EmpSdateinEmployees.Empsdate%type,
in_EmpJobinEmployees.empjob%type,
in_EmpiDenIdinEmployees.Empidenid%type,
in_typeinnumber,
out_numoutnumber
)
is
begin
ifin_type=1then
begin
Selectcount(*)intoout_numfromEmployeeswhereEmpId=in_Empid;
ifout_num=0then
insertintoEmployees(Empid,EmpName,EmpSex,EmpAddr,EmpTell,
EmpType,Empsdate,Empjob,EmpiDenId)
values(in_Empid,in_EmpName,in_EmpSex,in_EmpAddr,in_EmpTell,
in_EmpType,in_Empsdate,in_Empjob,in_EmpiDenId);
commit;
out_num:
=1;
end;
else
=4;
endif;
elsifin_type=2then
updateEmployees
setEmpName=in_empname,EmpSex=in_EmpSex,empAddr=in_EmpAddr,
EmpTell=in_EmpTell,EmpType=in_EmpType,EmpsDate=in_EmpSdate,
Empjob=in_EmpJob,Empidenid=in_EmpiDenId
whereEmpid=in_Empid;
=2;
elsifin_type=3then
deletefromEmployeesWhereEmpid=in_Empid;
=3;
exceptionwhenothersthen
=-1;
endInsOrUpEmp_proc;
//根据不同的条件对员工轮班信息进行查询
createorreplaceprocedureQuery_Allot
(IN_Charinchar,
IN_DateinAllotdate.Sdate%type,
RadioinNumber
)is
cursorcur_EmpIdis
selectAllotdate.empid,empname,sdate,fdatefromallotdate,employees
whereAllotdate.empid=employees.empidandemployees.empid=IN_Char;
cursorcur_EmpNameis
whereAllotdate.empid=employees.empidandemployees.empname=IN_Char;
cursorcur_sDateis
whereAllotdate.empid=employees.empid
andto_Char(AllotDate.Sdate,'
YYYY-MM-ddhh'
)=to_Char(IN_Date,'
);
cursorcur_fDateis
andto_Char(AllotDate.fdate,'
ifRadio=1then
DeletefromAllotQuery;
forcur_recincur_EmpIdloop
insertintoAllotQuery
values(cur_rec.empid,cur_rec.empname,cur_rec.sdate,cur_rec.fdate);
endloop;
elsifRadio=2then
forcur_recincur_EmpNameloop
values(cur_rec.empid,cur_rec.empname,cur_rec.sdate,cur_rec.fdate);
elsifRadio=3then
forcur_recincur_sDateloop
elsifRadio=4then
forcur_recincur_fDateloop
endif;
endQuery_Allot;
4.3.2触发器
createorreplacetriggerDelSalary//删除员工信息时要先删除工资表对应的信息
beforedeleteonemployees
foreachrow
DeletefromSalary
whereEmpid=:
old.Empid;
DeletefromAllotdate
endDelSalary;
createorreplacetriggerChangeSalary//调整工资时更新员工表的工资项
afterinsertorupdateonsalary
updateEmployees
setEmpSalary=:
new.EmpSalary
whereEmpLoyees.Empid=:
new.Empid;
endChangeSalary;
4.4数据库的连接
应用程序与Oracle10g数据库的连接是通过ADOConnection控件进行数据库连接,具体连接代码如下:
Provider=OraOLEDB.Oracle.1;
Password=123;
PersistSecurityInfo=True;
UserID=property;
DataSource=orcl;
ExtendedProperties="
"
其他的调用存储过程控件、查询控件都通过这个连接控件连接上Oracle.
5系统实现
根据整个系统的总体设计以及子系统的相关模块功能的设计,我们进行了系统的软件开发。
详细设计和功能展示如下:
5.1系统界面的实现
界面是保证系统正常运行的一个重要因素,它影响到用户应用系统时的态度,影响到用户对产的品的评价,影响到产品的竞争力和寿命,进而影响到系统功能的发挥,所以必需对界面设计给予足够重视。
5.2系统主要功能实现
5.2.1系统主界面和代码:
下面为超级管理员登陆后的主界面:
图5.1系统主页面
查询员工轮班信息的代码:
ifEmpnum_RadioBtn.Checked=truethen
ifQuery_Edit.Text='
'
then
Application.MessageBox('
请输入查询关键字'
'
提示'
mb_ok);
end
//执行存储过程
Perproty_DataModule.Query_ADOStoredProc.Parameters.ParamByName('
in_char'
).Value:
=Query_Edit.Text;
Radio'
Perproty_DataModule.Query_ADOStoredProc.ExecProc;
Perproty_DataModule.ADOQuery1.Close;
Perproty_DataModule.ADOQuery1.SQL.Clear;
Perproty_DataModule.ADOQuery1.SQL.Add('
SelectAllotQuery.*,EMPIAGEfromAllotQuery,employeeswhereAllotQuery.Empid=Employees.Empid'
Perproty_DataModule.ADOQuery1.Open;
elseifEmpName_RadioBtn.Checked=truethen
Perproty_DataModule.ADOQuery1.Close;
elseifsDate_RadioBtn.Checked=truethen
dtstring:
=datetostr(Query_DateTimePicker.date)+'
'
+Timetostr(Query_DateTimePicker1.time);
dt:
=strtoDateTime(dtstring