教我写代码吧 2023-12-22 22:30 采纳率: 76.5%
浏览 7

java这个代码应该怎么改


import java.util.Scanner;class Hotel {    private int[] roomCount = {10, 10, 10};// 房间类型1、2、3的数量    private int typeNumber;    Hotel( int typeNumber) {         this.typeNumber = typeNumber;         }    public void isBooked(int[] roomCount, int typeNumber) {         for (int i = 0; i < roomCount.length; i++) {             System.out.println("类型" + (i + 1) + "剩余房间数量:" + roomCount[i]);             }         }    public void viewNumber(int[] roomCount, int typeNumber) {         for (int i = 0; i < roomCount.length; i++) {             System.out.println("类型" + (i + 1) + "剩余房间号:");             for (int j = 0; j < roomCount[i]; j++) {                System.out.println("房间号:" + (i * 10 + j + 1));                }         }    }public class Main {    public static void main(String[] args) {        Hotel hotel = new Hotel();        Scanner scanner = new Scanner(System.in);        boolean isRunning = true;        while (isRunning) {            System.out.println("请选择身份:");            System.out.println("1. 客户");            System.out.println("2. 工作人员");            System.out.println("3. 退出");            int choice = scanner.nextInt();            switch (choice) {                case 1:                    System.out.println("请输入姓名:");                    String name = scanner.next();                    System.out.println("请输入身份证号:");                    String idNumber = scanner.next();                    System.out.println("请选择房间类型:");                    System.out.println("1. 类型1");                    System.out.println("2. 类型2");                    System.out.println("3. 类型3");                    hotel.typeNumber = scanner.nextInt();                    if (hotel.typeNumber >= 1 && hotel.typeNumber <= 3) {                      if (hotel.roomCount[hotel.typeNumber - 1] > 0) {                         System.out.println("请输入入住开始时间(格式:yyyy-MM-dd):");                         String checkInStart = scanner.next();                         System.out.println("请输入入住结束时间(格式:yyyy-MM-dd):");                         String checkInEnd = scanner.next();                         System.out.println("预订成功!");                         hotel.roomCount[hotel.typeNumber - 1]--; // 房间数量减一                         } else {                             System.out.println("该类型的房间已无空闲房间!");                            }                     } else {                         System.out.println("请输入有效选项!");                         }                    break;                case 2:                    isRunning = true;                    while (isRunning) {                      System.out.println("请选择操作:");                      System.out.println("1. 查看剩余房间数量");                      System.out.println("2. 查看剩余房间房间号");                      System.out.println("3. 查看指定房间使用信息");                      System.out.println("4. 返回上级菜单");                      choice = scanner.nextInt();                      switch (choice) {                        case 1:                          hotel.isBooked();                          break;                        case 2:                          hotel.viewNumber();                          break;                        case 3:                          //displayRoomInfo(scanner);                          break;                        case 4:                          isRunning = false;                          break;                        default:                          System.out.println("请输入有效选项!");                        }                   }                    break;                case 3:                    isRunning = false;                    break;                default:                    System.out.println("请输入有效选项!");            }        }        scanner.close();    }}}
  • 写回答

2条回答 默认 最新

  • 柯本 2023-12-22 22:54
    关注

    程序有太多问题,首先,你把Main类嵌入Hotel 类,它的main是无法运行的,最简单的,把Hotel作为主类
    Hotel hotel = new Hotel(); 你没有不带参数的构造,所以这个也是错的
    然后就是有多个函数没有实现(程序只是一个框架),修改后可以运行的

    import java.util.Scanner;
    class Hotel {
      private int[] roomCount = {10, 10, 10}; // 房间类型1、2、3的数量
      private int typeNumber;
      Hotel(int typeNumber) {
        this.typeNumber = typeNumber;
      }
      public void isBooked(int[] roomCount, int typeNumber) {
        for (int i = 0; i < roomCount.length; i++) {
          System.out.println("类型" + (i + 1) + "剩余房间数量:" + roomCount[i]);
        }
      }
      public void viewNumber(int[] roomCount, int typeNumber) {
        for (int i = 0; i < roomCount.length; i++) {
          System.out.println("类型" + (i + 1) + "剩余房间号:");
          for (int j = 0; j < roomCount[i]; j++) {
            System.out.println("房间号:" + (i * 10 + j + 1));
          }
        }
      }
    //  public class Main {
        public static void main(String[] args) {
          Hotel hotel = new Hotel(1);
          Scanner scanner = new Scanner(System.in);
          boolean isRunning = true;
          while (isRunning) {
            System.out.println("请选择身份:");
            System.out.println("1. 客户");
            System.out.println("2. 工作人员");
            System.out.println("3. 退出");
            int choice = scanner.nextInt();
            switch (choice) {
            case 1:
              System.out.println("请输入姓名:");
              String name = scanner.next();
              System.out.println("请输入身份证号:");
              String idNumber = scanner.next();
              System.out.println("请选择房间类型:");
              System.out.println("1. 类型1");
              System.out.println("2. 类型2");
              System.out.println("3. 类型3");
              hotel.typeNumber = scanner.nextInt();
              if (hotel.typeNumber >= 1 && hotel.typeNumber <= 3) {
                if (hotel.roomCount[hotel.typeNumber - 1] > 0) {
                  System.out.println("请输入入住开始时间(格式:yyyy-MM-dd):");
                  String checkInStart = scanner.next();
                  System.out.println("请输入入住结束时间(格式:yyyy-MM-dd):");
                  String checkInEnd = scanner.next();
                  System.out.println("预订成功!");
                  hotel.roomCount[hotel.typeNumber - 1]--; // 房间数量减一
                } else {
                  System.out.println("该类型的房间已无空闲房间!");
                }
              } else {
                System.out.println("请输入有效选项!");
              }
              break;
            case 2:
              isRunning = true;
              while (isRunning) {
                System.out.println("请选择操作:");
                System.out.println("1. 查看剩余房间数量");
                System.out.println("2. 查看剩余房间房间号");
                System.out.println("3. 查看指定房间使用信息");
                System.out.println("4. 返回上级菜单");
                choice = scanner.nextInt();
                switch (choice) {
                case 1:
                  //          hotel.isBooked();
                  break;
                case 2:
                  //          hotel.viewNumber();
                  break;
                case 3:
                  //          displayRoomInfo(scanner);
                  break;
                case 4:
                  isRunning = false;
                  break;
                default:
                  System.out.println("请输入有效选项!");
                }
              }
              break;
            case 3:
              isRunning = false;
              break;
            default:
              System.out.println("请输入有效选项!");
            }
          }
          scanner.close();
        }
    //  }
    }
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 12月22日

悬赏问题

  • ¥15 html引用外部css无效
  • ¥15 C#视频播放器的原码,有的发一
  • ¥15 用FDTD计算并提取光栅结构的正负一级衍射光的光功率
  • ¥30 AVL fire DVI中的Design Explorer里面的Run的Status为什么总是Terminated?哪里出问题了?需要修改哪里?
  • ¥15 有二开IOT平台code的来搞钱了。
  • ¥15 求lingo语言编程以下内容
  • ¥15 cannot import name '_MissingValues' from 'sklearn.utils._param_validation'引用smoke
  • ¥15 求PHP跨站免登录技术
  • ¥15 AVL fire DVI中的Design Explorer里面的Objectives /Constraints的scale应该怎么设置
  • ¥15 qml如何绘制三维笛卡尔坐标系并向其中添加折线?