您的当前位置:首页正文

课程设计报告房屋中介管理系统

2024-07-16 来源:年旅网



课程设计报告一房屋中介管理系统

数据库课程设计报告

房屋中介管理系统

班级:

姓名:

学号:

指导教师:


完成口期:

数据库课程设计评分表班级姓名指导教师

题目:房屋中介管理系统

评分标准

评分标准分数权重评分的依据得分

AC

工作态度10态度端正,能主动认真完成各项内容,不迟到早退,出勤好。能

够完成各环节基本工作,出勤较好。

独立解决问题的能力10能独立完成数据库课程设计项目的各项任务,熟悉项口的

整体架构;具有独立分析、解决问题能力,具有独立调试程序与测试程序





的能力,程序结构清晰,逻辑严谨,功能完善。有一定的分析、解决问题能力。







能够在老师指导下完成任务的编码与调试工作,程序功能较完善。

程序完成及运行情况20完成率100%,程序运行正确。 完成率不足

70%

课程设计报告30格式规范,层次清晰,设计思想明确,解决问题方法合理,

会深刻。格式较规范,设计思想基木明确,解决问题方法较合理。

答辨问题回答30能准确回答老师提出的问题,并充分理解数据库开发技术,

程序逻辑清晰。能基本准确回答老师提出的问题

总分

指导教师(签字):

:介于AC之间为B级,低于CD级和E级。按各项指标打分后,总分

90^100 为优,8089为良,7079为屮,6069为及格,60 分以下为不及格。
目录 1章需求分析1

1.1开发背景1

1.2需求分析1

2章系统设计2

2.1项目规划2

2.2系统业务流程分析2

2.3系统业务流程分3

2.4系统E-R4

2.5开发及运行环境6





3.1数据表概要说明7

3.2主数据表的结构7

4章系统模块代码设计 14

4.1系统登录模块代码14

4.2用户信息管理登录模块设计代码15

4. 3 房源信息设置模块设计代码

23

16

20

4. 4 房源信息查询模块设计代码

26

4. 5 房源状态查询模块设计

4.6 员工信息设置模块设计代码

5章疑难问题解析27

5.1 通过触发器对视图进行添加、修改和删除操作27
5.2 结束数据库连接进程完成数据库还原276 章课程设计小结和心得 29

6.1小结29

6.2心得29

7章源代码30

7.1系统登录模块设计代码 30

7.2用户信息管理登录模块设计代码31

7.3房源信息设置模块设计代码33

7.4房源信息查询模块设计代码37





7.6员工信息设置模块设计代码44







1章需求分析

1.1开发背景

房屋屮介行业是房地产业的重要组成部分,其在房地产业经济运作的全过

程之中起着至关重要的作用,为房地产业的生产、流通和消费提供了多元化的服

务。房屋中介行业作为一个管理房屋信息的机构,其对信息的管理应该准确无误。

利用所学的软件工程设计思想、数据库等知识设计一个房屋屮介管理系统的软件

对于提高该中介机构的工作效率变得尤为重要。

1.2需求分析

通过实际调查,要求房屋中介管理系统应该具有一下功能:

(1)由于操作人员的计算机知识普遍偏低,因此要求系统具有良好的人机界

面;


(2) 如果系统的使用对象较多,则要求有较好的权限管理;

(3)方便的数据查询,支持自定义条件查询;

(4)自动匹配房源和求房意向信息;

(5)使用垃圾信息处理机制释放空间;

(6)在相应的权限下,删除数据方便简单、数据稳定性强;

(7)数据计算自动完成,尽量减少人工干预。

2章系统设计

2.1项目规划

房屋中介管理系统在出租者和求租者之间起到了桥梁的作用,是一款非常实用的

软件,它主要由用户信息管理、出租信息管理、求租信息管理、房源管

理、常用工具和系统管理等模块组成,具体规划如下。




(1)用户信息管理模块

该模块主要包括求租人员信息设置、出租人员信息设置、人员信息控制等功

能。

(2)求租管理模块

该模块主要包括房源查询设置、房源状态浏览、求租意向设置等功能。

(3)员工管理模块

该模块主要包括录入员工信息、员工信息控制等功能。

(4)出租管理模块

该模块主要包括房型设置、楼层设置、幢/座设置、装修程度设置、朝向设

