本文主要探讨“房屋租赁管理系统”的理论基础和设计思想。系统的开发过程和功能实现为主线,论述数据库管理软件的开发过程。本系统以软件工程理论作为系统开发的理论基础,以客户机/服务器模式的关系型数据库作为后台,以专业数据库开发语言作为实现手段的数据库管理软件的开发过程分析和理论研究。
开发工具方面,本系统采用JSP 2.0和SQL。开发过程分为后台数据库的建立与设置、软件界面的设计与实现、程序的编写与调试等几个阶段。本文详细地介绍了开发系统的具体步骤,以及应用的技术,并在文中通过配图例的方式详尽说明。此外,还对一些源程序作了详细的解释。
需求分析
房屋租赁管理系统需求主要来自房屋登记,管理房源和管理人员。房屋登记将用户需要登记的房屋的信息输入系统,由系统自动归类储存,随时可以查阅修改。房屋管理人员可利用本系统,输出房屋名单,自动生成统计报表、房屋出售合同、房屋出租合同。一般情况下,普通用户只能浏览查询房屋具体信息,而超级用户除了能查询房屋具体信息以外,还能够直接登记房屋信息,但是不能随意修房屋数据,尤其是房屋出售合同和房屋出租合同等敏感信息。
因此,用户, 超级用户和房屋管理人员的的权限要明确区分开来,防止操作时因操作错误产生的数据丢失和数据错误,因此,这就需要在设计模块时加以考虑。房屋管理人员还有一个任务是对各个人员的使用权限进行管理,对数据库中的房屋信息进行实地考核和协助客户填写房屋出售合同和房屋出租合同,并将其打印出来存档管理,在出租合同到期后即时的回收房屋使用权,并再次将此房屋出租,进入下一个出租循环中。
本系统的功能有:房屋出租登记输入处理,房屋出售登记输入处理,房屋登记表修改处理(有输入、取消、确认、修改、删除等功能),房屋查询处理(按地址,面积,使用权查询等),房屋出租情况报表统计处理,房屋出售情况报表统计处理(包含打印功能),房屋出租合同录入和打印功能,房屋出售合同录入和打印功能,购买房屋基本常识介绍功能。
系统处理流程图

