작성 : 2024. 4. 12. 

 

배열을 잘 못쓰는 것 같아서 수업 전에 예제를 찾아 간단하게 풀어봤다.

배열관련 예제 

package practice;

public class ArraysPractice {

	public static void main(String[] args) {
		// 배열관련예제 01.

		// 길이가 10인 배열을 선언하고
		// 1부터 10까지의 값을 반복문을 이용하여 순서대로 배열 인덱스에 넣은 후 그 값을 출력하세요.

		int[] arr = new int[10];

		for (int i = 0; i < arr.length; i++) {
			arr[i] = i + 1;
			System.out.print(arr[i] + " ");
		}

		System.out.println();

		// 배열관련예제 02.

		// 길이가 10인 배열을 선언하고 1부터 10까지의 값을 반복문을 이용하여
		// 역순으로 배열 인덱스에 넣은 후 그 값을 출력하세요.

		int[] arr2 = new int[10];
		int num = arr.length;

		for (int i = 0; i < arr.length; i++) {
			arr2[i] = num;
			num--;
		}

		// 하나씩 차례대로 배열값에 수들을 넣어주는 코드
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr2[i] + " ");
		}
	}

}

 

학생성적 관리 시스템을 만들어보자

학생성적관리시스템

package etc0411;

public class ScoreData {
	// 한 학생의 이름과 성적을 변수로 저장
	
	String name;
	int java;
	int kor;
	int eng;
	int math;

	public ScoreData(String name, int java, int kor, int eng, int math) {
		super();
		this.name = name;
		this.java = java;
		this.kor = kor;
		this.eng = eng;
		this.math = math;
	}
	
	void show() {
		System.out.println("이름 : " + name );
		System.out.println("자바 점수 : " + java + ", 국어 점수 : " + kor + ", 영어 점수 : " + eng + " , 수학 점수 : " + math);
	}
	

}

 

package etc0411;
// 성적산출프로그램

import java.util.Scanner;

public class ScoreTest {
	
	final int columns = 10;
    final int rows = 6;


	// 멤버 변수 만들기

	// ScoreData 타입의 배열
	static ScoreData[] scoreData = new ScoreData[10];
	// 성적을 입력받아야 함.
	static Scanner sc = new Scanner(System.in);

	public static void main(String[] args) {

		int menu;

		while (true) {
			// 단위테스트를 하고 넘어가야함.
			showMenu();
			System.out.println("메뉴 선택 : ");
			menu = sc.nextInt();

			// 입력받은 번호 비교
			if (menu == 1) {
				showAllScore();
			} else if (menu == 2) {
				registerScore();
			} else if (menu == 3) {
				searchScoreByName();
			} else if (menu == 4) {
				deletScoreByNum();
			} else if (menu == 0) {
				System.out.println("프로그램 종료");
				break;
			}
		}

	}

	static void showMenu() {
		// 전체 선택할 메뉴
		System.out.println("--------------------------");
		System.out.println("1. 전체 성적 조회");
		System.out.println("2. 성적 등록");
		System.out.println("3. 성적 검색");
		System.out.println("4. 성적 삭제");
		System.out.println("0. 종료");
		System.out.println("--------------------------");
	}

	static void showAllScore() {
		System.out.println("전체 성적 조회");
//		if (scoreData.length == 0) {
//			System.out.println("저장된 성적데이터가 없습니다.");
//			return;
//		}

-----------------------------------------------------------------------------
-> 강사님이 처음에 이렇게(주석 건 코드) 알려줬는데 해보니 
"저장된 성적데이터가 없습니다." 메세지가 나오지 않음. 그래서 아래 코드로 내가 바꿔보았다.

		for (int i = 0; i < scoreData.length; i++) {
			if (scoreData[i] == null) {
				System.out.println("저장된 성적데이터가 없습니다.");
				return;
			} else if (scoreData[i] != null) {
				System.out.print((i + 1) + "번 - ");
				scoreData[i].show(); 
			}
		}
	}
	
-> 이렇게 하면 성적 데이터가 없을 때 "저장된 성적데이터가 없습니다." 메세지는 나오지만 
성적 데이터가 있을 때도 나옴..

결국 강사님께 이 문제를 말씀드리고 함께 코드를 수정함.
-----------------------------------------------------------------------------
	