置、用途设置等功能。

5 交费管理
该模块主要包括收费设置、收费记录等功能。 6 业务统计

该模块主要包括成交业务量统计等功能。

7窗体布局

该模块主要包括层叠排列、水平排列、垂直平铺等功能。

8常用工具

该模块主要包括记事本、计算器、WordExcel等功能。

9系统管理

该模块主要包括口令设置、退出系统、数据备份、数据恢复、清理无效信息

等功能。





房屋中介管理系统是业务流程如图2.1所示图2.1房屋中介管理系统是业务

流程

2.3系统业务流程分

房屋中介管理系统功能结构图如图2.2所示

2.2房屋中介管理系统功能结构图

2.4系统E-R

(1)出租房屋信息E-R图如图2.3所示图2.3出租房屋信息E-R

(2)求购人信息E-R图如图2.4所示图2.4求购人信息E-R

2.5开发及运行环境

木系统开发平台及运行环境如下

系统开发平台:Microsoft VisualStudio 2008.
系统开发语言:C#。数据库管理系统软件:SQLServer 2005

运行平台:WindowsXP

运行环境:Microsoft.NET Framework

3章数据库设计

本系统采用SQLServer 2005数据库,名称为db-showHouse,其中包含15

张数据表。下面分别给岀数据表概要说明、主要数据表结构。

3.1数据表概要说明

数据表树形结构图包括系统所有数据表如图3.1所示

3.1数据表树形结构图包括系统所有数据表





3.2主数据表的结构







ltbemployee员工信息表

tb_employee用于保存员工的基木信息,该表的结构如图3.1所示。

3.1员工信息表

2tb_favor朝向信息表

tb_favor用于设置房源的朝向信息,该表的结构如图3.2所示。

3.2朝向信息表

3tbfitment装修信息表

tb_fitment用于设置房源装修信息,该表的结构如图3.3所示。图3.3

修信息表

4tb_floor楼层信息表

tb_floor 用于设置房源楼层信息,该表的结构如图3.4 所示。
3.4 楼层信息表 5tb_gov 民族信息表

tb.gov用于保存员工的民族信息,该表的结构如图3.5所示。

3.5民族信息表

6tb_log口志信息表

tb_log用于保存操作者使用该系统的日志记录,该表的结构如图3.6

示。图3.6日志信息表

7tb_house房屋信息表

tb_house用于保存房屋信息,该表的结构如图3.7所示。

tb.intent用于保存求租人对房源的要求信息,该表的结构如图38所示。





3.8意向信息表9tb_login登录信息表

tb_login用于用户进入系统时进行核对,该表的结构如图3.9所示。

3.9登录信息表

101b_MoneyAndInfo收费信息表

tb_MoneyAndlnfo用于保存收费信息,该表的结构如图3.10所示。

3.10收费信息表

lltb_mothed用途信息表

tb.mothed用于保存房源的用途信息,该表的结构如图311所示

3.11用途信息表12tb_seat幢座信息表

tb_seat用于保存房源幢座信息,该表的结构如图3.12所示。

3. 12 幢座信息表
13tbStudyDegree 学历信息表
tb_StudyDegree 用丁•设置员工的学历,该表的结构如图3.13 所示

3.13学历信息表14tb_type房型信息表

tb_typc用于保存房源房型信息,该表的结构如图3.14所示。

3.14房型信息表

15tb_user客户信息表

tb.user用于保存客户信息,该表的结构如图3.15所示

315客户信息表

4章系统模块代码设计





单击“登录”按钮,调用登录信息表的方法类,判断用户输入的用户名和

密码是否正确,如果正确,则登录房屋中介管理系统,同时分配该用户相应的权限,

否则弹出“密码有误,3次后将自动关闭……”的提示信息。“登录”按钮的Click

事件代码如下:

privatevoid btnLogin_Clickobject sender, EventArgs e #region//用户与密码是

否止确不止确给三次机会然后关闭//.Name. Text; //. //. m. ToString; string

powercm.select_tablecl; if power ! "none" // 调一个方法如果成功进入后台否则记

到登陆日制中frmMainfm new frmMain; t his .Hide; fm. M_s tr_Power//.t + +

power;fm. Show; else //. t〃〃


