본문 바로가기

Java/본격 Java 퀴즈 기초

[Java] 영수증 출력

입력받은 정보로 영수증과 송장을 출력하는 프로그램을 작성한다.

영수증에서는 품번, 항목, 수량, 단가, 금액이 들어가고

클래스에는 정보를 입력받거나, 송장을 출력하는 코드를 작성한다.

.

.

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
반응형