《java在线购物系统》由会员分享,可在线阅读,更多相关《java在线购物系统(12页珍藏版)》请在金锄头文库上搜索。
1、java在线购物系统购物过程演示applet运行后,出现如图1所示的用户界面,项目列表中不能有被选择的项目。图1 系统启动时的界面现在,顾客从项目列表中选择了商品UofA CAP,然后单击按钮“购买商品”,即: Purchase Item按钮。 购货车里,就有总计价格为$10.00的商品。 界面如图2所示:图2 往购物框中添加商品时的界面购完 UofA CAP, WINTER COAT和 LONG SLEEVE SHIRT后, 总价格变为 $85.50,当用Remove Item按钮,删除被选项UofA CAP后,总价格立即变为$75.50。界面如图3所示:图3 从购物框删除商品时的界面若想开
2、始新一轮的购物,请单击 RESET 按钮。结帐后界面如图4所示:图4 结帐时的界面现在,顾客通过点击Check Out 按钮,进行结帐。屏幕上输出:感谢信息和当前的总价格。结帐后的总价格包括:GST和运输费(如果total$100.00)。界面如图5所示。图5 重置购物框时的界面购物过程操作有误时,程序应提示的信息顾客没有从列表中选择商品就单击Purchase Item来购买商品,界面中提示的信息如图6所示。图6 没有选择任何项目时的界面如果顾客购买了4个UofA CAP后,但选择一双LEATHER SHOES来进行删除。注意以下出错的信息。 只能删除预先放在购货车里的商品。界面中提示的信息如
3、图7所示。图7 删除购物框中没有的商品时的界面假设购货车里已经有4个帽子,顾客继续试着购买两件冬季大衣,将会产生以下出错信息: Your cart is full, check out then start again,即:“你的购货车以满,请先结帐,再重新开始购物”。界面中提示的信息如图8所示。图8 购物框满时的界面如果顾客想对一个空的购货车进行结帐,将会显示如图9所示的信息: 图9对一个空的购货车进行结帐时的界面 程序风格要求图10 购物框布局代码如下ShoppingCart.java-import java.util.Stack; /* 该类的一个实例将会:模拟一个购物篮,该购物篮里将会
4、保存在“在线购物商店”中所购买的商品(最多可以容纳5件商品)以及购物总额。*/ public class ShoppingCart /*常量*/ private static final float TAX = 0.07f; private static final float SHIPPING = 2.00f; private static final int CARTSIZE = 5; /实例变量 private Stack cart; int count; private float total; private boolean checkedOut; public ShoppingCa
5、rt () /* 构造方法: * 初始化购物篮的状态:购物总额(total)为0.00f,* 结帐状态(checkedOut)为false,购物总数(count)为0。*/ cart=new Stack();this.total=0;this.checkedOut=false;this.count=0; public boolean add(String item, float price) /* 如果购物篮非空(例如:小于5件商品),就把该商品添加到购物篮并修改购物总额(total)*的值,然后返回true,否则返回false。*/ if (count5)cart.add(item); th
6、is.total+=price; count+;total=total*(1+TAX);return true;else return false; public boolean remove(String item, float price ) /* 如果购物篮里有该商品,就删除该商品并修改购物总额(total)的值,然后返回true,否则返回false。*/ if(cart.contains(item)cart.remove(item);this.total-=price;count-;return true;return false; public void checkOut( ) /*
7、 如果购物篮里的商品还没有被结帐,对其进行结帐, 并修改购物总额的值:此处购物总额中要包括GST和运输费(如果total$100)。*/ if(this.total100)total=total+2;elsetotal=total; public boolean isCheckedOut() /* 返回当前购物篮的结帐状态(true或false)。*/ return checkedOut; public float getTotal( ) /* 返回购物总额,保留2位小数。*/return total; public void reset() /* 重新初始化该购物篮,以便于开始新一轮的购物。
8、*/ cart.clear();this.total=0;this.checkedOut=false;this.count=0; 测试类Test.java- public class test public static void main(String arg) ShoppingCart cart = new ShoppingCart();cart.add(A,400);cart.remove(A,100);System.out.println(cart.isCheckedOut()+ false);System.out.println(最终的总金额为:+cart.getTotal();ca
9、rt.reset();/././为测试购物篮的各项功能,你可以多次调用ShoppingCart的各个方法。 Estore.java-import java.awt.*;import java.awt.event.*;import java.applet.*;import java.text.*;public class Estore extends Applet implements ActionListener /常量 private static final float COAT_PRICE = 50.00f; private static final float SHIRT_PRICE
10、= 25.50f; private static final float SHOES_PRICE = 39.99f; private static final float HAT_PRICE = 10.00f; private static final String TOTAL_STR = 您目前消费总计是:; private static final String RESET = 重置; private static final String PURCHASE = 购买; private static final String REMOVE = 删除; private static fina
11、l String CHECK_OUT = 结账; private static final String COAT_STR = 外套; private static final String SHIRT_STR = 衬衫; private static final String SHOES_STR = 鞋子; private static final String HAT_STR = 帽子; private static final String WELCOME = Welcome to CMPUT 114 E-Store; private static final int MAX_ITEMS
12、 = 5; / 购物篮中最多能容纳的商品件数 / 实例变量 ShoppingCart sc= new ShoppingCart(); Label Label1,Label2,Label3; Button Button1,Button2,Button3,Button4; List List1; Panel panel; ScrollPane sp;public void init() /* *这是被applet调用的第一个方法*初始化Applet:初始化变量,添加部件等*/ Label1=new Label(WELCOME,Label.CENTER); Label1.setForeground(
13、Color.red); Label2=new Label(,Label.CENTER ); Label2.setForeground(Color.red); Label3=new Label(,Label.CENTER); Label3.setForeground(Color.red); List1=new List(); panel=new Panel(); Button1=new Button(PURCHASE); Button2=new Button(REMOVE); Button3=new Button(CHECK_OUT); Button4=new Button(RESET); sp=new ScrollPane(); makeMainPanel(); Button1.setBackground(Color.PINK); Button2.setBackground(Color.PINK); Button3.setBackground(Color.PINK); Button4.se