&& //. t"//当所有信息都没有时这是一个入口frmMain fm new frmMain; this .Hide;

fm. Show; else if ErrorNum cl.LName Num + 1;if Num 3 this. Close;else ErrorNum cl.
LName;Num + 1; MessageBox. Showz,密码有误,三次后将自动关闭,这是第〃+Num+

次〃;//.t string. Empty; //. us;

4.2用户信息管理登录模块设计代码

frmPeopleList窗体的load事件中,通过调用自定义Listinfo方法对

DataGridView控件进行数据绑定,显示所有系统用户信息。fnnPeopleList窗体的load

事件关键代码如下:

privatevoid frmPeopleListLoadobject sender, EventArgs e sbSq1. Appcnd

sclcct

UserIDs, User names, User homePhone, User cardID, User phone from





tb User";

ListlnfosbSql. ToString;

UnAblc;private

void

tp_cancel_Clickobjectsender, EventArgs e this. Close;

当用户在单击“出租人”选项卡或“求租人”选项卡时,在相应的选项卡

页中显示客户信息,实现代码如下:

privatevoid tabControll_SelectedIndexChangedobject sender, EventArgs e if

//. ectedTab. Text 〃出租人〃

sbWhereAppencTwhere

user_typelend' 〃;ListTnfosbSql. ToS(ring + sbWhere. ToString;

sbWhcr c. RemoveO, sbWhcr c. Leng th; else if //cctc dTab. Tex t 〃求租人〃

sbWhere. Append" where user_type‘ wan; ListlnfosbSql. ToString + sbWhere. ToString;

sbWhere. RemoveO, sbWhere. Length;

单击ListView

控件中的任一单元格,将对应的详细客户信息显示在相应选项卡的文本框中,实 现

代码如下:

private void listViewl_Clickobject sender, EventArgs e string

strlD

//.ecteditems[0]. Text. ToString;

string sql

"select





Uscr_IDs,User_names, Uscr_homcPhonc, Uscr_cardID, Uscr_phonc from tb_Uscrwhere

user_ids"" + strlD + 〃‘“;SqlCommandemdnew SqlCommandsql, con. conn; dr[2].

ToString;//.t dr[3]. ToString;//. t dr[4].ToString; dr. Close; con. closeCon;

tb_update.Enabled true;4. 3 房源信息设置模块设计代码

con.closeCon;

//• n;

SqlDataReoder

dr

cmd. ExecuteReader;

i f

strlD. SubstringO, 4

lend" //.ectTabO;

while dr. Read //• t

dr[0]ToString;//. t

dr[1].ToString;//. t

dr [2].ToString;//. t

dr[3]. ToString;//. t

dr [4].ToString;

else

//cctTeibl; while

dr.Read

//. t

dr[0]. ToString;//.t

dr[1]. ToString;//.t

frmllouse窗体的Load事件屮,通过M_str_Show变量判断本次调用窗体的

目地。如果是浏览或修改信息,则将相应的信息显示到控件上,如果是添加信息,


则将基木表的信息绑定到ComboBox控件上。frmHouse 窗休的Load事件中实 现代码如

下:

privatevoid frmHouse_Loadobject sender, EventArgs e string

strHouseStatestring. Empty; con.ConDatabase; flushFaove; flushfitment;





flushfloor; flushmothcd; flushseat;

String. Empty try SqlCommand cmd

tb_house〃,con.corm;//• n;strResult

flushtype;if M str Show new

SqlCommand/zselecthouse_ID from //.

tring;con.closeCon; if strResuIt

strResult

"houlOOl";else

string

strTemp strResult. Substring3; 〃您的房

strResult hou+ //. sestrTemp + 1;//. t
屋编号为:+ strResult; else //. ible



catch Exception ey con. closeCon;//. sage;

false;new SqlCommandz/select* from +

//. ible false; Visable; SqlCommand cmd

con .co nn;

//.n;





tb house where house ID+ M str Show

ifdr.HasRows while dr.Read

SqlDataReader dr cmd. ExecuteReader;

dr[1]. ToString; //•geLocation

IblHouseTD. Text dr[0]. ToString; //. t

dr[9]ToString; //ue

dr[8]. ToString; txtPrice. Text dr[12]. ToString; //. t

