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(); }}}
![](https://profile-avatar.csdnimg.cn/49c154a0e7cf4fe49e724460c0775f18_weixin_73415495.jpg!4)
java这个代码应该怎么改
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
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(); } // } }
解决 无用评论 打赏 举报
悬赏问题
- ¥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如何绘制三维笛卡尔坐标系并向其中添加折线?