资源描述
郑州科技学院
C#课程设计
设计(论文)题目: 房屋出租管理系统
所 在 院: 信息工程学院
专 业 班 级: 10计算机科学与技术2班
学 生 姓 名: 金长江
学 号: 201015049
指 导 教 师: 王玉萍
目 录
1前言 2
1.1系统开发背景和开发目的 2
1.2 可行性分析 2
1.2.1技术可行性 2
1.2.2 经济可行性 3
1.2.3 操作可行性 3
1.2.4 法律可行性 3
2开发工具简介 3
2.1 C#语言简介 3
2.2 Access 2003数据库 4
3 需求分析 4
3.1系统目标 4
3.2应用现状调查 4
3.3系统流程图 5
4 概要设计 6
4.1系统设计思想 6
4.2系统构架选择 6
5数据库设计 6
5.1概念设计 6
5.2物理设计 8
6系统详细设计 10
6.1 datahelp类的设计 10
6.2系统主界面模块设计 12
6.3房屋出租管理模块 13
6.4房屋信息管理模块 18
6.5客户信息模块 22
6.6密码修改 25
总结 27
致谢 28
参考文献 29
1前言
1.1系统开发背景和开发目的
利用计算机实现物业管理中的房屋租赁管理势在必行。对于物业管理企业来说,利用计算机支持企业高效率完成房屋租赁管理的日常事务,是适应现代企业制度要求、推动企业劳动型管理走向科学化、规范化的必要条件;而房屋租赁管理是一项琐碎、复杂而又十分细致的工作,房屋的基本资料,客户资料的管理,房屋租赁管理,各项收费以及统计报表的管理,一般不允许出错,如果实行手工操作,须手工填制大量的表格,这就会耗费工作人员大量的时间和精力,计算机进行房屋租赁工作的管理,不仅能够保证各项信息准确无误、快速输出,同时计算机具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高物业管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。开发本系统就是为了解决物业管理企业在房屋租赁信息管理中的一些不规范,使房屋租赁信息的管理向着规范化、简单化、有效化的方向发展。
1.2 可行性分析
1.2.1技术可行性
从目前IT业界比较流行的数据库开发、管理软件来看,对于比较简单的小型数据库, C# 和Access的结合无疑是在实际应用中较为成功的一种解决方案。利用Microsoft Visual Studio 2008来设计用并使用Access 2003设计数据库,为用户提供了业界软件开发一直坚持的非常友好、操作简单的用户界面、完善强大的数据库操作功能和简洁明了的数据库接口,所以技术实行起来相对会容易。
1.2.2 经济可行性
本系统开发简单但要耗去一定的时间,所用的开发工具和软件都差不多是免费的。而且,由于系统能够在未来较长的一段时期内稳定地发挥作用,这对于学生房屋租赁信息的自动化管理,称业管理企业的人力和财力都有很大的帮助。由此可见在,开发此系统在经济上是完全可行的。
1.2.3 操作可行性
如今的计算机已经走进千家万户,硬件成本的下降,导致计算机购买成本的降低.此系统是利用自己的计算机加Microsoft Visual Studio2008作为软件的开发平台,使开发出来的系统有友好的用户界面、有良好的安全性设置、有详细的操作说明书,这样更使各类用户很快地掌握系统的使用方法,操作友好因此在操作上是可行的。
1.2.4 法律可行性
本系统开发不会侵犯他人、集体或国家利益,不存在侵权等问题,不违反国家法律,因此具有法律可行性。
综上所述,该系统的开发是可行的。
2开发工具简介
2.1 C#语言简介
Microsoft Visual Studio .NET是Microsoft 公司为适应Internet高速发展的需要,而推出的新的开发平台。2008年3月17发布VS2008。随后又发布了vs2010。C#[1]语言是.NET平台上的第一语言。自发布以来不断增强,已经成为目前功能最强大的通用语言之一。
2.2 Access 2003数据库
Access 是微软公司推出的基于Windows的桌面关系数据库管理系统(RDBMS),是Office系列应用软件之一。它提供了表、查询、窗体、报表、页、宏、模块7种用来建立数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规范化;为建立功能完善的数据库管理系统提供了方便,也使得普通用户不必编写代码,就可以完成大部分数据管理的任务。
Access是一种关系型数据库管理系统,其主要特点如下(1)存储方式单一。2)面向对象(3)界面友好、易操作(4)集成环境、处理多种数据信息(5)Access支持ODBC
3 需求分析
3.1系统目标
建立房屋租赁信息管理系统,实现房屋租赁信息管理的计算机自动化。系统应符合物业管理企业原有的房屋租赁管理制度,并达到操作直观、方便、实用、安全等要求。
房屋租赁信息管理系统应该具有以下功能:
1由于操作人员的计算机知识普遍偏低,因此要求系统具有良好的人机界面;
2方便的数据查询,支持自定义条件查询;
3自动匹配房源和求房意向信息;
4在相应的权限下,删除数据方便简单,数据稳定性强;
5数据计算自动完成,尽量减少人工干预。
3.2应用现状调查
当前,很多物业管理企业的房屋租赁信息管理都是使用纸质资料来登记、记录房屋等信息,这导致房屋信息变更不便,且房屋租赁花费人力资源多,工作也较繁琐。传统的看房流程是很费时费力的,房屋租赁成本居高、人力管理的比例比较大,往往是各个主要负责人以书面的形式管理房屋租赁信息,效率低下。数据打印,汇总时,容易丢失,不易保存且数据保密性较差。因此,开发一套功能相对完整,同时使得客户使用系统更加放心,提高工作的效率,减少过多的人力资源的付出。
3.3系统流程图
开始
系统业务流程图如图3-1
错误提示
密码验证
N
房屋出租管理
房屋信息管理
客户管理
房屋出租管理系统
密码修改
退出
Y
N
修改密码
承租人信息
出租人信息
删除房屋信息
添加房屋信息
修改房屋信息
房屋信息查询
退租
续租
房屋入住
房屋查询
关闭系统
图3-1 房屋出租管理系统业务流程图
4 概要设计
4.1系统设计思想
本系统实现房屋出租业务的自动化管理,为中介公司提供及时的房屋信息和客户信息。本系统完成房屋管理、房屋入住、续租、退房、房屋查询等功能。因此系统必须具有维护这些操作信息的数据表。
4.2系统构架选择
本系统采用双层结构的C/S模式,即客户端和服务器端模式,客户端提供用户操作界面,接受用户输入的各种信息,并向服务器端发送各种操作命令或数据请求,并接受服务器端执行操作命令后的返回结果,向客户显示相应信息。服务器端接受客户端的数据请求或命令,并执行相应的数据请求命令得到相应的数据集,对数据集进行相应的处理,然后将数据集或处理后的数据集返回客户端。C/S结构的体系结构具有访问速度快、运行稳定、安全性能好等优点,比其它构架模式更能满足本系统的快速响应及信息共享的要求。
5数据库设计
本系统采用Access 2003数据库设计,名称为chuzudata,其中包含了4张表,下面分别给出数据表概念设计和主要数据表的结构。
5.1概念设计
房屋租赁管理系统主要用到房屋信息表、出租人信息表、承租人信息表等,各个表的E-R图如下:
房屋信息E-R图(见图4-1)
房屋
编号
厨房
面积
宽带
位置
类型
月租
房主
状态
备注
空调
图4-1 房屋E-R图
出租人信息E-R图(见图4-2)
联系方式
房屋编号
姓名
身份证号
出租人
图4-2 出租人E-R图
承租人信息E-R图(见图4-3)
性别
入住时间
月租
交费总额
房屋编号
姓名
身份证号
承租人
图4-3 承租人E-R图
5.2物理设计
1. 房屋信息表
Roominfo表,该表主要用于保存房屋的信息,包括房屋名称、房屋编号、房屋、类型、面积、租金、状态、位置、宽带、厨房、空调和备注。如下表5-1 所示
表4-1 房屋信息表
字段名称
字段类型
字段大小
主键
房屋编号
文本
50
Y
面积
数字
4
N
类型
文本
50
N
房主
文本
50
N
状态
文本
50
N
月租
数字
4
N
位置
文本
50
N
宽带
文本
50
N
厨房
文本
50
N
空调
文本
50
N
备注
文本
50
N
2. 出租人信息表
chuzureninfo表,该表主要用于保存出租人的信息,包括身份证号、姓名、房屋编号、联系方式。如下表4-2所示
表5-2 租金信息表
字段名称
字段类型
字段大小
主键
身份证号
文本
50
N
姓名
文本
50
N
房屋编号
文本
50
Y
联系方式
文本
50
N
3. 承租人信息表
rentinfo表,该表主要用于存储房客的信息,包括房客名称、身份证号、性别、房屋编号、合同编号、入住时间、月租、交费总额,如下表4-3所示
表5-3 房客信息表
字段名称
字段类型
字段大小
主键
身份证号
文本
50
Y
姓名
文本
50
N
性别
文本
50
N
房屋编号
文本
50
N
合同编号
数字
4
N
入住时间
日期/时间
N
月租
数字
4
N
缴费总额
数字
4
N
4. 密码信息表
pswinfo表,该表主要用于保存系统的密码。如下表4-4所示
表5-4 水电费信息表
字段名称
字段类型
字段大小
主键
psw
文本
50
Y
6系统详细设计
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=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 OleDbDataAdapter(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系统主界面模块设计
主界面功能:启动界面后首先设置菜单栏的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() == ds.Tables["123"].Rows[0].ItemArray[0].ToString())
{
this.menuStrip2.Items[0].Enabled = true;
this.menuStrip2.Items[1].Enabled = true;
this.menuStrip2.Items[2].Enabled = true;
this.menuStrip2.Items[3].Enabled = true;
this.menuStrip2.Items[4].Enabled = true;
label1.Visible = false;
textBox1.Visible = false;
button1.Visible = 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.Text.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 = "select * from roominfo where 房屋编号 is not null";// 消除首个and影响
if ((textBox3.Text.Trim() != "") && (textBox4.Text.Trim() != ""))
{ cmd.CommandText += " and 月租>=@minyuezu and 月租<=@maxyuezu"; }
if ((textBox8.Text.Trim() != "") && (textBox7.Text.Trim() != ""))
{ cmd.CommandText += " and 面积>=@minmianji and 面积<=@maxmianji"; }
if (comboBox1.SelectedIndex > 0)
{ cmd.CommandText += " and 类型='" + comboBox1.SelectedItem.ToString() + "'"; }
if (checkBox2.Checked)
{ cmd.CommandText += " and 宽带='有'"; }
if (checkBox3.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() != "") && (textBox4.Text.Trim() != ""))
{
OleDbParameter[] pa = new OleDbParameter[2];
pa[0] = new OleDbParameter("@minyuezu", minyuezu);
pa[1] = new OleDbParameter("@maxyuezu", maxyuezu);
cmd.Parameters.Add(pa[0]);
cmd.Parameters.Add(pa[1]);
}
if ((textBox8.Text.Trim() != "") && (textBox7.Text.Trim() != ""))
{
OleDbParameter[] pa = new OleDbParameter[2];
pa[0] = new OleDbParameter("@minmianji", minmianji);
pa[1] = new OleDbParameter("@maxmianji", maxmianji);
cmd.Parameters.Add(pa[0]);
cmd.Parameters.Add(pa[1]);
}
if ((textBox3.Text.Trim() != "") && (textBox4.Text.Trim() != "") && (textBox8.Text.Trim() != "") && (textBox7.Text.Trim() != ""))
{
OleDbParameter[] pa = new OleDbParameter[4];
pa[0] = new OleDbParameter("@minyuezu", minyuezu);
pa[1] = new OleDbParameter("@maxyuezu", maxyuezu);
pa[2] = new OleDbParameter("@minmianji", minmianji);
pa[3] = new OleDbParameter("@maxmianji", maxmianji);
cmd.Parameters.Add(pa[0]);
cmd.Parameters.Add(pa[1]);
cmd.Parameters.Add(pa[2]);
cmd.Parameters.Add(pa[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(object sender, EventArgs e)
{
string ss = "select 月租 from roominfo where 房屋编号 ='" + textBox1.Text + "'";
DataSet ds = datahelp.sqlquery(ss);
if (ds.Tables["123"].Rows.Count > 0)
{
textBox5.Text = ds.Tables["123"].Rows[0].ItemArray[0].ToString();
}
}
续租界面如图图5-4
图5-4
退房界面如图5-5
图5-5
续租部分代码:
根据输入的续租时间计算租金:
private void textBox7_TextChanged(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; textBox6.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(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(object sender, EventArgs e)
{
房屋信息添加 fwxxxg = new 房屋信息添加();
fwxxxg.tjorxg = "修改";
fwxxxg.fangwubianhao = dataGridView1.CurrentRow.Cells[0].Value.ToString();
fwxxxg.Show();
}
房屋信息添加界面如图5-7
图5-7
房屋信息修改界面如图5-8
图5-8
添加修改的部分代码:
房屋信息修改的保存事件
private void button1_Click(object sender, EventArgs e)
{
if ((textBox1.Text.Trim() == "") || (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 = 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 roominfo(房屋编号,面积,类型,房主,状态,月租,位置,宽带,厨房,空调,备注)values('" + textBox1.Text + "',@mianji,'" + comboBox1.Text + "','" + textBox5.Text + "','待租',@yuezu,'" + comboBox2.Text + "','" + kuandai + "','" + chufang + "','" + kongtiao + "','" + richTextBox1.Text + "');";
OleDbParameter[] par = new OleDbParameter[2];
par[0] = new OleDbParameter("@mianji", mianji);
par[1] = new OleDbParameter("yuezu", yuezu);
cmd.Parameters.Add(par[0]);
cmd.Parameters.Add(par[1]);
cmd.Connection = datahelp.conn;
datahelp.conn.Open();
int n = cmd.ExecuteNonQuery();
datahelp.conn.Close();
string str1 = "insert into chuzureninfo(身份证号,姓名,房屋编号,联系方式)values('" + textBox6.Text + "','" + textBox5.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 = "
展开阅读全文