Convert. ToDecimaldr[11]. ToString; //•cctcdValue

dr[13]. ToString; strllouscStatc

dr [2]. ToString; //. ectedValue

dr[6]. ToString; //• cctccIValuc

dr[3].ToString; //•ectedValue

dr[5].ToString; //. cctcdValuc

dr[7]. ToString; //• ectedValue dr[10]. ToString; con. closeCon; if strllouseState

"none" // 什么时候出显 buttonl. Visible true;button2. Visible true; private void

flushFaove

con.ConDatabase; try SqlDataAdapter da new SqlDataAdapterselect * from t b-fcivor^,

con .con n; Dat eiTable dt new DataTable; da. Filldt; cboFavoe. DataSource dt.

DefaultView; cboFavoe. DisplayMember





/favor_name/;cboFavoe. ValueMember z/house_favorID/z;catch Exception cy //.sage;

private

void

flushfitment

con.ConDatabase;

try

SqlDataAdapter

da

new

SqlDataAdapter/zselect * from tb_f itment/z, con.co rm;

DataTable

dt

new DataTable;

da. Filldt;



cobZhuang. DataSource dt. DefaultView;

cobZhuang.DisplayMember

fi tment_name"; cobZhuang. ValueMember house_fitmentIDcatch Exception ey

//. sage; private void flushfloor con. ConDatabase; try SqlDataAdapter da new

SqlDataAdapter77select * from tb_floorzz, con. conn; DataTable dt new DataTable; da.

Filldt; cobFlood. DataSourcc

dt. DefaultView; cobFlood. DisplayMember z/floor name;


cobFlood. ValueMember zhouse_floorTDz/; catch Exception ey //. sage; private void

flushmothed con.ConDatabase; try SqlDataAdapter da new SqlDataAdapter77 select * from
tb_m ot hed〃,con .co rm; DataTable dt new DataTable; da. Filldt; cobUser.

DataSourcc dt. DefaultVicw;





"housemothedlD"; catch Exccption cy //• sage; private void flushscatcon.

ConDatabase;try SqlDataAdapter da new SqlDataAdapterselect* from tb_seacon. conn;

DataTabledt new DataTcible; da. Filldt; cobDong. DataSource dt. DefauItView;cobDong.

DisplayMcmbcrz/seat_namez;cobDong. ValueMember house_seatIDcatchException

ey//.sage;

单击“…”按钮,将更改后的信息立即在界面上显示,实现代码如下:

privatevoid flushtype con•ConDatabase; try SqlDataAdapter da new

SqlDataAdaptcrsclcct* from tb_typc〃,con.conn; DataTable dt new DataTable; da.

Filldt;cboXing. DataSource dt. DefaultView; cboXing. DisplayMembertype_ndnies

cboXing-ValueMember huose_typeIDcatchException ey //. sage; 4. 4 房源

信息查询模块设 计代码
frmSelect窗体的load 事件中,DataGridView控件进行数据绑定,以显示房
源相关信息。实现代码如下:

privatevoid frmSelect Loadobject sender, EventArgs e

trycon.

ConDatabase;SplDataAdapter

demew

SplDataAdapter

select*from

view_house”, con.conn;DataTable dtnew DataTable;da. Filldt;//. aSourcedt.

DefaultView;

catchExceptioney

//sage;





单击“查询”按钮,对strMidlc变量进行相关处理,动态生成SQL语句,

代码如下:

privatevoid buttonlClickobject sender, EventArgs e strSql. Appendselecl*

fromview_house where “ if

strMidl c. I ndcxOf "house comp3nyManic"!-l if st rWhere !string .Empty strWhere +

"and"+ 〃物业名称like'%+//. //. tring + 〃%';elsestrWhere +”

业 名 称 like '%

+

//. //. tring +

if

;

〃%' "; strMidlestrMidle. Replacehouse_conipanyName",

strMidle.TndexOfzhuose_typeTDz!-1 if strWhere ! string. Empty strWhere + "and "

+〃类型'+//.t. ToString + ;else strWhere + 〃类型'+//.t. ToString +

strMidlestrMidle. Replacehuose_typelD",#;if

st rMidl c. In dcx0fhousc_sc3tID"! -1 if strWhere ! st ring Empty st rWhere +

