참고 코드
상품 클래스를 객체로 이용한 상품정보 출력 프로그램

상품 클래스를 객체로 이용, 상품 입력과 상품 출력 메소드를 이용한 상품정보 출력 프로그램 - (2)

조건

상품 (Sangpum) 클래스를 이용하여 객체를 만든 다음 그 객체를 이용하여 상품 정보를 입력받은 후 출력하는 프로그램 작성한다.

추가 조건

  1. 최대 100명까지 입력이 가능하도록 한다.
  2. 상품 코드에 exit 를 입력하면 입력 끝내고 입려받은 전체 데이터를 출력한다.
  3. 상품입력은 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("===============================================================");
      }
        
      }
    

🌞 정보 : 공부 기록용 블로그입니다. 오타나 내용 오류가 있을 경우 알려주시면 감사하겠습니다.

태그:

카테고리:

업데이트:

댓글남기기