题目要求
第二题:(java软件工程师人生路上第一个小型项目。锻炼一下面向对象。)
为某个酒店编写程序:酒店管理系统,模拟订房、退房、打印所有房间状态等功能。
1、该系统的用户是:酒店前台。
2、酒店使用一个二维数组来模拟。“Room[][rooms ;”
3、酒店中的每一个房间应该是一个java对象:Room
4、每一个房间Room应该有:房间编号、房间类型、房间是否空闲.
5、系统应该对外提供的功能:
可以预定房间:用户输入房间编号,订房。可以退房:用户输入房间编号,退房。
可以查看所有房间的状态:用户输入某个指令应该可以查看所有房间状态
package Array2;
import java.util.Scanner;
public class Array2Homework02 {
public static void main(String[] args) {
//这里都是调用的Scanner类,不懂的小伙伴移步Scanner哦
hotol h = new hotol();
System.out.println("欢迎使用酒店管理系统,查看房间输入1,订房请输入2,客套话请输入3,退房请输入4");
Scanner c = new Scanner(System.in);
System.out.println("接下来输入功能编号希望你不要不识好歹!!!");
int i = c.nextInt();
if(i==1){
h.chakan();
}else if(i == 2){
System.out.println("请输入房间的号码,希望你不要不识好歹");
Scanner p =new Scanner(System.in);
int u =p.nextInt();
h.dingfang(u);
}else if(i == 3){
System.out.println("你真他吗好看!");
}else if(i == 4){
System.out.println("请输入房间的号码,希望你不要不识好歹");
Scanner p =new Scanner(System.in);
int u =p.nextInt();
h.dingfang(u);
}
}
}
class room{
//给房间分别创建三个属性分别是房间号,类型,和状态
private int no;
private String leixing;
private boolean zhuangtai;
//下面都是构造方法和get,set方法,都是自己生成的
public room() {
}
public room(int no, String leixing, boolean zhuangtai) {
this.no = no;
this.leixing = leixing;
this.zhuangtai = zhuangtai;
}
public int getNo() {
return no;
}
public void setNo(int no) {
this.no = no;
}
public String getLeixing() {
return leixing;
}
public void setLeixing(String leixing) {
this.leixing = leixing;
}
public boolean isZhuangtai() {
return zhuangtai;
}
public void setZhuangtai(boolean zhuangtai) {
this.zhuangtai = zhuangtai;
}
@Override
public boolean equals(Object obj) {
if(obj == null && !(obj instanceof room)) return false;
if(this == obj) return true;
room r = (room)obj;
return this.no == r.getNo();
}
@Override
public String toString() {
return no +leixing+(zhuangtai? "空闲": "满客");
}
}
class hotol{
//创建一个Object类型的二维数组容器
Object o[][];
public hotol() {
//因为在对象的创建是在构造方法的时候执行所以对面的初始化一般都卸载构造方法里面。
o = new Object[3][10];
//下面是给对象分别赋值,批量给对象赋值用循环实现。
for (int i = 0; i <o.length ; i++) {
for (int j = 0; j <o[i].length ; j++) {
if (i == 0){
o[i][j] = new room((i+1)*100+1+j,"单人间",true);
}else if(i == 1){
o[i][j] = new room((i+1)*100+1+j,"双人间",true);
}else if(i == 2){
o[i][j] = new room((i+1)*100+1+j,"豪华双人套房",true);
}
}
}
}
public void chakan(){
//遍历数组
for (int i = 0; i < o.length; i++) {
for (int j = 0; j < o[i].length; j++) {
System.out.println(o[i][j]);
}
}
}
//这里是订房的方法
public void dingfang(int a){
room n = (room)o[a/100-1][a%100 - 1];
n.setZhuangtai(true);
}
//这里是退房的方法
public void tuifang(int a){
room n = (room)o[a/100-1][a%100 - 1];
n.setZhuangtai(false);
}
//这里是构造方法
public hotol(Object[][] o) {
this.o = o;
}
}
上面是老师写的我抄的,下面才是我写的
package Array;
/*第二题:(java软件工程师人生路上第一个小型项目。锻炼一下面向对象。)
为某个酒店编写程序:酒店管理系统,模拟订房、退房、打印所有房间状态等功能。
1、该系统的用户是:酒店前台。
2、酒店使用一个二维数组来模拟。"Room[][rooms ;"
3、酒店中的每一个房间应该是一个java对象:Room
4、每一个房间Room应该有:房间编号、房间类型、房间是否空闲.
5、系统应该对外提供的功能:
可以预定房间:用户输入房间编号,订房。可以退房:用户输入房间编号,退房。
可以查看所有房间的状态:用户输入某个指令应该可以查看所有房间状态*/
public class ArrayHome02 {
public static void main(String[] args) {
User u = new User();
u.ruzhu("302","豪华","我是你爸爸",3,2);
}
}
class Room{
String[][] room1 = new String[3][3];
String fangjianhao;
String leixing;
String zhuangtai;
public Room() {
}
public Room( String fangjianhao, String leixing, String zhuangtai) {
this.fangjianhao = fangjianhao;
this.leixing = leixing;
this.zhuangtai = zhuangtai;
}
}
class User{
Room r = new Room();
public void ruzhu(String fangjianhao,String leixing,String zhuangtai ,int a,int b){
r.room1[a][1] = fangjianhao;
r.room1[a][2] = leixing;
r.room1[a][3] = zhuangtai;
}
public void tuifang(String fangjianhao,String leixing,String zhuangtai,int a,int b){
r.room1[a][1] = null;
r.room1[a][2] = null;
r.room1[a][3] = null;
}
public void chakan(){
for (int i = 0; i < r.room1[i].length; i++) {
for (int j = 0; j < r.room1[i][j].length(); j++) {
System.out.println(r.room1[i][j]);
}
}
}
}