Java大作业要求Word文件下载.docx
- 文档编号:16451684
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:65
- 大小:511.25KB
Java大作业要求Word文件下载.docx
《Java大作业要求Word文件下载.docx》由会员分享,可在线阅读,更多相关《Java大作业要求Word文件下载.docx(65页珍藏版)》请在冰豆网上搜索。
完成实验七之后,你可以开始做作业的第三部分。
3.购物过程演示
applet运行后,应出现如图1所示的用户界面,项目列表中不能有被选择的项目。
图1系统启动时的界面
现在,顾客从项目列表中选择了商品"
UofACAP"
,然后单击按钮“购买商品”,即:
"
PurchaseItem"
按钮。
购货车里,就有总计价格为$10.00的商品。
界面如图2所示:
图2往购物框中添加商品时的界面
购完"
,"
WINTERCOAT"
和"
LONGSLEEVESHIRT"
后,总价格变为$85.50,当用"
RemoveItem"
按钮,删除被选项"
后,总价格立即变为$75.50。
界面如图3所示:
图3从购物框删除商品时的界面
若想开始新一轮的购物,请单击"
RESET"
按钮。
结帐后界面如图4所示:
图4结帐时的界面
现在,顾客通过点击"
CheckOut"
按钮,进行结帐。
屏幕上输出:
感谢信息和当前的总价格。
结帐后的总价格包括:
GST和运输费(如果total<
$100.00)。
界面如图5所示。
图5重置购物框时的界面
4.大作业第一部分
(1)完成第一部分应具备的条件
你应该具备能够完成作业的第一部分的能力,当你已经:
∙完成实验5并开始做实验6。
(2)第一部分的任务
在第一部分,你要实现:
ShoppingCart类。
ShoppingCart是一个允许我们创建ShoppingCart对象的一个类。
该对象将模拟一个虚拟的购物篮。
ShoppingCart对象将会跟踪计算被购买商品的价格—换句话说,它将不断地计算被购买商品的价格,直到客户结帐。
该类不涉及任何跟applet,按钮,及用户在屏幕上的点击操作等有关内容(这些问题将会在第二部分的Estore类中解决)。
ShoppingCart.java只考虑到有关购物篮的一些概念。
编写该类的代码时,请牢记这一点。
现在,在第一部分你要实现的任务有:
∙建立一名为asn1的applet项目,切记必须为asn1,如果你起名为Asn1,asn1或其他任何名称,你的作业成绩将会为0。
∙开始编写ShoppingCart类。
(你只能从作业的第二部分开始编写Estore类)。
(3)ShoppingCart类
现在你可以开始编写ShoppingCart类。
用文件名ShoppingCart.java保存你的文件
(你必须将其保存在你的项目文件夹Asn1中)。
现在你可以将以下的骨架代码拷贝到你的ShoppingCart.java文件里,开始编辑代码。
重要!
!
我们已经提供了ShoppingCart.java的“骨架”代码。
你的任务是在“骨架”的周围填充“肉”!
你必须分析我们给你提供的实例变量和常量,并仔细阅读方法中的注释,按照注释陈述的功能编写代码,将语句写在方法体中,当它们被执行时,能够实现注释语句中指定的功能。
因为没有认真阅读红色的注释语句,有些学生可能不太理解每个方法应该完成的任务,时常会陷入问题中,所以编写代码前必须认真阅读注释语句!
也很重要!
当你给每个方法填充完语句,请测试一下你的类。
你可以通过运行该页低部的连接中的代码,测试ShoppingCart.java。
importjava.util.Stack;
/*
*该类的一个实例将会:
模拟一个购物篮,该购物篮里将会保存在“在线购物商店”中所购买的商品(最多可以容纳5件商品)以及购物总额。
publicclassShoppingCart{
//常量
privatestaticfinalfloatTAX=0.07f;
privatestaticfinalfloatSHIPPING=2.00f;
privatestaticfinalintCARTSIZE=5;
//实例变量
privateStackcart;
privateintcount;
privatefloattotal;
privatebooleancheckedOut;
publicShoppingCart(){
/*构造方法:
*初始化购物篮的状态:
购物总额(total)为0.00f,结帐状态(checkedOut)为false,购物总数(count)为0。
*/
cart=newStack();
this.total=0;
this.checkedOut=false;
this.count=0;
}
publicbooleanadd(Stringitem,floatprice){
*如果购物篮非空(例如:
小于5件商品),就把该商品添加到购物篮并修改购物总额(total)*的值,然后返回true,否则返回false。
*/
if(count<
5)
{cart.add(item);
this.total+=price;
count++;
returntrue;
}
elsereturnfalse;
publicbooleanremove(Stringitem,floatprice){
*如果购物篮里有该商品,就删除该商品并修改购物总额(total)的值,然后返回true,
*否则返回false。
if
publicvoidcheckOut()
{
*如果购物篮里的商品还没有被结帐,对其进行结帐,并修改购物总额的值:
此处购物总额中要
*包括GST和运输费(如果total<
$100)。
publicbooleanisCheckedOut(){
*返回当前购物篮的结帐状态(true或false)。
}
publicfloatgetTotal(){
*返回购物总额,保留2位小数。
publicvoidreset(){
*重新初始化该购物篮,以便于开始新一轮的购物。
(4)第一部分测试代码
完成第一部分后,将下列代码拷贝到名为test.java的文件中,并将其添加到你的项目文件夹里用来测试你的ShoppingCart类。
/**
*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"
cart.reset();
//......
//为测试购物篮的各项功能,你可以多次调用ShoppingCart的各个方法。
}
(5)第一部分结束后,你的项目文件夹应包含:
∙名为asn1的项目文件
∙一名为ShoppingCart.java的,通过编译的类。
∙在开始第二部分前,测试第一部分。
现在,可以开始阅读该作业的第二部分。
5.购物过程操作有误时,程序应提示的信息
顾客没有从列表中选择商品就单击"
来购买商品,界面中提示的信息如图6所示。
图6没有选择任何项目时的界面
如果顾客购买了4个"
后,但选择一双"
LEATHERSHOES"
来进行删除。
注意以下出错的信息。
只能删除预先放在购货车里的商品。
界面中提示的信息如图7所示。
图7删除购物框中没有的商品时的界面
假设购货车里已经有4个帽子,顾客继续试着购买两件冬季大衣,将会产生以下出错信息:
Yourcartisfull,checkoutthenstartagain"
,即:
“你的购货车以满,请先结帐,再重新开始购物”。
界面中提示的信息如图8所示。
图8购物框满时的界面
如果顾客想对一个空的购货车进行结帐,将会显示如图9所示的信息:
图9对一个空的购货车进行结帐时的界面
6.程序风格要求
(1)应该给所有的变量和私有方法使用描述性的名称。
(对表示某一点的坐标值:
x和y时,可以使用x和y作为变量名,但这是一个例外)
(2)在定义的每个类和方法的开头加上简洁的注释语句,以说明类和方法的功能。
(3)应该尽可能地让每个方法只完成一件事情,即:
编写轻巧简短的方法。
如果你认为你的方法太长,那就定义私有的实例方法,把一些代码写在私有方法内。
如果你程序里的私有方法太少,将会被扣分。
*
(4)应该对左缩进,空格和空行使用一致、易读的方案。
(5)如果一个变量只局部使用于一个方法,那么就应该把它定义成局部变量而不是实例变量。
(6)应该尽可能少地使用实例变量,尽可能多地使用参数。
(7)不能更改任务说明中给出的任何公共方法(publicmethod)的属性。
(8)必须适当地使用关键字this:
1.必须在所有私有实例变量前加上this。
2.在调用私有实例方法时,必须在所有私有实例方法前面加上this。
该规则只使用于在当前类中定义的私有实例方法前。
(9)你的代码中不能有除了0,1,true,false和null之外的任何文字常量。
如果你需要使用其它的常量,你需要定义一个privatestaticfinalconstant(私有的静态final常量):
/*实验5*/
privatestaticfinalintWIDTH=190;
privatestaticfinalintROOF_HEIGHT=50;
privatestaticfinalStringA_STRING="
Justanexample"
;
/*作业一*/
privatestaticfinalStringRED="
Red"
privatestaticfinalStringYELLOW="
Yellow"
privatestaticfinalStringBLUE="
Blue"
/*作业2*/
privatestaticfinalStringQUESTION="
Doyoureallywanttoquit?
"
(10)前述的privatestaticfinalconstants只是个例子,这些常量并没有出现在实验五,作业一或作业二中。
(11)当比较两个对象时(不是简单类型,如:
int,float),要使用消息equals而不是==,(而且使用!
equals而不是!
=)。
(12)如果完成一件事有两种不同方法,请挑选较容易理解的哪一个。
(13)作业一的第一部分,不需要你定义任何实例变量,因为我们已经替你定义好了。
但在第二部分,第三部分中你需要定义自己的实例变量。
(14)如果需要,你可以定义静态final常量staticfinalconstants。
(15)你不能定义任何自己的公共方法publicmethods,你只能使用任务描述中给出的公共方法,但如果需要你可以定义自己的私有方法。
7.大作业第二部分
(1)完成第二部分的应具备的条件
你应该能够完成该作业的第二部分,当你已经:
∙完成了实验5
∙并阅读了每个实验中要你预习的材料
∙完成了作业的第一部分
(2)第二部分的任务
在第一部分,你已经定义了ShoppingCart类。
在第二部分,你将要编写另外一个类(Estore类),在该类中将要创建一个小应用程序(Applet)。
小应用程序Estore将要显示所有的图形用户部件。
第二部分结束时,applet将显示所有的用户部件,但各部件到第三部分结束时才起作用。
(3)EStore类
现在,你可以开始编写Estore类。
将你的文件保存为Estore.java。
(确保将其填加到你的项目文件夹中——它应该出现在项目的程序列表当中)。
将下列程序“骨架”拷贝下来后,你可以开始编辑Estore.java。
请仔细阅读红色的注释语句,先搞明白每个方法中要完成的功能。
importjava.awt.*;
/*
*E-Store
*如果所购商品总额大于$100,免费运送,否则加
$2.00的运送费。
publicclassEStoreextendsApplet{
//常量
privatestaticfinalfloatCOAT_PRICE=50.00f;
privatestaticfinalfloatSHIRT_PRICE=25.50f;
privatestaticfinalfloatSHOES_PRICE=39.99f;
privatestaticfinalfloatHAT_PRICE=10.00f;
privatestaticfinalStringTOTAL_STR="
Yourcurrenttotal=$"
privatestaticfinalStringRESET="
privatestaticfinalStringPURCHASE="
privatestaticfinalStringREMOVE="
privatestaticfinalStringCHECK_OUT="
Checkout"
privatestaticfinalStringCOAT_STR="
privatestaticfinalStringSHIRT_STR="
privatestaticfinalStringSHOES_STR="
LEATHERSHOE"
privatestaticfinalStringHAT_STR="
privatestaticfinalStringWELCOME="
WelcometoCMPUT114E-Store"
privatestaticfinalintMAX_ITEMS=5;
//购物篮中最多能容纳的商品件数
//实例变量
publicvoidinit(){
/*
*这是被applet调用的第一个方法
*初始化Applet:
初始化变量,添加部件等
*/
/*为完成你的类,你可以创建一些私有方法
*/
privatePanelmakeButtonPanel(){
/*
*定义按钮并将其添加到面板(Panel)里,并返回该面板
privateScrollPanemakeListPanel(){
/*为列表定义一个滚动窗口(ScrollPane),并返回该滚动窗口
privatevoidmakeMainPanel(){
*给主面板添加所有的组件:
标签,列表,按钮面板等。
privateListmakeList(){
*给4件商品定义一个列表,一次只能选择一件商品
(4)HTML文件
将你的HTML文件保存为EStore.html。
其内容如下:
<
HTML>
<
HEAD>
<
TITLE>
Assignment1EStore<
/TITLE>
/HEAD>
BODY>
HR>
APPLET
ARCHIVE="
JavaClasses.jar"
CODE="
EStore.class"
WIDTH=350HEIGHT=400>
/APPLET>
AHREF="
EStore.java"
Thesource.<
/A>
/BODY>
/HTML>
(5)Applet的布局
为帮你形象化并理解applet中组件的布局,我们给你提供以下的图10所示的界面:
图10购物框布局图
(6)第二部分结束后,你的VISUALJ++项目文件夹中应该包含:
∙有一名为asn1.mcp的项目文件
∙有一名为EStore.html的HTML文件
∙有一名为ShoppingCart.java的编译过的java文件
∙有一名为EStore.java的编译过的java文件
第二部分结束后,当你运行你的applet时,它应该能在屏幕上显示所有的组件(但并没有编写响应用户操作的任何代码)。
现在你可以开始阅读作业的第三部分。
8.大作业第三部分
(1)完成第三部分应具备的条件
你应该能够完成作业的第三部分,当你已经:
∙完成实验7
∙阅读完每次实验的预习资料
∙已完成作业的第一部分和第二部分
(2)第三部分的任务
在第一部分和第二部分中,你已经定义了ShoppingCart类和EStore类。
在第三部分你将要继续编辑Estore类,使得该
applet能够响应用户的行为(例如:
当用户/客户点击按钮时,它的确能做一些事情)。
作业的这一部分比较难,因为你必须使得每个按钮都生效。
你将会用栈(Stack)对象来保存购物篮中的商品。
例如,当用户购买一件商品时,该商品将会被押入栈对象内,当用户删除一件商品时,该商品会被弹出栈外。
你可以假设栈对象代表你的购物篮,该购物篮最多只能存放5件商品。
完成作业的第三部分后,你应该实现了EStore和ShoppingCart类的所有功能。
ShoppingCart.java类中的变化:
你将要在ShoppingCart类中增加一个方法,以便客户结帐。
publicvoidcheckOut(){
/*如果购物篮中的商品还没有被结帐的话,给其结帐:
*修改total的值
*计算GST和运输费(如果total<
$100)
EStore.java类中的变化:
你将要对Estore类进行如下改变,以便你的applet:
∙让applet做各个组件的监听器。
∙实现一个actionPerformed()方法。
由于这些变化,你将要增加几个import语句,并且编辑Estore类的第一行,如下所示:
importjava.awt.event.*;
importjava.applet.Applet;
*如果所购商品总额大于$100,免费运送,否则加
$2.00的运送费及GST。
publicclassEStoreextendsAppletimplementsActionListener{
你必须增加并编写下列方法:
privatevoidaddListeners(){
*让Applet作为各个组件的事件监听器(ActionListener)。
*
publicvoidactionPerformed(ActionEventevent){
/*
*对所点击的任何按钮作出适当的响应。
*购买商品
*点击购买按钮之前:
选择预购商品
*不允许选择多件商品
*还没有给当前所购商品结帐
*点击购买按钮之后:
更新购物总额(total标签)的值
*往栈对象添加所购商品
*
*从购物篮中删除商品
*点击删除按钮之前:
选择一件预删商品
*只能删除已经放在购物篮里的商品
*点击删除按钮之后:
要从商品总额(total)中减去被删除商品的价格。
更新
*购物篮中商品总额(total)的值,修改total标签的值,从栈对象中删除所选商*品
*结帐
*点击结帐按钮之前:
购物篮中至少有一件商品,还没有给购物篮中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 作业 要求