房产管理系统1

房产信息管理系统(50分)

 

 

1、项目需求:

某房产公司,欲开发一个房产信息管理系统,其主要功能描述如下:

1)公司销售的房产,房产信息包括,房产编号(唯一性)、房产证明,地址,建造年份,建造面积,销售报价,房产照片以及销售状态 (在售,待售,意向,售出,停售)等信息。

2. 公司雇佣了多名房产经纪,负责销售房产,系统中需要存储房产经纪的基本信息,包括:姓名,家庭住址,联系电话等等。一套房产同一时间仅由一名房产经纪负责销售,

3.系统用户包括顾客、房产经纪、系统管理员,顾客需经过系统身份验证之后,才能登录系统,可以浏览、查询、购买相应房产。房产经纪登录系统之后,可以浏览负责销售的房产信息,但需要经过系统管理员的审批授权。

4.系统管理员可以从系统中导出所有房产的信息列表,系统管理员定期将信息和销售的房产,进行归纳,若公司确定不再销售某套房产,系统管理员将房产信息从系统中删除。

2.系统要求与评分标准:

2.1 页面要求

1)系统可以通过浏览器直接访问;1分)

2)各个功能页面整体风格统一;

3)首页为用户登录页面,系统管理员、房产经纪、顾客三种角色用户登录后,进入相应的功能页,只能看到角色允许访问功能模块,用户登录界面包含用户、密码两个文本框,以及登录和注册两个按钮;3分)

4)顾客注册:点击用户登录页面的注册按钮,顾客进入用户注册页面,注册信息包括身份证号、姓名、性别、手机号码、家庭住址。4分)

6)顾客功能页:共包括查看个人信息、修改个人密码、浏览房产信息,查询房产,购买房产五项功能模块。

7)房产经纪功能页:包括查看个人信息、浏览房产信息、房产交易、查询房产、修改个人密码五项功能模块

 

1 房产信息管理系统功能结构图

8)系统管理员功能页:新添房产信息、房产授权、停售房产、查询房产信息,顾客审核、新增房产经纪人,密码重置七项功能模块

2.2 功能要求

1)新增房产信息:房产编号(唯一性)(编码规则:年月日(登记入库时间)+四位顺序号,例如:202012200001)、户型(单选项:选项内容包括以下六项:四室两厅、四室一厅、三室两厅、三室一厅、两室两厅、两室一厅),房产地址(地址格式:XX省XX市XX区(县)XX街道XX小区XX号楼XX单元XXX门牌),建造年份,建造面积,销售报价,销售状态(在售,待售,意向,售出,停售,缺省为“在售”)。5分)

2)新增房产经纪人信息:房产经纪人基本信息包括:工号(八位数字:年份+四位序号),姓名,家庭住址,手机。2分)

3)顾客注册:点击用户登录页面的“注册”按钮,顾客进入用户注册页面,注册信息包括身份证号(判断条件18位,最后一位可以是字母“X”)、姓名、性别(男或女单选)、手机号码(11位数字)、家庭住址(地址格式:XX省XX市XX区(县)XX街道XX小区XX号楼XX单元XXX门牌)。4分)

4)顾客审核:顾客注册后,系统管理员后台可以以列表形式查看顾客基本信息, 点击顾客姓名,可以查看顾客详细信息,在顾客详细信息页面点击通过按钮,可以通过审核。通过审核的顾客才可以在前台登录界面登录主页面。3分)

5)查看个人信息:房产经纪或者顾客登录后,可以查看个人的详细信息。2分)

6)浏览房产信息:顾客登录后,可以查看所有在售房产信息;房产经纪人登录后,只能查看系统管理员授权的房产信息;系统管理员登录后可以查看全部房产信息(四种房产状态)。3分)

7)查询房产信息:可以按照户型、地址、建造年份、建造面积,销售报价五个条件进行综合查询,查询结果以列表形式显示,显示结果信息包括序号、地址、销售报价,点击地址,可以查看该套房产的详细信息;顾客可以看到的结果为所有在售的房产,房产经纪人看到的结果为所有授权给自己销售的房产信息,系统管理员可以查询所有房产信息6分)