	static void showAllScore() {
		System.out.println("전체 성적 조회");

		boolean flag = false;
		for (int i = 0; i < scoreData.length; i++) {
			if (scoreData[i] != null) {
				flag = true;
				System.out.print((i + 1) + "번 - ");
				scoreData[i].show(); // null 체크를 반드시 해야 오류가 생기지 않음.
			}
		}

		if (!flag) {
			System.out.println("저장된 성적데이터가 없습니다.");
		}

	}
	
	-> 수정된 코드. 잘 돌아감! 
 

	static void registerScore() {
		System.out.println("성적 등록");
		System.out.println("이름 : ");
		String name = sc.next();

		System.out.println("자바 : ");
		int java = sc.nextInt();
		System.out.println("국어 : ");
		int kor = sc.nextInt();
		System.out.println("영어 : ");
		int eng = sc.nextInt();
		System.out.println("수학 : ");
		int math = sc.nextInt();

		// new ScoreData(name, java, kor, eng, math);
		for (int i = 0; i < 10; i++) {
			if (scoreData[i] == null) {
				scoreData[i] = new ScoreData(name, java, kor, eng, math);
				System.out.println("등록 완료");
				break;
			}
		}
	}

	// 학생 이름을 통해 성적을 찾아보겠다
	static void searchScoreByName() {
		System.out.println("성적 검색");
		System.out.print("검색할 이름을 입력하세요 : ");
		String name = sc.next(); // next 는 공백을 포함한 문자를 못받음. nextline 은 공백을 받을 수 있음
		// 찾으면 찾았다고, 못찾으면 못찾았다고 판단
		boolean found = false;
		for (int i = 0; i < 10; i++) {
			// 배열 안의 값이 널이 아니면서 이름이 같을 때
			if (scoreData[i] != null && (scoreData[i].name).equals(name)) { // equals(name) 이름이 같은지 판단
				System.out.println(name + "을(를) 찾았습니다.");
				scoreData[i].show();
				found = true;
				break; // 찾았다면 반복문 끝내기
			}
		}
		// 열번 도는 동안 검색하는 학생의 이름을 찾지 못했을 때
		if (!found) {
			System.out.println("이름 검색에 실패했습니다.");
		}
	}

	static void deletScoreByNum() {
		System.out.println("성적 삭제");
		System.out.println("삭제할 성적데이터의 번호를 입력하세요 : ");
		int select = sc.nextInt();

		// 배열에서 삭제를 한다는 것은 null 로 만들어버리는 것
		if (scoreData[select - 1] == null) {
			System.out.println("일치하는 성적 데아터가 없습니다.");
			return;
		} else {
			scoreData[select - 1] = null;
			System.out.println("성적 데이터가 삭제 되었습니다.");
		}
	}

}

 

  • 미니 프로젝트 미션 - 예약 시스템을 만들어 보세요.
  1. 변수를 어떻게 사용할지 공통 부분에 대한 약속
  2. 메뉴 정하기 → 예약조회, 예약, 수정, 삭제,
  3. 주제는 아무거나 가능 (기차, 비행기 … 등등)

영화관 예매

빙고판으로 1관, 2관, 3관 예약자 이름, 연락처, 영화 이름, 좌석, 인원수

프린터 영화 목록 뽑고 시간, 좌석선택, 시간선택

영화 목록,시간 보여주기- a

영화 예매 (좌석선택, 영화이름, 인원수)- b

예약자 이름으로 예약 확인- 유나 me

예약자 이름으로 예약 취소- c

예약자 이름으로 수정 (삭제후 재등록)- a

 

 

 

영화관 예매 시스템

🙉 조원들과 만든 코드의 현재 진행상황

// 예약확인에서 좌석번호가 나타나지 않는 이슈

// 예약취소 후 취소된 예약내역을 확인 할 수 없음

// 예약확인에서 예약되지 않은 사람의 이름을 입력하면 “예약 내역이 없습니다”등의 메세지가 없음 → 현재 아무런 일이 일어나지 않고 다시 돌아가는 구조

// “예약 내역 수정을 위해 영화를 다시 선택해주세요” 와 같이 사용자가 지금 자신이 무엇을 하고 있는지 다시 알려줄 수 있는 메세지 출력

// 예약 수정을 하면 예약이 취소됨과 동시에 재예약이 진행되기 때문에 예약이 취소되었습니다와 예약이 완료되었습니다 메세지가 같이 출력되는데 “예약이 수정되었습니다”라고 메세지를 보여주고 수정된 예약 정보를 같이 띄워주면 좋을 것 같음

