[KOSTA] Spring 기반 Cloud 8일차 - OOP실습

JUNBEOM PARK·2022년 2월 9일
0
post-thumbnail

🎲 책 값을 계산하는 프로그램 구현

교재 JAVA, JSP, Oracle 각각 가격이 30000, 25000, 15000 이다.
교재 DC는 30000원 이상 25% 할인
20000원 이상 20% 할인
15000원 이상 15%할인


결과> Java 교재는 정가는 30000원 할인된 가격은22500원 입니다.
JSP 교재는 정가는 20000원 할인된 가격은16000원 입니다.
Oracle 교재는 정가는 15000원 할인된 가격은12750원 입니다.
총금액: 51250원


객체지향
책값 DC하는 메서드를 구현
책값을 출력하는 메서드도 따로 구현

📃 풀이

Book.java

package kosta.oop;

public class Book {
	String title;
	int price;
	int dc_price;
	
	public Book() {
		
	}
	
	public Book(String title, int price) {
		this.title = title;
		this.price = price;
	}
	
	public void discount() {
		
		if(price >= 30000) {
			dc_price = (int) (price * 0.75);
		}else if(price >= 20000 ) {
			dc_price = (int) (price * 0.8);
		}else if(price >= 15000) {
			dc_price = (int) (price * 0.85);
		}
		
	}
	
	public void print() {
		System.out.println(title+" 교재의 정가는"+price+"원 할인된 가격은"+dc_price+"원 입니다.");
		
	}
}

BookMain.java

package kosta.oop;

public class BookMain {

	public static void main(String[] args) {
		int total = 0;
		
		Book arr[] = {
				new Book("Java", 30000),
				new Book("JSP", 20000),
				new Book("Oracle", 15000),
		};
		
		for(Book b : arr) {
			b.discount();
			b.print();
			total += b.dc_price;
		}
		System.out.println("총금액 :"+total);
	}
}






🎲 전화번호부 출력 프로그램 구현

문제> 공통객체 => 클래스 => 객체생성 => 생성자 => 객체활용(메서드 호출)


전화번호부 관리프로그램 구현하자.
1명의 전화번호부 : 이름, 전화번호, 생년월일, 기능: 1명의 전화내역을 출력


전화번호부 크기 제한 : 10명 => 배열크기
실제 전화번호 입력 : 1, 2, 3 => 출력 실제 존재하는 전화번호만 출력
PhoneInfo클래스 Main클래스 Manager클래스

📃 풀이

PhoneInfo.java

package kosta.phone;

public class PhoneInfo {
	//상태 : 이름,전화번호,생년월일
	//기능 : 전화번호부 출력
	String name;
	String phone_number;
	String birth;
	
	public PhoneInfo() {
		
	}
	
	public PhoneInfo(String name, String phone_number, String birth) {
		this.name = name;
		this.phone_number = phone_number;
		this.birth = birth;
	}
	
	public void print() {
		System.out.println("이름 : "+name);
		System.out.println("전화번호 : "+phone_number);
		System.out.println("생년월일 : "+birth);
		System.out.println("==================");
	}
}

Manager.java

package kosta.phone;

import java.util.Scanner;

public class Manager {
	PhoneInfo[] arr = new PhoneInfo[10];
	Scanner sc = new Scanner(System.in);
	int count = 0;
	
	public void addPhoneInfo() {
		System.out.print("이름 :");
		String name = sc.nextLine();
		
		System.out.print("전화번호 :");
		String phone_number = sc.nextLine();
		
		System.out.print("생년월일 :");
		String birth = sc.nextLine();
		
		arr[count++] = new PhoneInfo(name, phone_number, birth);
	}
	
	public void listPhoneInfo() {
		for(int i = 0; i < count; i++) {
			arr[i].print();
		}
	}
	
	public void searchPhonInfo() {
		System.out.print("검색 :");
		String name = sc.nextLine();
		int idx = -1;
		
		for(int i = 0; i < count; i++) {
			PhoneInfo info = arr[i];
			if(name.equals(info.name)) {
				info.print();
				idx = i;
			}
		}
		if(idx == -1) {
			System.out.println("찾을 수 없습니다.");
		}
	}
}

Main.java

package kosta.phone;

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		Manager m = new Manager();
		PhoneInfo p[] = new PhoneInfo[3];
		
		while(true) {
			System.out.println("1. 추가 2.전체출력 3.검색 4.종료");
			System.out.print("메뉴선택 : ");
			String menu = sc.nextLine();
			
			switch (menu) {
			case "1":
				m.addPhoneInfo();
				
				break;
			case "2": 
				m.listPhoneInfo();
				
				break;
			case "3": 
				m.searchPhonInfo();
				
				break;
			case "4": 
				System.out.println("프로그램이 종료 되었습니다");
				return;
			
			}
		}
	}

}
profile
DB 엔지니어👍

0개의 댓글