1、数据库课程设计报告房屋中介管理系统班级:姓名:学号:指引教师: 完毕日期:数据库课程设计评分表班级姓名指引教师题目: 房屋中介管理系统评分原则评分原则分数权重评分根据得分AC工作态度10态度端正,能积极认真完毕各项内容,不迟到早退,出勤好。可以完毕各环节基本工作,出勤较好。独立解决问题能力10能独立完毕数据库课程设计项目各项任务,熟悉项目整体架构;具备独立分析、解决问题能力,具备独立调试程序与测试程序能力,程序构造清晰,逻辑严谨,功能完善。有一定分析、解决问题能力。可以在教师指引下完毕任务编码与调试工作,程序功能较完善。程序完毕及运营状况20完毕率100%,程序运营对的。 完毕率局限性70%。
2、课程设计报告30格式规范,层次清晰,设计思想明确,解决问题办法合理,体会深刻。格式较规范,设计思想基本明确,解决问题办法较合理。答辨问题回答30能精确回答教师提出问题,并充分理解数据库开发技术,程序逻辑清晰。能基本精确回答教师提出问题总分指引教师(签字):注:介于A和C之间为B级,低于C为D级和E级。按各项指标打分后,总分90100为优,8089为良,7079为中,6069为及格,60分如下为不及格。目录第1章 需求分析11.1 开发背景11.2 需求分析1第2章 系统设计22.1 项目规划22.2 系统业务流程分析22.3 系统业务流程分32.4 系统E-R图42.5 开发及运营环境6第3章
3、 数据库设计73.1 数据表概要阐明73.2 主数据表构造7第4章 系统模块代码设计144.1 系统登录模块代码144.2 顾客信息管理登录模块设计代码154.3 房源信息设立模块设计代码164.4 房源信息查询模块设计代码204.5 房源状态查询模块设计234.6 员工信息设立模块设计代码26第5章 疑难问题解析275.1 通过触发器对视图进行添加、修改和删除操作275.2 结束数据库连接进程完毕数据库还原27第6章 课程设计小结和心得296.1 小结296.2 心得29第7章 源代码307.1 系统登录模块设计代码307.2 顾客信息管理登录模块设计代码317.3 房源信息设立模块设计代码
4、337.4 房源信息查询模块设计代码377.5 房源状态查询模块设计417.6 员工信息设立模块设计代码44第1章 需求分析1.1 开发背景 房屋中介行业是房地产业重要构成某些,其在房地产业经济运作全过程之中起着至关重要作用,为房地产业生产、流通和消费提供了多元化服务。房屋中介行业作为一种管理房屋信息机构,其对信息管理应当精确无误。运用所学软件工程设计思想、数据库等知识设计一种房屋中介管理系统软件对于提高该中介机构工作效率变得尤为重要。1.2 需求分析通过实际调查,规定房屋中介管理系统应当具备一下功能:(1)由于操作人员计算机知识普遍偏低,因而规定系统具备良好人机界面;(2)如果系统使用对象较
5、多,则规定有较好权限管理;(3)以便数据查询,支持自定义条件查询;(4)自动匹配房源和求房意向信息;(5)使用垃圾信息解决机制释放空间;(6)在相应权限下,删除数据以便简朴、数据稳定性强;(7)数据计算自动完毕,尽量减少人工干预。第2章 系统设计2.1 项目规划房屋中介管理系统在出租者和求租者之间起到了桥梁作用,是一款非常实用软件,它重要由顾客信息管理、出租信息管理、求租信息管理、房源管理、惯用工具和系统管理等模块构成,详细规划如下。(1)顾客信息管理模块该模块重要涉及求租人员信息设立、出租人员信息设立、人员信息控制等功能。(2)求租管理模块该模块重要涉及房源查询设立、房源状态浏览、求租意向设
6、立等功能。(3) 员工管理模块该模块重要涉及录入员工信息、员工信息控制等功能。(4)出租管理模块该模块重要涉及房型设立、楼层设立、幢/座设立、装修限度设立、朝向设立、用途设立等功能。(5) 交费管理该模块重要涉及收费设立、收费记录等功能。(6) 业务记录该模块重要涉及成交业务量记录等功能。(7) 窗体布局该模块重要涉及层叠排列、水平排列、垂直平铺等功能。(8) 惯用工具该模块重要涉及记事本、计算器、Word、Excel等功能。(9) 系统管理该模块重要涉及口令设立、退出系统、数据备份、数据恢复、清理无效信息等功能。2.2 系统业务流程分析房屋中介管理系统是业务流程如图2.1所示 与否登录收集客
7、户信息身份验证管理员工与否找到房源客户划分填写意向与否与房源相符联系双方交款录入房源与否与房源意愿相符结束结束是员工经理否是否求租人出租人是登录系统否否是 图2.1 房屋中介管理系统是业务流程2.3 系统业务流程分房屋中介管理系统功能构造图如图2.2所示房屋中介管理系统顾客信息管理求组管理员工信息出租管理窗体布局惯用工具系统管理房源查询设立房源状态浏览求租意向设立房源查询设立房源状态浏览求租意向设立录入员工信息员工信息控制层叠平铺水平平铺垂直平铺记事本Word计算器民族设立学历设立房屋设立楼层设立装修设立幢座设立朝向设立用途设立口令设立退出系统数据库备份数据库还原清理无效信息Excel图2.2
8、 房屋中介管理系统功能构造图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
9、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(装修信息
10、表)表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(求租
11、意向表)表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 用于保存房源幢座信息,该表构造如
12、图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 系统登录模块代码单击“登录”按钮,调用登录信息表办法类,判断顾客输入顾客名和密码与否对的,如果对的,则登录房屋中介管理系统,同步分派该顾客相应权
13、限,否则弹出“密码有误,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 frmM
14、ain(); 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; Mes
15、sageBox.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_ID
16、s,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 (th
17、is.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(); sb
18、Where.Remove(0,sbWhere.Length); 单击ListView控件中任一单元格,将相应详细客户信息显示在相应选项卡文本框中,实当代码如下: private void listView1_Click(object sender,EventArgs e) string strID =this.listView1.SelectedItems0.Text.ToString(); string sql = select User_IDs,User_names,User_homePhone,User_cardID,User_phone from tb_User where user_
19、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 = dr0.ToString(); this.textBox2.Text = dr1.ToString(); this
20、.textBox3.Text = dr2.ToString(); this.textBox4.Text = dr3.ToString(); this.textBox5.Text = dr4.ToString(); else this.tabControl1.SelectTab(1); while (dr.Read() this.textBox10.Text = dr0.ToString(); this.textBox9.Text = dr1.ToString(); this.textBox8.Text = dr2.ToString(); this.textBox7.Text = dr3.ToS
21、tring(); this.textBox6.Text = dr4.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
22、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(
23、).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.but
24、ton8.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 = dr0.ToString(); this.txtName.Text
25、 = dr1.ToString(); this.picHouse.ImageLocation = dr8.ToString(); txtPrice.Text = dr9.ToString(); this.nudYear.Value = Convert.ToDecimal(dr11.ToString(); this.txtArea.Text = dr12.ToString(); this.ttbRemark.Text = dr13.ToString(); strHouseState = dr4.ToString(); this.cboXing.SelectedValue = dr2.ToStri
26、ng(); this.cobDong.SelectedValue = dr3.ToString(); this.cboFavoe.SelectedValue = dr6.ToString(); this.cobZhuang.SelectedValue = dr5.ToString(); this.cobUser.SelectedValue = dr7.ToString(); this.cobFlood.SelectedValue = dr10.ToString(); con.closeCon(); if (strHouseState = none) /什么时候出显 button1.Visibl
27、e = 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 = h
28、ouse_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 =
29、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.Def
30、aultView; 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(d
31、t); 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);