Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags
more
Archives
Today
Total
관리 메뉴

개발 일기

JAVA 코딩 연습(배열 객체의 조건 case 출력 연습_ feat. 주차프로그램) 본문

JAVA 연습장

JAVA 코딩 연습(배열 객체의 조건 case 출력 연습_ feat. 주차프로그램)

개발 일기 2021. 6. 19. 23:49

//1. Car 클래스 생성 후 변수 및 메소드 생성

public class Car {

//1.멤버필드(변수)(속성)
private String no;//차량번호
private int inTime;//입차시간
private int outTime;//출차시간
private int fee;//주차요금
/*
 * 생성자
 */
public Car() {
}

public Car(String no, int inTime) {
    this.no = no;
    this.inTime = inTime;
}

public Car(String no, int inTime, int outTime, int fee) {
    this.no = no;
    this.inTime = inTime;
    this.outTime = outTime;
    this.fee = fee;
}

//2. 멤버메쏘드[기능](차객체가 가지고있는 기능 )
/*
 * 출차시간셋팅
 */
public void setOutTime(int outTime) {
    this.outTime=outTime;
    return;
}

/*
 * 입차데이타(번호,입차시간) 셋팅
 */
public void setIpChaData(String no, int inTime) {
    this.no=no;
    this.inTime=inTime;
}

/*
 * 요금계산
 */
public void calculateFee() {
    this.fee=(this.outTime-this.inTime)*1000;
}
/*
 *  헤더출력
 */
public static void headerPrint() {
    System.out.println("-----------------------------------");
    System.out.printf("%s %s %s %s%n","차량번호", "입차시간","출차시간","주차요금");
    System.out.println("-----------------------------------");
}
/*
 * 차량정보출력
 */
public void print() {

    System.out.printf("%7s %7d %9d %8d%n",this.no,this.inTime,this.outTime,this.fee);
    return;
}

//setter
public void setNo(String no) {
    this.no = no;
}

public void setInTime(int inTime) {
    this.inTime = inTime;
}

public void setFee(int fee) {
    this.fee = fee;
}
//getter
public String getNo() {
    return no;
}

public int getInTime() {
    return inTime;
}

public int getOutTime() {
    return outTime;
}

public int getFee() {
    return fee;
}

}

//2. CarArrayMain 클래스 생성 후 Car[]객체 생성하여 조건 별 호출

public class CarArrayMain {

public static void main(String[] args) {
    Car[] carArray= { // Car[]객체 carArray 생성 후 초기화 진행
            null,null,new Car("5654", 8),null,null,
            new Car("3422", 12),null,null,null,null,
            null,null,null,null,new Car("7789", 11),
            new Car("1120", 10),null,null,null,null,
            null,new Car("2389", 9),null,null,null,
            null,null,null,null,new Car("5555", 6)
    };

    //case1. 주차되어 있는 전체 차량 출력

    System.out.println("1.전체 차량출력");
    Car.headerPrint();
    for (int i = 0; i < carArray.length; i++) {
        if(carArray[i]!=null) // car배열 객체값이 null이 아닌 객체들로만 비교
        carArray[i].print();
    }

    //case2. 전체 주차 가능 공간(배열의 크기) 출력
    System.out.println("2.전체주차구획수");
    int a = 0;
    a = carArray.length; // car배열 객체의 범위 호출
    System.out.println(a);

    //case3. 현재 주차 가능 구획 수 노출 객체의 값이 null인 케이스의 수 출력
    System.out.println("3.주차가능주차구획수");
    int count = 0;
    for (int i = 0; i < carArray.length; i++) {
        if(carArray[i]==null) { // car배열 객체의 값이 null인 카운트
            count++;
        }
    }System.out.println(count);

    //case4. 차량객체 생성 후 빈자리 찾아 대입
    System.out.println("4.입차");
    Car c1 = new Car("1234", 13); // c1객체 생성 후 초기화
    for (int i = 0; i < carArray.length; i++) {
        if(carArray[i]==null) { // car배열 객체 값이 null인 곳에 c1 값을 대입하고 브레이크
            carArray[i]=c1;
            break;
        }
    }

    //case5. "7789" 차량번호 정보 출력
    System.out.println("5.차량번호 7789번  차한대 정보출력"); // String 비교

    for (int i = 0; i < carArray.length; i++) {
        if(carArray[i]!=null) {
            if(carArray[i].getNo().equals("7789")) { // equals 사용하여 String 타입 비교
                carArray[i].print();
            }
        }
    }

    //case6. 입차시간 10시 이후 차량 정보 출력
    System.out.println("6.입차시간 10시이후 차량여러대 찾아서 정보출력");
    for (int i = 0; i < carArray.length; i++) {
        if(carArray[i]!=null) {
            if(carArray[i].getInTime()>=10) { // 입차 시간 10시 이후 차량 조회
                carArray[i].print();
            }
        }
    }

    //case7. "2389"차량 12시 출차 / 영수증 출력 / 주차 내 차량 삭제
    System.out.println("7.2389번차량 12시 출차");
    for (int i = 0; i < carArray.length; i++) {
        if(carArray[i]!=null) {
            if(carArray[i].getNo().equals("2389")) { // 2389 차량 조회
                carArray[i].setOutTime(12);             // 출차 시간 설정 
                carArray[i].calculateFee();             // 주차요금 계산
                Car.headerPrint();
                carArray[i].print();
            }
        }
    }

    for (int i = 0; i < carArray.length; i++) {
        if(carArray[i]!=null) {
            if(carArray[i].getFee()>0) {              // 주차요금이 있다면 null로 변경하여 출차 액션
                carArray[i]=null;
            }
        }
    }

    Car.headerPrint();
    for (int i = 0; i < carArray.length; i++) {
        if(carArray[i]!=null)
        carArray[i].print();
    }
}

}

배열 객체에 대한 다양한 케이스별 조건문을 통한 호출을 진행 해보았습니다!

Comments