摘 要
随着住房制度改革不断深化和居民收入水平的提高,住房成为新的消费热点,大部分城市房屋销售价格上涨明显。随之而来国家出台了多项针对房地产行业的调空政策。房屋中介行业是房地产业的重要组成部分,其在房地产业经济运作的全过程之中起着至关重要的作用,为房地产业的生产、流通和消费提供了多元化的中介服务。房屋中介行业作为一个管理房屋信息的机构,其对信息的管理应该准确,无误。数据库,流程控制结构和数组等知识设计一个房屋中介管理的项目对于提高该中介机构的工作效率尤为重要。
“房屋中介管理系统”的开发定位在一个能够满足数据库管理系统,即具备一个数据库管理系统的基本功能,包括数据的增加,删除,修改,查询等,便于用户查看,操作,和查询房屋登记信息。该系统符合各房产中介公司的需求。在开发过程中注重明确需求分析,遵循用户参与、优化创新、使用高效、处理规范化的原则,使开发模型更加趋于完善。
在设计中,我们通过分工完成每一个模块,并将它整合起来。完成了这个实验,利用Eclipse这个平台来修改,。充分利用Java的面向对象的特点。
关键词: 中介 信息管理 数据库 数据对象 面向对象
房屋中介管理系统课程设计报告
一、开发背景
房屋中介行业是房地产业的重要组成部分,其在房地产业经济运行的全过程之中起着重要的作用,为房地产业的生产、流通和消费提供了多元化的中介服务 。房地产中介具有很强的灵活性。房地产中介机构以佣金为主要收入来源。国外及港台房地产中介服务具有悠久的发展历史,具有一套较为完善的独立法规体系,包括市场准入法规、执业人员职业道德法规以及执业质量控制标准等。法国房屋中介业历史悠久,形成了一套完善的法律和管理办法,实行从帮助寻找客户到签约、管理等“一条龙”服务。有实力的房屋中介公司业务范围更广,不仅从事单元房、宅院、商业用房、车库和仓库等租赁或买卖,还与合伙人共同参与房屋建设,成为房屋的共同物主。随着互联网的广泛应用,法国的房屋中介公司大都设有网站,从公司诚信为客户服务、帮你解除烦恼的承诺到各种房屋租赁、买卖业务的经营项目,一应俱全。而在中国古代和近代市场中为房屋买卖双方介绍交易)评定房地产商品质量)价格的居间行商称之为宅行。中国房地产中介机构的前身,现称房屋中介。房屋中介机构往往有大量的信息需要处理,传统的手工登记的方式对于处理大量信息而言不仅效率低下,而其极易发生信息的记录错误,甚至发生信息丢失的情况。而计算机技术的发展为解决这一问题提供了良好的途径。
信息技术作为当今使用频率最高的名词之一,随着计算机技术在工业、农业以及日常生活中等各方面的广泛应用,已经被越来越多的个人和企业作为自己赶超世界潮流的标志之一,而数据库技术则是信息技术中一个重要的支撑。数据库技术是计算机科学技术的一个重要分支。从20世纪50年代中期开始,计算机应用从科学研究部门扩展到企业管理及政府行政部门,人们对数据处理的要求也越来越高。在1968年,世界上诞生了第一个商品化的信息管理系统IMS(Information Management System),从此,数据库技术得到了迅猛发展。在互联网日益被人们接受的今天,Internet又使数据库技术、知识、技能的重要性得到了充分的放大。现在数据库已经成为信息管理、办公自动化、计算机辅助设计等应用的主要软件工具之一,帮助人们处理各种各样的信息数据。所以将数据库的技术应用于房屋中介机构,方便其数据管理就变得尤为重要。
二、需求分析
传统的以手工登记为主的房屋中介公司往往有成堆的文件需要人工去处理,对于房屋信息的记录,更新,查询都非常缓慢,而且容易出错,信息管理效率低下,无法保证高质量的信息服务,难于快速到满足客户的需求,其在无形中就耗费了更多的时间,人力,物力,增加了房屋中介公司的运营成本。所以开发房屋中介管理系统对于房屋中介的管理人员,以及客户来说都具有些意义。该系统方便房屋中介机构对房屋信息的记录,更新,查询,利于其信息管理,对于客户提出的要求能够及时满足,提高了中介机构的工作效率,同时,开发这样一套管理系统对于我们即将计算机科学与技术专业毕业的学生来说,也是一次将计算机应用于现实的一次很有意义的实践活动。
三、模块说明
房屋中介管理系统,有增加、查询、删除、出租、归还等模块。
1、增加房屋模块
功能描述:主要功能是实现对房屋信息的添加。
输入:房屋的基本信息。
输出:添加成功。
2、信息查询模块
功能描述:主要功能是实现对房屋信息的查询。
输入:房屋编号。
输出:房屋的基本信息和不存在。
3、删除模块
功能描述:实现对房屋信息的删除。
输入:房屋编号。
输出:房屋已删除或不存在。
4、出租模块
功能描述:主要功能是实现对房屋出租。
输入:房屋租房或出售。
输出:房屋的状态。
5、归还模块
功能描述:主要功能是实现对房屋的收回和计算费用。
输入:房屋的名字和日期。
输出:归还成功和中介的费用。
四、详细设计
先登记房屋初始信息,增加房屋基本信息,删除房屋基本信息,查寻房屋的基本信息,归还房子及计算租房费用。
1、House类
类名:House
继承父类:无
实现接口:无
概述:定义房屋类、房屋信息
属性及说明:
public class house { 定义house类
String[] name=new String[50]; 把对象的引用传递给name
int[] state = new int[50]; 把对象的引用传递给state
String[]date=new String[50]; 把对象的引用传递给date
int[] count=new int[50]; 把对象的引用传递给count
......
};
方法及说明:
public void house(){ 声明house
this.name[0]=“01”; 对house的名字进行初始定义
this.state[0]=0; 对house的状态进行初始定义
this.date[0]=“2017年03月01日”; 对house的日期进行初始定义
......
2、Caidan类
类名:caidan类
继承父类:无
实现接口:无
概述:在控制台输出功能选项的菜单
属性及说明:
void caidan(){ 声明菜单类
System.out.println(“欢迎使用房屋中 信息提示
介管理系统” );
System.out.println(“-----------”);
System.out.println(“1.新增HOUSE”); 输出菜单提示信息
......
方法及说明:
(使用switch语句进行功能选择)
xuhao=in.nextInt(); 序号的输入
Switch(xuhao){ Switch语句进行选择
case 1: 选择1为zengjia功能
break; 跳出switch语句
case 2: 选择2为chakan功能
this.chakan();
break;
......
default:System.out.print(“对不起 输入异常数字的处理
您的输入有误,请重新输入”);
3. Shanchu`类
类名:shanchu类
继承父类:无
实现接口:无
概述:对已经出租的房子进行信息删除
属性及说明:public class shanchu{ 定义删除类
}
方法及说明:
void shanchu(){ 声明删除类
System.out.println(“删除”); 提示功能
...
for(int i = 0;i<this.name.length;i++){ for循环对i处理
if(this.name[i]=null){ 判断名字是已否存在
if(this.name[i].equalsIgnoreCase(name)){ 寻找对应house
if(this.state[i]==0){ 判断是否已经租出
......
4.Guihuan类
类名:guihuan类
继承父类:无
实现接口:无
概述:进行已租出的房屋的归还,及信息记录
属性及说明:public class guihuan{ 定义归还类
...
}
方法及说明:
System.out.println("归还"); 信息提示
System.out.println("****** 信息提示
**欢迎进入还HOUSE******************");
System.out.println(
"请输入还HOUSE的名称:"); 录入信息提示
Scanner input = new Scanner(System.in); 屏幕输入
String name = input.next(); 传递引用
for(int i = 0;i<this.name.length;i++){ for遍历循环
if(this.name[i]!=null){ //有 判断是否已经存在
if(this.name[i].equalsIgnoreCase(
name) && this.state[i] == 0){ 对两个条件进行判断
this.state[i] = 1; 定义house状态
System.out.println("请输入房
子交还的时间(年-月-日):");
Scanner inputDate = new Scanner(System.in);更新日期
五、系统实现
对房屋中介管理系统进行实现
1、主界面
对菜单进行显示
提示1~6对应选项的功能
客户可根据自己的需求进行选择
于提示处,输入对应数字
即可进行相应的功能
2、查询模块
查询房子的基本信息
选择2对应功能进入信息查询页面
例如:
序号1房子的名称为“01”
其状态为已经出租
并对应租出时间
信息列表的末端
输入0
可回到菜单页面
3、删除模块
删除房子的基本信息
通过输入对应名称
对房屋信息进行删除
已使查询页面简便
删除成功后提示:“02”已经删除
输入0可回到功能选择页面
总 结
课程设计,对于所有组来说都不是很简单,但是可以依靠团队来进行解决,思考,讨论,最后完成这个项目。我们自认为一个人处理不好所有的问题,所以我们就进行交流,学习,合作,还有各自的分工,最后合在一起,完成这个项目。在这个过程中我们学到了很多东西,也巩固了以前的知识。
通过此次对房产中介管理系统的设计,我们都学到了很多。例如,流程的两种控制方式,及循环结构和选择结构。有if-else语句,if语句,switch语句,while循环,do-while循环。学习基本的面向对象的思想,对“对象”“类”“属性”及“方法”等有一个的初步理解。还有数组的用法,对数组进行声明和初始化,遍历数组,Arrays类的使用的知识。运用封装,继承,多态,抽象类和抽象方法,接口等。再然后对程序的“异常捕获和处理”。最后保证“房产中介管理系统”正常运行。在此过程中,加深了对java语言程序设计理论和基本知识的理解,将课堂上学习的内容付诸于实践,在实践中找出自己的不足,并努力解决,从而使自己不仅加深对java语言的知识点的巩固,而且加强自己的实践能力。
在对程序算法的设计、运行程序、调试过程的分析的过程中,掌握了基本的信息系统分析方法、设计方法和上机操作的各种技巧,对培养我们的逻辑思维能力、团队合作精神、创新能力、动手操作能力各方面素质提供了良好的实践平台,为以后的学习做更好的准备。最后非常感谢帮助我们的老师和身边的同学,正是老师的授课,让我们学了这些相关的知识,我们才能有思路和能力去写。还有身边的同学,他们给我们提意见,作分析等。总之,正是由于他们的帮助,我们组才能更好的完成这个课程设计,完成我们的“房屋中介管理系统”这个项目。再次感谢他们。
参考文献
[1]明日科技.Java从入门到精通.第五版.清华大学出版社.2019
[2]罗如为. Java Web开发技术与项目实战.水利水电出版社.2019
[3]李刚.疯狂Java讲义.第四版.电子工业出版社.2018
[4]汪文君.Java高并发编程详解.机械工业出版社.2018
[5]汪云飞.JavaEE开发的颠覆者.电子工业出版社.2016
[6]Cay.S.Horstmann.Java核心技术.第十版.机械工业出版社.2016
[7]陈强.精通Java开发技术.清华大学出版社.2014
[8]黄俊.Java程序设计与应用开发.第二版.机械工业出版社.2014
[9]王爱国.Java面向对象程序设计.机械工业出版社.2014
[10]陈云婷.21天学通Java.电子工业出版社.2014
[11]张剑飞.Java EE开发技术.哈尔滨工业大学出版社.2013
[12]向昌成.Java程序设计项目化教程.清华大学大学出版社.2013
[13] Metsker S J.Java设计模式.第二版.电子工业出版社.2012
[14] Metsker S J.Java框架设计.第一版.电子工业出版社.2012
附录:系统源代码
1、主函数
package lianxi;
import java.sql.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Scanner;
import java.text.ParseException;
public class house {
String[ ] name = new String[50];
int[ ] state = new int[50];
String[ ] date=new String[50];
int[] count=new int[50];
Scanner in=new Scanner(System.in); //键盘输入
int xuhao; //选择项输入的数字
int k=3; //刚开始已经存有4所房子的记录
boolean flag=true; //判断继续执行
public house(){
}
// 初始化程序
//数组初始化
public void house(){
this.name[0]="01"; //调用
this.state[0]=0; //房屋状况,0就是已出租,1是未出租
this.date[0]="2017年03月01日";
this.name[1]="02";
this.state[1]=1;
this.name[2]="03";
this.state[2]=1;
this.name[3]="04";
this.state[3]=0;
this.date[3]="2017年03月06日";
}
public void setName(String[] n){//新增房屋类继承房屋类
name=n;
}
public String[] getName(){
return name;
}
//菜单
void caidan(){ //声明菜单
System.out.println("欢迎使用房屋中介管理系统");
System.out.println("----------------------------");
System.out.println("1.新增HOUSE");
System.out.println("2.查看HOUSE");
System.out.println("3.删除HOUSE");
System.out.println("4.租赁HOUSE");
System.out.println("5.归还HOUSE");
System.out.println("6.退 出");
System.out.println("----------------------------");
System.out.println("请选择:");
//选择
xuhao=in.nextInt(); //下一步执行
switch(xuhao){
case 1:
this.zengjia();
break;
case 2:
this.chakan();
break;
case 3:
this.shanchu();
break;
case 4:
this.zuchu();
break;
case 5:
this.guihuan();
break;
case 6:
this.tuichu();
break;
default:System.out.print("对不起,您的输入有误!请输入1—6:");
}
}
//返回
void fanhui(){//声明返回
System.out.print("按数字0返回");
xuhao=in.nextInt(); //输入为提示信息输出后的输入
if(xuhao==0){
System.out.println("-------------------------------------");
this.caidan(); //调用菜单
}
else{
this.zengjia();//输入有误时调用增加的方法,调用增加方法
} }
2、House类
public class house {
String[ ] name = new String[50];
int[ ] state = new int[50];
String[ ] date=new String[50];
int[] count=new int[50];
Scanner in=new Scanner(System.in); //键盘输入
int xuhao; //选择项输入的数字
int k=3; //刚开始已经存有4所房子的记录
boolean flag=true; //判断继续执行
public house(){
}
3、Zhongjie类
void guihuan(){
System.out.println("归还");
System.out.println("********欢迎进入还HOUSE页面******************");
System.out.println("请输入还HOUSE的名称:");
Scanner input = new Scanner(System.in);
double price = 0.0;
String name = input.next();
for(int i = 0;i<this.name.length;i++){
if(this.name[i]!=null){ //有
if(this.name[i].equalsIgnoreCase(name) && this.state[i] == 0){ //以租出就可以归还
this.state[i] = 1;
System.out.println("请输入房子交还的时间(年-月-日):");
Scanner inputDate = new Scanner(System.in);
//获取时间差
long charge = charge1(this.date[i],inputDate.next());
price = charge * 1;
System.out.println(this.name[i]+"交还成功");
System.out.println("您应付"+price+"元");
//清空时间
this.date[i] = null;
break;
}
}else{
System.out.println("没有找到匹配的信息");
break;
}