package Reservation0412;

import java.util.Scanner;

public class MovieReservation {

	   static String name;
	   static int movieentrance;
	   static int movieTime;
	   public static int seatNumber;

	   // 멤버 변수 만들기

	   // ReservationData 타입의 배열
	   static ReservationData[] reservationData = new ReservationData[1];
	   // 예약자 이름, 연락처, 영화 이름, 좌석 등을 입력받아야 함.
	   static Scanner sc = new Scanner(System.in);

	   public static void main(String[] args) {
	      reservationData[0] = null;
	      int menu;

	      while (true) {
	         showMenu();
	         System.out.print("메뉴 선택 : ");
	         menu = sc.nextInt();

	         // 입력받은 번호 비교
	         if (menu == 1) {
	            showAllMovie(); // 영화 목록,시간 보여주기 - a
	         } else if (menu == 2) {
	            reservationMovie(); // 영화 예매 (좌석선택, 영화이름, 인원수) - b
	         } else if (menu == 3) {
	            searchReservationByName(); // 예약자 이름으로 예약 확인 - 유나 me
	         } else if (menu == 4) {
	            deletReservationByName(); // 예약자 이름으로 예약 취소 - c
	         } else if (menu == 5) {
	            ReservationReChoice(); // 예약자 이름으로 수정 (삭제후 재등록) - a
	         } else if (menu == 0) {
	            System.out.println(" 프로그램 종료 ");
	            break;
	         }
	      }

	   }

	   static void showMenu() {
	      // 전체 선택할 메뉴
	      System.out.println("—————————————");
	      System.out.println("1. 현재 상영하는 영화 확인하기");
	      System.out.println("2. 영화 예매하기");
	      System.out.println("3. 예약 확인");
	      System.out.println("4. 예약 취소");
	      System.out.println("5. 예약 수정");
	      System.out.println("0. 종료");
	      System.out.println("—————————————");
	   }

	   static void showAllMovie() {
		   System.out.println();
	      System.out.println("1관 파묘: 11:20  17:20   ");
	      System.out.println("2관 범죄도시: 11:20  17:20  ");
	   }

	   static void reservationMovie() {
	      if (reservationData[0] == null) {
	         System.out.print("이름을 입력해주세요: ");
	         name = sc.next();
	         System.out.print("영화를 선택해주세요. 1.파묘 2.범죄도시 >>");
	         movieentrance = sc.nextInt();
	         System.out.print("시간을 선택해주세요. 1. 11:20 2. 17:20 >>");
	         movieTime = sc.nextInt();

	         파묘1 f1 = new 파묘1();
	         파묘2 f2 = new 파묘2();
	         범죄도시1 b1 = new 범죄도시1();
	         범죄도시2 b2 = new 범죄도시2();

	         if (movieentrance == 1 && movieTime == 1) {
	            f1.movie1();
	         } else if (movieentrance == 1 && movieTime == 2) {
	            f2.movie1();
	         } else if (movieentrance == 2 && movieTime == 1) {
	            b1.movie1();
	         } else if (movieentrance == 2 && movieTime == 2) {
	            b2.movie1();
	         }

	         reservationData[0] = new ReservationData(name, movieentrance, movieTime, seatNumber);
	      } else 
	         System.out.println("예매가 이미 진행되었습니다.");
	   }

	   static void searchReservationByName() {

	      System.out.print("이름을 입력해주세요 :");
	      String name2 = sc.next();
	      if (name2.equals(name)) {
	         reservationData[0].show();
	      }

	   }

	   static void deletReservationByName() {
	      System.out.print("이름 :");
	      String name2 = sc.next();
	      if (name2.equals(name)) {
	    	  reservationData[0] = null;
	    	  System.out.println("예매가 취소되었습니다.");
	      }

	   }

