1、郑州科技学院C#课程设计 设计(论文)题目: 房屋出租管理系统 所 在 院: 信息工程学院 专 业 班 级: 10计算机科学与技术2班 学 生 姓 名: 金长江 学 号: 201015049 指 导 教 师: 王玉萍 目 录1前言21.1系统开发背景和开发目的21.2可行性分析21.2.1技术可行性21.2.2 经济可行性31.2.3 操作可行性31.2.4 法律可行性32开发工具简介32.1 C#语言简介32.2 Access 2003数据库43 需求分析43.1系统目标43.2应用现状调查43.3系统流程图54 概要设计64.1系统设计思想64.2系统构架选择65数据库设计65.1概念设计
2、65.2物理设计86系统详细设计106.1 datahelp类的设计106.2系统主界面模块设计126.3房屋出租管理模块136.4房屋信息管理模块186.5客户信息模块226.6密码修改25总结27致谢28参考文献291前言1.1系统开发背景和开发目的利用计算机实现物业管理中的房屋租赁管理势在必行。对于物业管理企业来说,利用计算机支持企业高效率完成房屋租赁管理的日常事务,是适应现代企业制度要求、推动企业劳动型管理走向科学化、规范化的必要条件;而房屋租赁管理是一项琐碎、复杂而又十分细致的工作,房屋的基本资料,客户资料的管理,房屋租赁管理,各项收费以及统计报表的管理,一般不允许出错,如果实行手工
3、操作,须手工填制大量的表格,这就会耗费工作人员大量的时间和精力,计算机进行房屋租赁工作的管理,不仅能够保证各项信息准确无误、快速输出,同时计算机具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高物业管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。开发本系统就是为了解决物业管理企业在房屋租赁信息管理中的一些不规范,使房屋租赁信息的管理向着规范化、简单化、有效化的方向发展。1.2可行性分析1.2.1技术可行性从目前IT业界比较流行的数据库开发、管理软件来看,对于比较简单的小型数据库, C# 和Access的
4、结合无疑是在实际应用中较为成功的一种解决方案。利用Microsoft Visual Studio 2008来设计用并使用Access 2003设计数据库,为用户提供了业界软件开发一直坚持的非常友好、操作简单的用户界面、完善强大的数据库操作功能和简洁明了的数据库接口,所以技术实行起来相对会容易。1.2.2 经济可行性 本系统开发简单但要耗去一定的时间,所用的开发工具和软件都差不多是免费的。而且,由于系统能够在未来较长的一段时期内稳定地发挥作用,这对于学生房屋租赁信息的自动化管理,称业管理企业的人力和财力都有很大的帮助。由此可见在,开发此系统在经济上是完全可行的。1.2.3 操作可行性如今的计算机
5、已经走进千家万户,硬件成本的下降,导致计算机购买成本的降低.此系统是利用自己的计算机加Microsoft Visual Studio2008作为软件的开发平台,使开发出来的系统有友好的用户界面、有良好的安全性设置、有详细的操作说明书,这样更使各类用户很快地掌握系统的使用方法,操作友好因此在操作上是可行的。1.2.4 法律可行性本系统开发不会侵犯他人、集体或国家利益,不存在侵权等问题,不违反国家法律,因此具有法律可行性。综上所述,该系统的开发是可行的。2开发工具简介2.1 C#语言简介Microsoft Visual Studio NET是Microsoft 公司为适应Internet高速发展的
6、需要,而推出的新的开发平台。2008年3月17发布VS2008。随后又发布了vs2010。C#1语言是NET平台上的第一语言。自发布以来不断增强,已经成为目前功能最强大的通用语言之一。2.2 Access 2003数据库Access 是微软公司推出的基于Windows的桌面关系数据库管理系统(RDBMS),是Office系列应用软件之一。它提供了表、查询、窗体、报表、页、宏、模块7种用来建立数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规范化;为建立功能完善的数据库管理系统提供了方便,也使得普通用户不必编写代码,就可以完成大部分数据管理的任务。
7、Access是一种关系型数据库管理系统,其主要特点如下(1)存储方式单一。2)面向对象(3)界面友好、易操作(4)集成环境、处理多种数据信息(5)Access支持ODBC3 需求分析3.1系统目标建立房屋租赁信息管理系统,实现房屋租赁信息管理的计算机自动化。系统应符合物业管理企业原有的房屋租赁管理制度,并达到操作直观、方便、实用、安全等要求。房屋租赁信息管理系统应该具有以下功能:1由于操作人员的计算机知识普遍偏低,因此要求系统具有良好的人机界面;2方便的数据查询,支持自定义条件查询;3自动匹配房源和求房意向信息;4在相应的权限下,删除数据方便简单,数据稳定性强;5数据计算自动完成,尽量减少人工
8、干预。3.2应用现状调查当前,很多物业管理企业的房屋租赁信息管理都是使用纸质资料来登记、记录房屋等信息,这导致房屋信息变更不便,且房屋租赁花费人力资源多,工作也较繁琐。传统的看房流程是很费时费力的,房屋租赁成本居高、人力管理的比例比较大,往往是各个主要负责人以书面的形式管理房屋租赁信息,效率低下。数据打印,汇总时,容易丢失,不易保存且数据保密性较差。因此,开发一套功能相对完整,同时使得客户使用系统更加放心,提高工作的效率,减少过多的人力资源的付出。3.3系统流程图开始系统业务流程图如图3-1错误提示密码验证 N房屋出租管理房屋信息管理客户管理房屋出租管理系统密码修改退出YN修改密码承租人信息出
9、租人信息删除房屋信息添加房屋信息修改房屋信息房屋信息查询退租续租房屋入住房屋查询关闭系统图3-1 房屋出租管理系统业务流程图4 概要设计4.1系统设计思想本系统实现房屋出租业务的自动化管理,为中介公司提供及时的房屋信息和客户信息。本系统完成房屋管理、房屋入住、续租、退房、房屋查询等功能。因此系统必须具有维护这些操作信息的数据表。4.2系统构架选择本系统采用双层结构的C/S模式,即客户端和服务器端模式,客户端提供用户操作界面,接受用户输入的各种信息,并向服务器端发送各种操作命令或数据请求,并接受服务器端执行操作命令后的返回结果,向客户显示相应信息。服务器端接受客户端的数据请求或命令,并执行相应的
10、数据请求命令得到相应的数据集,对数据集进行相应的处理,然后将数据集或处理后的数据集返回客户端。C/S结构的体系结构具有访问速度快、运行稳定、安全性能好等优点,比其它构架模式更能满足本系统的快速响应及信息共享的要求。5数据库设计本系统采用Access 2003数据库设计,名称为chuzudata,其中包含了4张表,下面分别给出数据表概念设计和主要数据表的结构。5.1概念设计房屋租赁管理系统主要用到房屋信息表、出租人信息表、承租人信息表等,各个表的E-R图如下:房屋信息E-R图(见图4-1)房屋编号厨房面积宽带位置类型月租房主状态备注空调图4-1 房屋E-R图出租人信息E-R图(见图4-2)联系方
11、式房屋编号姓名身份证号出租人图4-2 出租人E-R图承租人信息E-R图(见图4-3)性别入住时间月租交费总额房屋编号姓名身份证号承租人图4-3 承租人E-R图5.2物理设计1. 房屋信息表Roominfo表,该表主要用于保存房屋的信息,包括房屋名称、房屋编号、房屋、类型、面积、租金、状态、位置、宽带、厨房、空调和备注。如下表5-1 所示表4-1 房屋信息表字段名称字段类型字段大小主键房屋编号文本50Y面积数字4N类型文本50N房主文本50N状态文本50N月租数字4N位置文本50N宽带文本50N厨房文本50N空调文本50N备注文本50N2. 出租人信息表chuzureninfo表,该表主要用于保
12、存出租人的信息,包括身份证号、姓名、房屋编号、联系方式。如下表4-2所示表5-2 租金信息表字段名称字段类型字段大小主键身份证号文本50N姓名文本50N房屋编号文本50Y联系方式文本50N3. 承租人信息表rentinfo表,该表主要用于存储房客的信息,包括房客名称、身份证号、性别、房屋编号、合同编号、入住时间、月租、交费总额,如下表4-3所示表5-3 房客信息表字段名称字段类型字段大小主键身份证号文本50Y姓名文本50N性别文本50N房屋编号文本50N合同编号数字4N入住时间日期/时间N月租数字4N缴费总额数字4N4. 密码信息表pswinfo表,该表主要用于保存系统的密码。如下表4-4所示
13、表5-4 水电费信息表字段名称字段类型字段大小主键psw文本50Y6系统详细设计6.1 datahelp类的设计为了实现方便、快捷的数据库操作和代码的简洁性本系统设计在datahelp类中写入了分别返回dataset数据集和执行SQL操作后影响行数的方法。此类中还包含一些全局变量的定义。下面是此类的具体代码:class datahelp public static int fwid = 10000;/房屋编号 public static int htid=10000;/合同编号 public static int n; public static string sqlstr=Provider=
14、Microsoft.Jet.OLEDB.4.0;Data Source=+Directory.GetCurrentDirectory()+chuzudata.mdb; public static OleDbConnection conn=new OleDbConnection (sqlstr); public static OleDbCommand cmd; public static DataSet sqlquery(string str) /返回dataset数据 DataSet ds = new DataSet(); OleDbDataAdapter adp = new OleDbDat
15、aAdapter(str, conn); ds.Clear(); adp.Fill(ds,123); return ds; public static int sqlinsert(string sqlstr) /对数据更新、删除、修改并返回影响的行数 try conn.Open(); cmd = new OleDbCommand(sqlstr,conn); n = cmd.ExecuteNonQuery(); catch (Exception ex) MessageBox.Show(ex.Message); finally conn.Close();return n; 6.2系统主界面模块设计
16、主界面功能:启动界面后首先设置菜单栏的enabled为false并且在状态栏上显示当前时间,然后密码验证,若密码正确则启用菜单栏上的各菜单项(enabled=true)菜单包括:房屋出租管理、房屋信息管理、客户信息、修改密码和退出,如图图5-1图5-1 主界面功能结构图主界面的主要代码如下:确定按钮事件:private void button1_Click(object sender, EventArgs e) string ss = select *from pswinfo; DataSet ds = datahelp.sqlquery(ss); if (textBox1.Text.Trim
17、() = ds.Tables123.Rows0.ItemArray0.ToString() this.menuStrip2.Items0.Enabled = true; this.menuStrip2.Items1.Enabled = true; this.menuStrip2.Items2.Enabled = true; this.menuStrip2.Items3.Enabled = true; this.menuStrip2.Items4.Enabled = true; label1.Visible = false; textBox1.Visible = false; button1.V
18、isible = false; else MessageBox.Show(密码错误请重新输入, 提示, MessageBoxButtons.OK); textBox1.Text = ; 6.3房屋出租管理模块房屋出租管理模块包括房屋查询、房屋入住、续租、退房四个功能。其中房屋查询包括对房屋的搜索以及房屋入住、续租、退租等按钮。房屋查询的界面如图5-2房屋查询主要代码:搜索按钮:private void button6_Click(object sender, EventArgs e) OleDbCommand cmd = new OleDbCommand(); if (textBox3.Tex
19、t.Trim() != ) minyuezu = Convert.ToInt32(textBox3.Text); if (textBox4.Text.Trim() != ) maxyuezu = Convert.ToInt32(textBox4.Text); if (textBox8.Text.Trim() != ) minmianji = Convert.ToInt32(textBox8.Text); if (textBox7.Text.Trim() != ) maxmianji = Convert.ToInt32(textBox7.Text); cmd.CommandText = sele
20、ct * from roominfo where 房屋编号 is not null;/ 消除首个and影响 if (textBox3.Text.Trim() != ) & (textBox4.Text.Trim() != ) cmd.CommandText += and 月租=minyuezu and 月租=minmianji and 面积 0) cmd.CommandText += and 类型= + comboBox1.SelectedItem.ToString() + ; if (checkBox2.Checked) cmd.CommandText += and 宽带=有; if (ch
21、eckBox3.Checked) cmd.CommandText += and 厨房=有; if (checkBox4.Checked) cmd.CommandText += and 空调=有; if (checkBox5.Checked) cmd.CommandText += and 状态=待租; if (comboBox3.SelectedIndex 0) cmd.CommandText += and 位置= + comboBox3.SelectedItem.ToString() + ; cmd.CommandText += ; if (textBox3.Text.Trim() != )
22、& (textBox4.Text.Trim() != ) OleDbParameter pa = new OleDbParameter2; pa0 = new OleDbParameter(minyuezu, minyuezu); pa1 = new OleDbParameter(maxyuezu, maxyuezu); cmd.Parameters.Add(pa0); cmd.Parameters.Add(pa1); if (textBox8.Text.Trim() != ) & (textBox7.Text.Trim() != ) OleDbParameter pa = new OleDb
23、Parameter2; pa0 = new OleDbParameter(minmianji, minmianji); pa1 = new OleDbParameter(maxmianji, maxmianji); cmd.Parameters.Add(pa0); cmd.Parameters.Add(pa1); if (textBox3.Text.Trim() != ) & (textBox4.Text.Trim() != ) & (textBox8.Text.Trim() != ) & (textBox7.Text.Trim() != ) OleDbParameter pa = new O
24、leDbParameter4; pa0 = new OleDbParameter(minyuezu, minyuezu); pa1 = new OleDbParameter(maxyuezu, maxyuezu); pa2 = new OleDbParameter(minmianji, minmianji); pa3 = new OleDbParameter(maxmianji, maxmianji); cmd.Parameters.Add(pa0); cmd.Parameters.Add(pa1); cmd.Parameters.Add(pa2); cmd.Parameters.Add(pa
25、3); cmd.Connection = datahelp.conn; datahelp.conn.Open(); OleDbDataReader rd = cmd.ExecuteReader(); DataTable dt = new DataTable(); dt.Load(rd); dataGridView1.DataSource = dt; datahelp.conn.Close(); 房屋入住功能实现客户的入住输入房屋编号后将自动查找并现实月租主界面如图5-3图5-3主要代码:Texbox1(房屋编号)响应事件:private void textBox1_TextChanged(ob
26、ject sender, EventArgs e) string ss = select 月租 from roominfo where 房屋编号 = + textBox1.Text + ; DataSet ds = datahelp.sqlquery(ss); if (ds.Tables123.Rows.Count 0) textBox5.Text = ds.Tables123.Rows0.ItemArray0.ToString(); 续租界面如图图5-4图5-4退房界面如图5-5图5-5续租部分代码:根据输入的续租时间计算租金:private void textBox7_TextChange
27、d(object sender, EventArgs e) int k, i, j; if (textBox5.Text.Trim() = ) i = 0; else i = Convert.ToInt32(textBox5.Text); if (textBox7.Text.Trim() = ) j = 0; else j = Convert.ToInt32(textBox7.Text); if (textBox4.Text.Trim() = ) k = 0; else k= Convert.ToInt32(textBox4.Text); i = (i * 12 + j) * k; textB
28、ox6.Text = i.ToString(); private void textBox5_TextChanged(object sender, EventArgs e) int k, i, j; if (textBox5.Text = ) i = 0; else i = Convert.ToInt32(textBox5.Text); if (textBox7.Text = ) j = 0; else j = Convert.ToInt32(textBox7.Text); if (textBox4.Text.Trim() = ) k = 0; else k = Convert.ToInt32
29、(textBox4.Text); i = (i * 12 + j) * k; textBox6.Text = i.ToString(); 6.4房屋信息管理模块房屋信息管理模块包括房屋信息的浏览、查询、添加、修改、删除操作。房屋信息查看界面如图5-6:图5-6房屋信息的部分代码: 添加和修改按钮private void button2_Click(object sender, EventArgs e) 房屋信息添加 fwxxtj = new 房屋信息添加(); fwxxtj.tjorxg = 添加; fwxxtj.Show(); private void button3_Click(objec
30、t sender, EventArgs e) 房屋信息添加 fwxxxg = new 房屋信息添加(); fwxxxg.tjorxg = 修改; fwxxxg.fangwubianhao = dataGridView1.CurrentRow.Cells0.Value.ToString(); fwxxxg.Show(); 房屋信息添加界面如图5-7图5-7房屋信息修改界面如图5-8图5-8添加修改的部分代码:房屋信息修改的保存事件private void button1_Click(object sender, EventArgs e) if (textBox1.Text.Trim() = )
31、| (textBox2.Text.Trim() = ) | (textBox3.Text.Trim() = ) | (textBox4.Text.Trim() = ) | (textBox5.Text.Trim() = ) | (textBox6.Text.Trim() = ) | (comboBox1.Text = ) | (comboBox2.Text = ) ageBox.Show(请输入完整信息, 提示); return; if (tjorxg = 添加) /添加房屋信息 int mianji = Convert.ToInt32(textBox2.Text); int yuezu =
32、Convert.ToInt32(textBox3.Text); string kuandai, chufang, kongtiao; if (checkBox1.Checked) kuandai = 有; else kuandai = 无; if (checkBox2.Checked) chufang = 有; else chufang = 无; if (checkBox3.Checked) kongtiao = 有; else kongtiao = 无; OleDbCommand cmd = new OleDbCommand(); cmd.CommandText = insert into
33、roominfo(房屋编号,面积,类型,房主,状态,月租,位置,宽带,厨房,空调,备注)values( + textBox1.Text + ,mianji, + comboBox1.Text + , + textBox5.Text + ,待租,yuezu, + comboBox2.Text + , + kuandai + , + chufang + , + kongtiao + , + richTextBox1.Text + ); OleDbParameter par = new OleDbParameter2; par0 = new OleDbParameter(mianji, mianji
34、); par1 = new OleDbParameter(yuezu, yuezu); cmd.Parameters.Add(par0); cmd.Parameters.Add(par1); cmd.Connection = datahelp.conn; datahelp.conn.Open(); int n = cmd.ExecuteNonQuery(); datahelp.conn.Close(); string str1 = insert into chuzureninfo(身份证号,姓名,房屋编号,联系方式)values( + textBox6.Text + , + textBox5.
35、Text + , + textBox1.Text + , + textBox4.Text + ); int m = datahelp.sqlinsert(str1); if (n 0 & m 0) MessageBox.Show(添加成功, 提示); datahelp.fwid+; if (tjorxg = 修改) /修改房屋信息 int mianji = Convert.ToInt32(textBox2.Text); int yuezu = Convert.ToInt32(textBox3.Text); string kuandai, chufang, kongtiao; if (checkBox1.Checked) kuandai = 有; else kuandai =