【毕业设计】JSP+SQL+JDBC房屋租赁管理信息系统Java课程设计

本文详细介绍了采用JSP2.0和SQL开发的房屋租赁管理系统,包括系统需求分析、功能模块如房屋出租登记、查询处理和合同管理,以及用户权限的设定。系统通过模块化设计,实现了高内聚低耦合,确保了数据的准确性和安全性。

本文主要探讨“房屋租赁管理系统”的理论基础和设计思想。系统的开发过程和功能实现为主线,论述数据库管理软件的开发过程。本系统以软件工程理论作为系统开发的理论基础,以客户机/服务器模式的关系型数据库作为后台,以专业数据库开发语言作为实现手段的数据库管理软件的开发过程分析和理论研究。

开发工具方面,本系统采用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.

免费下载全部源码

1.系统功能模块图:改进完善业务流程图,分析用户需要系统完成哪些任务,逐层分解,画出功能层次图。功能分析是要在设计过程中明确完成设计后的“淮南师范学院房屋租赁管理系统”所能具备的功能。 淮南师范学院房屋租赁管理系统的功能模块划分图为: 2.业务流程分析:描述系统的业务流程,画出规范的业务流程图 3.确定实体、联系及其属性,并确定主实体的主标识,画出ERD(不少于两个主实体,一个从实体,一个联系和24个属性);检查改正错误;对其中复杂的多元联系进行分析,必要则改进。 概念模型有以下几个主要特点: (1)能充分反映实际应用中的实体及其相互之间的联系,是现实世界的一个真实模型。 (2)由于概念模型独立于具体的计算机系统和具体的数据库管理系统,因此,便于用户理解,有利于用户积极参与设计工作。 (3)概念模型容易修改。当问题有变化时,反映实际问题的概念模型可以很方便地扩充和修改。 (4)便于向各种模型转换。由于概念模型不依赖于具体的数据库管理系统,因此,容易向关系模型、网状模型和层次模型等各种模型转换。 概念结构设计要借助于某种方便又直观的描述工具,E-R(实体-联系,Entity-Relationship)图是设计概念模型的有力工具。在E-R图中,用三种图框分别表示实体、属性和实体之间的联系,其规定如下: 用矩形框表示实体,框内标明实体名; 用椭圆形框表示实体的属性,框内标明属性名; 用菱形框表示实体间的联系,框内标明联系名; 实体与其属性之间以无向边联接,菱形框与相关实体之间也用无向边联接,并无 向边旁标明联系的类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

互联小助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值