-
JAVA_08_실습_객체(3)1. JAVA/1.2 실습 2022. 3. 24. 19:45
문제 ] 전자제품을 구매하려고 한다. (전자제품에는 Audio, Tv, Computer가 있다.)
주어진 예산은 10000원이다.가격, 보너스포인트(가격의 1/10), 잔액, 구매품목을 누적시켜 출력하시오.
(금액은 임의로 넣어주고 만약 주어진 예산에서 부족시, 잔액부족으로 출력)1) Product 클래스 작성(Audio, Tv, Computer 의 부모클래스)
public class Product { String name; int price,bp; //생성자 public Product(String name,int price) { this.name = name; this.price = price; this.bp = price/10; } } class Audio extends Product { Audio(){ //문자열, 정수를 매개변수로 받는 부모 생성자를 호출하였다. super("오디오",1000); } public String toString() { return "오디오"; } } class Tv extends Product { Tv(){ //문자열, 정수를 매개변수로 받는 부모 생성자를 호출하였다. super("Tv",1500); } public String toString() { return "Tv"; } } class Computer extends Product{ Computer(){ //문자열, 정수를 매개변수로 받는 부모 생성자를 호출하였다. super("컴퓨터",3000); } public String toString() { return "컴퓨터"; } }
2) 구매하는 사람별 구매 품목을 나타내는 Buyer 클래스 작성
public class Buyer { int price, bp,total; String name; Product[] cart = new Product[10]; Product p; //매개변수를 이름으로 받는 생성자 생성 public Buyer(String name) { this.name = name; this.price = 10000; //각 객체마다 주어진 예산은 만원 } int i = 0; public void buy(Product p) { if(price<p.price) { System.out.println("잔액 부족!"); return; } else { price-=p.price; cart[i++] = p; bp += p.bp; System.out.println(name+"님"); System.out.println(p+"구입!"); System.out.println("잔액 : "+price); System.out.println("적립된 포인트 : "+bp); } System.out.println(); } String str = ""; public void summary() { for(int i = 0; i<cart.length;i++) { if(cart[i]==null) { break; } total += cart[i].price; str+=cart[i] +" "; } System.out.println("*****"+name+"님의 구매내역*****"); System.out.println("총 구입 금액 : "+total); System.out.println("총 구입 품목 : "+str); } }
3) 메인메소드
public static void main(String[] args) { Product tv = new Tv(); Product com = new Computer(); Product aud = new Audio(); Buyer b1 = new Buyer("홍길동1"); b1.buy(aud); b1.buy(com); b1.buy(aud); b1.buy(aud); b1.buy(aud); b1.buy(aud); b1.buy(aud); b1.buy(aud); b1.buy(aud); b1.buy(tv); b1.summary(); System.out.println("============================="); Buyer b2 = new Buyer("홍길동2"); b2.buy(aud); b2.buy(aud); b2.buy(aud); b2.buy(aud); b2.buy(aud); b2.summary(); } }
<출력내용>
홍길동1님 오디오구입! 잔액 : 9000 적립된 포인트 : 100 홍길동1님 컴퓨터구입! 잔액 : 6000 적립된 포인트 : 400 홍길동1님 오디오구입! 잔액 : 5000 적립된 포인트 : 500 홍길동1님 오디오구입! 잔액 : 4000 적립된 포인트 : 600 홍길동1님 오디오구입! 잔액 : 3000 적립된 포인트 : 700 홍길동1님 오디오구입! 잔액 : 2000 적립된 포인트 : 800 홍길동1님 오디오구입! 잔액 : 1000 적립된 포인트 : 900 홍길동1님 오디오구입! 잔액 : 0 적립된 포인트 : 1000 잔액 부족! 잔액 부족! *****홍길동1님의 구매내역***** 총 구입 금액 : 10000 총 구입 품목 : 오디오 컴퓨터 오디오 오디오 오디오 오디오 오디오 오디오 ============================= 홍길동2님 오디오구입! 잔액 : 9000 적립된 포인트 : 100 홍길동2님 오디오구입! 잔액 : 8000 적립된 포인트 : 200 홍길동2님 오디오구입! 잔액 : 7000 적립된 포인트 : 300 홍길동2님 오디오구입! 잔액 : 6000 적립된 포인트 : 400 홍길동2님 오디오구입! 잔액 : 5000 적립된 포인트 : 500 *****홍길동2님의 구매내역***** 총 구입 금액 : 5000 총 구입 품목 : 오디오 오디오 오디오 오디오 오디오
'1. JAVA > 1.2 실습' 카테고리의 다른 글
JAVA_08_실습_객체(5) (0) 2022.03.26 JAVA_08_실습_객체(4) (0) 2022.03.25 JAVA_10_실습_추상 (0) 2022.03.20 JAVA_09_실습_상속 (0) 2022.03.20 JAVA_08_실습_객체(2) (0) 2022.03.20