import java.util.Scanner;

public class HshHouseMangerSystem {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        //初始化厨房
        HshKitchen Hshkitchen = new HshKitchen("厨房", 20);
        // 添加初始几句家具
        Hshkitchen.HshKitchenFurnitureList.add("冰箱");
        Hshkitchen.HshKitchenFurnitureList.add("油烟机");
        Hshkitchen.HshKitchenFurnitureList.add("灶火");
        Hshkitchen.HshKitchenFurnitureList.add("橱柜");

        //初始化客厅
        HshLivingRoom Hshlivingroom = new HshLivingRoom("客厅", 80);
        Hshlivingroom.HshLivingRoomFurnitureList.add("沙发");
        Hshlivingroom.HshLivingRoomFurnitureList.add("电视");
        Hshlivingroom.HshLivingRoomFurnitureList.add("茶几");
        Hshlivingroom.HshLivingRoomFurnitureList.add("中央空调");

        //初始化主卧
        HshPrimaryRoom Hshprimaryroom = new HshPrimaryRoom("主卧", 30);
        Hshprimaryroom.HshPrimaryRoomFurnitureList.add("大床");
        Hshprimaryroom.HshPrimaryRoomFurnitureList.add("衣柜");
        Hshprimaryroom.HshPrimaryRoomFurnitureList.add("梳妆台");
        Hshprimaryroom.HshPrimaryRoomFurnitureList.add("书架");

        //初始化次卧
        HshSubordinateRoom Hshsubordinateroom = new HshSubordinateRoom("次卧", 20);
        Hshsubordinateroom.HshSubordinateRoomFurnitureList.add("上下床");
        Hshsubordinateroom.HshSubordinateRoomFurnitureList.add("床头柜");
        Hshsubordinateroom.HshSubordinateRoomFurnitureList.add("书桌");
        Hshsubordinateroom.HshSubordinateRoomFurnitureList.add("壁画");

        //初始化阳台
        HshBalcony Hshbalcony = new HshBalcony("阳台", 15);
        Hshbalcony.HshBalconyFurnitureList.add("洗衣机");
        Hshbalcony.HshBalconyFurnitureList.add("晾衣架");