	   static void ReservationReChoice() {
	      System.out.print("이름을 입력해주세요");
	      String name2 = sc.next();
	      if (name2.equals(name)) {
	         reservationData[0] = null;
	         System.out.print("영화를 선택해주세요 1.파묘 2.범죄도시:");
	         movieentrance = sc.nextInt();
	         System.out.print("시간을 선택해주세요 1.11:20 2.17:20:");
	         movieTime = sc.nextInt();
	         파묘1 f1 = new 파묘1();
	         파묘2 f2 = new 파묘2();
	         범죄도시1 b1 = new 범죄도시1();
	         범죄도시2 b2 = new 범죄도시2();

	         if (movieentrance == 1 && movieTime == 1) {
	            f1.movie1();
	         } else if (movieentrance == 1 && movieTime == 2) {
	            f2.movie1();
	         } else if (movieentrance == 2 && movieTime == 1) {
	            b1.movie1();
	         } else if (movieentrance == 2 && movieTime == 2) {
	            b2.movie1();
	         }
	         System.out.println("예약이 취소되었습니다.");
	      } else
	         System.out.println("예약정보없음");

	   }
	}
package Reservation0412;

public class ReservationData {
   String name;

   int movieentrance;
   int movieTime;
   int seatNumber;

   public ReservationData(String name, int movieentrance, int movieTime, int seatNumber) {
      super();
      this.movieentrance = movieentrance;
      this.movieTime = movieTime;
      this.name = name;
      this.seatNumber = seatNumber;
   }

   void show() {
      String movieName;
      String time;
      if (movieentrance == 1) {
         movieName = "파묘";
      } else {
         movieName = "범죄도시";
      }
      if (movieTime == 1) {
         time = "11:20";
      } else {
         time = "17:20";
      }
      System.out.println("이름 : " + name);
      System.out.println("영화 : " + movieName + ", " + "시간 : " + time + ", " + "좌석번호 : " + seatNumber);
   }
}

각 영화를 상영하는 영화관의 좌석에서 예매자의 값을 받기 때문에 상영시간, 영화 별로 클래스를 만들어 놓음.

 

package Reservation0412;

import java.util.Scanner;

public class 범죄도시1 {
	
	   void movie1() {
		      int[][] arr = new int[6][6];
		      for (int i = 0; i < 6; i++) {
		         for (int j = 0; j < 6; j++) {
		            arr[i][j] = j + 1;

		         }
		      }
		      String[] arr2 = { "a열", "b열", "c열", "d열", "e열", "f열" };
		      Scanner in = new Scanner(System.in);

		      for (int i = 0; i < 6; i++) {
		         System.out.print(arr2[i] + " ");
		         for (int j = 0; j < 6; j++) {
		            System.out.print(arr[i][j] + " ");
		         }
		         System.out.println();
		      }
		      System.out.println();

		      int a = 0;
		      System.out.println("열을 선택하세요");
		      String s = in.next();
		      if (s.equals("a")) {
		         a = 0;
		      }
		      if (s.equals("b")) {
		         a = 1;
		      }
		      if (s.equals("c")) {
		         a = 2;
		      }
		      if (s.equals("d")) {
		         a = 3;
		      }
		      if (s.equals("e")) {
		         a = 4;
		      }
		      if (s.equals("f")) {
		         a = 5;
		      }

		      System.out.println("좌석을 선택해주세요");

		      int b = in.nextInt();

		      arr[a][b - 1] = 0;

		      for (int i = 0; i < 6; i++) {
		         System.out.print(arr2[i] + " ");
		         for (int j = 0; j < 6; j++) {
		            System.out.print(arr[i][j] + " ");
		         }
		         System.out.println();

		      }
		      System.out.println("예약이 완료되었습니다.");
		      String seatNumber = s + b;

		   }
		}
package Reservation0412;

import java.util.Scanner;

public class 범죄도시2 {
	
	 void movie1() {
	      int[][] arr = new int[6][6];
	      for (int i = 0; i < 6; i++) {
	         for (int j = 0; j < 6; j++) {
	            arr[i][j] = j + 1;

	         }
	      }
	      String[] arr2 = { "a열", "b열", "c열", "d열", "e열", "f열" };
	      Scanner in = new Scanner(System.in);

	      for (int i = 0; i < 6; i++) {
	         System.out.print(arr2[i] + " ");
	         for (int j = 0; j < 6; j++) {
	            System.out.print(arr[i][j] + " ");
	         }
	         System.out.println();
	      }
	      System.out.println();

	      int a = 0;
	      System.out.println("열을 선택하세요");
	      String s = in.next();
	      if (s.equals("a")) {
	         a = 0;
	      }
	      if (s.equals("b")) {
	         a = 1;
	      }
	      if (s.equals("c")) {
	         a = 2;
	      }
	      if (s.equals("d")) {
	         a = 3;
	      }
	      if (s.equals("e")) {
	         a = 4;
	      }
	      if (s.equals("f")) {
	         a = 5;
	      }

	      System.out.println("좌석을 선택해주세요");

	      int b = in.nextInt();

	      arr[a][b - 1] = 0;

	      for (int i = 0; i < 6; i++) {
	         System.out.print(arr2[i] + " ");
	         for (int j = 0; j < 6; j++) {
	            System.out.print(arr[i][j] + " ");
	         }
	         System.out.println();

	      }
	      System.out.println("예약이 완료되었습니다.");

	      String seatNumber = s + b;

	   }
	}
