编写购物车:
《1》Book类
属性:id ,name, author, price ,num
方法:set,get方法 ,构造方法
《2》ShoppingCart类 购物车类
属性 cart (书列表)
方法:
(1)setter getter方法 构造方法
(2)添加购物车方法 addBook(Book b)
要求:相同id书 数量+1
(3)删除图书方法 deleteBook(int id)
(4)清除购物车方法 clearCart()
(5)获取购物车总价钱方法 getTotalPrice()
(6)展现购物车方法 printCart(),需要迭代打印cart中的所有图书
《3》ShoppingCartTest类 测试类 测试以上功能方法,自己编造几本书,编造购物车情况,试下各方法
Book.java
//书类
class Book{
private int id;
private String name;
private String author;
private double price;
private int num;
public Book(){
}
public Book(int id,String name,String author,double price,int num){
this.id=id;
this.name=name;
this.author=author;
this.price=price;
this.num=num;
}
public int getId(){
return id;
}
public void setId(int id){
this.id=id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice(){
return price;
}
public void setPrice(double price){
this.price=price;
}
public int getNum(){
return num;
}
public void setNum(int num){
this.num=num;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String toString(){
return "id:"+id+" name:"+name +" author:"+author +" price:"+price +" num:"+num;
}
}
ShoppingCar.java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
//购物车类
class ShoppingCar{
private Book cart;
HashMap<Integer,Book> hm=new HashMap<Integer,Book>();
public ShoppingCar(){
}
public ShoppingCar(Book cart){
this.cart=cart;
}
public Book getCart(){
return cart;
}
public void setCart(Book cart){
this.cart=cart;
}
//添加购物车
public void addBook(Book b){
if(hm.containsKey(b.getId())){
int num=b.getNum();
b.setNum(num+1);
hm.put(b.getId(),b);
}else{
hm.put(b.getId(), b);
}
}
//删除图书
public void deleteBook(Book b){
if(hm.containsKey(b.getId())){
int num=b.getNum();
b.setNum(num-1);
}
}
//清除购物车
public void clearCart(){
hm.clear();
}
//获取购物车总价钱
public double getTotalPrice(){
double totalPrice=0.0;
ArrayList<Book> a=new ArrayList<Book>();
Iterator it=hm.keySet().iterator();
while(it.hasNext()){
int b=(Integer)it.next();//取出书号
Book book=hm.get(b);//取出书号对应的book
totalPrice+=book.getPrice()*book.getNum();
}
return totalPrice;
}
//展现购物车方法
public ArrayList<Book> printCart(){
ArrayList<Book> al=new ArrayList<Book>();
Iterator it=hm.keySet().iterator();
while(it.hasNext()){
int id=(Integer)it.next();//取出key
Book book=hm.get(id);//取出book
al.add(book);
}
return al;
}
public HashMap<Integer, Book> getHm() {
return hm;
}
public void setHm(HashMap<Integer, Book> hm) {
this.hm = hm;
}
}
测试代码:
import java.util.*;
public class Demo6 {
public HashMap<String,ShoppingCar> items = new HashMap<String,ShoppingCar>();
public static void main(String[] args) {
// TODO Auto-generated method stub
Book b1 = new Book(1,"《论一只泰迪的自我修养》","作者:泰迪",36.50,100);
Book b2 = new Book(2,"《二哈日记》","作者:哈士奇",25.5,67);
Book b3 = new Book(3,"《丁丁历险记》","作者:冯丁",45.8,28);
Book b4 = new Book(4,"《一只文艺的废炳》","作者:饼子",10.01,24);
Book b5 = new Book(5,"《这个字念--喆》","作者:吉吉",9.9,77);
Book b6 = new Book(6,"《但一定要》","作者:小骚",8.5,1);
ShoppingCar car=new ShoppingCar();
car.addBook(b1);
car.addBook(b2);
car.addBook(b3);
car.addBook(b4);
car.addBook(b5);
car.addBook(b6);
while(true){
System.out.println("\t1 展示购物车");
System.out.println("\t2 加入书本");
System.out.println("\t3 删除书籍");
System.out.println("\t4 清空购物车");
System.out.println("\t5 获取购物车总价钱 ");
System.out.println("\t0 退出");
System.out.println("请选择:");
Scanner s=new Scanner(System.in);
String x=s.nextLine();
switch(x){
case "1":{
ArrayList<Book> a=car.printCart();
for(int i=0;i<a.size();i++){
System.out.print(a.get(i).toString()+"、"+"\n");
}
break;
}case "2":{
System.out.println("请输入要添加的书名:");
x=s.nextLine();
if(x.equals(b1.getName())){
car.addBook(b1);
System.out.println("添加成功!!");
break;
}else if(x.equals(b2.getName())){
car.addBook(b2);
System.out.println("添加成功!!");
break;
}else if(x.equals(b3.getName())){
car.addBook(b3);
System.out.println("添加成功!!");
break;
}else if(x.equals(b4.getName())){
car.addBook(b4);
System.out.println("添加成功!!");
break;
}else if(x.equals(b5.getName())){
car.addBook(b5);
System.out.println("添加成功!!");
break;
}else if(x.equals(b6.getName())){
car.addBook(b6);
System.out.println("添加成功!!");
break;
}else{
System.out.println("输入错误");
break;
}
}case "3":{
System.out.println("请输入要删除的书名:");
x=s.nextLine();
if(x.equals(b1.getName())){
car.deleteBook(b1);
System.out.println("删除成功!!");
break;
}else if(x.equals(b2.getName())){
car.deleteBook(b2);
System.out.println("删除成功!!");
break;
}else if(x.equals(b3.getName())){
car.deleteBook(b3);
System.out.println("删除成功!!");
break;
}else if(x.equals(b4.getName())){
car.deleteBook(b4);
System.out.println("删除成功!!");
break;
}else if(x.equals(b5.getName())){
car.deleteBook(b5);
System.out.println("删除成功!!");
break;
}else if(x.equals(b6.getName())){
car.deleteBook(b6);
System.out.println("删除成功!!");
break;
}else{
System.out.println("输入错误");
break;
}
}case "4":{
car.clearCart();
break;
}case "5":{
System.out.println(car.getTotalPrice());
break;
}case "0":{
return;
}
default:{
break;
}
}
}
}
}
本程序的缺点:
该代码只能删除和添加上边我已经添加的书本,暂不支持添加或删除购物车中未有的书籍。