        while (true) {
            System.out.println("欢迎使用房屋管理系统!");
            System.out.println("=========================================");
            System.out.println("请输入您要选择的操作:(1)查询房间 (0)退出");
            if (sc.hasNextInt()) {
                int choice = sc.nextInt();

                switch (choice) {
                    case 1:
                        checkroom(sc, Hshkitchen, Hshlivingroom, Hshprimaryroom, Hshsubordinateroom, Hshbalcony);
                        break;

                    case 0:
                        System.out.println("退出成功,感谢使用!");
                        return; // 使用 return 结束 main 方法

                    default:
                        System.out.println("输入错误!请重新输入。");
                        break;
                }
            } else {
                String invalidInput = sc.next(); // 读取非法输入(避免死循环)
                System.out.println(" 错误:'" + invalidInput + "' 不是有效数字!");
            }
        }
    }

    static void checkroom(Scanner sc, HshKitchen Hshkitchen, HshLivingRoom Hshlivingroom, HshPrimaryRoom Hshprimaryroom, HshSubordinateRoom Hshsubordinateroom, HshBalcony Hshbalcony) {
        while (true) {
            System.out.println("请选择房间:(1)厨房 (2)客厅 (3)主卧 (4)次卧 (5)阳台 (0)返回上级");
            if (sc.hasNextInt()) {
                int choice = sc.nextInt();

                switch (choice) {
                    case 0:
                        return; //返回主菜单

                    case 1://厨房
                        System.out.println("您进入了厨房...");
                        while (true) {
                            System.out.println("您可选择的操作:(1)查看厨房属性 (2)添加家具 (3)删除家具 (4)做饭 (0)退出");
                            if (sc.hasNextInt()) {
                                int choice1 = sc.nextInt();

                                switch (choice1) {
                                    case 1:
                                        System.out.println(Hshkitchen);
                                        break;
                                    case 2:
                                        System.out.println("请输入您要添加的家具:");
                                        String newfurniturename = sc.next();
                                        Hshkitchen.addFurniture(newfurniturename);
                                        break;
                                    case 3:
                                        System.out.println("请输入您要删除的家具:");
                                        String oldfurniturename = sc.next();
                                        Hshkitchen.removeFurniture(oldfurniturename);
                                        break;
                                    case 4:
                                        Hshkitchen.cook();
                                        break;
                                    case 0:
                                        break; // 跳出switch
                                    default:
                                        System.out.println("输入错误!请重新输入。");
                                        break;
                                }

                                if (choice1 == 0) {
                                    break; // 跳出厨房子菜单的while
                                }
                            } else {
                                String invalidInput = sc.next(); // 读取非法输入(避免死循环)
                                System.out.println(" 错误:'" + invalidInput + "' 不是有效数字!");
                            }

                        }
                        break; // 跳出外层switch的case 1

                    case 2://客厅
                        while (true) {
                            System.out.println("您可选择的操作:(1)查看客厅属性 (2)添加家具 (3)删除家具 (4)看电视 (0)退出");
                            if (sc.hasNextInt()) {
                                int choice1 = sc.nextInt();

                                switch (choice1) {
                                    case 1:
                                        System.out.println(Hshlivingroom);
                                        break;
                                    case 2:
                                        System.out.println("请输入您要添加的家具:");
                                        String newfurniturename = sc.next();
                                        Hshlivingroom.addFurniture(newfurniturename);
                                        break;
                                    case 3:
                                        System.out.println("请输入您要删除的家具:");
                                        String oldfurniturename = sc.next();
                                        Hshlivingroom.removeFurniture(oldfurniturename);
                                        break;
                                    case 4:
                                        Hshlivingroom.watch();
                                        break;
                                    case 0:
                                        break; // 跳出switch
                                    default:
                                        System.out.println("输入错误!请重新输入。");
                                        break;
                                }

                                if (choice1 == 0) {
                                    break; // 跳出客厅子菜单的while
                                }
                            } else {
                                String invalidInput = sc.next(); // 读取非法输入(避免死循环)
                                System.out.println(" 错误:'" + invalidInput + "' 不是有效数字!");
                            }

                        }
                        break;

                    case 3://主卧
                        System.out.println("您进入了主卧...");
                        while (true) {
                            System.out.println("您可选择的操作:(1)查看主卧属性 (2)添加家具 (3)删除家具 (4)睡觉 (0)退出");
                            if (sc.hasNextInt()) {
                                int choice1 = sc.nextInt();

                                switch (choice1) {
                                    case 1:
                                        System.out.println(Hshprimaryroom);
                                        break;
                                    case 2:
                                        System.out.println("请输入您要添加的家具:");
                                        String newfurniturename = sc.next();
                                        Hshprimaryroom.addFurniture(newfurniturename);
                                        break;
                                    case 3:
                                        System.out.println("请输入您要删除的家具:");
                                        String oldfurniturename = sc.next();
                                        Hshprimaryroom.removeFurniture(oldfurniturename);
                                        break;
                                    case 4:
                                        Hshprimaryroom.sleep();
                                        break;
                                    case 0:
                                        break; // 跳出switch
                                    default:
                                        System.out.println("输入错误!请重新输入。");
                                        break;
                                }

                                if (choice1 == 0) {
                                    break; // 跳出主卧子菜单的while
                                }
                            } else {
                                String invalidInput = sc.next(); // 读取非法输入(避免死循环)
                                System.out.println(" 错误:'" + invalidInput + "' 不是有效数字!");
                            }

                        }
                        break;

                    case 4://次卧
                        System.out.println("您进入了次卧...");
                        while (true) {
                            System.out.println("您可选择的操作:(1)查看主卧属性 (2)添加家具 (3)删除家具 (4)写字 (0)退出");
                            if (sc.hasNextInt()) {
                                int choice1 = sc.nextInt();

                                switch (choice1) {
                                    case 1:
                                        System.out.println(Hshsubordinateroom);
                                        break;
                                    case 2:
                                        System.out.println("请输入您要添加的家具:");
                                        String newfurniturename = sc.next();
                                        Hshsubordinateroom.addFurniture(newfurniturename);
                                        break;
                                    case 3:
                                        System.out.println("请输入您要删除的家具:");
                                        String oldfurniturename = sc.next();
                                        Hshsubordinateroom.removeFurniture(oldfurniturename);
                                        break;
                                    case 4:
                                        Hshsubordinateroom.write();
                                        break;
                                    case 0:
                                        break; // 跳出switch
                                    default:
                                        System.out.println("输入错误!请重新输入。");
                                        break;
                                }

                                if (choice1 == 0) {
                                    break; // 跳出次卧子菜单的while
                                }
                            } else {
                                String invalidInput = sc.next(); // 读取非法输入(避免死循环)
                                System.out.println(" 错误:'" + invalidInput + "' 不是有效数字!");
                            }

                        }
                        break;

                    case 5:
                        System.out.println("您进入了阳台...");
                        while (true) {
                            System.out.println("您可选择的操作:(1)查看主卧属性 (2)添加家具 (3)删除家具 (4)看风景 (0)退出");
                            if (sc.hasNextInt()) {
                                int choice1 = sc.nextInt();

                                switch (choice1) {
                                    case 1:
                                        System.out.println(Hshbalcony);
                                        break;
                                    case 2:
                                        System.out.println("请输入您要添加的家具:");
                                        String newfurniturename = sc.next();
                                        Hshbalcony.addFurniture(newfurniturename);
                                        break;
                                    case 3:
                                        System.out.println("请输入您要删除的家具:");
                                        String oldfurniturename = sc.next();
                                        Hshbalcony.removeFurniture(oldfurniturename);
                                        break;
                                    case 4:
                                        Hshbalcony.sightseeing();
                                        break;
                                    case 0:
                                        break; // 跳出switch
                                    default:
                                        System.out.println("输入错误!请重新输入。");
                                        break;
                                }

                                if (choice1 == 0) {
                                    break; // 跳出阳台子菜单的while
                                }
                            } else {
                                String invalidInput = sc.next(); // 读取非法输入(避免死循环)
                                System.out.println(" 错误:'" + invalidInput + "' 不是有效数字!");
                            }

                        }
                        break;

                    default:
                        System.out.println("输入错误!");
                        break;
                }
            } else {
                String invalidInput = sc.next(); // 读取非法输入(避免死循环)
                System.out.println(" 错误:'" + invalidInput + "' 不是有效数字!");
            }
        }
    }
}


