2 분 소요

-BookList-

import java.text.DecimalFormat;
import java.util.ArrayList;
//여러권의 책 정보(BookVO)를 기억 할 클래스
public class BookList {
 private ArrayList<BookVO> bookList = new ArrayList<>();
 


@Override
 public String toString() {
 String str = "";
 str += "=========================\n";
 str += "도서명 저자명 출판사명 출판일 가격 \n";
 str += "=========================\n";
 
double total = 0.0;
 

for(int i=0; i<bookList.size(); i++) {
 str += bookList.get(i)+ "\n";
 total += bookList.get(i).getPrice();
 }
 str += "=========================\n";
 DecimalFormat df = new DecimalFormat("$#,##0.00");
 str += "합계 금액 : " + df.format(total) + "\n";
 str += "=========================\n";
 return str;
 }
 public void addBook(BookVO book) {
 bookList.add(book);
 }
 }

-BookShop-

import java.util.Date;
 public class BookShop{
 public static void main(String[] args) {
 BookList bookList = new BookList();
 BookVO book1 = new BookVO("자바", "홍길동", "코리아 출신판사", new Date(2015,5,15), 3500);
 BookVO book2 = new BookVO("자바", "홍길자", "코리아 출신판사", new Date(2015,5,15), 3500);
 BookVO book3 = new BookVO("자바", "홍길숙", "코리아 출신판사", new Date(2015,5,15), 3500);
 BookVO book4 = new BookVO("자바", "홍길희", "코리아 출신판사", new Date(2015,5,15), 3500);
 BookVO book5 = new BookVO("자바", "홍길영", "코리아 출신판사", new Date(2015,5,15), 3500);
 BookVO book6 = new BookVO("자바", "홍길상", "코리아 출신판사", new Date(2015,5,15), 3500);
 bookList.addBook(book1);
 bookList.addBook(book2);
 bookList.addBook(book3);
 bookList.addBook(book4);
 bookList.addBook(book5);
 bookList.addBook(book6);
 System.out.println(bookList);
 }
} 

-BookVO-

import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
// 책 한권의 정보를 기억하는 클래스
public class BookVO {
 private String title; //도서명
 private String author; //저자명
 private String publisher; //출판사명
 private Date date; //출판 일
 private double price; // 가격
 public BookVO() {
 // TODO Auto-generated constructor stub
 }
 public BookVO(String title, String author, String publisher, Date date, double price) {
 this.title = title;
 this.author = author;
 this.publisher = publisher;
 date.setYear(date.getYear()-1990);
 date.setMonth(date.getMonth()-1);
 this.date = date;
 this.price = price;
 }
 public String getTitle() {
 return title;
 }
 public void setTitle(String title) {
 this.title = title;
 }
 public String getAuthor() {
 return author;
 }
 public void setAuthor(String author) {
 this.author = author;
 }
 public String getPublisher() {
 return publisher;
 }
 public void setPublisher(String publisher) {
 this.publisher = publisher;
 }
 public Date getDate() {
 return date;
 }
 public void setDate(Date date) {
 this.date = date;
 }
 public double getPrice() {
 return price;
 }
 public void setPrice(double price) {
 this.price = price;
 }
 
@Override
 public String toString() {
 // DecimalFormat 클래스는 숫자의 출력 서식을 지정한다.
 // #,##0의 의미는 천단위마다 컴마를 찍어주는 의미이므로 무조건 적어주고, 별도로 필요한 내용을 #,##0의 앞,뒤로 붙여주면 된다.
 // DecimalFormat df = new DecimalFormat("#,##0"); // 천 단위 컴마
 // DecimalFormat df = new DecimalFormat("$#,##0"); // 화폐 기호 표시
 // DecimalFormat df = new DecimalFormat("#,##0%"); // 백분율, 알아서 100을 곱한다.
 // DecimalFormat df = new DecimalFormat("#,##0%"); // 백분율, 알아서 100을 곱한다.
 DecimalFormat df = new DecimalFormat("$#,##0.00"); // 소수점 아래 자리수를 출력하려면 "."을 찍고 필요한 만큼 0을 입력한다.
 // DecimalFormat df = new DecimalFormat("#,##0.00"); // 소수점 아래 자리수를 출력하려면 "."을 찍고 필요한 만큼 0을 입력한다.
 SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd(E)");
 return String.format("%s %s %s %s %s" , title, author, publisher, sdf.format(date), df.format(price));
 }
}

댓글남기기