예제가 좀 어려워보이고 소스를 잘짰네요.. 특히 입력을 할때 scanner 클래스를 썼다니..
http://kin.naver.com/detail/detail.php?d1id=1&dir_id=10106&eid=VilPG6I4OpXXUWnAeB0NUQlZ9vVYyI3H
(Application Mark)
Write a program that will store the cost of a CD at $19.99 and allow the user to purchase as many cd’s as they require. The output will be the subtotal, gst total, pst total and the total. Remember that sales tax consists of GST(6%) and PST(8%). Make the output look like a receipt from a store.
### CD.java
/**
* CD의 정보를 담는 클래스 ( 가격과 단위 )
*/
public class CD {
private double price = 0; //가격
private String unit = null; //단위
/**
* 가격과 단위를 인자로 받는 생성자
*/
public CD(double price, String unit) {
super();
this.price = price;
this.unit = unit;
}
//***********************************
// 가격과 단위를 위한 getter/setter 메소드
//***********************************
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getUnit() {
return unit;
}
public void setUnit(String unit) {
this.unit = unit;
}
}
## RecordStore.java
import java.util.Scanner;
/**
* 원하는 개수만큼의 CD를 계산하여, 영수증을 보여주는 클래스
*/
public class RecordStore {
Scanner keyboard; //개수를 키보드로 입력받기 위한 위변
CD infiniteCd ; //CD 클래스, 개수는 신경쓰지 않기 때문에 무한...
/**
* 생성자
* CD의 기본정도를 19.99$ 생성한다.
*/
public RecordStore(){
keyboard = new Scanner( System.in );
infiniteCd = new CD(19.99,"$");
}
/**
* 시스템을 시작하기 위한 메소드
*/
public void start(){
System.out.println(" *** 19.99 CD를 팔고 있습니다 ***");
System.out.print("몇개를 구입하시겠습니까? ");
int number = keyboard.nextInt(); //키보드로 부터 개수 입력
diplayReceipt(number);
}
/**
* //개수에 해당하는 영수증을 보여준다.
* @param number 구매 개수
*/
private void diplayReceipt(int number) {
double subtotal = infiniteCd.getPrice() * number; //19.99 * 개수
double gst = subtotal * 0.06; //19.99 * 개수 * 6%
double pst = subtotal * 0.08; //19.99 * 개수 * 8%
double total = subtotal + gst + pst ;
System.out.print( " ********* RECEIPT ********* \n");
System.out.printf(" %s \t: %.2f %s \n", "SUBTOTAL",subtotal,infiniteCd.getUnit());
System.out.printf(" GST(6%%) TOTAL \t: %.2f %s\n", gst, infiniteCd.getUnit());
System.out.printf(" PST(8%%) TOTAL \t: %.2f %s\n", pst, infiniteCd.getUnit());
System.out.printf(" TOTAL \t: %.2f %s\n", total, infiniteCd.getUnit());
System.out.print( " *************************** ");
}
}
## StoreTest.java
/**
* RecordStore 테스트 클래스
*/
public class StoreTest {
public static void main( String args[]){
RecordStore store = new RecordStore();
store.start();
}
}
ChatGPT, 블록체인, 자바, 맥북, 인터넷, 컴퓨터 정보를 공유합니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!