/zand" + 〃幢座+//. t. ToString + elsestrWhere + 〃幢座'+//.t. ToString+

;strMidlestrMidle.Replacehouse_se3tID",#〃;ifst rMidle IndexOf

zhouse_favorlDz !

-1if strWhere ! str in g. Emp ty

strWhere + "and " + "朝向'+ //. t. ToString + 〃‘〃 ;else strWhere + " 朝向

'"+ //. t. ToString +

;strMidlestrMidle. Replacezhouse_favorIDz,

"#; if strMidle. IndexOf/zhouse_fitinentlD" ! -1 if strWhere !

st ring Emp ty st rWhcre + "and " + 〃装«+ //tToS tring + 〃‘〃 ;clse

strWhere + "装修 ‘〃 + //. t. ToString + 〃‘" ; strMidle strMidleReplace

zhouse_fitmentIDz,

#

if





strMidl c. I ndexOfzhousem ot hcdID" ! -1 if st rWhere ! st ring. Emp ty

strWhere+ "and " + 〃用途'"+//.t. ToString + 〃‘〃elsestrWhere + 〃用途

'+//.t. ToString + '〃;strMidlestrMidle. Replacehouse_mothedID",

#//tbho. house mothedlDtbmo. house sothedlD

and

if



strMidle. TndexOfhouse_floorID!

-1if strWhere ! string. Empty

strWhere + "and " + 〃楼层'"+ //. t. ToString + '〃;clsc strWhere + "楼 层

'+ //t. ToString + 〃‘〃 ; strMidle strMidle. Replacezhouse_floorIDz,

; if strMidle. IndexOf/zhouse_buildYear/z ! T if strWhere ! string. Empty strWhere

+ "and " + 〃建筑年限'"+ //. //. tring + ;else strWhere + 〃建筑年限'+ //.

//. tring + '〃; strMidle

strMidleReplace/Zhouse_bui ldYearz,"#; if

strMidle. In dexOf,,house_area/ ! -1 if strWhere ! string. Empty str Where + zand
" + 〃建筑面积 like ' %+ //.//. tring + 〃%' ";clsc strWhere + " 建 筑面积

like ' %

+

//. //. tring +

strMidle

strMidle. Replace,,house_area/,

#“

if

strMidleIndexOfhouse_price" ! -1 if strWhere ! stringEmpty strWhere + "and "

+ 〃价钱 like '%+ //.//. tring + 〃%‘〃;else strWhere + 〃价钱 like '%

+ ////tring +

trMidlcstrMidlc. Replace//housc_price/,

#“ if strMidle. IndexOfz/house_IDz/ ! -1 if st rWhere ! st ring. Emp ty





strWhere+ "and " + 〃房屋编号like'%" + //. //. tring + 〃%'“;elsestrWhcrc

+ 〃房 屋编号 like ' %

+

//. //. tring +

〃%'〃 ;

strMidle

strMidle.Replacezhouse_IDz,"#;trystring strS //. gth - 4; if strS. Trim

"and"strWhcrc strWhcrc- SubstringO, strWhere. Length - 4;// 去掉尾andcatch return;

strSql.AppendstrWhere; string strK strSql. ToString; try SqlDatci.Adci.pterda new

SqlDataAdapterstrK,con. conn; DataTable clt new DataTable; da. Filldt; //• aSource

dt.DefaultView; ChuShiHua; clearAl1; //. bled false; catch Exception ey//. sage;

strWherestring. Empty; strMidle string. Empty;

strSql. RemoveO, //. gth; buttonl. Enabled false; //. t 〃“;

//•bled

false; checkBoxl1. Checked false;


4. 5 房源状态查询模块设计

frmStateHouse窗体的Load事件中,进行数据绑定,以显示房源的相关

信息。代码如下:

privatevoid frmStateHouse_Loadobject sender, EventArgs e //• bled false;

ListInfostrSql;con.ConDatabase;

房屋中介管理系统提供了房屋三种状态的表现形式,即“闲置”,“预定”

和“出租”,主要通过ListlnfostringSQL方法显示房屋不同状态的图标。实现代码

如下:

private

void

Listinfostring

SQL

con.ConDatabase;

//.

ms.

Clear;

SqlDataAdaptcrda new SqlDataAdaptcrSQL, con.conn; DataTablc dt new

