package xmz.bookapp.domain;
import java.util.Date;
import java.util.GregorianCalendar;
public class BookTest {
private String title;
private String ISBN;
private double price;
private String type;
private java.util.Date publishDate;
public BookTest(String title, String ISBN, double price, String type, int year, int month, int day){
this.title = title;
this.ISBN = ISBN;
this.price =price;
this.type = type;
GregorianCalendar c =new GregorianCalendar(year, month-1, day);
this.publishDate = c.getTime();
}
public String getTitle() {
return title;
}
public String getISBN() {
return ISBN;
}
public double getPrice() {
return price;
}
public String getType() {
return type;
}
public Date getPublishDate() {
return publishDate;
}
@Override
public String toString(){
return getClass().getName() +"[title =" + title + ",ISBN=" + ISBN + ",price=" + price + ";type =" + type + ",publishDate=" + publishDate + "]";
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
package xmz.bookapp.domain;
public class ChildrenBook extends BookTest {
private int age;
public ChildrenBook(String title, String ISBN, double price, String type,
int year, int month, int day, int age) {
super(title, ISBN, price, type, year, month, day);
this.age = age;
}
public int getAge(){
return this.age;
}
public String getType(){
return "儿童书籍";
}
}
package xmz.bookapp.domain;
public class TechnicalBook extends BookTest {
private String skillLevel;
public TechnicalBook(String title, String ISBN, double price, String type,
int year, int month, int day, String skillLevel) {
super(title, ISBN, price, type, year, month, day);
this.skillLevel = skillLevel;
}
public String getSkillLevel(){
return this.skillLevel;
}
public String getType(){
return "Java技术书籍";
}
}
package xmz.bookapp.entry;
import java.util.ArrayList;
import static java.lang.System.out;
import xmz.bookapp.domain.BookTest;
public class BookShelf {
private ArrayList<BookTest> books;
public BookShelf(BookTest[] bs){
for(BookTest b : bs)
this.books.add(b);
}
public void Show(){
int n = books.size();
for (int i = 0; i < n -1; i++){
BookTest b =books.get(i);
out.println(b);
}
}
//待优化
public BookTest getBook() {
if (books.isEmpty())
return null;
return books.remove(0);
}
public void returnBook(BookTest book){
books.add(book);
}
public int getCount(){
return books.size();
}
public void show() {
}
}
package xmz.bookapp.entry;
import java.util.ArrayList;
import xmz.bookapp.domain.BookTest;
public class ShoppingCart {
private ArrayList<BookTest> books;
public ShoppingCart(){
books = new ArrayList<BookTest>();
}
public void add(BookTest book){
books.add(book);
}
public void remove(BookTest book){
books.remove(book);
}
public BookTest[] show() {
return (BookTest[])books.toArray();
}
public double count(){
BookTest[]bs =show();
double totalPrice =0.0;
for(BookTest b : bs){
totalPrice += b.getPrice();
}
return totalPrice;
}
}
package bookapp;
import xmz.bookapp.domain.BookTest;
import xmz.bookapp.domain.ChildrenBook;
import xmz.bookapp.domain.TechnicalBook;
import xmz.bookapp.entry.BookShelf;
import xmz.bookapp.entry.ShoppingCart;
public class Test {
public static BookShelf initBookShelf(){
//向书架增加图书
BookTest[] books = new BookTest[10];
for(int i = 0; i < 5; i++){
books[i] = new ChildrenBook("卡通西游记", "isbn-zhj-01", 0.25,"卡通", 2009, 10, 31, 5);
}
for (int i = 0; i < 5; i++){
books[i+5] = new TechnicalBook( "java高手速成", "isbn-lvxd-01", 125, "编程", 2009, 8, 31, "高级软件工程");
}
BookShelf bsf = new BookShelf(books);
return bsf;
}
public static void main(String[] args){
//1:向书架增加图书
BookShelf bsf = initBookShelf();
//2:创建一个购物车
ShoppingCart cart = new ShoppingCart();
//3:显示一把书架的图书信息
bsf.Show();
//4:选择一本西游记,2本java
BookTest book = bsf.getBook();
cart.add(book);
//5:结算
double totalPrice = cart.count();
System.out.println("您选择的图书总价为:" + totalPrice);
}
}