java-19: 도서관리 ArrayList
-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));
}
}
댓글남기기