Java大作业要求Word文件下载.docx

上传人:b****5 文档编号:16451684 上传时间:2022-11-23 格式:DOCX 页数:65 大小:511.25KB
下载 相关 举报
Java大作业要求Word文件下载.docx_第1页
第1页 / 共65页
Java大作业要求Word文件下载.docx_第2页
第2页 / 共65页
Java大作业要求Word文件下载.docx_第3页
第3页 / 共65页
Java大作业要求Word文件下载.docx_第4页
第4页 / 共65页
Java大作业要求Word文件下载.docx_第5页
第5页 / 共65页
点击查看更多>>
下载资源
资源描述

Java大作业要求Word文件下载.docx

《Java大作业要求Word文件下载.docx》由会员分享,可在线阅读,更多相关《Java大作业要求Word文件下载.docx(65页珍藏版)》请在冰豆网上搜索。

Java大作业要求Word文件下载.docx

完成实验七之后,你可以开始做作业的第三部分。

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标签的值,从栈对象中删除所选商*品

*结帐

*点击结帐按钮之前:

购物篮中至少有一件商品,还没有给购物篮中

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1