java实现房屋出租系统

对于一个房屋出租的实现,首先要有一个整体的架构,分析用户的需求,将房屋看成一个类,其属性有,房主,电话,地址,月供,状态等等。而其行为有,房屋列表,新添房屋,删除房屋,查找房屋,修改房屋等等。

1.首先完成属性类的定义,并将其封装, 提供构造器和setter和getter方法

package use;

public class house_domain {
   private int id;
   private String name;
   private String phone;
   private String address;
   private int rent; //月租
   private String state; //状态

   public house_domain(int id, String name, String phone, String address, int rent, String state) {
      this.id = id;
      this.name = name;
      this.phone = phone;
      this.address = address;
      this.rent = rent;
      this.state = state;
   }

   public int getId() {
      return id;
   }

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

   public String getName() {
      return name;
   }

   public void setName(String name) {
      this.name = name;
   }

   public String getPhone() {
      return phone;
   }

   public void setPhone(String phone) {
      this.phone = phone;
   }

   public String getAddress() {
      return address;
   }

   public void setAddress(String address) {
      this.address = address;
   }

   public int getRent() {
      return rent;
   }

   public void setRent(int rent) {
      this.rent = rent;
   }

   public String getState() {
      return state;
   }

   public void setState(String state) {
      this.state = state;
   }

   @Override
   public String toString() {
      return id +
            "\t" + name +
            "\t" + phone +
            "\t\t" + address +
            "\t" + rent +
            "\t" + state ;
   }
}

2.然后就是行为(功能)的实现,也是重点,这里功能大致分为两类:一个是界面的显示,另外一个就是对属性的操作(crud),这里用数组来实现对属性的保存,以后可以用到数据库连接,基本思路就是,先实现各各功能的显示然后调用方法实现操作

 

1.完成 主菜单的显示 和 退出功能

 public void housewindow(){
        do {
            //界面初始化
            System.out.println("\n-----------房屋出租系统-------------");
            System.out.println("\t\t\t1.新增房源");
            System.out.println("\t\t\t2.查找房屋");
            System.out.println("\t\t\t3.删除房屋");
            System.out.println("\t\t\t4.修改房屋信息");
            System.out.println("\t\t\t5.房屋列表");
            System.out.println("\t\t\t6.退出");
            System.out.println("请输入你选择的操作(1~6):");
            int value = print.nextInt();
            switch (value){
                case 1:
                  insertHouse();
                    break;
                case 2:
                  findHouse();
                    break;
                case 3:
                    outHouse();
                    break;
                case 4:
                  updateHouse();
                    break;
                case 5:
                  showHouse();
                    break;
                case 6:
                    quitHouse();
                    break;
                default:
                    System.out.println("输入有误,请重新输入(1~6)");
                    break;
            }
        }while (key);
    }

 上述代码,通过do-while无限循环来实现房屋出租系统的使用,并通过key来进行退出,这里的key默认为true,当选择退出时(6),调用quitHouse()方法使key为false后则退出,下面是退出方法的实现

