资源描述
数据库课程设计报告
房屋中介管理系统
班级:
姓名:
学号:
指引教师:
完毕日期:
数据库课程设计评分表
班级
姓名
指引教师
题目: 房屋中介管理系统
评分原则
评分原则
分数权重
评分根据
得分
A
C
工作态度
10
态度端正,能积极认真完毕各项内容,不迟到早退,出勤好。
可以完毕各环节基本工作,出勤较好。
独立解决问题能力
10
能独立完毕数据库课程设计项目各项任务,熟悉项目整体架构;具备独立分析、解决问题能力,具备独立调试程序与测试程序能力,程序构造清晰,逻辑严谨,功能完善。
有一定分析、解决问题能力。可以在教师指引下完毕任务编码与调试工作,程序功能较完善。
程序完毕及运营状况
20
完毕率100%,程序运营对的。
完毕率局限性70%。
课程设计报告
30
格式规范,层次清晰,设计思想明确,解决问题办法合理,体会深刻。
格式较规范,设计思想基本明确,解决问题办法较合理。
答辨问题回答
30
能精确回答教师提出问题,并充分理解数据库开发技术,程序逻辑清晰。
能基本精确回答教师提出问题
总分
指引教师(签字):
注:介于A和C之间为B级,低于C为D级和E级。按各项指标打分后,总分90~100为优,80~89为良,70~79为中,60~69为及格,60分如下为不及格。
目录
第1章 需求分析 1
1.1 开发背景 1
1.2 需求分析 1
第2章 系统设计 2
2.1 项目规划 2
2.2 系统业务流程分析 2
2.3 系统业务流程分 3
2.4 系统E-R图 4
2.5 开发及运营环境 6
第3章 数据库设计 7
3.1 数据表概要阐明 7
3.2 主数据表构造 7
第4章 系统模块代码设计 14
4.1 系统登录模块代码 14
4.2 顾客信息管理登录模块设计代码 15
4.3 房源信息设立模块设计代码 16
4.4 房源信息查询模块设计代码 20
4.5 房源状态查询模块设计 23
4.6 员工信息设立模块设计代码 26
第5章 疑难问题解析 27
5.1 通过触发器对视图进行添加、修改和删除操作 27
5.2 结束数据库连接进程完毕数据库还原 27
第6章 课程设计小结和心得 29
6.1 小结 29
6.2 心得 29
第7章 源代码 30
7.1 系统登录模块设计代码 30
7.2 顾客信息管理登录模块设计代码 31
7.3 房源信息设立模块设计代码 33
7.4 房源信息查询模块设计代码 37
7.5 房源状态查询模块设计 41
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) 惯用工具
该模块重要涉及记事本、计算器、Word、Excel等功能。
(9) 系统管理
该模块重要涉及口令设立、退出系统、数据备份、数据恢复、清理无效信息等功能。
2.2 系统业务流程分析
房屋中介管理系统是业务流程如图2.1所示
与否登录
收集客户信息
身份验证
管理员工
与否找到房源
客户划分
填写意向
与否与房源相符
联系双方交款
录入房源
与否与房源
意愿相符
结束
结束
是
员工
经理
否
是
否
求租人
出租人
是
登录
系统
否
否
是
图2.1 房屋中介管理系统是业务流程
2.3 系统业务流程分
房屋中介管理系统功能构造图如图2.2所示
房屋中介管理系统
顾客信息管理
求组管理
员工信息
出租管理
窗体布局
惯用工具
系统管理
房源查询设立
房源状态浏览
求租意向设立
房源查询设立
房源状态浏览
求租意向设立
录入员工信息
员工信息控制
层叠平铺
水平平铺
垂直平铺
记事本
Word
计算器
民族设立
学历设立
房屋设立
楼层设立
装修设立
幢座设立
朝向设立
用途设立
口令设立
退出系统
数据库备份
数据库还原
清理无效信息
Excel
图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) 系统开发平台:Microsoft Visual Studio .
2) 系统开发语言:C#。
3) 数据库管理系统软件:SQL Server 。
4) 运营平台:Windows XP。
5) 运营环境:Microsoft.NET Framework
第3章 数据库设计
本系统采用SQL Server 数据库,名称为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事件代码如下:
private void btnLogin_Click(object sender,EventArgs e)
{
#region//顾客与密码与否对的不对的给三次机会然后关闭
cl.LName=this.cobName.Text;
cl.LPwd=this.txtPwd.Text.Trim().ToString();
string power=cm.select_table(cl);
if (power != "none")
{
//调一种办法如果成功进入后台否则记到登陆日制中
frmMain fm = new frmMain();
this.Hide();
fm.M_str_Power = this.cobName.Text + "@" + power;
fm.Show();
}
else if(this.txtPwd.Text=="" && this.cobName.Text=="")
{//当所有信息都没有时这是一种入口
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.Show("密码有误,三次后将自动关闭,这是第"+Num+"次");
this.txtPwd.Text = string.Empty;
this.txtPwd.Focus();
}
}
4.2 顾客信息管理登录模块设计代码
在frmPeopleList窗体load事件中,通过调用自定义ListInfo办法对DataGridView控件进行数据绑定,显示所有系统顾客信息。frmPeopleList窗体load事件核心代码如下:
private void frmPeopleList_Load(object sender,EventArgs e)
{
sbSql.Append("select User_IDs,User_names,User_homePhone,User_cardID,User_phone from tb_User");
ListInfo(sbSql.ToString());
UnAble();
}
private void tp_cancel_Click(object sender,EventArgs e)
{
this.Close();
}
当顾客在单击“出租人”选项卡或“求租人”选项卡时,在相应选项卡页中显示客户信息,实当代码如下:
private void tabControl1_SelectedIndexChanged(object sender,EventArgs e)
{
if (this.tabControl1.SelectedTab.Text == "出租人")
{
sbWhere.Append(" where user_type='lend'");
ListInfo(sbSql.ToString() + sbWhere.ToString());
sbWhere.Remove(0,sbWhere.Length);
}
else if (this.tabControl1.SelectedTab.Text == "求租人")
{
sbWhere.Append(" where user_type='want' ");
ListInfo(sbSql.ToString() + sbWhere.ToString());
sbWhere.Remove(0,sbWhere.Length);
}
}
单击ListView控件中任一单元格,将相应详细客户信息显示在相应选项卡文本框中,实当代码如下:
private void listView1_Click(object sender,EventArgs e)
{
string strID =this.listView1.SelectedItems[0].Text.ToString();
string sql = "select User_IDs,User_names,User_homePhone,User_cardID,User_phone from tb_User where user_ids='" + strID + "'";
SqlCommand cmd=new SqlCommand(sql,con.conn);
con.closeCon();
cmd.Connection.Open();
SqlDataReader dr = 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);
while (dr.Read())
{
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();
con.closeCon();
tb_update.Enabled = true;
}
4.3 房源信息设立模块设计代码
在frmHouse窗体Load事件中,通过M_str_Show变量判断本次调用窗体目地。如果是浏览或修改信息,则将相应信息显示到控件上,如果是添加信息,则将基本表信息绑定到ComboBox控件上。frmHouse窗体Load事件中实当代码如下:
private void frmHouse_Load(object sender,EventArgs e)
{
string strHouseState = string.Empty;
con.ConDatabase();
flushFaove();
flushfitment();
flushfloor();
flushmothed();
flushseat();
flushtype();
if (M_str_Show == String.Empty)
{
try
{
SqlCommand cmd = new SqlCommand("select Max(house_ID) from tb_house",con.conn);
cmd.Connection.Open();
strResult = cmd.ExecuteScalar().ToString();
con.closeCon();
if (strResult == "")
{
strResult = "hou1001";
}
else
{
string strTemp = strResult.Substring(3);
strResult = "hou" + Convert.ToString(Int32.Parse(strTemp) + 1);
}
this.lblHouseID.Text = "您房屋编号为:" + strResult;
}
catch (Exception ey)
{
con.closeCon();
MessageBox.Show(ey.Message);
}
}
else
{
this.button8.Visible = false;
this.butOK.Visible = false;
Visable();
SqlCommand cmd = new SqlCommand("select * from tb_house where house_ID='" + M_str_Show + "' ",con.conn);
con.conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
while (dr.Read())
{
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();
}
}
con.closeCon();
if (strHouseState == "none")
{
//什么时候出显
button1.Visible = true;
button2.Visible = true;
}
}
}
private void flushFaove()
{
con.ConDatabase();
try
{
SqlDataAdapter da = new SqlDataAdapter("select * from tb_favor",con.conn);
DataTable dt = new DataTable();
da.Fill(dt);
cboFavoe.DataSource = dt.DefaultView;
cboFavoe.DisplayMember = "favor_name";
cboFavoe.ValueMember = "house_favorID";
}
catch (Exception ey)
{
MessageBox.Show(ey.Message);
}
}
private void flushfitment()
{
con.ConDatabase();
try
{
SqlDataAdapter da = new SqlDataAdapter("select * from tb_fitment",con.conn);
DataTable dt = new DataTable();
da.Fill(dt);
cobZhuang.DataSource = dt.DefaultView;
cobZhuang.DisplayMember = "fitment_name";
cobZhuang.ValueMember = "house_fitmentID";
}
catch (Exception ey)
{
MessageBox.Show(ey.Message);
}
}
private void flushfloor()
{
con.ConDatabase();
try
{
SqlDataAdapter da = new SqlDataAdapter("select * from tb_floor",con.conn);
DataTable dt = new DataTable();
da.Fill(dt);
cobFlood.DataSource = dt.DefaultView;
cobFlood.DisplayMember = "floor_name";
cobFlood.ValueMember = "house_floorID";
}
catch (Exception ey)
{
MessageBox.Show(ey.Message);
}
}
private void flushmothed()
{
con.ConDatabase();
try
{
SqlDataAdapter da = new SqlDataAdapter("select * from tb_mothed",con.conn);
DataTable dt = new DataTable();
da.Fill(dt);
cobUser.DataSource = dt.DefaultView;
cobUser.DisplayMember = "mothed_name";
cobUser.ValueMember = "house_mothedID";
}
catch (Exception ey)
{
MessageBox.Show(ey.Message);
}
}
private void flushseat()
{
con.ConDatabase();
try
{
SqlDataAdapter da = new SqlDataAdapter("select * from tb_seat",con.conn);
DataTable dt = new DataTable();
da.Fill(dt);
cobDong.DataSource = dt.DefaultView;
cobDong.DisplayMember = "seat_name";
cobDong.ValueMember = "house_seatID";
}
catch (Exception ey)
{
MessageBox.Show(ey.Message);
展开阅读全文