import java.util.ArrayList;
import java.util.List;

public class HshBalcony extends HshRoom {

    protected List<String> HshBalconyFurnitureList;


    public HshBalcony(String name, double area) {
        super(name, area);
        this.HshBalconyFurnitureList = new ArrayList<>();

    }


    // 重写添加家具方法
    @Override
    public void addFurniture(String HshBalconyFurnitureName) {
        this.HshBalconyFurnitureList.add(HshBalconyFurnitureName);
        System.out.println("成功添加家具:" + HshBalconyFurnitureName);
    }


    // 重写删除家具方法
    @Override
    public void removeFurniture(String HshBalconyFurnitureName) {
        if (HshBalconyFurnitureList.contains(HshBalconyFurnitureName)) {
            this.HshBalconyFurnitureList.remove(HshBalconyFurnitureName);
            System.out.println("成功删除家具:" + HshBalconyFurnitureName);
        } else {
            System.out.println("操作不合法," + getName() + "中无" + HshBalconyFurnitureName + "!");
        }
    }


    //重写展示家具方法
    @Override
    public String getFurnitureInfo() {
        if (HshBalconyFurnitureList.isEmpty()) {
            return "无";
        }
        return HshBalconyFurnitureList.toString();
    }

    @Override
    public String toString() {
        return getName() + ":" + getArea() + "平方米\n" + "家具:" + this.getFurnitureInfo();
    }