8)购买房产:顾客在浏览房产信息后,点击查看房产详细信息界面时,可以点击“交易”按钮,该房产状态信息改为 “意向”状态3分)

9)房产交易:房产经纪人以列表形式显示待售房产信息和顾客名称,显示列表包括序号、地址、售价、顾客名称,房产经纪人点击地址可以查看房产和顾客详细信息,单击“交易”按钮,该房产状态信息改为“售出”状态。(3分)

10)房产授权:系统管理员登录后可以浏览所有的在售房产信息,显示结果信息包括序号、地址、销售报价,点击地址,可以查看该套房产的详细信息,输入房产经纪人姓名,如果房产经纪人信息不存在,提示错误信息,不允许授权;如果正确,点击“授权”按钮,该房产状态信息改为“待售”状态。(3分)

11)停售房产:系统管理员登录后可以浏览所有的在售房产信息,显示结果信息包括序号、地址、销售报价,点击地址,可以查看该套房产的详细信息,,点击“停售”按钮,该房产状态信息改为“停售”状态3分)

12)个人密码修改:顾客或者房产经纪人登录后,可以输入旧密码、新密码、新密码确认修改个人密码,需要判断旧密码是否正确,新密码和新密码确认是否一致;2分

13)重置密码:管理员可以修改房产经纪人的个人密码,先按照房产经纪人工号查询,显示出基本信息后,点击密码重置,将房产经纪人密码统一修改为“123456”。2

14)数据库评分标准:按照题目要求创建房产基本信息表、房产经纪人基本信息表、顾客记录表,3分),实现数据库连接正常2分)。

数据表结构样式参考下表所示:

1房产基本信息表

字段名称

中文含义

1

HouseID

房产编号(唯一性)

2

RoomType

户型

3

Address

房产地址

4

Year

建造年份

5

Area

建造面积

6

Sales

销售报价

7

Status

销售状态

8

AgentID

房产经纪人ID

9

UserID

顾客ID

 

2房产经纪人基本信息表

字段名称

中文含义

1

AgentID

