상품 클래스를 객체로 이용, 상품 입력과 상품 출력 메소드를 이용한 상품정보 출력 프로그램 - (2)
조건
상품 (Sangpum) 클래스를 이용하여 객체를 만든 다음 그 객체를 이용하여 상품 정보를 입력받은 후 출력하는 프로그램 작성한다.
추가 조건
- 최대 100명까지 입력이 가능하도록 한다.
- 상품 코드에 exit 를 입력하면 입력 끝내고 입려받은 전체 데이터를 출력한다.
- 상품입력은 input_sangpum(), 상품 출력은 output_sangpum() 메서드로 작성한다.
성적(Sungjuk) 클래스 구조
- 필드 : 상품 코드, 상품명, 수량, 단가, 금액
- 메소드 : 상품 입력(), 단가 계산(), 상품 출력()
출력하는 클래스에 메소드 추가
- input_sangpum()
- output_sangpum()
입력 형식
상품코드 입력 ⇒ 상품명 입력 ⇒ 수량 입력 ⇒ 단가 입력 ⇒
출력 형식
1
2
3
4
5
*** 상품 정보 ***
===========================================================
상품코드 상품명 수량 단가 금액
===========================================================
a01 note 3 7000 21000
코드
-
해당 예제의 치명적인 단점 100개를 할당하고 2개만 입력하면 나머지 공간은 낭비가 된다.
→ 그렇기 때문에 일반적인 배열은 쓰지 않는다.arraylist
를 사용해야 한다. -
Sangpum.java
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 31 32 33 34 35 36 37 38 39 40 41
import java.util.Scanner; public class Sangpum { String goodsCode; String goodsName; int stockNum; int price; int allprice; public Sangpum() { } boolean inputGoods() { Scanner scan = new Scanner(System.in); System.out.println("상품코드 입력 => "); this.goodsCode = scan.next(); if(goodsCode.equals("exit")) return true; System.out.println("상품명 입력 => "); this.goodsName = scan.next(); System.out.println("수량 입력 => "); this.stockNum = scan.nextInt(); System.out.println("단가 입력 => "); this.price = scan.nextInt(); return false; } void pricess_sangpum() { this.allprice = this.stockNum * this.price; } void outputGoods() { System.out.printf("%4s %6s %4d %7d %8d \n", goodsCode, goodsName, stockNum, price, allprice); } }
-
ExampleSangpum.java
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 31 32 33 34 35 36
public class ExampleSangpum2 { static int MAX = 100; static Sangpum obj[] = new Sangpum[MAX]; public static void main(String[] args) { int cnt = input_sungpum(obj); output_sangpum(obj, cnt); } static int input_sungpum(Sangpum obj[]) { int cnt = 0; for(int i =0; i < MAX; i++) { obj[i] = new Sangpum(); if(obj[i].inputGoods()) break; obj[i].pricess_sangpum(); cnt++; System.out.println(); } return cnt; } static void output_sangpum(Sangpum obj[], int cnt) { System.out.println("\n\t\t *** 상품 정보 ***"); System.out.println("==============================================================="); System.out.println("상품코드 상품명 수량 단가 금액"); System.out.println("==============================================================="); for (int i = 0; i < cnt; i++) { obj[i].outputGoods(); } System.out.println("==============================================================="); } }
🌞 정보 : 공부 기록용 블로그입니다. 오타나 내용 오류가 있을 경우 알려주시면 감사하겠습니다.
댓글남기기