计算机专业课程设计房屋中介管理系统Word格式文档下载.docx
《计算机专业课程设计房屋中介管理系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《计算机专业课程设计房屋中介管理系统Word格式文档下载.docx(60页珍藏版)》请在冰豆网上搜索。
完成率不足70%。
课程设计报告
30
格式规范,层次清晰,设计思想明确,解决问题方法合理,体会深刻。
格式较规范,设计思想基本明确,解决问题方法较合理。
答辨问题回答
能准确回答老师提出的问题,并充分理解数据库开发技术,程序逻辑清晰。
能基本准确回答老师提出的问题
总分
指导教师(签字):
注:
介于A和C之间为B级,低于C为D级和E级。
按各项指标打分后,总分90~100为优,80~89为良,70~79为中,60~69为及格,60分以下为不及格。
第1章需求分析
1.1开发背景
房屋中介行业是房地产业的重要组成部分,其在房地产业经济运作的全过程之中起着至关重要的作用,为房地产业的生产、流通和消费提供了多元化的服务。
房屋中介行业作为一个管理房屋信息的机构,其对信息的管理应该准确无误。
利用所学的软件工程设计思想、数据库等知识设计一个房屋中介管理系统的软件对于提高该中介机构的工作效率变得尤为重要。
1.2需求分析
通过实际调查,要求房屋中介管理系统应该具有一下功能:
(1)由于操作人员的计算机知识普遍偏低,因此要求系统具有良好的人机界面;
(2)如果系统的使用对象较多,则要求有较好的权限管理;
(3)方便的数据查询,支持自定义条件查询;
(4)自动匹配房源和求房意向信息;
(5)使用垃圾信息处理机制释放空间;
(6)在相应的权限下,删除数据方便简单、数据稳定性强;
(7)数据计算自动完成,尽量减少人工干预。
第2章系统设计
2.1项目规划
房屋中介管理系统在出租者和求租者之间起到了桥梁的作用,是一款非常实用的软件,它主要由用户信息管理、出租信息管理、求租信息管理、房源管理、常用工具和系统管理等模块组成,具体规划如下。
(1)用户信息管理模块
该模块主要包括求租人员信息设置、出租人员信息设置、人员信息控制等功能。
(2)求租管理模块
该模块主要包括房源查询设置、房源状态浏览、求租意向设置等功能。
(3)员工管理模块
该模块主要包括录入员工信息、员工信息控制等功能。
(4)出租管理模块
该模块主要包括房型设置、楼层设置、幢/座设置、装修程度设置、朝向设置、用途设置等功能。
(5)交费管理
该模块主要包括收费设置、收费记录等功能。
(6)业务统计
该模块主要包括成交业务量统计等功能。
(7)窗体布局
该模块主要包括层叠排列、水平排列、垂直平铺等功能。
(8)常用工具
该模块主要包括记事本、计算器、Word、Excel等功能。
(9)系统管理
该模块主要包括口令设置、退出系统、数据备份、数据恢复、清理无效信息等功能。
2.2系统业务流程分析
房屋中介管理系统是业务流程如图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开发及运行环境
本系统开发平台及运行环境如下
1)系统开发平台:
MicrosoftVisualStudio2008.
2)系统开发语言:
C#。
3)数据库管理系统软件:
SQLServer2005。
4)运行平台:
WindowsXP。
5)运行环境:
Microsoft.NETFramework
第3章数据库设计
本系统采用SQLServer2005数据库,名称为db-showHouse,其中包含15张数据表。
下面分别给出数据表概要说明、主要数据表结构。
3.1数据表概要说明
数据表树形结构图包括系统所有数据表如图3.1所示
图3.1数据表树形结构图包括系统所有数据表
3.2主数据表的结构
(1)tb_employee(员工信息表)
表tb_employee用于保存员工的基本信息,该表的结构如图3.1所示。
图3.1员工信息表
(2)tb_favor(朝向信息表)
表tb_favor用于设置房源的朝向信息,该表的结构如图3.2所示。
图3.2朝向信息表
(3)tb_fitment(装修信息表)
表tb_fitment用于设置房源装修信息,该表的结构如图3.3所示。
图3.3装修信息表
(4)tb_floor(楼层信息表)
表tb_floor用于设置房源楼层信息,该表的结构如图3.4所示。
图3.4楼层信息表
(5)tb_gov(民族信息表)
表tb_gov用于保存员工的民族信息,该表的结构如图3.5所示。
图3.5民族信息表
(6)tb_log(日志信息表)
表tb_log用于保存操作者使用该系统的日志记录,该表的结构如图3.6所示。
图3.6日志信息表
(7)tb_house(房屋信息表)
表tb_house用于保存房屋信息,该表的结构如图3.7所示。
图3.7房源信息表
(8)tb_intent(求租意向表)
表tb_intent用于保存求租人对房源的要求信息,该表的结构如图3.8所示。
图3.8意向信息表
(9)tb_login(登录信息表)
表tb_login用于用户进入系统时进行核对,该表的结构如图3.9所示。
图3.9登录信息表
(10)tb_MoneyAndInfo(收费信息表)
表tb_MoneyAndInfo用于保存收费信息,该表的结构如图3.10所示。
图3.10收费信息表
(11)tb_mothed(用途信息表)
表tb_mothed用于保存房源的用途信息,该表的结构如图3.11所示
图3.11用途信息表
(12)tb_seat(幢座信息表)
表tb_seat用于保存房源幢座信息,该表的结构如图3.12所示。
图3.12幢座信息表
(13)tb_StudyDegree(学历信息表)
表tb_StudyDegree用于设置员工的学历,该表的结构如图3.13所示
图3.13学历信息表
(14)tb_type(房型信息表)
表tb_type用于保存房源房型信息,该表的结构如图3.14所示。
图3.14房型信息表
(15)tb_user(客户信息表)
表tb_user用于保存客户信息,该表的结构如图3.15所示
图3.15客户信息表
第4章系统模块代码设计
4.1系统登录模块代码
单击“登录”按钮,调用登录信息表的方法类,判断用户输入的用户名和密码是否正确,如果正确,则登录房屋中介管理系统,同时分配该用户相应的权限,否则弹出“密码有误,3次后将自动关闭……”的提示信息。
“登录”按钮的Click事件代码如下:
privatevoidbtnLogin_Click(objectsender,EventArgse)
{
#region//用户与密码是否正确不正确给三次机会然后关闭
cl.LName=this.cobName.Text;
cl.LPwd=this.txtPwd.Text.Trim().ToString();
stringpower=cm.select_table(cl);
if(power!
="
none"
)
//调一个方法如果成功进入后台否则记到登陆日制中
frmMainfm=newfrmMain();
this.Hide();
fm.M_str_Power=this.cobName.Text+"
@"
+power;
fm.Show();
}
elseif(this.txtPwd.Text=="
"
&
&
this.cobName.Text=="
{//当所有信息都没有时这是一个入口
else
if(ErrorNum==cl.LName)
Num+=1;
if(Num>
=3)
this.Close();
ErrorNum=cl.LName;
MessageBox.Show("
密码有误,三次后将自动关闭,这是第"
+Num+"
次"
);
this.txtPwd.Text=string.Empty;
this.txtPwd.Focus();
4.2用户信息管理登录模块设计代码
在frmPeopleList窗体的load事件中,通过调用自定义ListInfo方法对DataGridView控件进行数据绑定,显示所有系统用户信息。
frmPeopleList窗体的load事件关键代码如下:
privatevoidfrmPeopleList_Load(objectsender,EventArgse)
sbSql.Append("
selectUser_IDs,User_names,User_homePhone,User_cardID,User_phonefromtb_User"
ListInfo(sbSql.ToString());
UnAble();
privatevoidtp_cancel_Click(objectsender,EventArgse)
当用户在单击“出租人”选项卡或“求租人”选项卡时,在相应的选项卡页中显示客户信息,实现代码如下:
privatevoidtabControl1_SelectedIndexChanged(objectsender,EventArgse)
if(this.tabControl1.SelectedTab.Text=="
出租人"
sbWhere.Append("
whereuser_type='
lend'
ListInfo(sbSql.ToString()+sbWhere.ToString());
sbWhere.Remove(0,sbWhere.Length);
elseif(this.tabControl1.SelectedTab.Text=="
求租人"
want'
"
单击ListView控件中的任一单元格,将对应的详细客户信息显示在相应选项卡的文本框中,实现代码如下:
privatevoidlistView1_Click(objectsender,EventArgse)
stringstrID=this.listView1.SelectedItems[0].Text.ToString();
stringsql="
selectUser_IDs,User_names,User_homePhone,User_cardID,User_phonefromtb_Userwhereuser_ids='
+strID+"
'
;
SqlCommandcmd=newSqlCommand(sql,con.conn);
con.closeCon();
cmd.Connection.Open();
SqlDataReaderdr=cmd.ExecuteReader();
if(strID.Substring(0,4)=="
lend"
this.tabControl1.SelectTab(0);
while(dr.Read())
this.textBox1.Text=dr[0].ToString();
this.textBox2.Text=dr[1].ToString();
this.textBox3.Text=dr[2].ToString();
this.textBox4.Text=dr[3].ToString();
this.textBox5.Text=dr[4].ToString();
else
this.tabControl1.SelectTab
(1);
this.textBox10.Text=dr[0].ToString();
this.textBox9.Text=dr[1].ToString();
this.textBox8.Text=dr[2].ToString();
this.textBox7.Text=dr[3].ToString();
this.textBox6.Text=dr[4].ToString();
dr.Close();
tb_update.Enabled=true;
4.3房源信息设置模块设计代码
在frmHouse窗体的Load事件中,通过M_str_Show变量判断本次调用窗体的目地。
如果是浏览或修改信息,则将相应的信息显示到控件上,如果是添加信息,则将基本表的信息绑定到ComboBox控件上。
frmHouse窗体的Load事件中实现代码如下:
privatevoidfrmHouse_Load(objectsender,EventArgse)
stringstrHouseState=string.Empty;
con.ConDatabase();
flushFaove();
flushfitment();
flushfloor();
flushmothed();
flushseat();
flushtype();
if(M_str_Show==String.Empty)
try
SqlCommandcmd=newSqlCommand("
selectMax(house_ID)fromtb_house"
con.conn);
strResult=cmd.ExecuteScalar().ToString();
if(strResult=="
strResult="
hou1001"
stringstrTemp=strResult.Substring(3);
hou"
+Convert.ToString(Int32.Parse(strTemp)+1);
this.lblHouseID.Text="
您的房屋编号为:
+strResult;
catch(Exceptioney)
MessageBox.Show(ey.Message);
this.button8.Visible=false;
this.butOK.Visible=false;
Visable();
select*fromtb_housewherehouse_ID='
+M_str_Show+"
con.conn.Open();
if(dr.HasRows)
lblHouseID.Text=dr[0].ToString();
this.txtName.Text=dr[1].ToString();
this.picHouse.ImageLocation=dr[8].ToString();
txtPrice.Text=dr[9].ToString();
this.nudYear.Value=Convert.ToDecimal(dr[11].ToString());
this.txtArea.Text=dr[12].ToString();
this.ttbRemark.Text=dr[13].ToString();
strHouseState=dr[4].ToString();
this.cboXing.SelectedValue=dr[2].ToString();
this.cobDong.SelectedValue=dr[3].ToString();
this.cboFavoe.SelectedValue=dr[6].ToString();
this.cobZhuang.SelectedValue=dr[5].ToString();
this.cobUser.SelectedValue=dr[7].ToString();
this.cobFlood.SelectedValue=dr[10].ToString();
if(strHouseState=="
//什么时候出显
button1.Visible=true;
button2.Visible=true;
}
privatevoidflushFaove()
SqlDataAdapterda=newSqlDataAdapter("
select*fromtb_favor"
DataTabledt=newDataTable();
da.Fill(dt);
cboFavoe.DataSource=dt.DefaultView;
cboFavoe.DisplayMember="
favor_name"
cboFavoe.ValueMember="
house_favorID"
privatevoidflushfitment()
select*fromtb_fitment"
cobZhuang.DataSource=dt.DefaultView;
cobZhuang.DisplayMember="
fitment_name"
cobZhuang.ValueMember="
house_fitmentID"
privatevoidflushfloor()
select*fromtb_floor"
cobFlood.DataSource=dt.DefaultView;
cobFlood.DisplayMember="
floor_name"
cobFlood.ValueMember="
house_floorID"
privatevoidflushmothed()
select*fromtb_mothed"
cobUser.DataSource=dt.DefaultView;
cobUser.DisplayMember="
mothed_name"
cobUser.ValueMember="
house_mothedID"
privatevoidflushseat()
select*fromtb_seat"
cobDong.DataSource=dt.DefaultView;
cobDong.DisplayMember="
seat_n