数据库原理课程设计-房屋租赁管理系统.doc
《数据库原理课程设计-房屋租赁管理系统.doc》由会员分享,可在线阅读,更多相关《数据库原理课程设计-房屋租赁管理系统.doc(34页珍藏版)》请在咨信网上搜索。
各专业全套优秀毕业设计图纸 各专业全套优秀毕业设计图纸 成 绩 评 阅 人 评阅日期 数据库原理课程设计 题目: 房屋租赁管理系统 班 级: 网络12-1 学 号: 34 姓 名: 指导老师: 2014年 10月 3 日 目录 1.需求分析 2 1.1功能分析 2 1.2工作流图 2 1.3数据流图 3 1.4数据字典 3 2.概念模型设计 5 3.逻辑结构设计 7 4.功能设计 7 5.功能模块的实现 8 5.1 系统界面 8 5.2主要源代码 13 6.总结 33 7.参考文献 33 1.需求分析 1.1功能分析 某房屋租赁公司欲建立一个房屋租赁服务系统,统一管理房主和租赁者信息,以便快速地提供租赁服务。该系统具有以下功能: l 登记房主信息。对于每名房主,系统需登记其姓名、住址和联系电话。 l 登记房屋信息。所有在系统中登记的房屋都有一个唯一的识别号(对于新增加的房屋,系统会自动为其分配一个识别号)。除此之外,还需登记房屋的地址、房型(如平房、带阳台的楼房、独立式住宅等)、最多能容纳的房客数、租金及房屋状态(待租赁、已出租)。一名房主可以在系统中登记多个待租赁的房屋。 l 登记租赁者信息。所有想通过该系统租赁房屋的租赁者,必须事先在系统中登记个人信息,包括:姓名、住址、电话号码、身份证编号、性别。 l 租赁房屋。已经在系统中登记的租赁者,可以得到一分系统提供的待租赁房屋列表。一旦租赁者从中找到合适的房屋,就可以提出看房请求。系统会安排租赁者与房主见面。对于每次看房,系统会生成一条看房记录。 l 收取手续费。每成功一次租赁服务,系统根据租赁价格按比例生成费用清单。 l 变更房屋状态。当租赁者与房主达成租房或退房协议后,房主向系统提交变更房屋状态请求。 l 用户论坛。租赁者在论坛上寻找合租对象、与房主进行交流。 1.2工作流图 1.3数据流图 1.4数据字典 该数据库字典如下表: 库表登记 表名 中文名 handingcharges 手续费登记表 houseowner 房主信息表 houses 房屋信息表 renter 租赁者信息表 rentered 已出租的房屋表 seehistory 看房记录表 手续费登记表handingcharges houseower_name 房主的名字 houseid 房屋的编号 house_address 房屋的地址 rent_value 房屋的租金 handlingcharge 房屋的手续费 房主信息表houseowner houseower_name 房主的名字 houseower_address 房主的地址 houseower_phone 房主的电话 房屋信息表houses houseid 房屋的编号 houseower_name 房主的名字 house_address 房屋的地址 rent_value 租金 people_number 容纳最大的人数 house_type 房屋的类型 house_state 房屋的状态 租赁者信息表renter renter_id 租赁者的编号 renter_name 租赁者的姓名 renter_sex 租赁者的性别 renter_address 租赁则的地址 renter_phone 租赁者的电话 identity_card 租赁者的身份证 已出租的房屋表rentered houseid 房屋的编号 rentered_name 租赁者的姓名 看房记录表seehistory rentername 看房的租赁者 houseid 房屋编号 2.概念模型设计 图 1 房主的E-R实体图 图 2 房屋的E-R实体图 图 3 租赁者的E-R实体图 图 3 实体及其联系的E-R图 3.逻辑结构设计 由图1转换为关系模型:房主(姓名,地址,电话) 由图2转换为关系模型:房屋(编号,房主名字,地址,租金,容纳人数,类型,状态) 由图3转换为关系模型:租赁者(编号,名字,性别,地址,电话,身份证) 由图4转换为关系模型:看房记录(租赁者的姓名,房屋的编号) 手续费(房屋编号,手续费) 已租赁房屋(租赁者,房屋的编号) 4.功能设计 图 5 功能结构图 5.功能模块的实现 5.1 系统界面 图 6 系统登录界面 图 7 系统主界面 图 8 登记房屋 图 8 租赁者申请看房记录 图 9 更变房屋状态 图 10 查看租房记录 图 11 手续费 图 12 待租赁房屋 图 13 查看个人信息 图 14 修改个人信息 图 14 修改密码 图 15 注册页面 5.2主要源代码 (1)index.jsp <%@ page contentType="text/html;charset=GBK" language="java" import="java.util.*"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>房屋租赁系统</title> </head> <frameset rows="210,*" cols="*", frameborder="No" border="0" framespacing="0"> <frame src="jsp/top.jsp" name="top" scrolling="no" norresize> <frame src="jsp/first.jsp" name="main" scrolling="yes"> </frameset> <noframes><body> </body></noframes> </html> (2)first.jsp <%@ page contentType="text/html;charset=GBK" language="java" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>欢迎光临</title> </head> <body> <table align="center" width="579" height="300" border="0" celpadding="0"> <tr> <td align="center" valign="top" bgcolor="#FFFFFF"> <p> </p> <table width="568" height="178" border="0" cellpadding="0" cellspacing="0" background="../images/background.gif"> <tr> <td> </td> </tr> </table> </td> </tr> </table> </body> </html> (3)top.jsp <%@ page language="java" import="java.util.*" pageEncoding="GBK"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; Date date=new Date(); %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body> <div align="center" class="style1"> <table width="753" height="193" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="166" height="150" colspan="8" background="../images/banner.jpg"> </td> </tr> <tr> <td width="120" height="20" background="../images/date.jpg" ><span class="style6"> <%=date.getYear()+1900%>年<%=date.getMonth()+1%>月<%=date.getDate()%>日 </span></td> <td width="92" height="20" align="center" background="../images/bar.jpg"> <a href="information/houseowner.jsp" target="main">登记房主</a> </td> <td width="92" height="20" align="center" background="../images/bar.jpg"> <a href="information/house.jsp" target="main">登记房屋</a> </td> <td width="92" height="20" align="center" background="../images/bar.jpg"> <a href="information/Renter.jsp" target="main">登记租赁者</a> </td> <td width="92" height="20" align="center" background="../images/bar.jpg"> <a href="information/userchat.jsp" target="main">用户论坛</a> </td> </tr> </table> </div> </body> </html> (4)house.jsp <%@ page contentType="text/html;charset=GBK" language="java" import="java.util.*"%> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=GBK" /> <script type="text/javascript"> function bt_submit_onclick() { location.replace('./SurWetland.jsp'); } function checkForm() { var subform = document.form_s; var houseower_name = subform.houseower_name.value; var house_address = subform.house_address.value; if(monitor_units==""||monitor_units.replace(/(^\s*)|(\s*$)/g,"")=="") { alert("房主姓名不能为空!"); subform.monitor_units.focus(); return false; } if(farmername=="" || farmername.replace(/(^\s*)|(\s*$)/g,"")=="") { alert("人工湿地名称不能为空!"); subform.farmername.focus(); return false; } subform.action="bb" } function file_check(){ var subform = document.form_uqfile; var file=subform.file1.value; if(file == ""){ alert('请选择要上传的文件'); return false; }else{ subform.action="/iep/afile.do?files="+file; subform.submit(); } } //弹出选择历史 function LineQueryOpen() { var subform = document.form_s; var monitor_units = subform.monitor_units.value; var farmername = subform.farmername.value; if(monitor_units==""||monitor_units.replace(/(^\s*)|(\s*$)/g,"")=="") { alert("检测单位不能为空!"); subform.monitor_units.focus(); return false; } if(farmername=="" || farmername.replace(/(^\s*)|(\s*$)/g,"")=="") { alert("人工湿地名称不能为空!"); subform.farmername.focus(); return false; } window.showModalDialog('/iep/SurWetland.do?method=findEvents&&farmername='+farmername, '','dialogWidth:1000px; dialogHeight:420px;'); } </script> <style type="text/css"> </style> <title>登记房屋</title> </head> <body> <table align="center" cellpadding="0" cellspacing="0"> <tr> <td> <form name="form_s" action="bb" method="post" > <br /> <table> <tr> <td> 房主姓名: </td> <td> <input name="houseower_name" value="${houseower_name}" onfocus="this.value=''" type="text" style="width: 90px; margin-left: 5px; height: 20px; font-size: 12px;" onblur="if(this.value.replace(/^ +| +$/g,'')=='')alert('请输入房主姓名!')" /> </td> </tr> <tr> <td> </td> </tr> <tr> <td> 房屋地址: </td> <td> <input name="house_address" value="${house_address}" onfocus="this.value=''" type="text" style="width: 90px; margin-left: 5px; height: 20px; font-size: 12px;" onblur="if(this.value.replace(/^ +| +$/g,'')=='')alert('请输入房屋地址!')" /> </td> </tr> <tr> <td> </td> </tr> <tr> <td> 房屋租金: </td> <td> <input name="rent_value" type="text" value="${rent_value}" onfocus="this.value=''" style="width: 90px; margin-left: 5px; height: 20px; font-size: 12px;" onblur="if(this.value.replace(/^ +| +$/g,'')=='')alert('请输入房屋租金!')" /> </td> </tr> <tr> <td> </td> </tr> <tr> <td> 最多能容纳的房客数: </td> <td> <input name="people_number" value="${people_number}" onfocus="this.value=''" type="text" style="width: 90px; margin-left: 5px; height: 20px; font-size: 12px;" onblur="if(this.value.replace(/^ +| +$/g,'')=='')alert('请输入最多能容纳的房客数!')" /> </td> </tr> <tr> <td> </td> </tr> <tr> <td> 房屋类型: </td> <td> <select name="house_type" size=1 > <option value="平房">平房</option> <option value="带阳台的楼房">带阳台的楼房</option> <option value="独立式住宅">独立式住宅</option> </td> </tr> <tr> <td> </td> </tr> <tr> <td> 房屋状态: </td> <td> <select name="house_state" size=1 > <option value="待租赁">待租赁</option> <option value="已出租">已出租</option> </td> </tr> </table> <br> <table> <tr> <td> </td> </tr> </table> <table> <tr> <td width="450"> </td> <td> <input name="submit" type="submit" value="提交" style="width: 80px; margin-left: 5px; height: 25px; font-size: 12px;" /> </td> <td width="20"> </td> <td> <input name="button" type="button" value="重置" onClick="document.form_s.reset();" style="width: 80px; margin-left: 5px; height: 25px; font-size: 12px;" /> </td> <td width="20"> </td> <td> <INPUT type="button" value="历史数据" accessKey="btnQuery" onclick="LineQueryOpen()" style="width: 80px; margin-left: 5px; height: 25px; font-size: 12px;" /> </tr> </table> </form> </body> </html> (5)houseinfo.jsp <%@ page language="java" import="java.util.*" pageEncoding="GBK"%> <%@page import="java.sql.ResultSet"%> <%@page import="java.sql.ResultSetMetaData"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body> <table align="center" cellpadding="0" cellspacing="0"> <tr> <td> </td> </tr> <tr> <td> </td> </tr> <tr> <td> 待租赁房屋列表 </td> </tr> </table> <% ResultSet rs=(ResultSet)request.getAttribute("result"); ResultSetMetaData rd=rs.getMetaData(); int columnNum=rd.getColumnCount(); %> <table align="center" cellpadding="5" cellspacing="10"> <tr> <td>房屋编号</td> <td>房主姓名</td> <td>房屋地址</td> <td>房屋租金</td> <td>房屋最大容纳人数</td> <td>房屋的类型</td> <td>请求看房</td> </tr> <% while(rs.next()){ int id=rs.getInt(1); %> <tr> <td><%=id%></td> <td><%=rs.getString(2)%></td> <td><%=rs.getString(3)%></td> <td><%=rs.getInt(4)%></td> <td><%=rs.getString(5)%></td> <td><%=rs.getString(6)%></td> <td> <a href="ee?id=<%=id%>" onClick="alert('已申请看房请求!');">申请</a> </td> </tr> <%} rs.close();%> </table> </body> </html> (6)renter.jsp <%@ page contentType="text/html;charset=GBK" language="java" import="java.util.*"%> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>登记房主</title> </head> <body> <table align="center" cellpadding="0" cellspacing="0"> <tr> <td> <form name="form_s" method="post" action="cc"> <br /> <table> <tr> <td> 姓名: </td> <td> <input name="renter_name" value="${renter_name}" onfocus="this.value=''" type="text" style="width: 90px; margin-left: 5px; height: 20px; font-size: 12px;" onblur="if(this.value.replace(/^ +| +$/g,'')=='')alert('请输入房主姓名!')" /> </td> </tr> <tr> <td> </td> </tr> <tr> <td> 性别: </td> <td> <input name="renter_sex" value="${renter_sex}" onfocus="this.value=''" type="text" style="width: 90px; margin-left: 5px; height: 20px; font-size: 12px;" onblur="if(this.value.replace(/^ +| +$/g,'')=='')alert('请输入性别!')" /> </td> </tr> <tr> <td> </td> </tr> <tr> <td> 住址: </td> <td> <input name="renter_address" value="${renter_address}" onfocus="this.value=''" type="text" style="width: 90px; margin-left: 5px; height: 20px; font-size: 12px;" onblur="if(this.value.replace(/^ +| +$/g,'')=='')alert('请输入住址!')" /> </td> </tr> <tr> <td> </td> </tr> <tr> <td> 联系电话: </td> <td> <input name="renter_phone" type="text" value="${renter_phone}" onfocus="this.value=''" style="width: 90px; margin-left: 5px; height: 20px; font-size: 12px;" onblur="if(this.value.replace(/^ +| +$/g,'')=='')alert('请输入联系电话!')" /> </td> </tr> <tr> <td> </td> </tr> <tr> <td> 身份证号码: </td> <td> <input name="identity_card" value="${identity_card}" onfocus="this.value=''" type="text" style="width: 90px; margin-left: 5px; height: 20px; font-size: 12px;" onblur="if(this.value.replace(/^ +| +$/g,'')=='')alert('请输入身份证号码!')" /> </td> </tr> <tr> <td> </td> </tr> </table> <br> <table> <tr> <td> </td> </tr> </table> <table> <tr>- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 原理 课程设计 房屋 租赁 管理 系统
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文