//房屋退出
    public void quitHouse(){
        System.out.println("确定要退出吗?(y/n)");
        char value = print.next().charAt(0);
        if(value == 'Y' ||value == 'y'){
            key = false; //如果输入Y/y则退出系统
            System.out.println("房屋出租系统成功退出!");
        }

2.在完成出租系统整体的架构后接下来就是里面的功能实现,先完成功能的界面显示

 Scanner print = new Scanner(System.in);
    houseshuzu houseshuzu = new houseshuzu(10);  //对象数组
    boolean key=true; //退出系统判断
    //新增房源
    public void insertHouse(){
        System.out.println("------------新增房源-------------");
        System.out.println("姓名:");
        String name = print.next();
        System.out.println("电话");
        String phone = print.next();
        System.out.println("地址");
        String address = print.next();
        System.out.println("月租");
        int rent = print.nextInt();
        System.out.println("状态");
        String state = print.next();
        //创建house对象来接收这些值
        house_domain house = new house_domain(0,name,phone,address,rent,state);
       if (houseshuzu.addhouse(house)) {
           System.out.println("-------------添加完成-------------");
       }else {
           System.out.println("------------房源添加失败-----------");
       }
    }
    //查找房源
    public void findHouse(){
        System.out.println("---------------查找房屋--------------");
        System.out.println("请输入你要查找的id");
        int id = print.nextInt();
        house_domain house =houseshuzu.findhouse(id);
        if (house!=null){
            System.out.println("--------------查找成功-------------");
            System.out.println("编号\t\t房主\t\t电话\t\t地址\t\t月租\t\t状态(已出租/未出租)");
            System.out.println(house);
        }else {
            System.out.println("-----------未找到此房源-----------");
        }
    }
    //删除房屋
    public void outHouse() {
        System.out.println("-------------删除房屋------------");
        System.out.println("请选择你要删除的编号:");
        int id = print.nextInt();
        System.out.println("确定要删除吗?(y/n)");
        char value = print.next().charAt(0);
        if (value == 'N' || value == 'n') {
            return; //误点则跳出该方法
        }
           if (houseshuzu.delId(id)) {
               System.out.println("------------删除成功----------");
            } else {
                System.out.println("------------删除失败------------");
            }
    }
    //修改信息
    public void updateHouse(){
        System.out.println("--------------修改房屋------------");
        System.out.println("请输入你要修改的房源:(-1退出)");
        int updateid = print.nextInt();
         if (updateid==-1){
             System.out.println("---------退出---------");
             return;
         }
       //查找对象
      house_domain house  =  houseshuzu.findhouse(updateid);
         if (house==null){
             System.out.println("修改的房源不存在");
             return;
         }
        System.out.println("姓名("+house.getName()+")");
        String name = print.next();
        house.setName(name);
        System.out.println("电话("+house.getPhone()+")");
        String phone = print.next();
        house.setPhone(phone);
        System.out.println("地址("+house.getAddress()+")");
        String address = print.next();
        house.setAddress(address);
        System.out.println("月供("+house.getRent()+")");
        int rent = print.nextInt();
        house.setRent(rent);
        System.out.println("状态("+house.getState()+")");
        String state = print.next();
        house.setState(state);
        System.out.println("-------------修改房屋信息成功-------------");
    }
    //房屋列表
    public void showHouse(){
        System.out.println("-----------------------房屋列表----------------------");
        System.out.println("编号\t\t房主\t\t电话\t\t地址\t\t月租\t\t状态(已出租/未出租)");
        house_domain[] house =  houseshuzu.list(); //返回数组的信息
        for (int i = 0; i <house.length ; i++) {
            if(house[i]==null) {
                break;
            }
            System.out.println(house[i]);
        }
        System.out.println("房屋列表显示完毕!");
    }
    

3.功能界面完成后,会调用另一个类,并完成对数据的具体操作,这个类为数组类,指向属性类 

package use;

public class houseshuzu {
    private house_domain[] house ; //保存数组对象 来自类图的类
    private int houseNum; //定义房源长度
    private int idcounter; //定义自增

    public houseshuzu(int size){
        house = new house_domain[size];  //创建数组对象并通过构造器指定大小
    }
    //list方法用来返回house数组
    public house_domain[] list(){
        return house;
    }
    //添加房源
    public boolean addhouse(house_domain newhouse){
        //判断是否能添加房源
        if(houseNum == house.length){
            System.out.println("房子已满不能添加");
              return false;
        }
        //把新房源插入到数组最后
         house[houseNum++] = newhouse;
        //定义id自增
         newhouse.setId(++idcounter);
         return true;
    }
    //删除房源
    public boolean delId(int delid){
        int index = -1; //定义索引
        //先找到要删除的房源的数组下标
        for (int i = 0; i <houseNum; i++) {
            if (delid==house[i].getId()){
                index=i;
            }
        }if (index==-1){
            return false;
        }
       //在找到位置后进行真删除
        for (int i = index; i < houseNum-1; i++) {
             house[i] = house[i+1];  //从后向前依次覆盖直到房源最后一个
        }
        house[houseNum-1]=null; //此时最后一个房源为空,不是数组最后一个
        houseNum--; //房源长度在减1
        return true;
    }
    public house_domain findhouse(int findid){
        for (int i = 0; i < houseNum; i++) {
            if (findid == house[i].getId()) {
                return house[i];
            }
        }
        return null;
    }
}

最后写test方法调用即可

package use;

public class Test {
    public static void main(String[] args) {
      new house().housewindow();
    }
}
//程序设计思路
//1.先写框架图,包括类图,工具包,功能图,数据层等
//2.然后就是代码实现,先把菜单界面和退出功能写好
//3.过来就是写一个保存数据的类以后可能是数据库
//4.最后就是写具体功能的实现

 

 

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值