    // 普通方法看风景
    public void sightseeing() {
        System.out.println("开始看风景");
    }


}


import java.util.ArrayList;
import java.util.List;

public class HshSubordinateRoom extends HshRoom {

    protected List<String> HshSubordinateRoomFurnitureList;


    public HshSubordinateRoom(String name, double area) {
        super(name, area);
        this.HshSubordinateRoomFurnitureList = new ArrayList<>();

    }


    // 重写添加家具方法
    @Override
    public void addFurniture(String HshSubordinateRoomFurnitureName) {
        this.HshSubordinateRoomFurnitureList.add(HshSubordinateRoomFurnitureName);
        System.out.println("成功添加家具:" + HshSubordinateRoomFurnitureName);
    }


    // 重写删除家具方法
    @Override
    public void removeFurniture(String HshSubordinateRoomFurnitureName) {
        if (HshSubordinateRoomFurnitureList.contains(HshSubordinateRoomFurnitureName)) {
            this.HshSubordinateRoomFurnitureList.remove(HshSubordinateRoomFurnitureName);
            System.out.println("成功删除家具:" + HshSubordinateRoomFurnitureName);
        } else {
            System.out.println("操作不合法," + getName() + "中无" + HshSubordinateRoomFurnitureName + "!");
        }
    }


    //重写展示家具方法
    @Override
    public String getFurnitureInfo() {
        if (HshSubordinateRoomFurnitureList.isEmpty()) {
            return "无";
        }
        return HshSubordinateRoomFurnitureList.toString();
    }

    @Override
    public String toString() {
        return getName() + ":" + getArea() + "平方米\n" + "家具:" + this.getFurnitureInfo();
    }


    // 普通方法写字
    public void write() {
        System.out.println("开始写字");
    }


}


import java.util.ArrayList;
import java.util.List;

public class HshLivingRoom extends HshRoom {

    protected List<String> HshLivingRoomFurnitureList;


    public HshLivingRoom(String name, double area) {
        super(name, area);
        this.HshLivingRoomFurnitureList = new ArrayList<>();

    }


    // 重写添加家具方法
    @Override
    public void addFurniture(String HshLivingRoomFurnitureName) {
        this.HshLivingRoomFurnitureList.add(HshLivingRoomFurnitureName);
        System.out.println("成功添加家具:" + HshLivingRoomFurnitureName);
    }


    // 重写删除家具方法
    @Override
    public void removeFurniture(String HshLivingRoomFurnitureName) {
        if (HshLivingRoomFurnitureList.contains(HshLivingRoomFurnitureName)) {
            this.HshLivingRoomFurnitureList.remove(HshLivingRoomFurnitureName);
            System.out.println("成功删除家具:" + HshLivingRoomFurnitureName);
        } else {
            System.out.println("操作不合法," + getName() + "中无" + HshLivingRoomFurnitureName + "!");
        }
    }


    //重写展示家具方法
    @Override
    public String getFurnitureInfo() {
        if (HshLivingRoomFurnitureList.isEmpty()) {
            return "无";
        }
        return HshLivingRoomFurnitureList.toString();
    }

    @Override
    public String toString() {
        return getName() + ":" + getArea() + "平方米\n" + "家具:" + this.getFurnitureInfo();
    }


    // 普通方法看电视
    public void watch() {
        System.out.println("开始看电视");
    }


}

import java.util.ArrayList;
import java.util.List;

public class HshKitchen extends HshRoom {

    protected List<String> HshKitchenFurnitureList;