package Reservation0412;

import java.util.Scanner;

public class 파묘1 {

	   void movie1() {
	      int[][] arr = new int[6][6];
	      for (int i = 0; i < 6; i++) {
	         for (int j = 0; j < 6; j++) {
	            arr[i][j] = j + 1;

	         }
	      }
	      String[] arr2 = { "a열", "b열", "c열", "d열", "e열", "f열" };
	      Scanner in = new Scanner(System.in);

	      for (int i = 0; i < 6; i++) {
	         System.out.print(arr2[i] + " ");
	         for (int j = 0; j < 6; j++) {
	            System.out.print(arr[i][j] + " ");
	         }
	         System.out.println();
	      }
	      System.out.println();

	      int a = 0;
	      System.out.println("열을 선택하세요");
	      String s = in.next();
	      if (s.equals("a")) {
	         a = 0;
	      }
	      if (s.equals("b")) {
	         a = 1;
	      }
	      if (s.equals("c")) {
	         a = 2;
	      }
	      if (s.equals("d")) {
	         a = 3;
	      }
	      if (s.equals("e")) {
	         a = 4;
	      }
	      if (s.equals("f")) {
	         a = 5;
	      }

	      System.out.println("좌석을 선택해주세요");

	      int b = in.nextInt();

	      arr[a][b - 1] = 0;

	      for (int i = 0; i < 6; i++) {
	         System.out.print(arr2[i] + " ");
	         for (int j = 0; j < 6; j++) {
	            System.out.print(arr[i][j] + " ");
	         }
	         System.out.println();

	      }
	      System.out.println("예약이 완료되었습니다.");

	      String seatNumber = s + b;

	   }
	}
package Reservation0412;

import java.util.Scanner;

public class 파묘2 {
	
	void movie1() {
	      int[][] arr = new int[6][6];
	      for (int i = 0; i < 6; i++) {
	         for (int j = 0; j < 6; j++) {
	            arr[i][j] = j + 1;

	         }
	      }
	      String[] arr2 = { "a열", "b열", "c열", "d열", "e열", "f열" };
	      Scanner in = new Scanner(System.in);

	      for (int i = 0; i < 6; i++) {
	         System.out.print(arr2[i] + " ");
	         for (int j = 0; j < 6; j++) {
	            System.out.print(arr[i][j] + " ");
	         }
	         System.out.println();
	      }
	      System.out.println();

	      int a = 0;
	      System.out.println("열을 선택하세요");
	      String s = in.next();
	      if (s.equals("a")) {
	         a = 0;
	      }
	      if (s.equals("b")) {
	         a = 1;
	      }
	      if (s.equals("c")) {
	         a = 2;
	      }
	      if (s.equals("d")) {
	         a = 3;
	      }
	      if (s.equals("e")) {
	         a = 4;
	      }
	      if (s.equals("f")) {
	         a = 5;
	      }

	      System.out.println("좌석을 선택해주세요");

	      int b = in.nextInt();

	      arr[a][b - 1] = 0;

	      for (int i = 0; i < 6; i++) {
	         System.out.print(arr2[i] + " ");
	         for (int j = 0; j < 6; j++) {
	            System.out.print(arr[i][j] + " ");
	         }
	         System.out.println();

	      }
	      System.out.println("예약이 완료되었습니다.");
	      String seatNumber = s + b;

	   }
	}

