案例5小区物业管理系统.docx
- 文档编号:26322709
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:73
- 大小:232.45KB
案例5小区物业管理系统.docx
《案例5小区物业管理系统.docx》由会员分享,可在线阅读,更多相关《案例5小区物业管理系统.docx(73页珍藏版)》请在冰豆网上搜索。
案例5小区物业管理系统
第6章小区物业管理系统
本章对数据库的连接主要采用Windows自带的ODBC来完成,在应用程序中使用了TDatabase控件。
6.1摘要与关键字
6.1.1摘要
小区物业管理系统主要是针对生活小区的物业管理公司作为使用对象而开发的,作为一个典型的信息管理系统(MIS),其系统开发任务主要包括数据库的设计与维护、客户端应用程序的开发等两个方面。
对于前者要求建立起的数据库具有完整性和一致性,且具有一定的数据安全性如用户需要密码才能使用等,而对于后者则要求程序界面友好、功能完备等特点。
经过详细的分析,选用Borland公司的Delphi作为前端开发工具,利用其提供的集成开发环境及各种控件,尤其是对数据库的支持完成对数据库的各种操作,达到对图书资料管理的目的。
首先建立系统应用原型,然后对原型系统进行需求迭代,不断修正和改进,直到形成用户满意的实际可行系统。
6.1.2关键词
物业、管理、设计、实现、Access。
6.2引言
生活小区的物业管理是物业管理公司都必须切实面对的工作,但一直以来人们使用传统的人工方式管理,这种管理方式存在着许多缺点,如:
效率低且较为烦琐,另外随着物业管理项目的增加,其工作量也将大大增加,这必然增加物业管理者的工作量和劳动强度,这将给物业管理信息的查找、更新和维护都带来了很多困难。
经过我们详细的调查,目前我国有相当一部分物业管理公司还停留在人工管理的基础上,这样的管理机制已经不能适应时代的发展,其管理方法将浪费许多人力和物力。
随着科学技术的不断提高,这种传统的手工管理方法必然被以计算机为基础的信息管理方法所取代。
物业管理系统作为计算机应用的一个分支,有着手工管理所无法比拟的优点,如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高物业管理的效率。
因此,开发一套能够为用户提供规范化的事务管理、充足的信息和快捷的查询手段的物业管理系统,将是非常必要的,也是十分及时的。
因此可以把物业管理作为毕业设计的题目,正好可以充分利用几年在校所学的各种专业知识开发一个小区物业管理系统来帮助相关部门进行有效的管理。
6.3需求分析
6.3.1功能需求
典型的小区物业管理系统主要应具有以下功能:
●系统用户管理:
管理使用该系统的用户信息,包括系统用户的添加、修改、删除。
●楼盘信息管理:
管理小区中各幢楼盘的各种信息,包括楼盘信息的添加、修改、删除、查询。
●住户信息管理:
管理小区住户的各种信息,包括住户信息的添加、修改、删除、查询。
●停车场管理:
管理停车场的各种信息,包括停车场信息的添加、修改、删除、查询。
●物业收费管理:
管理小区的各种收费项目,包括收费项目的添加、修改、删除、查询。
●住户报修管理:
管理住户报修信息,包括住户报修信息的添加、修改、删除、查询。
●住户投诉管理:
管理住户投诉信息,包括住户投诉信息的添加、修改、删除、查询。
再进行详细调查,绘制出数据流图,如图6-1所示。
图6-1系统数据流图
6.3.2开发与运行环境
本例的小区物业管理系统开发与运行环境如下:
开发环境:
WindowsXP
开发工具:
Delphi8
数据库管理系统:
MicrosoftAccess2000
运行环境:
Windows98/ME/2000/XP
6.3.3系统实现过程分析
首先根据系统功能分析设计出数据库,包括各个数据表和数据表关系图的详细结构。
实现功能模块时,采用先模块化,后集成的方式。
即对系统各个功能模块分别独立设计和调试,在创建系统主窗体时再将各个功能模块通过主窗体的菜单系统集成到一起,最后进行系统整体设计调试。
在访问数据库时,采用公用数据模块存放访问数据库需要的对象。
该模块在各个功能模块中被直接调用,避免对数据库的反复连接,并可减少代码编写,从而提高系统开发效率。
6.4系统设计
6.4.1系统模块设计
根据系统功能分析,得到如图6-2所示的系统功能模块结构图。
图6-2系统功能模块图
6.4.2数据库设计
1.数据字典
根据系统功能模块结构图和管理流程,以及一般小区物业管理系统的需求,总结出如下的数据字典:
●系统用户数据:
包含的数据项有系统用户名、登录口令、身份。
●楼盘数据:
包含的数据项有门牌号、户型、出售否、出租否、户主姓名、产权证编号、土地使用证编号、面积等。
●住户数据:
包含的数据项有门牌号、户主姓名、常住人口、联系电话、备注等。
●停车场数据:
包含的数据项有车位编号、用户名、类型、单价、入场时间、离场时间等。
●收费项目数据:
包含的数据项有门牌号、水、电、气、物管、时间等。
●报修项目数据:
包含的数据项有项目编号、内容、时间、维修否、维修人、备注等。
●投诉项目数据:
包含的数据项有项目编号、内容、时间、投诉人、负责人、备注等。
2.数据库结构设计
根据系统需求,分析出实体-关系图,如图6-3所示。
图6-3实体-关系图
根据实体-关系图和数据字典设计出各个数据表。
根据系统用户使用要求得到系统用户数据表,根据楼盘、停车场、住户实体得到楼盘数据表、住户数据表、停车场数据表,根据投诉、收费、报修关系得到收费项目数据表、投诉项目数据表、报修项目数据表。
数据表名称与结构如下:
系统用户数据表:
表名“user”,结构见表6-1。
表6-1user表结构
列名
数据类型
长度
索引
Name
文本
15
是
Passwd
文本
10
用户权限表:
表名“qxb”,结构见表6-2。
表6-2qxb表结构
列名
数据类型
长度
索引
Name
文本
15
CDX
文本
3
系统菜单功能表:
表名“cdx”,结构见表6-3。
表6-3cdx表结构
列名
数据类型
长度
索引
CDX
文本
3
是
CDM
文本
20
楼盘数据表:
表名“lpb”,结构见表6-4。
表6-4lpb表结构
字段名
类型
大小
索引
说明
Mph
文本
15
是
门牌号
Hz
文本
10
户主
Hx
文本
30
户型
Cz
是/否
出租否
Cs
是/否
出售否
Cqh
文本
30
产权证号
Tdh
文本
30
土地证号
Mj
数字
双精度型
面积
住户数据表:
表名“zhb”,结构见表6-5。
表6-5zhb表结构
字段名
类型
大小
索引
说明
Mph
文本
15
是
门牌号
Hz
文本
10
户主
Hx
文本
30
户型
Czr
文本
50
常住人口
Dh
文本
20
电话
Bz
文本
100
备注
停车场数据表:
表名“tcb”,结构见表6-6。
表6-6tcb表结构
字段名
类型
大小
索引
说明
Id
文本
3
是
车位编号
Zt
文本
1
状态
Je
数字
双精度型
金额
Rcsj
日期/时间
入场时间
Lcsj
日期/时间
离场时间
收费项目数据表:
表名“sfb”,结构见表6-7。
表6-7sfb表结构
字段名
类型
大小
索引
说明
Id
自动编号
3
是
Bh
文本
6
编号
Mph
文本
15
门牌号
Sf
数字
双精度型
水费
Df
数字
双精度型
电费
Qf
数字
双精度型
气费
Wgf
数字
双精度型
物管费
Qtf
数字
双精度型
其它费
Sfsj
日期/时间
收费时间
报修项目数据表:
表名“bxb”,结构见表6-8。
表6-8bxb表结构
字段名
类型
大小
索引
说明
Id
自动编号
3
是
Name
文本
15
姓名
Rq
日期/时间
60
日期
Wxr
文本
15
维修人
Wxf
是/否
维修否
Bz
文本
100
备注
投诉项目数据表:
表名“tsb”,结构见表6-9。
表6-9tsb表结构
字段名
类型
大小
索引
说明
Id
自动编号
3
是
Name
文本
15
姓名
Rq
日期/时间
60
日期
Fzr
文本
15
负责人
Bz
文本
100
备注
6.5系统实现
实现功能模块时,采用先模块化,后集成的方式。
即对系统各个功能模块分别独立设计和调试,在创建系统主窗体时再将各个功能模块通过主窗体的菜单系统集成到一起,最后进行系统整体设计调试。
在访问数据库时,采用公用数据模块存放访问数据库需要的对象。
该模块在各个功能模块中被直接调用,避免对数据库的反复连接,并可减少代码编写,从而提高系统开发效率。
6.5.1建立数据库
本例数据库的类型采用MicrosoftAccess,数据库名为xqwy.mdb,建立各数据表的过程,在这里不作介绍,有关内容参阅MicrosoftAccess相关书籍。
6.5.2建立连接
本例使用ODBC数据源连接数据库,数据源名为xqwy。
建立过程可参阅第四章内容。
6.5.3程序设计
1.主窗体
主窗体保存为main.pas,主窗体包含一个Database组件、一个MainMenu组件、一个StatusBar组件和一个ToolBar组件,界面及菜单项如图6-4所示。
图6-4主窗体及菜单
窗体主要组件属性设置见表6-10。
表6-10主窗体组件属性设置
组件
属性值
Form1
Name='MainForm'FormStyle=fsMDIFormCaption='小区物业管理系统'
MainMenu1
ToolBar1
ToolButton1Caption='系统登录'
ToolButton2Caption='关闭系统'
Database1
DatabaseName=xqwyLoginPrompt=False
StatusBar1
2.用户登录窗体
用户登录功能是在启动系统后,要求用户登录,只有输入合法的用户名和密码,系统才分配具体的功能模块。
用户登录窗体保存为login.pas。
界面如图6-5所示,包含一个Panel组件、两个Label组件、两个Edit组件和两个Button组件。
图6-5用户登录窗体
窗体主要组件属性设置见表6-11。
表6-11用户登录窗体主要组件属性
组件
属性值
Form2
FormStyle=fsMDIChildBorderStyle=bsSingleBorderIcons=[biSystemMenu]
Name=LoginFormCaption='用户登录窗口'
Panel1
Caption=''BevelOuter=bvLowered
Label1(Panel1)
Caption='用户名'
Label2(Panel1)
Caption='密码'
Edit1(Panel1)
Text=''Name=Name_Edit
Edit2(Panel1)
PasswordChar=*Text=''Name=Password_Edit
Button1
Caption='确定'
Button2
Caption='取消'
主要代码如下:
usesmain;
//确定按钮单击事件
procedureTLoginForm.Button1Click(Sender:
TObject);
var
aname,apassword,sqlstr:
string;
a,b:
integer;
begin
//有输入时,从数据库中检验用户信息
if(Length(Trim(Name_Edit.Text))>0)or(Length(Trim(Password_Edit.Text))>0)then
begin
aname:
=Trim(Name_Edit.Text);
apassword:
=Trim(Password_Edit.Text);
sqlstr:
='select*fromusera,qxbbwhere(a.name='''+aname+''')';
sqlstr:
=sqlstr+'and(a.passwd='''+apassword+''')and(a.name=b.name)';
sqlstr:
=sqlstr+'orderbyb.cdx';
withTQuery.Create(nil)do
try
Close;
SessionName:
=MainForm.Database1.SessionName;
DatabaseName:
=MainForm.Database1.DatabaseName;
SQL.Clear;
SQL.Add(sqlstr);
Open;
//验证通过,根据权限设置菜单项的可访问性
ifRecordCount>0then
begin
First;
whilenotEofdo
begin
a:
=StrToInt(copy(FieldByName('cdx').AsString,1,1));
b:
=StrToInt(copy(FieldByName('cdx').AsString,2,2));
MainForm.MainMenu1.Items.Items[a].Visible:
=true;
MainForm.MainMenu1.Items.Items[a].Items[b].Visible:
=true;
Next;
end;
//关闭登录窗口
LoginForm.Close;
//主窗体状态栏显示登录用户名
MainForm.StatusBar1.Panels[0].Text:
=aname;
end
else
//验证不通过,提示错误信息
begin
ShowMessage('请确认登录的用户名和密码是否正确!
');
Name_Edit.SetFocus;
Name_Edit.SelectAll;
end;
finally
Free;
end;
end
else
//无输入,提示错误信息
begin
ShowMessage('请输入登录用户名和密码!
');
Name_Edit.SelectAll;
end;
end;
3.用户管理窗体
用户管理包括用户数据(包括编号、密码和权限)的添加、删除和浏览等操作。
高级管理员可以管理系统中所以的用户数据,而普通用户则只能修改自己的密码。
用户管理窗体保存为usergl.pas,界面设计如图6-6所示,包含一个PopupMenu组件、一个Query组件、一个DataSource组件和一个DBGrid组件。
图6-6用户管理窗体设计
窗体的主要组件属性设置见表6-3。
表6-12用户管理窗体主要组件属性
组件
属性值
Form3
FormStyle=fsMDIChildName=usergl_FormCaption='用户管理'
PopupMenu1
MenuItem1Name=N11Caption='添加用户'
MenuItem2Name=N12Caption='修改用户'
MenuItem3Name=N13Caption='删除用户'
Query1
DataSource1
DataSet=Query1
DBGrid1
DataSource=DataSource1PopupMenu=PopupMenu1
用户管理窗体主要代码如下:
public
modi:
Boolean;//用于标识添加/修改用户
xx:
string;//用于设置添加/修改用户窗体标题栏
……
procedureTusergl_Form.FormCreate(Sender:
TObject);
begin
Query1.SessionName:
=MainForm.Database1.SessionName;
Query1.DatabaseName:
=MainForm.Database1.DatabaseName;
modi:
=False;
end;
//数据网格双击事件
procedureTusergl_Form.DBGrid1DblClick(Sender:
TObject);
begin
//相当于修改用户操作
N12.Click;
end;
procedureTusergl_Form.FormShow(Sender:
TObject);
varsqlstr:
string;
begin
sqlstr:
='select*fromuserorderbyyhm';
Query1.SQL.Clear;
Query1.SQL.Add(sqlstr);
Query1.Open;
//根据数据查询结果,设置弹出菜单项的可访问性
ifQuery1.RecordCount>0then
begin
N12.Enabled:
=True;
N13.Enabled:
=True;
end
else
begin
N12.Enabled:
=False;
N13.Enabled:
=False;
end;
end;
//“添加用户”弹出菜单单击事件
procedureTusergl_Form.N11Click(Sender:
TObject);
begin
//设置标识
modi:
=False;
xx:
='添加用户';
//打开添加/修改用户窗体
Application.CreateForm(Tmodiuser_Form,modiuser_Form);
modiuser_Form.ShowModal;
end;
//“修改用户”弹出菜单单击事件
procedureTusergl_Form.N12Click(Sender:
TObject);
begin
//设置标识
modi:
=True;
xx:
='修改用户';
Application.CreateForm(Tmodiuser_Form,modiuser_Form);
modiuser_Form.ShowModal;
end;
//“删除用户”弹出菜单单击事件
procedureTusergl_Form.N13Click(Sender:
TObject);
varname,id:
string;
begin
try
name:
=Query1.FieldByName('name').AsString;
ifMessageDlg('确认要删除选中的记录码?
',mtConfirmation,[mbYes,mbNo],0)=mrYesthen
begin
id:
=Query1.FieldByName('id').AsString;
withTQuery.Create(nil)do
begin
try
Close;
SessionName:
=MainForm.Database1.SessionName;
DatabaseName:
=MainForm.Database1.DatabaseName;
SQL.Clear;
//删除用户表数据
SQL.Add('deletefromuserwhereid='''+id+'''');
ExecSQL;
SQL.Clear;
//删除权限表数据
SQL.Add('deletefromqxbwhereyhm='''+name+'''');
ExecSQL;
finally
Free;
end;
end;
end;
except
end;
end;
4.添加/修改用户窗体
添加/修改用户窗体设计如图6-7所示,包含两个LabeledEdit组件、一个CheckListBox组件、一个Query组件、一个Panel组件、一个GroupBox组件和两个SpeedButton组件。
图6-7添加/修改用户窗体
窗体的主要组件属性设置见表6-13。
表6-13添加/修改用户窗体主要组件属性
组件
属性值
Form4
FormStyle=fsMDIChildName=usergl_FormCaption='添加/修改用户信息'
Panel1
Caption=''Align=alTop
LabeledEdit1(Panel1)
Name=yhm_LEditEditLabel.Caption='用户名'
LabeledEdit2(Panel1)
Name=mm_LEditEditLabel.Caption='密码'
SpeedButton1(Panel1)
Caption='确定'
SpeedButton2(Panel1)
Caption='取消'
GroupBox1
Caption='功能权限列表'Align=alClient
CheckListBox1(GroupBox1)
Align=alClient
Query1
添加/修改用户窗体主要代码如下:
usesusergl,main;
//窗体创建事件,将系统的所有功能模块列表
procedureTmodiuser_Form.FormCreate(Sender:
TObject);
varyhm,cdbh,cdmc,sqlstr:
string;
begin
//设置窗体标题栏
Caption:
=usergl_Form.xx;
Query1.SessionName:
=MainForm.Database1.SessionName;
Query1.DatabaseName:
=MainForm.Database1.DatabaseName;
withTQuery.Create(nil)do
begin
try
Close;
SessionName:
=MainForm.Database1.SessionName;
DatabaseName:
=MainForm.Database1.DatabaseName;
sqlstr:
='select*fromcdxorderbycdx';
SQL.Clear;
SQL.Add(sqlstr);
Open;
First;
whilenotEofdo
begin
cdbh:
=FieldByName('cdx').AsString;
c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 案例 小区 物业管理 系统