工号(房产经纪人ID

2

AgentName

房产经纪人姓名

3

AgentAddress

家庭住址 

4

Phone

手机

 

3顾客基本信息表

字段名称

中文含义

1

UserID

顾客ID

2

UserName

姓名

3

sex

性别

4

IdNumber

身份证号

5

Phone

手机

6

User

家庭住址

 

 

 

 

 Bean层

agent

package Bean;

public class agent {
    private int id;
    private String AgentID;//工号
    private String AgentName;//房产经纪人姓名
    private String AgentAddress;//家庭住址
    private String Phone;//手机

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getAgentID() {
        return AgentID;
    }

    public void setAgentID(String agentID) {
        AgentID = agentID;
    }

    public String getAgentName() {
        return AgentName;
    }

    public void setAgentName(String agentName) {
        AgentName = agentName;
    }

    public String getAgentAddress() {
        return AgentAddress;
    }

    public void setAgentAddress(String agentAddress) {
        AgentAddress = agentAddress;
    }

    public String getPhone() {
        return Phone;
    }

    public void setPhone(String phone) {
        Phone = phone;
    }
}

house

package Bean;

import sun.security.krb5.internal.APRep;

public class house {
    private  int id;
    private String HouseID;//房产编号
    private String RoomType;//户型
    private String Address;//房产地址
    private String Year;//建造年份
    private String Area;//建造面积
    private String Sales;//销售报价
    private String Status;//销售状态
    private String AgentID;//房产经纪人ID
    private String UserID;//顾客ID

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getHouseID() {
        return HouseID;
    }

    public void setHouseID(String houseID) {
        HouseID = houseID;
    }

    public String getRoomType() {
        return RoomType;
    }

    public void setRoomType(String roomType) {
        RoomType = roomType;
    }

    public String getAddress() {
        return Address;
    }

    public void setAddress(String address) {
        Address = address;
    }

    public String getYear() {
        return Year;
    }

    public void setYear(String year) {
        Year = year;
    }

    public String getArea() {
        return Area;
    }

    public void setArea(String area) {
        Area = area;
    }

    public String getSales() {
        return Sales;
    }

    public void setSales(String sales) {
        Sales = sales;
    }

    public String getStatus() {
        return Status;
    }

    public void setStatus(String status) {
        Status = status;
    }

    public String getAgentID() {
        return AgentID;
    }

    public void setAgentID(String agentID) {
        AgentID = agentID;
    }

    public String getUserID() {
        return UserID;
    }

    public void setUserID(String userID) {
        UserID = userID;
    }
}

user

package Bean;

public class user {
    private int id;
    private String UserID;//顾客ID
    private String UserName;//姓名
    private String sex;//性别
    private String IdNumber;//身份证号
    private String Phone;//手机
    private String Address;//家庭住址

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getUserID() {
        return UserID;
    }

    public void setUserID(String userID) {
        UserID = userID;
    }

    public String getUserName() {
        return UserName;
    }

    public void setUserName(String userName) {
        UserName = userName;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getIdNumber() {
        return IdNumber;
    }

    public void setIdNumber(String idNumber) {
        IdNumber = idNumber;
    }

    public String getPhone() {
        return Phone;
    }

    public void setPhone(String phone) {
        Phone = phone;
    }

    public String getAddress() {
        return Address;
    }

    public void setAddress(String address) {
        Address = address;
    }
}

dao(还不全,后续再添加)修改后dao层地址:暂时为空

package Dao;

import java.sql.*;

public class dao {
    public Connection sjk()
    {
        Connection connect;
        try {
            connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/fangchan?&useSSL=false&serverTimezone=UTC","root","123456");
            return connect;
        }catch(Exception e)
        {
            e.printStackTrace();
        }
        return null;
    }
    public boolean queryEmpty(String sfnum,String name,String sex,String sjnum,String home,String mima)
    {
        boolean flag=false;
        if(sfnum==null||"".equals((sfnum))&&name==null||"".equals(name)&&sex==null||"".equals(sex)&&sjnum==null||"".equals(sjnum)&&home==null||"".equals(home)&&mima==null||"".equals(mima))
        {
            flag=true;
        }
        return flag;
    }
    public Connection sj()
    {
        Connection connect;
        try {
            connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/fangchan?&useSSL=false&serverTimezone=UTC","root","123456");
            return connect;
        }catch(Exception e)
        {
            e.printStackTrace();
        }
        return null;
    }
    public boolean queryEmpty2(String gonghao,String jjname,String jjhome,String sjhm)
    {
        boolean flag=false;
        if(gonghao==null||"".equals((gonghao))&&jjname==null||"".equals(jjname)&&jjhome==null||"".equals(jjhome)&&sjhm==null||"".equals(sjhm))
        {
            flag=true;
        }
        return flag;
    }
    public boolean pinji(String sfnum,String sjnum)
    {
        boolean flag=true;
        try {
            double a=Integer.valueOf(sfnum);
            double b=Integer.valueOf(sjnum);
            if(a%1==0&&b%1==0)
            {
                flag=false;
            }
            return flag;
        } catch (Exception e) {
            return flag;
        }
    }
    public boolean queryTeacherxiu(String mima)//查空
    {
        boolean flag=false;
        if(mima==null||"".equals((mima)))
        {
            flag=true;
        }
        return flag;
    }
    //修改顾客密码
    public void mimaxiugai(String mima)
    {
        try {
            PreparedStatement preparedStatement=null;
            Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/fangchan?&useSSL=false&serverTimezone=UTC","root","123456");
            preparedStatement=connect.prepareStatement("Update guke set mima=?, ");
            preparedStatement.setString(6,mima);
            preparedStatement.executeUpdate();
            preparedStatement.execute();
            connect.close();
        }catch(SQLException e){
            e.printStackTrace();
        }
    }

    //录入顾客input()
    public void input(String sfnum,String name,String sex,String sjnum,String home,String mima)
    {
        try {
            PreparedStatement preparedStatement=null;
            Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/fangchan?&useSSL=false&serverTimezone=UTC","root","123456");
            preparedStatement=connect.prepareStatement("insert into guke (sfnum,name,sex,sjnum,home,mima) values (?,?,?,?,?,?)");
            preparedStatement.setString(1,sfnum);
            preparedStatement.setString(2,name);
            preparedStatement.setString(3,sex);
            preparedStatement.setString(4,sjnum);
            preparedStatement.setString(5,home);
            preparedStatement.setString(6,mima);

            preparedStatement.executeUpdate();
            connect.close();
            preparedStatement.close();
        }catch(SQLException e){
            e.printStackTrace();
        }
    }

    //录入经纪人 input1()
    public void input1(String gonghao,String jjname,String jjhome,String sjhm)
    {
        try {
            PreparedStatement preparedStatement=null;
            Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/fangchan?&useSSL=false&serverTimezone=UTC","root","123456");
            preparedStatement=connect.prepareStatement("insert into jingji (gonghao,jjname,jjhome,sjhm) values (?,?,?,?)");
            preparedStatement.setString(1,gonghao);
            preparedStatement.setString(2,jjname);
            preparedStatement.setString(3,jjhome);
            preparedStatement.setString(4,sjhm);

            preparedStatement.executeUpdate();
            connect.close();
            preparedStatement.close();
        }catch(SQLException e){
            e.printStackTrace();
        }
    }


    //录入房产信息input2()
    public void input2(String houseid ,String room,String address,String year,String area,String sales,String status){
        try {
            PreparedStatement preparedStatement=null;
            Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/fangchan?serverTimezone=GMT%2B8","root","123456");
            preparedStatement=connect.prepareStatement("insert into house (houseid,room,address,year,area,sales,status) values (?,?,?,?,?,?,?)");
            preparedStatement.setString(1,houseid);
            preparedStatement.setString(2,room);
            preparedStatement.setString(3,address);
            preparedStatement.setString(4,year);
            preparedStatement.setString(5,area);
            preparedStatement.setString(6,sales);
            preparedStatement.setString(7,status);
            preparedStatement.executeUpdate();
            connect.close();
            preparedStatement.close();
        }catch(SQLException e){
            e.printStackTrace();
        }
    }


    //修改顾客信息 xiugai()
    public void xiugai(String sfnum,String name,String sex,String sjnum,String home,String mima,String sf1)
    {
        try {
            PreparedStatement preparedStatement=null;
            Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/fangchan?&useSSL=false&serverTimezone=UTC","root","123456");
            preparedStatement=connect.prepareStatement("Update guke set sfnum=?,name=?,sex=?,sjnum=?,home=?,miam=? where sfnum=?");
            preparedStatement.setString(1,sfnum);
            preparedStatement.setString(2,name);
            preparedStatement.setString(3,sex);
            preparedStatement.setString(4,sjnum);
            preparedStatement.setString(5,home);
            preparedStatement.setString(6,mima);
            preparedStatement.setString(7,sf1);
            preparedStatement.executeUpdate();
            preparedStatement.execute();
            connect.close();
        }catch(SQLException e){
            e.printStackTrace();
        }
    }

    //删除顾客信息deletedata()
    public void deletedata(String sfnum)
    {
        try {
            PreparedStatement preparedStatement=null;
            Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/fangchan?&useSSL=false&serverTimezone=UTC","root","123456");
            preparedStatement=connect.prepareStatement("delete from guke where sfnum = ?");
            preparedStatement.setString(1,sfnum);
            preparedStatement.executeUpdate();
            connect.close();
            preparedStatement.close();
        }catch(SQLException e){
            e.printStackTrace();
        }
    }
    public boolean queryEmpty1(String name)
    {
        boolean flag=false;
        if(name==null||"".equals((name)))
        {
            flag=true;
        }
        return flag;
    }

    //判断顾客登录信息是否正确judgeguk()
    public boolean judgeguke(String name,String mima)
    {
        boolean flag=false;
        try {
            Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/fangchan?&useSSL=false&serverTimezone=UTC","root","123456");
            Statement stmt = connect.createStatement();
            ResultSet rs = stmt.executeQuery("select * from guke");
            while(rs.next())
            {
                if((name.equals(rs.getString("name")))&& (mima.equals(rs.getString("mima"))))
                {
                    flag=true;
                }
            }
            rs.close();
            connect.close();
            stmt.close();
        }catch (SQLException e) {
            e.printStackTrace();
        }
        return  flag;
    }


    //判断经纪人登录信息是否正确judgejingji()
    public boolean judgejingji(String name,String mima)
    {
        boolean flag=false;
        try {
            Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/fangchan?&useSSL=false&serverTimezone=UTC","root","123456");
            Statement stmt = connect.createStatement();
            ResultSet rs = stmt.executeQuery("select * from jingji");
            while(rs.next())
            {
                if((name.equals(rs.getString("jjname")))&& (mima.equals(rs.getString("gonghao"))))
                {
                    flag=true;
                }
            }
            rs.close();
            connect.close();
            stmt.close();
        }catch (SQLException e) {
            e.printStackTrace();
        }
        return  flag;
    }


    //判断管理员登录信息是否正确judgeguanli()
    public boolean judgeguanli(String name,String mima){
        boolean flag=false;
        if (("administer".equals(name))&&("123456".equals(mima))){
            flag = true;
        }
        return flag;
    }



    //查重身份证号
    public boolean chachong(String sfnum)
    {
        boolean flag=false;
        try {
            Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/fangchan?&useSSL=false&serverTimezone=UTC","root","123456");
            Statement stmt = connect.createStatement();
            ResultSet rs = stmt.executeQuery("select * from guke");
            while(rs.next())
            {
                if(sfnum.equals(rs.getString("sfnum")))
                {
                    flag=true;
                }
            }
            rs.close();
            connect.close();
            stmt.close();
        }catch (SQLException e) {
            e.printStackTrace();
        }
        return flag;
    }
    //判断身份证号码
    public boolean sfzhm(String sfnum)
    {
        boolean flag=true;
        if(sfnum.length()==18)
        {
            for(int i=0;i<sfnum.length()-1;i++)
            {
                char k=sfnum.charAt(i);
                if(k=='0'||k=='1'||k=='2'||k=='3'||k=='4'||k=='5'||k=='6'||k=='7'||k=='8'||k=='9') {
                }
                else return flag;
            }
            char k=sfnum.charAt(sfnum.length()-1);
            if(k=='0'||k=='1'||k=='2'||k=='3'||k=='4'||k=='5'||k=='6'||k=='7'||k=='8'||k=='9'||k=='X') flag=false;
        }
        return  flag;
    }
    public static void main(String[] args) {
        dao dao=new dao();
    }
}

Util

package Util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Util {

    private static String mysqlname = "fangchan";
    private static Connection con;
    private static Statement sta;
    private static ResultSet re;
    private static String coursename = "com.mysql.cj.jdbc.Driver";
    private static String url = "jdbc:mysql://localhost:3306/" + mysqlname + " ?serverTimezone=GMT%2B8";


    public static Connection getConnection() {
        try {
            Class.forName(coursename);
            System.out.println("连接成功");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        try {
            con = DriverManager.getConnection(url, "root", "123456");
            System.out.println("LIANJIE");
        } catch (Exception e) {
            e.printStackTrace();
            con = null;
        }
        return con;
    }

    public static void close(Statement state, Connection conn) {
        if (state != null) {
            try {
                state.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

    public static void close(ResultSet rs, Statement state, Connection conn) {
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

        if (state != null) {
            try {
                state.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

 后续地址:房产管理系统2 - zrswheart - 博客园 (cnblogs.com)

问题总结:房产管理系统问题总结 - zrswheart - 博客园 (cnblogs.com)

posted @ 2021-12-03 20:26  zrswheart  阅读(715)  评论(0编辑  收藏  举报