진행하며 느낀 나의 문제들 → 내가 원래 했던 방향은 ReservationData[] 에 예약자의 정보를 저장하려 했었다. 그래서 내가 맡은 부분의 ‘예약자 이름으로 예약확인’ 부분에서 for문을 사용해 ReservationData[]에 저장된 예약자들의 이름을 돌려 확인할 수 있게 만들었다. 조원들과 미션을 진행하며 각 자 맡은 메서드를 작성할 수 있도록 내가 전체적인 틀을 제공해줬는데 ReservationData[]라는 변수의 사용에 대해 정확하게 이야기를 하지 않고 넘어가 이런 오해가 생긴 것 같다. 변수명이 다른 팀원들이 알아 볼 수 있을 정도로 직관적이라고 생각했는데 다음에는 더 확실하게 이해할 수 있도록 주석을 달아줘야겠다. 큰 실수는 아니라 다행히 내 코드가 돌아가는 것에는 문제가 없었지만 예약자 정보를 담는 공간이 없으니 다른 예약자들이 예약을 할 수가 없다. 오직 한 사람의 영화 예약을 위해 예약 프로그래밍을 짠 것!

여러 사람들이 예약을 할 수 있도록 예약자 내역을 받는 변수를 꼭 만들어야겠다.

느낀 점 → 내 옆자리의 천재분이 내가 제공한 틀을 제외한 거의 모든 것들을 다 만드셨는데.. 일단 감정적으로는 회의감을 가장 많이 느낀 것 같다. 같은 시간을 투자해도 이런 다른 결과를 내는 사람이 있다는 것이 많이 자극이 되었고 걱정되고 초조해지기도 했다. 그래도 배운 것들을 내가 이해하고 아주 조금씩 응용을 할 수 있다는 것은 희망적이다. 단위평가 때는 또 어떨지 자신이 없지만.. 일단 이번 팀원들이 프로그래밍에 대해 열의가 있고 욕심이 있어서인지 점점 하다보면 범위가 넓어졌다. 내가 생각하지 못했던 기능들을 막 구현하려 하기도 하고! 그래서 따라가기가 벅차기도 했지만 꽤 재밌기도 했다. 뭔가 이번 주말에도 새로운 것을 구현하고 좀 알아가야 할 것 같다..

하지만 여전히 이해되지 않는 부분들이 있으므로 일단 코드를 잘 분석해보고, 수정하고 싶은 방향에 맞게 나름 조금씩 건드려 볼 예정이다.

내가 짠 전체적인 틀과 코드 (거의 강사님꺼에서 변수명만 바꾸고 복붙;;)

package Reservation0412;

import java.util.Scanner;

public class ReservationTest {

	// 멤버 변수 만들기

	// ReservationData 타입의 배열
	static ReservationData[] reservationData = new ReservationData[1];
	// 예약자 이름, 연락처, 영화 이름, 좌석, 인원수 등을 입력받아야 함.
	static Scanner sc = new Scanner(System.in);

	public static void main(String[] args) {

		int menu;

		while (true) {
			// 단위테스트를 하고 넘어가야함.
			showMenu();
			System.out.print("메뉴 선택 : ");
			menu = sc.nextInt();

			// 입력받은 번호 비교
			if (menu == 1) {
				showAllMovie(); // 영화 목록,시간 보여주기 - 나실
			} else if (menu == 2) {
				reservationMovie(); // 영화 예매 (좌석선택, 영화이름, 인원수) - 기웅
			} else if (menu == 3) {
				searchReservationByName(); // 예약자 이름으로 예약 확인 - 유나
			} else if (menu == 4) {
				deletReservationByName(); // 예약자 이름으로 예약 취소 - 정우
			} else if (menu == 5) {
				ReservationReChoice(); // 예약자 이름으로 수정 (삭제후 재등록) - 나실
			} else if (menu == 0) {
				System.out.println(" 프로그램 종료 ");
				break;
			}
		}

	}

	static void showMenu() {
		// 전체 선택할 메뉴
		System.out.println("--------------------------");
		System.out.println("1. 현재 상영하는 영화 확인하기");
		System.out.println("2. 영화 예매하기");
		System.out.println("3. 예약 확인");
		System.out.println("4. 예약 취소");
		System.out.println("5. 예약 수정");
		System.out.println("0. 종료");
		System.out.println("--------------------------");
	}

	static void showAllMovie() {
		System.out.println("1관 파묘: 11:20  17:20   ");
		System.out.println("2관 범죄도시: 11:20  17:20  ");
	}

	static void reservationMovie() {
		
	}