总体结构设计
系统的概要设计中最重要的就是系统的模块化。模块化是指解决一个复杂问题时自项向下逐层把软件系统划分成若干个模块的过程。每个模块完成一个特定的功能,所有的模块按某种方法组织起来,成为一个整体,完成整个系统所要求的功能。
将系统划分为多个模块是为了降低软件系统的复杂性,提高可读性、可维护性,但模块的划分不能是任意的,应尽量保持其独立性。也就是说,每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单,即尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。
通过对整个系统的规划分析,对数据的具体要求的分析,以及对系统功能的综合考虑,提出一个基本的总体结构框架。
房屋中介管理系统的层次划分为几个方面:用户界面,数据缓冲,数据库,输出等。
用户界面层次:距离用户最近的层次,以图形化界面显示给用户,便于用户进行基本操作,用户可以在这里输入数据,修改数据,删除数据,设定选配标准,设定查询条件等。用户对系统的所有输入内容在此层次上操作。
数据缓冲层次:在这个层次中,用户所做的修改尚未提交到数据库中,而是保存在一个临时缓冲区中。此时,所有操作是由系统本身操作,包括在数据缓冲区内增加信息,修改信息,删除信息等,也包括执行选配过程,判断查询条件的合法性等。这一层次中,系统主要执行提交数据库之前的所有工作,确保提交数据的合法性和准确性,尽量减少数据库错误。
数据库层:主要操作在数据库中执行,主要工作是:将缓冲区的数据存入数据库,执行查询语句等。由于数据是经过缓冲区检查的,所以可以大大减少数据库的非法操作,减少数据出错的情况,查询时的非正常情况大大减少。
输出层:在这个层次中,不需要进行数据库操作和用户输入操作,这个层次的主要工作是把结果显示给用户,包括查询结果,统计图,错误信息,提示信息等。
用户登陆
procedure TFrm_Login.bbtnokClick(Sender: TObject);
begin
//录入检验
if cbUserId.text='' then
begin
messagedlg('请 选 择 用 户 名 !',mtInformation,[mbok],0);
cbUserId.SetFocus();
exit;
end;
//登录验证
with JDBCQ_Temp do
begin
close;
SQL.Clear;
SQL.Add('SELECT * From 用户信息表 Where 用户名='+''''+cbUserId.Text+'''');
Open;
//用户有效性
IF not IsEmpty then
begin
//登录失败
If edtPassword.Text <> Fieldbyname('密码').AsString then
begin
messagedlg('口令错误,请修改 !',mterror,[mbok],0);
LoginNum:=LoginNum+1;
if LoginNum=3 then
begin
messagedlg('非法用户!你无权使用本系统',mterror,[mbok],0);
application.Terminate ;
end;
edtPassword.Text :='';
edtPassword.SetFocus;
exit;
end
//登录成功
else
begin
//保存登录的用户信息
gs_login_userid :=fieldbyname('用户名').asstring;
gs_login_username :=fieldbyname('用户名').asstring;
gs_login_userlevel :=fieldbyname('用户等级').asstring;
gs_login_Password :=fieldbyname('密码').asstring;
gt_login_time:=now();
Login:=true;
self.close;
end;
end
else
begin
messagedlg('指定的用户已被注销!你无权使用本系统!',mterror,[mbok],0);
Login:=False;
self.close;
end;
end;
end;
procedure TFrm_Login.edtPasswordKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_RETURN then
bbtnOk.SetFocus ;
end;
procedure TFrm_Login.FormCreate(Sender: TObject);
begin
//
Login:=false;
// 初始化用户选择列表
with JDBCQ_Temp do
begin
close;
SQL.Clear;
SQL.Add('SELECT 用户名 From 用户信息表');
Open;
while not eof do
begin
cbUserId.Items.Add(FieldByName('用户名').AsString);
Next;
end;
close;
end;
cbUserId.ItemIndex:= 0;
end;
房屋出租查询
在“房屋中介管理系统”中,查询功能确实是一个十分重要的功能,尤其是在处理大量房屋信息时。为了满足用户的需求,系统应该具有一个比较人性化的查询系统,可以根据不同的要求来进行查询。查询的速度要快捷,查询的结果要准确。系统可以根据以下几个方面来进行查询:根据房屋地址、根据房屋状态、根据户主、根据房屋朝向等来进行模糊查询。
在设计查询系统时,可以考虑采用一些先进的技术来提高查询效率和精度。例如,可以使用索引和缓存技术来加快查询速度,可以采用数据挖掘和机器学习算法来提高查询精度。此外,查询系统还应该具备一些人性化的功能,例如支持多种查询方式、支持分页查询、支持高级查询等。这些功能可以提高用户的查询体验,提高系统的易用性和可靠性。

部分示例代码:
begin
inherited;
// 构造过滤条件
strFilter := '';
if trim(edtNo.text)<>'' then
strFilter := strFilter + ' (收件号 like '+'''%'+edtNo.text+'%'')'+' AND ';
//
if cboStatus.itemindex=1 then
begin
strFilter := strFilter + ' 状态='+'''未处理'''+' AND ';
end
else if cboStatus.itemindex=2 then
begin
strFilter := strFilter + ' 状态='+'''已处理'''+' AND ';
end
else if cboStatus.itemindex=3 then
begin
strFilter := strFilter + ' 状态='+'''已作废'''+' AND ';
end;
//
if trim(edtHouseAddr.text)<>'' then
strFilter := strFilter + ' (房屋地址 like '+'''%'+edtHouseAddr.text+'%'')'+' AND ';
if trim(cbHouseType.text)<>'' then
strFilter := strFilter + ' 房型='+''''+cbHouseType.text+''''+' AND ';
if trim(cbHouseWay.text)<>'' then
strFilter := strFilter + ' 朝向='+''''+cbHouseWay.text+''''+' AND ';
if trim(cbHouseArea.text)<>'' then
strFilter := strFilter + ' 区域='+''''+cbHouseArea.text+''''+' AND ';
if trim(edtLinkName.text)<>'' then
strFilter := strFilter + ' (联系人 like '+'''%'+edtLinkName.text+'%'')'+' AND ';
if chkStartDate.Checked then
strFilter := strFilter + ' 创建日期 >= #'+FormatDateTime('yyyy-mm-dd',dtpStartDate.DateTime)+'# AND ';
if chkEndDate.Checked then
strFilter := strFilter + ' 创建日期 <= #'+FormatDateTime('yyyy-mm-dd', dtpEndDate.DateTime)+'# AND ';
//
if strFilter<>'' then
strFilter :=copy( strFilter,0,Length(strFilter)-5 );
//查询
if strFilter='' then
begin
ParmJDBCqData.Filtered:=false;
end
else
begin
ParmJDBCqData.Filtered:=true;
ParmJDBCqData.Filter:=strFilter;
end;
//
close;
end;
end.
本文详细介绍了采用JSP2.0和SQL开发的房屋租赁管理系统,包括系统需求分析、功能模块如房屋出租登记、查询处理和合同管理,以及用户权限的设定。系统通过模块化设计,实现了高内聚低耦合,确保了数据的准确性和安全性。
1万+

被折叠的 条评论
为什么被折叠?



