资源描述
山东建筑大学计算机科学与技术学院
程序设计实用案例选讲
大作业说明书
题 目: 房地产中介管理系统
课 程: 程序设计实用案例选讲
院 (部): 计算机科学与技术
专 业: 网络工程
班 级: 网络131
学生姓名: 高雷
学 号: 20131113033
指导教师: 袁卫华
完成日期: 2014/01/08
山东建筑大学计算机学院大作业设计说明书
目 录
房地产中介管理系统1
一、问题描述1
二、设计思想1
三、系统结构1
四、程序流程(或模块划分)2
五、源程序3
六、系统测试及操作界面22
结论30
参考文献31
I
山东建筑大学计算机学院大作业设计说明书
房地产中介管理系统
一、问题描述
某房屋中介公司主要的业务包括房屋出租和二手房买卖,请编程实现“房屋中介管理系统”,具体要求如下:
一、房源基本信息管理,(房屋编号,户型(如两室一厅,三室两厅),具体地址(坐落位置),
建造年月,状态(待售,待出租,已售,已出租等),价格(租金/月或售价),房主姓名,联系方式等),
请编程实现这些基本信息的增、删、改、查等操作.
二、房屋出租操作,对于所有“待出租”状态的房屋,可以执行出租操作,其状态转换为“已出租",
根据出租的月数,计算租金,并征收中介费(中介费一般等于一个月的租金);处于“已出租”状态的房屋不能执行该操作。
三、 房屋出售操作,对于所有“待出售”状态的房屋,可以执行出手操作,
其状态转换为“已售”,根据房价和中介费计算方法(自己查),计算应该征收的中介费
二、设计思想
此管理系统主要实现对房源的增删改查四个主要功能,以及将数据输出保存文件。本系统分为管理员和普通用户两个类别用户,管理员可以对房源信息的增删改查等操作,普通用户无法更改信息,可以查询信息.另外,针对大量的用户,可以注册新的用户。管理员在添加新的房源信息时需要确保输入每一个信息,否则会提醒管理员输入完整。修改信息可以修改一个信息,也可以同时修改多个信息,修改成功会依次提示。查询时主要可以通过查询户型以及房屋状态查询。用户查询到需要的房源时通过管理员修改房源信息,并将房屋的状态改变出租或出售给用户.
三、 系统结构
房地产管理系统包括7个主要类:
BuildingSystem。Java:主操作界面,登录界面、选择用户类型等信息
Admin。java管理员登录界面
Admin1.java管理员操作界面
RegisterException。java用于两次密码不一致时抛异常
User.java普通用户登录界面
User1.java普通用户操作界面
ZhuCe。java新用户注册
四、程序流程(或模块划分) 图4—1 程序流程图
五、源程序
BuildingStystem
packagegaolei;
publicclassBuildingSystemimplementsRunnable,ActionListener{
JFramef1;
JPanelp1, p2,p3,p4;
JLabell21;
JButtonfunction1, function2, function3, function4;
JButtonend;
ThreadscollWorsThread;
booleanstopScorlling;
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));
JLabelempty1=newJLabel("");
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。exe
展开阅读全文