    public HshKitchen(String name, double area) {
        super(name, area);
        this.HshKitchenFurnitureList = new ArrayList<>();

    }


    // 重写添加家具方法
    @Override
    public void addFurniture(String HshKitctionFurnitureName) {
        this.HshKitchenFurnitureList.add(HshKitctionFurnitureName);
        System.out.println("成功添加家具:" + HshKitctionFurnitureName);
    }


    // 重写删除家具方法
    @Override
    public void removeFurniture(String HshKitctionFurnitureName) {
        if (HshKitchenFurnitureList.contains(HshKitctionFurnitureName)) {
            this.HshKitchenFurnitureList.remove(HshKitctionFurnitureName);
            System.out.println("成功删除家具:" + HshKitctionFurnitureName);
        } else {
            System.out.println("操作不合法," + getName() + "中无" + HshKitctionFurnitureName + "!");
        }
    }


    //重写展示家具方法
    @Override
    public String getFurnitureInfo() {
        if (HshKitchenFurnitureList.isEmpty()) {
            return "无";
        }
        return HshKitchenFurnitureList.toString();
    }

    @Override
    public String toString() {
        return getName() + ":" + getArea() + "平方米\n" + "家具:" + this.getFurnitureInfo();
    }


    // 普通方法做饭
    public void cook() {
        System.out.println("开始做饭");
    }


}


import java.util.ArrayList;
import java.util.List;

public class HshPrimaryRoom extends HshRoom {

    protected List<String> HshPrimaryRoomFurnitureList;


    public HshPrimaryRoom(String name, double area) {
        super(name, area);
        this.HshPrimaryRoomFurnitureList = new ArrayList<>();

    }


    // 重写添加家具方法
    @Override
    public void addFurniture(String HshPrimaryRoomFurnitureName) {
        this.HshPrimaryRoomFurnitureList.add(HshPrimaryRoomFurnitureName);
        System.out.println("成功添加家具:" + HshPrimaryRoomFurnitureName);
    }


    // 重写删除家具方法
    @Override
    public void removeFurniture(String HshPrimaryRoomFurnitureName) {
        if (HshPrimaryRoomFurnitureList.contains(HshPrimaryRoomFurnitureName)) {
            this.HshPrimaryRoomFurnitureList.remove(HshPrimaryRoomFurnitureName);
            System.out.println("成功删除家具:" + HshPrimaryRoomFurnitureName);
        } else {
            System.out.println("操作不合法," + getName() + "中无" + HshPrimaryRoomFurnitureName + "!");
        }
    }


    //重写展示家具方法
    @Override
    public String getFurnitureInfo() {
        if (HshPrimaryRoomFurnitureList.isEmpty()) {
            return "无";
        }
        return HshPrimaryRoomFurnitureList.toString();
    }

    @Override
    public String toString() {
        return getName() + ":" + getArea() + "平方米\n" + "家具:" + this.getFurnitureInfo();
    }


    // 普通方法睡觉
    public void sleep() {
        System.out.println("开始睡觉");
    }


}

import java.util.ArrayList;
import java.util.List;

public abstract class HshRoom {
    private String name;
    private double area;
    // 使用 List 来动态存储家具
    protected List<String> furnitureList;

    public HshRoom(String name, double area) {
        this.name = name;
        this.area = area;
        this.furnitureList = new ArrayList<>();
    }

    // 添加家具的方法
    public abstract void addFurniture(String furnitureName);

    // 删除家具的方法
    public abstract void removeFurniture(String furnitureName);

    // 获取家具列表用于展示
    public abstract String getFurnitureInfo();


    public String getName() {
        return name;
    }


    public double getArea() {
        return area;
    }

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

    public void setArea(double area) {
        this.area = area;
    }
}

Logo

CANN开发者社区旨在汇聚广大开发者,围绕CANN架构重构、算子开发、部署应用优化等核心方向,展开深度交流与思想碰撞,携手共同促进CANN开放生态突破!

更多推荐