课程设计说明书NO.1小区物业管理系统1.课程设计的目的随着社会的发展,人类对物业的需求也不断地增长。通常物业管理公司都会使用一套物业管理系统来规范化管理公司的各种事务,如楼盘信息管理、住户信息管理、物业收费项目管理以及住户投诉和保修信息管理等。这次课程设计,我们以“红光苑”住宅小区为开发背景,设计这个物业管理系统,从系统登陆到住户应用各个项目管理,形成了一个整体自动化管理模式,改善了小区物业的管理现状。我们小组5名成员采用了在VisualBasic6.0环境下“自上而下地总体规划,自下而上地应用开发”的策略开发本系统,实现小区信息管理、资源共享的基本目标,并阐述系统结构设计和功能设计,形成了一个整体自动化管理模式,从软件工程的角度进行了科学而严谨的阐述。2.设计方案论证系统设计是管理系统开发的起点,也是整个管理系统实现过程中的关键环节,如果系统设计环节做的不好,会影响到系统实现的后继环节,甚至造成开发失败。本次课程设计环节主要包括系统功能分析、系统模块设计以及开发与运行环境的选择等3打任务。2.1系统功能分析本小区物业管理系统主要具有以下功能:(1)系统用户管理:管理小区物业管理系统的用户信息,包括系统用户的添加、修改、删除和查询。(2)楼盘信息管理:管理小区中各幢楼盘的各种信息,包括楼盘信息的添加、修改、删除和查询。住户信息管理:管理小区住户的各种信息,包括住户信息的添加、修改、删除和查询。(3)物业收费管理:管理小区各种收费项目,包括收费项目的添加、修改、删除和查询。(4)住户报修管理:管理报修投诉信息,包括住户报修信息的添加、修改、删除和查询(5)住户投诉管理:管理住户投诉信息,包括住户投诉信息的添加、修改、删除和查询。2.2系统模块设计VB应用程序设计采用模块化的设计原则,通常由三类模块组成。它们分别是窗体模块、标准模块和类模块。我们在本系统中用到了两种模块:窗体模块和标准模块。全局变量只能在标准模块中声明,不能在过程和窗体模块中声明。所以本系统中定义的全局变量是存放在标准模块中。沈阳大学课程设计说明书NO.2图1系统功能模块结构图沈阳大学课程设计说明书NO.3本小组5名成员分工合作,共同完成了红光苑住宅小区的物业管理信息系统的创建,我主要负责系统数据库的创建、系统工程的创建以及主窗体的设计。2.3数据库设计系统设计是对整个管理系统功能进行分析,并划分和构建系统功能模块,而数据库设计则是分析和创建保存管理系统设计的数据库结构设计,两者对整个系统的开发具有同等重要的关键作用。数据库结构设计的好坏将直接影响系统的运行效率和系统开发进度,合理的数据库结构设计不仅可以提高系统运行效率,也有利于保证数据的完整性和一致性,也有利于系统的实现。我们将数据库的设计总结为两个步骤:(1)绘制系统数据流图。系统数据流图根据用户日常工作流程,绘制出系统的各个操作节点,对每一个操作节点,绘制出与该操作相关的数据。然后根据数据流图分析总结出系统数据字典,总结出系统管理流程中使用到的各个数据以及包含的数据项。(2)设计数据库结构。根据(1)中得到的数据字典,为数据库规划需要的数据表,并设计每个数据表的结构。第一步,绘制系统数据流图,具体方法如下:根据系统功能模块结构图和管理流程,绘制如图2所示的系统数据流图。根据系统数据流图以及一般小区物业管理系统的需求,总结出下面的数据字典:图2系统数据流图沈阳大学系统用户登录陆系统用户管理楼盘信息管理住户信息管理收费项目管理报修项目管理投诉项目管理系统用户数据楼盘数据住户数据收费项目数据保修项目数据投诉项目数据课程设计说明书NO.4系统用户数据:包含的数据项有系统用户名称、登录口令和身份。楼盘数据:包含的数据项有门牌号、户型、出售否、出租否、户主姓名、产权证编号、土地使用证编号、面积等。住户数据:包含的数据项有门牌号、户主姓名、常住人口、联系电话、备注等。收费项目数据:包含的数据项有门牌号、水、电、气、物管、时间等。报修项目数据:包含的数据项有项目编号、内容、时间、维修否、维修人、备注等。投诉项目数据:包含的数据项目有项目编号、内容、时间、投诉人、负责人、备注等。第二步,数据库结构设计,具体方法如下:数据库结构设计要求根据数据字典、使用的数据库管理系统和系统开发工具,设计出数据库中各个数据表的具体结构。我们小组将使用VisualBasic来实现小区物业管理系统,而小区物业管理使用的数据库一般属于小型数据库,所以可以使用VisualBasic自带的可视化数据管理器来创建数据库。(1)系统用户数据表。系统用户数据表命名为“系统用户数据”,并使用“用户名”字段创建索引,索引命名为SysUser,设置为惟一的、主要的索引。添加Admin和Administrator作为默认的系统管理员。表1系统用户数据表结构字段名称类型大小字段是否固定允许零长度必要字段顺序位置用户名Text15可变否是0口令Text6固定否是1身份Text10可变否是2(2)楼盘数据表。楼盘数据表命名为“楼盘数据”,并使用“门牌号”字段创建索引,索引命名为DoorNumber,设置为惟一的、主要的索引。表2楼盘数据表结构字段名称类型大小字段是否固定允许零长度必要字段顺序位置门牌号Text9固定否是0户主Text15可变是是1户型Text30可变否是2出租Boolean是3出售Boolean是4产权号Text50可变是是5土地号Text50可变是是6面积Single是7沈阳大学课程设计说明书NO.5(3)住户数据表。住户数据表命名为“住户数据”,并使用“门牌号”字段创建索引,索引名为DoorNumber,设置为惟一的、主要的索引。表3住户数据表结构字段名称类型大小字段是否固定允许零长度必要字段顺序位置门牌号Text9固定否是0户主Text15可变否是1常住人Text50可变是是2电话Text11可变是否3备注Text100可变是否4(4)收费项目数据表。收费项目数据表命名为“收费数据”,“编号”设置为自动增加,并用于创建索引,索引名为ChargeIndex,设置为惟一的、主要的索引。表4收费项目数据表结构字段名称类型大小字段是否固定允许零长度必要字段顺序位置门牌号Text9固定否是1水Single是2电Single是3气Single是4物管Single是5时间Date/Time是6(5)报修项目数据表。报修项目数据表命名为“报修数据”,“编号”设置为自动增加,并用于创建索引。索引名为RepairIndex,设置为唯一的、主要的索引。表5报修项目数据表结构字段名称类型大小字段是否固定允许零长度必要字段顺序位置编号Long是0内容Text50可变否是1时间Data是2报修人Text15可变是是3维修否Boolean是4维修人text15可变否是5沈阳大学课程设计说明书NO.6(6)投诉项目数据表。投诉项目数据表命名为“投诉数据”,“编号”设置为自动增加,并用于创建索引。索引名为ApealIndex,设置为唯一的、主要的索引。表6投诉项目数据表结构字段名称类型大小字段是否固定允许零长度必要字段顺序位置编号Text是0内容Text50可变否是1时间Data是2投诉人Text15可变是是3负责人Text15可变否是4各个数据表创建完成之后,使用创建的数据库“物管数据库.mdb”创建一个ODBC数据源,并命名为“物管数据DSN”。2.4创建系统工程启动visualbasic,并选择创建一个标准EXE工程,在属性窗口中将工程命名为“小区物业管理系统.vbp”。选择“工程”——“引用”菜单命令,打开“工程引用”对话框,并选中“Microsoftactivexdataobjectslibray2.0”然后选择“工程”——“不见”菜单命令打开“工程部件”对话框,并在“部件”选项卡中选中“Microsoftadodatacontrol6.0”和“Microsoftdatagridcontrol6.0”。选择“工程”——“添加模块”菜单命令,为工程添加一个标准模块,在属性窗口中将模块命名为currentuserdata,保存为mdlSysUserdata.bas,并在其代码窗口中输入下面的语句定义3个公共变量,分别保存系统当前用户的用户名、口令和身份:PublicCurrentUserNameAsString'保存当前用户用户名PublicCurrentUserPasswordAsString'保存当前用户登录口令PublicCurrentUserStatusAsString'保存当前用户身份2.5实现系统主窗体具体操作如下:第一步,创建系统主窗体:为工程添加一个MDI窗体,将窗体Caption属性设置为“红光苑住宅小区管理系统”,窗体命名为“frmSysMain”,保存为“frmSysMain.frm”为窗体创建如下图所示的菜单系统:沈阳大学课程设计说明书NO.7各个菜单项的标题和名称如表:表7系统菜单标题和名称标题名称标题名称文件Mnufile住户信息Mnuuserinf退出Mnuexit编辑Mnuedituser系统Mnusys查询Mnuuserquery用户管理Mnusysuser物业管理Mnutownmanage修改口令Mnupassword收费Mnucharge信息管理mnuinf报修mnumaintain楼盘信息Mnubuildinf编辑Mnueditbuild查询Mnubuildquery投诉mnuappeal第二步,实现按权限启用系统功能。在窗体加载时,根据当前用户权限决定应该隐藏的系统功能菜单,实现代码如下:PrivateSubMDIForm_Load()'根据用户身份决定是否隐藏可执行管理操作的菜单IfCurrentUserStatus管理员ThenmnuEditUser.Visible=False'隐藏住户管理菜单mnuSysUser.Visible=False'隐藏系统用户管理菜单mnuEditBerth.Visible=False'隐藏停车场车位管理菜单mnuEditBuild.Visible=False'隐藏楼盘数据管理菜单mnuCharge.Visible=False'隐藏物业管理收费菜单EndIfEndSub第三步,实现退出系统功能。在窗体关闭时,首先请求用户确认,然后检查窗体是否关闭。在所有打开的子窗体被关闭时,才允许退出系统,实现代码如下:PrivateSubMDIForm_QueryUnload(CancelAsInteger,UnloadModeAsInteger)'请求用户确认退出操作IfMsgBox(你选择了退出红光苑住宅小区管理系统,是否退出?,_vbYesNo,红光苑住宅小区管理系统)=vbNoThenCancel=1'撤消关闭窗体操作EndIf'判断在关闭了所有子窗体之后才能退出系统IfNotMe.ActiveFormIsNothingThenMsgBox请关闭所有打开的子窗体再退出系统,_vbCritical,红光苑住宅小区管理系统Cancel=1'撤消关闭窗体操作沈阳大学课程设计说明书NO.8EndIfEndSubPrivateSubmnuExit_Click()UnloadMeEndSub第四步,集成系统功能模块。在用户执行菜单命令时,需要打开相应的系统功能模块,所以需要在菜单的Click实现工程中执行系统功能模块的show方法,并执行SetFocus使其成为当前窗体,实现代码如下:PrivateSubmnuAppeal_Click()UserAppeal.ShowUserAppeal.SetFocusEndSubPrivateSubmnuBuildQuery_Click()BuildingInfQuery.ShowBuildingInfQuery.SetFocusEndSubPrivateSubmnuCharge_Click()UptownManage.ShowUptownManage.SetFocusEndSubPrivateSubmnuEditBerth_Click()EditBerth.