房屋出租管理系统需求分析实施报告.docx
- 文档编号:29905125
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:33
- 大小:2.45MB
房屋出租管理系统需求分析实施报告.docx
《房屋出租管理系统需求分析实施报告.docx》由会员分享,可在线阅读,更多相关《房屋出租管理系统需求分析实施报告.docx(33页珍藏版)》请在冰豆网上搜索。
房屋出租管理系统需求分析实施报告
湖南财政经济院
课程设计报告
课程
面向对象程序设计
题目
房屋出租管理系统
专业
信息管理与信息系统
班级
姓名
指导教师
2017
年
56
月
512
日
课程设计成绩评定表
系别:
信息管理与信息技术学院专业:
2014级信息管理与信息系统
学号
姓名
专题*(设计题目)
房屋出租管理系统
评定成绩
功
能
要
求
数据库要求
项目
评判标准(在每一项目对应的标准下方空格内标记√)
优秀
良好
中等
及格
不及格
工作量
资料收集方案设计
综合应用能力
能力技术水平
报告撰写质量
实习态度
评语:
指导老师:
年 月 日
1绪论
该管理系统采用企业现有的软硬件环境及科学的管理系统开发方案,建立房屋租赁信息管理系统,实现房屋租赁信息管理的计算机自动化。
系统应符合物业管理企业原有的房屋租赁管理制度,并达到操作直观、方便、实用、安全等要求。
将房屋租赁过程中产生的房屋信息归入系统,并利用计算机实现对房屋的分类、查询、统计等功能。
高效的房屋信息查询、预警功能,建立一个多角度的查询系统,为用户提供强大的查询功能,将房屋位置、户型、房屋面积、以及租赁合同等房屋管理中的每一要素都作为查询点,形成计算机查询与租赁合同期预警体系,提供高效便捷的查询服务。
以合同管理为主线,实现出租房登记、客户管理、合同鉴定、租金管理等功能。
该系统实现的是系统管理员对房东,房客,房屋,合同的管理;房客对房屋,房东的查询以及合同的上传打印功能;房东对房屋,房客,合同,租金的管理以及对租房请求的申请的管理。
不同的对象有不同的而功能界面,功能比较完善。
本系统总共有23个窗体,6张表格,采用三层架构的方法实现。
课程设计要求实现:
1.房屋管理:
实现管理员或者房东对房屋信息的增删改查功能;
2.房东管理:
实现管理员对房东信息的增删改查功能;
3.房客管理:
实现管理员或者房东对房客信息的查询,房东对房客租房请求的审核功能;
4.合同管理:
房客把合同上传,房东审核合同。
5.租房管理:
房客的租房请求,房东的同意租房功能。
实验环境:
一台装有MicrosoftVisual2012,MicrosoftSQLserver2008R2软件的计算机。
2需求分析
2.1业务流程分析
2.1.1顶层业务流程图:
2.1.2一级业务流程图:
一级业务流程图之房屋管理:
一级业务流程图之房客管理:
一级业务流程图之房东管理:
一级业务流程图之合同管理:
一级业务流程图出租管理:
2.2数据流程图:
用户登录模块:
该系统的用户包括:
管理员,房东,房客。
查询数据库中的用户表(manager表)之后,有该用户就显示登录成功,没有该用户就显示登录失败,则显示提示注册用户的提示,注册之后更新用户表。
管理员功能界面模块:
包括房屋管理,房客管理,房东管理,合同管理。
房东管理功能界面:
包括房屋管理,房客管理,合同管理,租金管理,接受租房。
房客管理功能界面:
包括查询房屋,查询房东,租房请求,打印合同。
2.3功能需求分析
2.3.1总的功能流程图:
该系统首先是用户根据自己的权限进入该系统,不同的用户有不同的权限和功能。
选择用户类型之后即可登陆不同类型的功能模块。
2.3.2细化功能:
1.登录管理:
实现以正确登录人员身份才能登陆系统的功能,正确登录之后才能进行之后的管理。
2.添加:
添加房屋信息和添加房东信息的功能。
3.删除:
删除房屋信息和删除房东信息的功能。
4.修改:
修改房屋信息和修改房东信息的功能。
5.查询房屋信息的功能:
房屋位置、价格、以及房屋管理中的每一要素都可以作为查询点。
6.查询房东信息的功能:
房东类型、房东姓名、以及房东管理中的每一要素都可以作为查询点。
7.修改密码:
用户可以修改密码。
8.房主或者管理员查询房客的功能:
请求租房房客的详细信息。
9.房主上传合同:
将word文档以文件的形式存储在磁盘内,在数据库中以路径的格式存储文件。
10.租客下载合同并上传,通过word格式下载下来填写并上传,更新磁盘文件中的内容。
3系统总体设计
3.1系统功能模块图
3.2系统功能描述
1.登录管理:
实现以正确用户名、密码和登录人员身份(或权限)才能登陆系统的功能,正确登录之后才能进行之后的管理。
如果登录失败,进行注册操作。
2.管理员管理模块:
房屋信息的增删改查,房客信息的查询,房东信息的增删改查,合同的获取和核查;
3.房东管理模块:
房屋的增删改查,房客的查询,合同的获取和审核,租金的查询,接受租房请求五大功能。
4.房客管理模块:
查询房屋,查询房东,租房请求,打印合同进行签字。
4数据库设计
4.1概念设计
E-R图:
这里的用户包括管理员,房东和房客,所以用户和房屋信息表,房东信息表之间是用户操作两张表的关系,这里的操作试着增删改查。
对于租房信息表的操作。
房东和管理员是查询的操作,对于房客来说是指插入信息的而操作。
而用户对于用户表的操作是指登录时的查询和未登录时的注册。
4.2逻辑设计
用户信息表(用户名,密码,权限);
房屋信息表(房屋编号,房屋位置,房东姓名,房屋的租赁状态,房屋类型,装修状况,屋内设施,房屋价格,入住时间,备注信息,房屋图片);
房东信息表(身份证号,姓名,性别,电话,房东账户余额,房东的类型,房东照片);
租房信息表(房屋编号,身份证号,房客的姓名,开始租住时间,租住月份数,联系电话,月租金,房客照片);
房东类型表(类型编号,类型名称);
房屋类型表(类型编号,类型名称);
4.3表设计
用户信息表:
(manager表)
user
nchar(10)
Password
nchar(10)
Type
Int
房屋信息表:
(roominf表)
num
nchar(10)
location
nchar(10)
name
nchar(10)
type
nchar(10)
design
nchar(10)
Faclities
nchar(10)
price
float
livetime
datetime
instruduction
varchar(50)
statue
nchar(10)
img
image
房东信息表:
(hosterinformation)
idnum
nvarchar(50)
typeName
nchar(10)
hostername
nchar(10)
sex
nchar(10)
telphone
nvarchar(50)
account
float
img
image
租房信息表(rentroom表):
roomnum
nchar(10)
idnum
nvarchar(50)
name
nchar(10)
starttime
datetime
monthnum
int
monthlyrent
float
telphone
nvarchar(50)
img
image
房东类型表(hostertype表):
Typeid
Int
Typename
nchar(10)
房屋类型表(housetype表):
Typeid
Int
Typename
nchar(10)
建立表约束:
(1)电话号码要为11位:
(len([telphone])=(11));
(2)房屋编号要为8位:
(len([num])=(8));
(3)用户密码为6位:
(len([password])=(6));
(4)身份证号码为18位:
(len([idnum])=(18));
5系统功能模块实现
5.1model层
实体(Model)用于实现UI—>BLL—>DAL之间的数据传递。
实体(Model)用于封装实体类数据结构,映射数据库的数据表或视图,用以描述业务中客观存在的对象。
Model分离出来是为了更好地解耦,为了更好地发挥分层的作用,更好地进行复用和扩展,增强灵活性。
这个就是该系统的Model层,包括了用户类,房东类,租房类,房屋类,房屋类型类,房东类型类。
5.2数据访问层
数据访问层:
使用ADO.NET中的数据操作类,为数据库中的每个表,设计1个数据访问类。
类中实现:
记录的插入、删除、单条记录的查询、记录集的查询、单条记录的有无判断等基本的数据操作方法。
封装每个数据表的基本记录操作,为实现业务逻辑提供数据库访问基础。
这是该系统的数据访问层,包括数据库的连接类,数据库的增删改查操作,用户类,房屋类,房客类,租房类的增删改查操作。
5.3业务逻辑层
业务逻辑层是数据访问层与界面层之间的桥梁。
通过业务逻辑层,界面层能够调用数据逻辑层中对数据库操作的方法。
同时,用过业务逻辑层,数据访问层能够把数据库的操作结果返回该界面层。
这是该系统的业务逻辑层,包括了房东类,房屋类,用户类,租房类的所有业务操作。
5.4界面层
展现给用户的界面,即用户在使用一个系统的时候他的所见所得。
用于接收用户输入的数据和显示处理后用户需要的数据。
这是该系统的界面层,通过连接数据库,实现系统所需的所有功能。
清晰明了地展示后台数据。
非常便捷。
5.5功能展示以及代码
1.登录模块:
选择用户类型,通过用户名和密码进行登录操作。
如果无法登陆请先进行注册。
实现不同用户类型登录的代码如下:
strings1=comboBox1.Text;
intflag=0;
if(s1=="管理员")
{
ma.Type=0;
flag=ma.Type;
}
if(s1=="房东")
{
ma.Type=1;
flag=ma.Type;
}
if(s1=="房客")
{
ma.Type=2;
flag=ma.Type;
}
ma.User=comboBox2.Text;
ma.Password=textBox1.Text;
//验证登录
if(auser.managerlogin(comboBox2.Text,textBox1.Text,flag))
{
MessageBox.Show("该用户登录成功!
");
this.Hide();
if(ma.Type==0)
{
//管理员的主窗体
MainofManagermai=newMainofManager(ma);
mai.ShowDialog();
}
if(ma.Type==1)
{
//房东的主窗体
MainofHostermah=newMainofHoster(ma);
mah.ShowDialog();
}
if(ma.Type==2)
{
//房客的主窗体
RenterMainmar=newRenterMain(ma);
mar.ShowDialog();
}
}
else
{
MessageBox.Show("没有该用户,请先注册!
");
}
2.管理员管理模块:
从中可以看出包括房屋管理,房客管理,房东管理,合同管理四大模块。
2.1房屋管理:
treeview中显示房屋的各种类型,listview中显示房屋的图片,以及datagrid中显示该类型房屋的所有信息。
一目了然。
房屋管理模块的而功能是对房屋的增删改查。
在这里也可以修改用户的密码。
2.1.1房屋的增删改查以及修改当前的用户密码:
房屋的增加:
房屋的修改:
房屋的查询:
房屋类型的增删改查操作:
修改用户密码:
这里在点击用户中心修改密码的时候,用户名,用户类型,密码要自动显示在修改密码窗体上。
2.2房东管理模块:
和房屋管理模块的思路是一样的。
所以该部分的功能实现就不贴照片了。
2.3合同管理:
获取word文档,这个word文档是房客已经签过字的文档,所以可以查看房客的签名。
(下图中最后一行可以看到房客的签名)
实现的代码如下:
//调用打开文件对话框获取要打开的文件WORD文件,RTF文件,文本文件路径名称
OpenFileDialogopd=newOpenFileDialog();
opd.InitialDirectory="D:
/14信管二30班王文雅三层架构实例/wordfile";
opd.Filter="Word文档(*.doc)|*.doc|文本文档(*.txt)|*.txt|RTF文档(*.rtf)|*.rtf|所有文档(*.*)|*.*";
opd.FilterIndex=1;
if(opd.ShowDialog()==DialogResult.OK&&opd.FileName.Length>0)
{
//建立Word类的实例,缺点:
不能正确读取表格,图片等等的显示
ApplicationClassapp=newMicrosoft.Office.Interop.Word.ApplicationClass();
Documentdoc=null;
objectmissing=System.Reflection.Missing.Value;
objectFileName=opd.FileName;
objectreadOnly=false;
objectisVisible=true;
objectindex=0;
try
{
doc=app.Documents.Open(refFileName,refmissing,refreadOnly,
refmissing,refmissing,refmissing,refmissing,refmissing,
refmissing,refmissing,refmissing,refisVisible,refmissing,
refmissing,refmissing,refmissing);
doc.ActiveWindow.Selection.WholeStory();
doc.ActiveWindow.Selection.Copy();
//从剪切板获取数据
IDataObjectdata=Clipboard.GetDataObject();
this.richTextBox1.Text=data.GetData(DataFormats.Text).ToString();
}
finally
{
if(doc!
=null)
{
doc.Close(refmissing,refmissing,refmissing);
doc=null;
}
if(app!
=null)
{
app.Quit(refmissing,refmissing,refmissing);
app=null;
}
}
}
2.4房客管理:
这里是管理员对已经递交了租房请求的房客的查询。
3.房客管理模块:
包括查询房屋,查询房东,租房请求,打印合同四大模块。
3.1查询房屋:
可以通过备注,居住日期,价格等房屋信息查询房屋。
3.2查询房东:
通过身份证号码,房东姓名等租房信息可以查询到房东的信息。
3.3申请租房:
需要把房客自己的所有信息都上传,以便房东的审核。
3.4打印合同:
打印合同是为了签字,签完字之后将文件已房屋编号为名的格式保存。
方便房东的获取合同进行审核。
实现打印的代码如下:
Microsoft.Office.Interop.Word.ApplicationwordApp=newMicrosoft.Office.Interop.Word.Application();
objectfileName=@"D:
/14信管二30班王文雅三层架构实例/wordfile/合同.doc";
objectconfirmConversions=Type.Missing;
objectreadOnly=true;
objectaddToRecentFiles=Type.Missing;
objectpasswordDoc=Type.Missing;
objectpasswordTemplate=Type.Missing;
objectrevert=Type.Missing;
objectwritepwdoc=Type.Missing;
objectwritepwTemplate=Type.Missing;
objectformat=Type.Missing;
objectencoding=Type.Missing;
objectvisible=Type.Missing;
objectopenRepair=Type.Missing;
objectdocDirection=Type.Missing;
objectnotEncoding=Type.Missing;
objectxmlTransform=Type.Missing;
Microsoft.Office.Interop.Word.Documentdoc=wordApp.Documents.Open(
reffileName,refconfirmConversions,refreadOnly,refaddToRecentFiles,
refpasswordDoc,refpasswordTemplate,refrevert,refwritepwdoc,
refwritepwTemplate,refformat,refencoding,refvisible,refopenRepair,
refdocDirection,refnotEncoding,refxmlTransform);
wordApp.Visible=true;
doc.PrintPreview();
4.房东管理模块:
包括房屋管理,租金管理,房客管理,合同管理以及接受租房。
合同管理功能和上面的管理员的合同管理是一样的就不写了。
4.1租金管理:
查询每个房子的租金。
4.2房客管理:
查询目前有哪些房客要租房。
(和上面的管理员的房客管理一样,不再啰嗦)。
4.3接受租房:
首先是要查看合同,然后是查看房客信息,这里在datagrid中没选中一行即可显示房客的详细信息。
点击同意出租的时候要在房屋信息表中把表明未出租的信息变为已出租。
同意出租的代码如下所示:
//显示出租之后房客的所有信息
stringconstr=Properties.Settings.Default.constr;
privatevoidAgreeRent_Load(objectsender,EventArgse)
{
DataTabledtb=newDataTable();
SqlConnectioncon=newSqlConnection(constr);
stringsql=string.Format("Select*fromroomrent");
SqlDataAdapterada=newSqlDataAdapter(sql,con);
ada.Fill(dtb);
dataGridView1.DataSource=dtb;
dataGridView1.Columns["img"].Visible=false;
}
//同意出租,即意味着:
房间的未出租状态要变为已出租
privatevoidbutton2_Click(objectsender,EventArgse)
{
//roominformationroom=newroominformation();
//修改房屋的出租状态
HouseDalhda=newHouseDal();
if(hda.statue(num,"已出租"))
{
MessageBox.Show(num+"号房已经被同意出租啦!
");
}
else
{
MessageBox.Show("房东还没有同意,建议电话咨询!
");
}
}
6遇到的问题和解决办法
(1)在将查询之后的数据填充到datagrid中时因为忘记将数据加到datagrid中的行中而不能显示。
type.TypeId=(int)dataGridView1.CurrentRow.Cells[0].Value;
textBox1.Text=dataGridView1.CurrentRow.Cells[0].Value.ToString();
type.TypeName=textBox2.Text=dataGridView1.CurrentRow.Cells[1].Value.ToString();
(2)不能实现获取合同和打印合同时,解决的办法是:
首先在添加引入中引入:
Microsoft.Office.Interop.Word;然后:
usingMicrosoft.Office.Interop.Word;这样做完之后还是或有Application接口不能使用的错误,这个问题的解决就是:
在引用中右Microsoft.Office.Interop.Word引用,打开它的属性,把嵌入互操作类型改为:
false。
7总结
当我把所有的代码都写完的时候,真的是一种满足感和成就感油然而生,就算是已经连续熬夜两天的状况。
但是我也要自我检讨一下,因为代码是三个晚上熬夜写的,因为当我开始建数据库的时候就就一直感觉无从下手,我想的太多,做的太少。
我觉得写系统的时候一定要克服为难的心理,不要一直自己想呀想,试图通过想象就可以一步到位,不用经过多的修改就可以写出一个完美的系统。
这是不可能的,一定要先实现再完美,系统的完善一定是不断得试错,不断地改错才会逐步完善。
所以写系统的时候可以先不需要建一个完美的数据库出来,数据库的完善也是要通过代码的调整而调整的。
所以可以一边调研,一边完善数据库,一边实现功能。
我觉得这个系统我的数据库建的不好,没有实现所有的实体关系都是1:
n的关系。
所以数据库的建立还需要改进。
尽管现在所有的代码都实现了,但是还是有很多细节没有注意到,下面这些细节都是需要后续的工作去完成。
1.自动登录和记住密码的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 房屋出租 管理 系统 需求 分析 实施 报告