资源描述
山东建筑大学计算机科学与技术学院
程序设计实用案例选讲
大作业阐明书
题 目: 房地产中介管理系统
课 程: 程序设计实用案例选讲
院 (部): 计算机科学与技术
专 业: 网络工程
班 级: 网络131
学生姓名: 高雷
学 号: 1113033
指引教师: 袁卫华
完毕日期: /01/08
目 录
房地产中介管理系统 1
一、问题描述 1
二、设计思想 1
三、系统构造 1
四、程序流程(或模块划分) 2
五、源程序 3
六、系统测试及操作界面 22
结 论 30
参照文献 31
房地产中介管理系统
一、问题描述
某房屋中介公司重要业务涉及房屋出租和二手房买卖,请编程实现“房屋中介管理系统”,详细规定如下:
一、房源基本信息管理,(房屋编号,户型(如两室一厅,三室两厅),详细地址(坐落位置),
建造年月,状态(待售,待出租,已售,已出租等),价格(租金/月或售价),房主姓名,联系方式等),
请编程实现这些基本信息增、删、改、查等操作。
二、房屋出租操作,对于所有“待出租”状态房屋,可以执行出租操作,其状态转换为“已出租”,
依照出租月数,计算租金,并征收中介费(中介费普通等于一种月租金);处在“已出租”状态房屋不能执行该操作。
三、 房屋出售操作,对于所有“待出售”状态房屋,可以执行出手操作,
其状态转换为“已售”,依照房价和中介费计算办法(自己查),计算应当征收中介费
二、设计思想
此管理系统重要实现对房源增删改查四个重要功能,以及将数据输出保存文献。本系统分为管理员和普通顾客两个类别顾客,管理员可以对房源信息增删改查等操作,普通顾客无法更改信息,可以查询信息。此外,针对大量顾客,可以注册新顾客。管理员在添加新居源信息时需要保证输入每一种信息,否则会提示管理员输入完整。修改信息可以修改一种信息,也可以同步修改各种信息,修改成功会依次提示。查询时重要可以通过查询户型以及房屋状态查询。顾客查询到需要房源时通过管理员修改房源信息,并将房屋状态变化出租或出售给顾客。
三、 系统构造
房地产管理系统涉及7个重要类:
BuildingSystem.Java:主操作界面,登录界面、选取顾客类型等信息
Admin.java管理员登录界面
Admin1.java管理员操作界面
RegisterException.java用于两次密码不一致时抛异常
User.java普通顾客登录界面
User1.java普通顾客操作界面
ZhuCe.java新顾客注册
四、程序流程(或模块划分) 图4-1 程序流程图
五、源程序
BuildingStystem
package gaolei;
public class BuildingSystem implements Runnable,ActionListener {
JFrame f1;
JPanel p1,p2,p3,p4;
JLabel l21;
JButton function1,function2,function3,function4;
JButton end;
Thread scollWorsThread;
boolean stopScorlling;
BuildingSystem() {
f1 = new JFrame("--房屋中介管理系统--");
p1 = new JPanel();
p1.setBackground(Color.white);
p1.setLayout(new GridLayout(5,1,5,5));
function1 = new JButton(" 【管理员登录通道】 ");
p1.add(function1);
function1.setBackground(Color.getHSBColor(100,152,188));
function1.addActionListener(this);
function2 = new JButton("【普通顾客登陆通道】");
function2.setBackground(Color.getHSBColor(100,152,188));
p1.add(function2);
function2.addActionListener(this);
function3 = new JButton(" 【新顾客注册】 ");
p1.add(function3);
function3.setBackground(Color.getHSBColor(100,152,188));
function3.addActionListener(this);
function4 = new JButton(" 【系统信息】 ");
p1.add(function4);
function4.setBackground(Color.getHSBColor(100,152,188));
function4.addActionListener(this);
end = new JButton(" 【 退 出 程 序 】 ");
p1.add(end);
end.setBackground(Color.getHSBColor(100,152,188));
end.addActionListener(this);
f1.add(BorderLayout.EAST,p1);
p2 = new JPanel();
p2.setBackground(Color.getHSBColor(100,10,255));
p2.setLayout(new GridLayout(3,1));
JLabel empty1 = new JLabel(" ");
p2.add(empty1);
l21 = new JLabel(" 高雷房地产公司欢迎您O(∩_∩)O~ ");
l21.setForeground(Color.DARK_GRAY);
l21.setFont(new Font("华文行楷",1,17));
p2.add(l21);
JLabel empty2 = new JLabel(" ");
p2.add(empty2);
f1.add(BorderLayout.NORTH,p2);
p3 = new JPanel(){
private static final long serialVersionUID = 1L;
public void paint(Graphics g){
ImageIcon icon=new ImageIcon("F:\\Java information\\12.png");
Image image=icon.getImage();
g.drawImage(image,0,0,null);
}};
p3.setBackground(Color.white);
JLabel nn = new JLabel(" ");
p3.add(nn);
f1.add(BorderLayout.SOUTH,p3);
p4 = new JPanel(){
private static final long serialVersionUID = 1L;
public void paint(Graphics g){
ImageIcon icon=new ImageIcon("F:\\Java information\\12.png");
Image image=icon.getImage();
g.drawImage(image,0,0,null);} };
p4.setBackground(Color.white);
f1.add(BorderLayout.CENTER,p4);
scollWorsThread = new Thread(this);
scollWorsThread.start();
f1.setResizable(false);
f1.setSize(470,285);
f1.setVisible(true);
f1.setLocation(400,180);
f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}
public void run() {
while (true) {
int x = l21.getBounds().x;
int y = l21.getBounds().y;
x += 5;
l21.setLocation(x,y);
if (x > 420) {
x = 0;
l21.setLocation(x,y);}
try {
Thread.sleep(1000);
} catch (InterruptedException e) {}
if (stopScorlling == true) {
return;}
}}
public void actionPerformed(ActionEvent e){
try {
if (e.getSource() == function1) {
new Admin();
} else if (e.getSource() == function2) {
new User();
} else if (e.getSource() == function3) {
new ZhuCe();
} else if (e.getSource() == function4) {
JOptionPane.showMessageDialog(null,this,"系统简介 ",3);
} else if (e.getSource() == end) {
System.exit(1);}
} catch (Exception e1) {
e1.printStackTrace();
}}
public static void main(String[] args) throws Exception{
new BuildingSystem();
}}
Admin
package gaolei;
public class BuildingSystem implements Runnable,ActionListener {
JFrame f1;
JPanel p1,p2,p3,p4;
JLabel l21;
JButton function1,function2,function3,function4;
JButton end;
Thread scollWorsThread;
boolean stopScorlling;
BuildingSystem() {
f1 = new JFrame("--房屋中介管理系统--");
p1 = new JPanel();
p1.setBackground(Color.white);
p1.setLayout(new GridLayout(5,1,5,5));
function1 = new JButton(" 【管理员登录通道】 ");
p1.add(function1);
function1.setBackground(Color.getHSBColor(100,152,188));
function1.addActionListener(this);
function2 = new JButton("【普通顾客登陆通道】");
function2.setBackground(Color.getHSBColor(100,152,188));
p1.add(function2);
function2.addActionListener(this);
function3 = new JButton(" 【新顾客注册】 ");
p1.add(function3);
function3.setBackground(Color.getHSBColor(100,152,188));
function3.addActionListener(this);
function4 = new JButton(" 【系统信息】 ");
p1.add(function4);
function4.setBackground(Color.getHSBColor(100,152,188));
function4.addActionListener(this);
end = new JButton(" 【 退 出 程 序 】 ");
p1.add(end);
end.setBackground(Color.getHSBColor(100,152,188));
end.addActionListener(this);
f1.add(BorderLayout.EAST,p1);
p2 = new JPanel();
p2.setBackground(Color.getHSBColor(100,10,255));
p2.setLayout(new GridLayout(3,1));
JLabel empty1 = new JLabel(" ");
p2.add(empty1);
l21 = new JLabel(" 高雷房地产公司欢迎您O(∩_∩)O~ ");
l21.setForeground(Color.DARK_GRAY);
l21.setFont(new Font("华文行楷",1,17));
p2.add(l21);
JLabel empty2 = new JLabel(" ");
p2.add(empty2);
f1.add(BorderLayout.NORTH,p2);
p3 = new JPanel(){
private static final long serialVersionUID = 1L;
public void paint(Graphics g){
ImageIcon icon=new ImageIcon("F:\\Java information\\12.png");
Image image=icon.getImage();
g.drawImage(image,0,0,null);}};
p3.setBackground(Color.white);
JLabel nn = new JLabel(" ");
p3.add(nn);
f1.add(BorderLayout.SOUTH,p3);
p4 = new JPanel(){
private static final long serialVersionUID = 1L;
public void paint(Graphics g){
ImageIcon icon=new ImageIcon("F:\\Java information\\12.png");
Image image=icon.getImage();
g.drawImage(image,0,0,null);
}
};
p4.setBackground(Color.white);
f1.add(BorderLayout.CENTER,p4)
scollWorsThread = new Thread(this);
scollWorsThread.start();
f1.setResizable(false);
f1.setSize(470,285);
f1.setVisible(true);
f1.setLocation(400,180);
f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void run() {
while (true) {
int x = l21.getBounds().x;
int y = l21.getBounds().y;
x += 5;
l21.setLocation(x,y);
if (x > 420) {
x = 0;
l21.setLocation(x,y);}
try {
Thread.sleep(1000);
} catch (InterruptedException e) {}
if (stopScorlling == true) {
return;
}}}
public void actionPerformed(ActionEvent e){
try {
if (e.getSource() == function1) {
new Admin();
} else if (e.getSource() == function2) {
new User();
} else if (e.getSource() == function3) {
new ZhuCe();
} else if (e.getSource() == function4) {
JOptionPane.showMessageDialog(null,this,"系统简介 ",3);
} else if (e.getSource() == end) {
System.exit(1);}
} catch (Exception e1) {
e1.printStackTrace();
}}
public static void main(String[] args) throws Exception{
new BuildingSystem();
}
}
Admin1
package gaolei;;
public class Admin1 extends JFrame implements ActionListener{
JFrame f;
JLabel jl,j2,j3,j4,j5,j6,j7,j8;
JTextField jf1,jf2,jf3,jf4,jf5,jf6,jf7,jf8;
JButton jb1,jb2,jb3,jb4,jb5,jb6,jb7,jb8;
JPanel jp1;
int id;
int m=0;
JTextArea result;
String DBDriver="sun.jdbc.odbc.JdbcOdbcDriver";
String connectionStr="jdbc:odbc:HouseInfo1";
Statement stmt=null,s1=null;
Connection con=null;
ResultSet rs=null;
PreparedStatement stmt1=null,stmt2=null,stmt3=null,stmt4=null;
public Admin1() {
f = new JFrame("房源基本信息");
jp1=new JPanel();
jp1.setLayout(new GridLayout(5,2));
jl=new JLabel("编号:");
j2=new JLabel("房主姓名:");
j3=new JLabel("联系方式:");
j4=new JLabel("坐落位置:");
j5=new JLabel("建造年月:");
j6=new JLabel("价格:");
j7=new JLabel("户型");
j8=new JLabel("房屋状态");
jf1=new JTextField(10);
jf2=new JTextField(10);
jf3=new JTextField(10);
jf4=new JTextField(10);
jf5=new JTextField(10);
jf6=new JTextField(10);
jf7=new JTextField(10);
jf8=new JTextField(10);
jb1=new JButton("录入");
jb2=new JButton("修改");
jb3=new JButton("删除");
jb4=new JButton("查询");
jp1.add(jl);
jp1.add(jf1);
jp1.add(j2);
jp1.add(jf2);
jp1.add(j3);
jp1.add(jf3);
jp1.add(j4);
jp1.add(jf4);
jp1.add(j5);
jp1.add(jf5);
jp1.add(j6);
jp1.add(jf6);
jp1.add(j7);
jp1.add(jf7);
jp1.add(j8);
jp1.add(jf8);
jp1.add(jb1);
jp1.add(jb2);
jp1.add(jb3);
jp1.add(jb4);
jb1.addActionListener(this);
jb2.addActionListener(this);
jb3.addActionListener(this);
jb4.addActionListener(this);
f.add(BorderLayout.NORTH,jp1);
result = new JTextArea(60,100);
result.setEditable(false);
JScrollPane jScrollPane=new JScrollPane(result);
f.add(BorderLayout.CENTER,jScrollPane);
f.setSize(500,600);
f.setLocation(600,80);
f.setVisible(true);
f.validate();}
public void insert(){
int m=0;
try{
Class.forName(DBDriver);//加载驱动器表达式
}catch(ClassNotFoundException e1){
e1.printStackTrace();}
String id=jf1.getText();
String name=jf2.getText();
String tel=jf3.getText();
String loc=jf4.getText();
String riqi=jf5.getText();
String price=jf6.getText();
String type=jf7.getText();
String zt=jf8.getText();
if(!id.equals("")&&!name.equals("")&&!tel.equals("")&&!loc.equals("")&&!riqi.equals("")&&!price.equals("")&&!type.equals("")&&!zt.equals("")){
try{
con=DriverManager.getConnection(connectionStr,"","");//建立数据库连接
String sql1="INSERT INTO house(id,name,tel,loc,riqi,price,type,zt) values (?,?,?,?,?,?,?,?)";
PreparedStatement stmt1=con.prepareStatement(sql1);
stmt1.setString(1,id);
stmt1.setString(2,name);
stmt1.setString(3,tel);
stmt1.setString(4,loc);
stmt1.setString(5,riqi);
stmt1.setString(6,price);
stmt1.setString(7,type);
stmt1.setString(8,zt);
stmt1.execute();
stmt1.close();
con.close();
m=1;}
catch (SQLException e1) {
e1.printStackTrace();}}
if(m==1){
JOptionPane.showMessageDialog(this,"信息已经成功录入");
}
if(m==0){
JOptionPane.showMessageDialog(this,"您输入不符合规定");}}
public void xiugai(){
try{
Class.forName(DBDriver);//加载驱动器表达式
}catch(ClassNotFoundException e1){
e1.printStackTrace();
} int n=0;
String id=jf1.getText();
String name=jf2.getText();
String tel=jf3.getText();
String loc=jf4.getText();
String riqi=jf5.getText();
String price=jf6.getText();
String type=jf7.getText();
String zt=jf8.getText();
if(!id.equals("")){
try{
con=DriverManager.getConnection(connectionStr,"","");//建立数据库连接
if(!name.equals("")){
String sql2="Update house set name=?where id=?";
stmt1=con.prepareStatement(sql2);
stmt1.setString(2,id);
stmt1.setString(1,name);
stmt1.execute();
JOptionPane.showMessageDialog(this,"房主姓名已经成功修改");
}
if(!tel.equals("")){
String sql3="Update house set tel=?where id=?";
stmt1=con.prepareStatement(sql3);
stmt1.setString(2,id);
stmt1.setString(1,tel);
stmt1.execute();
stmt1.close();
JOptionPane.showMessageDialog(this,"联系方式已经成功修改");
}
if(!loc.equals("")){
String sql3="Update house set loc=?where id=?";
stmt1=con.prepareStatement(sql3);
stmt1.setString(2,id);
stmt1.setString(1,loc);
stmt1.execute();
stmt1.close();
JOptionPane.showMessageDialog(this,"坐落位置已经成功修改");
}
if(!riqi.equals("")){
String sql3="Update house set riqi=?where id=?";
stmt1=con.prepareStatement(sql3);
stmt1.setString(2,id);
stmt1.setString(1,riqi);
stmt1.execute();
stmt1.close();
JOptionPane.showMessageDialog(this,"建造日期已经成功修改");
}
if(!price.equals("")){
String sql3="Update house set price=?where id=?";
stmt1=con.prepareStatement(sql3);
stmt1.setString(2,id);
stmt1.setString(1,price);
stmt1.execute();
stmt1.close();
JOptionPane.showMessageDialog(this,"价格已经成功修改");
}
if(!type.equals("")){
String sql3="Update house set type=?where id=?";
stmt1=con.prepareStatement(sql3);
stmt1.setString(2,id);
stmt1.setString(1,type);
stmt1.execute();
stmt1.close();
JOptionPane.showMessageDialog(this,"户型已经成功修改");
}
if(!zt.equals("")){
String sql3="Update house set zt=?where id=?";
stmt1=con.prepareStatement(sql3);
stmt1.setString(2,id);
stmt1.setString(1,zt);
stmt1.execute();
stmt1.close();
JOptionPane.showMessageDialog(this,"房屋状态已经成功修改");
}
con.close();
n=1;
}catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
if(n==0){
JOptionPane.showMessageDialog(this,"您输入不符合规定");
}}
public void delete(){
int n=0;
try{
Class.forName(DBDriver);//加载驱动器表达式
}catch(ClassNotFoundException e1){
e1.printStackTrace();}
String id=jf1.getText();
String name=jf2.getText();
String tel=jf3.getText();
String loc=jf4.getText();
String riqi=jf5.getText();
String price=jf6.getText();
String type=jf7.getText();
String zt=jf8.getText();
if(!id.equals("")||!name.equals("")||!tel.equals("")||!loc.equals("")||!riqi.equals("")||!price.equals("")||!type.equals("")||!zt.equals(""))
try{
con=DriverManager.getConnection(connectionStr,"","");//建立数据库连接
String sql2="delete from house where id=?";
stmt1=con.prepareStatement(sql2);
stmt1.setString(1,id);
stmt1.execute();
stmt1.close();
con.close();
n=1;
}catch (SQLException e1
展开阅读全文