DataTable; da. Filldt; if //. nt 0

foreach DataRow dr in dt.Rows




ListViewltem lv;if dr[11]> ToString

nonclv

new

ListViewItemdr[0].ToString, 0;// 说明没有要人要呢elseif dr [11]. ToString

"remark"lv new ListViewItemdr[0]. ToString, 1;//有人预订了 elselv new ListVic

wltcmd0].ToString, 2;// 已租出去了//.dr[1]. ToString;//. dr[2]. ToString;//.

dr[5].ToString;//.dr[6].ToStri ng;//dr[7]ToString;//dr[8]ToString;//

ms.Addlv; else

MessageBox.Show"查询结果为空〃;//.umns[0]. Width 120;

用户可以通过输入手机号码预定或取消预定房源信息,在LxtPhone控件中

按下回车键时,判断用户是否有权享受这两项功能。实现代码如下:

privatevoid textBoxl_KeyPressobject sender, KeyPressEventArgs e if e.

KeyCheir 13 try //在用户里去找这个人把房屋的编号放入这个的信息中去 ClsCon
con new ClsCon;con. ConDatabase;con.closeCon;//查要租房的人不要把要出租的人也
混进去SqlCommandcmd new SqlCommand^select user_n3mes+‘您的证件号为:

'+user_cardidfrom tb_User where user_phone+textBoxl. //. tring + and user_type

lend'"con.corm;//•n;stringstrRc //• tring;con. closcCon;if strRc ! SqlCommand

cmdlnew

SqlCoinmandzselecthouse_ID from tb_User where user_phone‘ " + textBoxl. //.tring

+ con.conn; //.n; string strReS //• tring;

con.closeCon; if strReS "none" MessageBox. ShowstrRe + 〃你有权预订房源〃;

//.bled true; //. bled false; else //. bled false;

//.bled true; ScndKcys. Send,,Tabz;elseMessageBox. Showz电话号吗不存在〃;

//. ectO, //. t. Length; catch Exception ey //. sage;//, se;





4.6员工信息设置模块设计代码

frniEmpleeyAll.cs窗体的Load事件中。通过调用自定义showAll方法对

dataGridView控件进行员工信息进行绑定。实现代码如下:

privatevoid frmEmpleeyAll_Loadobject sender, EventArgs e showAll; //. ms.Add"

工〃;//.ms. Add"经理〃;

自定义selectinfo方法,主要用来显示员工详细信息,代码如下:

privatevoid selectTnfo try stringstr

//.ectcdCells[O]. Value. ToString; //再来个反添信息SqlCommandcmd new

SqlCommand^select姓名,电话,权限,工资fromview_empleey where 员工编 号'

+ str + 〃’〃, con .corm; //.n; SqlDataReader dr

cmd. ExecuteReader; txtName. Text

dr[0]. ToString;txtPhone. Text

dr [3 ]. ToString; if dr [2 ]ToS tring

dr[1].ToString;txtBasePay. Text

cobPower.Tex t 〃员〕I";else

cobPower. Text 〃经理〃; dr. Close; con. closeCon; catch //have hide error 5

疑难问题解析

5.1 通过触发器对视图进行添加、修改和删除操作

当直接对视图表进行操作吋,如果没有instead of 触发器是无法操作的,

果视图是由多个表组成的,一一对每个表进行操作很麻烦,而且出错的可能性 很

大。通过下面的代码便可以轻松的解决,trig_update_OfEmployee是一个 update触发器,

针对由员工表和登录表组成的视图vicw_cmployccy 进行添加、





修改和删除操作。

trigupdate OfEmploycc触发器代码如下:createTRIGGER

trig_update_0fEmp1oyeeON

viewemployecy

INSTEADOF update

AS

BEGIN

declare@UNamevarcharl5

declarc@powcrvarcharlO

declare@phonevarcharlO

declare@moneynumeric

i nserted

select@power 权限,©UName 姓名,@phone 电话,©money 工资 from

updatetb_login set

login_power@power

wherelogin_namc@UHome

updatetbemployee set

employee_basepay@money,employee_phone@phone

whereemployee_name@Uname

5.2结束数据库连接进程完成数据库还原

还原数据时,应确保要还原的



显示全文