Tài liệu Virtual Shopping pptx

7 214 0
Tài liệu Virtual Shopping pptx

Đang tải... (xem toàn văn)

Thông tin tài liệu

Virtual Shopping // Lớp trừu tượng ShopItem package virtualshopping; abstract class ShopItem { protected String iName; // khai bao ten hang hoa protected double iPrice; // khai bao gia hang hoa // xay dung constructor khong doi public ShopItem() { } // xay dung constructor 2 doi public ShopItem(String iName, double iPrice){ this.iName = iName; this.iPrice = iPrice; } // ham lay ten hang public String getName(){ return this.iName; } // ham lay gia hang public double getPrice(){ return this.iPrice; } public abstract String toString(); // ham lay khoi luong public abstract double getWeight(); // ham lay so dia CD public abstract int getNoCD(); } //Lớp Book thừa kế từ Lớp ShopItem package virtualshopping; class Book extends ShopItem{ private double bWeight; // khai bao thuoc tinh khoi luong cua book // xay dung mot constructor khong doi public Book(){ super(); } // xay dung mot constructor 3 doi public Book(String bName, double bPrice, double bWeight){ super(bName,bPrice); this.bWeight = bWeight; } public String toString(){ return "Book Title: \""+this.iName+"\", Price: $"+this.iPrice+", Weight: "+this.bWeight; } // ham lay khoi luong cua book public double getWeight(){ return this.bWeight; } // ham lay so dia CD public int getNoCD(){ return 0; } } //Lớp Software thừa kế từ lớp ShopItem package virtualshopping; class Software extends ShopItem{ private int numOfCD; // khao bao so dia CD // khai bao constructor khong doi public Software() { super(); } // khai bao constructor 3 doi public Software(String sName, double sPrice, int numOfCD){ super(sName,sPrice); this.numOfCD = numOfCD; } public String toString(){ return "Software Title: \""+this.iName+"\", Price: $"+this.iPrice+ ", Quantity: "+this.numOfCD; } // ham lay khoi luong public double getWeight(){ return 0; } // ham lay so dia CD public int getNoCD(){ return this.numOfCD; } } //package Shop; package virtualshopping; import java.util.Vector; class Basket implements Cost{ // khai bao vector private Vector<ShopItem> cart; // condtructor khong doi, khoi tao vector public Basket(){ cart = new Vector<ShopItem>(10,5); } // them mot mon hang vao gio hang public void add(ShopItem I){ this.cart.add(I); } // bo bot mot mon hang ra khoi gio hang public void remove(int index){ this.cart.removeElementAt(index); } // ham tinh tong chi phi public double totalPrice(){ double totalPrice = 0.0; for(int i = 0;i < this.cart.size();i++) totalPrice +=this.cart.elementAt(i).getPrice(); return totalPrice; } // ham tinh tong trong luong public double totalWeight(){ double totalWeight = 0.0; for(int i = 0;i < this.cart.size();i++) totalWeight +=this.cart.elementAt(i).getWeight(); return totalWeight; } // ham tinh tong so luong CD public int totalCD(){ int totalCD = 0; for(int i = 0;i < this.cart.size();i++) totalCD +=this.cart.elementAt(i).getNoCD(); return totalCD; } // ham tinh toan chi phi dong goi - van chuyen cua book và software public double bookPP(){ double totalWeight = this.totalWeight(); double bookPP = 0.0; if(totalWeight > 0 && totalWeight < BOOK_WEIGHT1){ bookPP = BOOK_PP1; } if(totalWeight >= BOOK_WEIGHT1 && totalWeight < BOOK_WEIGHT2){ bookPP = BOOK_PP2; } if(totalWeight >= BOOK_WEIGHT2 && totalWeight< BOOK_WEIGHT2 + BOOK_WEIGHT_INCREASE){ bookPP = BOOK_PP2 + BOOK_PP_INCREASE; } if(totalWeight >= BOOK_WEIGHT2+BOOK_WEIGHT_INCREASE){ bookPP = BOOK_PP2+(totalWeight/BOOK_WEIGHT_INCREASE)*BOOK_PP_INCREASE; } return bookPP; } //chi phi van chuyen dong goi cua Software public double softwarePP(){ int totalCD = this.totalCD(); return (totalCD)<=3? SOFTWARE_PP*totalCD:SOFTWARE_PP*3+(totalCD- SOFTWARE_LEVEL)*SOFTWARE_PP_INCREASE; } public String toString(){ String basket =""; for(int i = 0;i < this.cart.size();i++) basket += i+1 +"--"+ this.cart.get(i).toString()+"\n"; return basket; } //in hoa don public void printInvoice(){ System.out.println(" Total price of selection: $"+this.totalPrice()); System.out.println(" Book total weight: "+this.totalWeight()+"g. Postage and packing: $"+this.bookPP()); System.out.println(" Number of Sofware Titles: "+this.totalCD()+". Postage and packing: $"+this.softwarePP()); System.out.println(" Total basket cost <include postage and packing>: $"+(this.totalPrice()+this.bookPP() +this.softwarePP())); } } //Tính chi phí package virtualshopping; interface Cost { int SOFTWARE_LEVEL = 3; // mua 3 software int SOFTWARE_INCREASE = 1; //moi software them vao gio hang double SOFTWARE_PP = 3.25; // chi phi mua tu 1 den 3 software double SOFTWARE_PP_INCREASE = 1.50; // chi phi moi software them vao gio hang double BOOK_PP1 = 5.00; //chi phi cua book co khoi luong < 500g double BOOK_PP2 = 9.50; // chi phi cua book co khoi luong 500g den 1000g double BOOK_PP_INCREASE = 7.00; // chi phi cua moi book them vao gio hang int BOOK_WEIGHT1 = 500; // khoi luong book < 500g int BOOK_WEIGHT2 = 1000; // khoi luong book tu 500g den 1000g int BOOK_WEIGHT_INCREASE = 1000; // khoi luong moi 1000g book them vao gio hang } // class doc mot ki tu nhap tu ban phim package virtualshopping; import java.io.*; class Keyboard { private BufferedReader br; public Keyboard(){ br = new BufferedReader(new InputStreamReader(System.in)); } public int readInt(String msg){ System.out.print(msg); try{ return Integer.parseInt(br.readLine()); }catch(IOException e){ System.out.println("Error: IOException"); }catch(NumberFormatException nf){ System.out.println("Error: Invalid choice (NumberFormatException - Integer)"); } return 1; } public char readChar(String msg){ System.out.print(msg); try{ return br.readLine().charAt(0); }catch(IOException e){ System.out.println("Error: IOException"); } return '1'; } } //Lớp Shop chứa hàm main package virtualshopping; import java.util.Vector; public class Shop { // khai bao vecto private Vector<ShopItem> listItem; private Basket basket; private Keyboard keyboard; public Shop() { listItem = new Vector<ShopItem>(10,5); basket = new Basket(); keyboard = new Keyboard(); } void addItem(ShopItem I){ this.listItem.add(I); } public String toString(){ String list =""; for(int i = 0;i < this.listItem.size();i++) list += i+1 + "--"+ this.listItem.get(i).toString()+"\n"; return list; } public void showCatalog(){ System.out.println("-----------------------------------"); System.out.println("\t\t VIRTUAL SHOP CATALOGUE"); System.out.println("\t7 items in shop"); } public char chooseAction(){ this.showCatalog(); System.out.println(this); System.out.println(" THE VIRTUAL SHOP (Internet Shoping Centre)\n"); System.out.println(" Q -Quit"); System.out.println(" A -Add to shopping basket"); System.out.println(" R -Remove from basket"); System.out.println(" P -Print invoice"); char c = Character.toUpperCase(keyboard.readChar("Enter selection: ")); return c; } public void run(){ char c = this.chooseAction(); if(c=='A'){ addToBasket(); System.out.println("Adding item to basket successfull"); this.run(); } if(c=='R'){ removeFromBasket(); System.out.println("Remove item from basket successfull"); this.run(); } if(c=='P'){ System.out.println(basket); basket.printInvoice(); this.run(); } if(c=='Q'){ System.exit(0); } } public void addToBasket(){ int i = keyboard.readInt("Select item by number: "); basket.add(listItem.get(i-1)); } public void removeFromBasket(){ int i = keyboard.readInt("Select item to remove by number: "); basket.remove(i-1); } public static void main(String[] arg){ Shop shop = new Shop(); shop.addItem(new Book("C++ Primer",74.95, 600)); shop.addItem(new Book("C++ for Java Programmers",64.95, 200)); shop.addItem(new Book("Linux in a nutshell",85, 950)); shop.addItem(new Software("Borland C++",145, 1)); shop.addItem(new Software("Adobe photoshop",650, 2)); shop.addItem(new Software("Linux RedHat 7.2",34.5,2)); shop.addItem(new Software("QuickTax2000", 49.95, 1)); shop.run(); } } . Virtual Shopping // Lớp trừu tượng ShopItem package virtualshopping; abstract class ShopItem { protected. public abstract int getNoCD(); } //Lớp Book thừa kế từ Lớp ShopItem package virtualshopping; class Book extends ShopItem{ private double bWeight; // khai bao

Ngày đăng: 23/12/2013, 05:15

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan