입력받은 정보로 영수증과 송장을 출력하는 프로그램을 작성한다.
영수증에서는 품번, 항목, 수량, 단가, 금액이 들어가고
클래스에는 정보를 입력받거나, 송장을 출력하는 코드를 작성한다.
.
.
package ex5;
public class InvoiceItem {
private String id, desc;
private int qty;
private long unitPrice;
public InvoiceItem() {}
public InvoiceItem(String id, String desc, int qty, long unitPrice) {
this.id = id;
this.desc = desc;
this.qty = qty;
this.unitPrice = unitPrice;
}
public String getId() { return id; }
public void setId(String id) { this.id = id; }
public String getDesc() { return desc; }
public void setDesc(String desc) { this.desc = desc; }
public int getQty() { return qty; }
public void setQty(int qty) { this.qty = qty; }
public long getUnitPrice() { return unitPrice; }
public void setUnitPrice(long unitPrice) { this.unitPrice = unitPrice; }
public long getTotal() {return qty * unitPrice;}
public String toString() {
return "InvoiceItem [ id = " + getId() + ", desc = " + getDesc() + ", qty = " + getQty() + ", unitPrice = " + getUnitPrice() + "]";
}
}
.
.
그러면 메인클래스에서 출력해보자
.
.
package ex5;
import java.util.*;
public class TestInvoiceItem {
public static void main(String[] args) {
InvoiceItem item1 = new InvoiceItem("112", "Book", 3, 35000);
InvoiceItem item2 = new InvoiceItem("101", "Phone", 2, 920000);
InvoiceItem item3 = new InvoiceItem("187", "Laptop", 1, 1100000);
InvoiceItem item4 = new InvoiceItem();
System.out.println("===============================================");
System.out.printf("%10s", "품번");
System.out.printf("%15s", "항목명");
System.out.printf("%15s", "수량");
System.out.printf("%15s", "단가");
System.out.printf("%15s", "금액");
System.out.println();
System.out.println("-----------------------------------------------");
dispCatal(item1);
dispCatal(item2);
dispCatal(item3);
Scanner sc = new Scanner(System.in);
System.out.print("품번을 입력하세요 : ");
item4.setId(sc.nextLine());
System.out.print("품목명을 입력하세요 : ");
item4.setDesc(sc.nextLine());
System.out.print("수량을 입력하세요 : ");
item4.setQty(sc.nextInt());
System.out.print("단가를 입력해주세요 : ");
item4.setUnitPrice(sc.nextInt());
System.out.println(item4);
}
public static void dispCatal(InvoiceItem i) {
System.out.printf("%5s", i.getId());
System.out.printf("%10s", i.getDesc());
System.out.printf("%8d", i.getQty());
System.out.printf("%10d", i.getUnitPrice());
System.out.printf("%10d", i.getTotal());
System.out.println();
}
}
.
.
콘솔창에 일정한 간격으로 출력하기 위해 printf함수를 사용한다.
글자일 경우 ("%s", "입력할 문자")를 사용하고 s 앞에 얼만큼 간격을 유지할 것인지 숫자로 통해 표시한다.
숫자일 경우 ("%d", "입력할 숫자")를 사용하고 d 앞에 얼만큼 간격을 유지할 것인지 숫자로 통해 표시한다.
728x90
반응형
'Java > 본격 Java 퀴즈 기초' 카테고리의 다른 글
[Java] 계좌 운영하기 (0) | 2020.07.08 |
---|---|
[Java] 책 정보 입력 (0) | 2020.07.08 |
[Java] 사원 정보 출력(클래스 이용) (0) | 2020.07.07 |
[Java] 사각형 넓이과 둘레 구하기(클래스 이용) (0) | 2020.07.07 |
[Java] 원의 넓이 구하기(클래스 사용) (0) | 2020.07.07 |