在线购物
系统 大
作业第一部分实现:ShoppingCart类.ShoppingCart是一个允许我们创建ShoppingCart对象的一个类。该对象将模拟一个虚拟的购物篮。ShoppingCart对象将会跟踪计算被购买商品的价格—换句话说,它将不断地计算被购买商品的价格,直到客户结帐。该类不涉及任何跟applet,按钮,及用户在屏幕上的点击操作等有关内容(这些
问题将会在第二部分的Estore类中解决)。ShoppingCart.java只考虑到有关购物篮的一些概念。代码如下:
importjava.util.Stack;publicclassShoppingCart{//常量privatestaticfinalfl
oatTAX=0.07f;privatestaticfinalfloatSHIPPING=2.00f;privatestaticfinalintCARTSIZE=5;//实例变量privateStackcart;privateintcount;privatefloattotal;booleanprivatebooleancheckedOut;publicShoppingCart(){/*构造方法:*初始化购物篮的状态:购物总额(total)为0.00f,结帐状态(checkedOut)为false,购物总数(count)为0。*/cart=newStack();newthis.total=0;thisthis.checkedOut=falsefalse;thisfalsethis.count=0;this}publicbooleanadd(Stringitem,floatprice){/**如果购物篮非空(例如:小于5件商品),就把该商品添加到购物篮并修改购物总额(total)*的值,然后返回true,否则返回false。*/if(count
*否则返回false。*/if(cart.contains(item))if{cart.remove(item);this.total-=price;thiscount--;true;returntrue}false;elsereturnfalse}publicvoidcheckOut(){/**如果购物篮里的商品还没有被结帐,对其进行结帐,并修改购物总额的值:此处购物总额中要*包括GST和运输费(如果total<$100)。*/this.checkedOut==falsefalse)if(thisthisfalse{this.total>=100)if(thisthis{this.total=thisthis.total+thisthis.total*ShoppingCart.TAX;thisthisthis}else{this.total=thisthis.total+thisthis.total*ShoppingCart.TAX+ShoppingCart.SHIPPING;thisthisthis}this.checkedOut=truetrue;thistrue}}publicpublicbooleanisCheckedOut(){/**返回当前购物篮的结帐状态(true或false)。*/returncheckedOut;}publicfloatgetTotal(){/**返回购物总额,保留2位小数。*/this.total*100)/100f;returnMath.round(thisthis}publicvoidreset(){/**重新初始化该购物篮,以便于开始新一轮的购物。
*/this.total=0;thisthis.checkedOut=falsefalse;thisfalsethis.count=0;this}}
第一部分测试代码/***Test.java*说明:作业一第一部分测试代码。*/publicclassTest{publicstaticvoidmain(String[]arg){ShoppingCartcart=newShoppingCart();System.out.println(cart.getTotal()+"<>0.0");cart.add(“UofACAP”,10);cart.remove(“UofACAP”,10);System.out.println(cart.isCheckedOut()+"<>false");System.out.println(cart.getTotal()+"<>0.0");cart.reset();//......//......//为测试购物篮的各项功能,你可以多次调用ShoppingCart的各个方法。}}结果如下:
作业的第二部分作业的第二部分在第一部分,已经定义了ShoppingCart类。在第二部分,将要编写另外一个类(Estore类)在该类中将要创建一个小应用程序(Applet)。,小应用程序Estore将要显示所有的图形用户部件。代码如下:
importjava.awt.*;importjava.applet.*;importjava.awt.event.*;importjava.util.Stack;/**E-Store