	static void searchReservationByName() {
		System.out.println("예약 확인");
		System.out.print("예약자의 성함을 입력하세요 : ");
		String name = sc.next();
	
		// 찾으면 찾았다고, 못찾으면 못찾았다고 판단
		boolean found = false;
		for (int i = 0; i < 10; i++) {
			// 배열 안의 값이 널이 아니면서 이름이 같을 때
			if (reservationData[i] != null && (reservationData[i].name).equals(name)) {
				System.out.println(name + "의 예약 내역을 확인해드리겠습니다. ");
				reservationData[i].show();
				found = true;
				break; // 찾았다면 반복문 끝내기
			}
		}
		// 열번 도는 동안 예약자의 이름을 찾지 못했을 때
		if (!found) {
			System.out.println("예약 정보를 찾을 수 없습니다.");
		}
	}

	static void deletReservationByName() {


	   }

	static void ReservationReChoice() {


	}
}

 

 

  • 예외처리

참조) https://velog.io/@codepark_kr/%EC%9E%90%EB%B0%94-%EC%9D%B4%EB%A1%A0-%EC%98%88%EC%99%B8-%EC%B2%98%EB%A6%AC

키워드 : 이퀄스와 헤쉬코드, 오버라이딩

나중에 컬렉션을 배울 때 필요,,

package etc0411;

import java.util.Objects;

@NoArgsConstructor      // 롬북을 이용해 기본생성자를 만들어줌!!
@AllArgsConstructor
@EqualsAndHashCode
public class Person {
	long id;
	String name;

//	public Person(long id, String name) {
		// TODO Auto-generated constructor stub
//	}

	
	// equals 를 오버라이딩하면 hashCode 도 오버라이딩한다.
	// hashCode 값은 고유하다.

//	public void setId(long id, String name) {
//		this.id = id;
//		this.name = name;
//	}
//
//	@Override
//	public boolean equals(Object obj) {
//		
//		Person other = null;  // 선언을 위에서
//		
//		if (obj instanceof Person) {
//		other = (Person)obj;
//		}
//		// 아이디와 이름 비교해서 똑같을 때 같은 객체로 판단하겠다
//		return this.id == other.id && (this.name).equals(other.name); 
//	}
//	
//	@Override
//	public int hashCode() {
//		// hashCode 가 똑같으면 똑같은 개체로 판단한다.
//		return Objects.hash(id, name);
//	}
//	
//	


}
package etc0411;

public class PersonTest {

	public static void main(String[] args) {
		Person p1 = new Person(1111111, "홍길동");
		Person p2 = new Person(1111111, "홍길동");     
		
		// 주소값을 비교하면 다르게 나오지만 값을 직접 비교하도록 오버라이딩하면 값을 비교할 수 있다.
		
		if (p1.equals(p2)) {  // 객체를 비교할 땐 equals 사용
			System.out.println("같습니다.");
		} else {
			System.out.println("다릅니다.");
		}
		
		System.out.println(p1.hashCode());
		System.out.println(p2.hashCode());

	}

}
package etc0411;

import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
import lombok.ToString;

//0412

@NoArgsConstructor      // 롬북을 이용해 기본생성자를 만들어줌!!
@AllArgsConstructor
@ToString(exclude = "name") // (exclude = "name") <- 빼고 싶은 요소가 있을 때
public class Student {
	String name;
	int age;
	int grade;
	int ban;
	int no;
	
	
//	public Student(String name, int age, int grade, int ban, int no) {
//		super();
//		this.name = name;
//		this.age = age;
//		this.grade = grade;
//		this.ban = ban;
//		this.no = no;
//	}
//	
//	// 기본생성자는 습관적으로 쓴다!
//	// 어떤 역할을 하든 안하든 코딩할때 기본
//	public Student() {
//		
//	}
//
//	@Override
//	public String toString() {
//		return "Student [name=" + name + ", age=" + age + ", grade=" + grade + ", ban=" + ban + ", no=" + no + "]";
//	}
//	

}
package etc0411;
//0412
public class StudentTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		Student s = new Student("홍길동", 10, 1, 1, 10);
		System.out.println(s.toString());

	}

}

'2024_UIUX 국비 TIL' 카테고리의 다른 글

UIUX _국비과정 0416  (1) 2024.05.29
UIUX _국비과정 0415  (0) 2024.05.29
UIUX _국비과정 0411  (0) 2024.05.29
UIUX _국비과정 0409  (0) 2024.05.29
UIUX _국비과정 0408  (0) 2024.05.29

+ Recent posts