java题:编写类似淘宝一个简单的处理订单发货和进货的程序,要求实现简单的进货和发货以及统计货物量的功能

1. 编写一个Seller类,代表不同的小商家。创建商家实例的时候自动初始化商家名。
2. Seller类拥有addGoods(goodName, goodNum)和sellGoods(goodName, goodNum)两个方法,分辨代表进货和卖出货物。
3. Seller类拥有统计当前共有多少种货物的成员变量TotalTypeOfGoods
4. Seller类通过printGoods()打印当前货物状态。(20分)
5. 其中addGoods,如果在货物种类列表中没有该货物,则添加该货物并更新货物数量;如果在货物种类列表中有该货物,则直接更新货物数量。
6. sellGoods在货物变为小于0之后也不会销毁该货物列表。
7. 在Main函数中添加如下代码测试程序:
Seller seller = new Seller("My Store");
seller.addGoods("T-shirt", 200);
seller.addGoods("Pill", 100);
seller.addGoods("T-shirt",100);
seller.sellGoods("T-shirt", 50);
seller.sellGoods("Pill", 50);
seller.addGoods("Hat",100);
seller.printGoods();

Seller seller1 = new Seller("The Other Store");
seller1.addGoods("T-shirt", 200);
seller1.addGoods("Hat",100);
seller1.sellGoods("T-shirt", 50);
seller1.addGoods("Hat",100);
seller1.printGoods();

8. 测试结果应该如下:
Seller: My Store Totoal Types of Goods is: 3
Goods Name: T-shirt Remains: 250
Goods Name: Pill Remains: 50
Goods Name: Hat Remains: 100

Seller: The Other Store Totoal Types of Goods is: 2
Goods Name: T-shirt Remains: 150
Goods Name: Hat Remains: 200

8. 可以使用数组来存储货物名称和对应货物的数量(90分)
private String[] goods = new String[100];
privateint[] numbersOfEachGoods = newint[100];
9. 使用数组判断在货物名称列表中是否已经添加这个货物:
for(inti = 0; i<goods.length; i++){
if(goods[i] != null&&goods[i].equals(goodName)){
containsGood = true;
index = i;
}
}
if(containsGood){
//your code
}
else
10. 如果已经添加过这个货物,可以使用
numbersOfEachGoods [index] = currentGoodNum;
更新当前货物数量

提高:
11. 也可以使用ArrayList来实现动态的存储(10分)
12. 使用ArrayList可以通过
booleancontainsGood = goods.contains(goodName);
if(containsGood){
//your code
}
else
判断是否添加过这个货物。
13. 如果已经添加过这个货物,使用ArrayList可以通过
numbersOfEachGoods.remove(index);
numbersOfEachGoods.add(index, currentGoodNum);
更新ArrayList中的当前货物数量。

第1个回答  推荐于2016-03-25
import java.util.ArrayList;

public class Du {

public static void main(String[] args) throws Exception {
Seller seller = new Seller("My Store");
seller.addGoods("T-shirt", 200);
seller.addGoods("Pill", 100);
seller.addGoods("T-shirt", 100);
seller.addGoods("T-shirt", 50);
seller.addGoods("Pill", 50);
seller.addGoods("Hat", 100);
seller.printGoods();

Seller sell2 = new Seller("The Other Store");
sell2.addGoods("T-shirt", 200);
sell2.addGoods("Hat", 100);
sell2.sellGoods("T-shirt", 50);
sell2.addGoods("Hat", 100);
sell2.printGoods();

}

}

class Seller {
private String sellerName;

private int TotalTypeOfGoods;

private ArrayList<String> goodsNameList = new ArrayList<String>();

private ArrayList<Integer> goodsQuantityList = new ArrayList<Integer>();

public Seller(String sellerName) {
this.sellerName = sellerName;
}

public void addGoods(String goodName, int goodNum) {
int index = goodsNameList.indexOf(goodName);
if (index == -1) {
goodsNameList.add(goodName);
goodsQuantityList.add(new Integer(goodNum));
} else {
goodsQuantityList.set(index, goodsQuantityList.get(index)
.intValue()
+ goodNum);
}

TotalTypeOfGoods = goodsNameList.size();
}

public void sellGoods(String goodName, int goodNum) throws Exception {
if (TotalTypeOfGoods == 0) {
throw new Exception("No goods provided by the shop. Closed!");
}

int index = goodsNameList.indexOf(goodName);

if (index != -1) {
int qty = goodsQuantityList.get(index);
if (goodNum > qty) {
throw new Exception("Insufficient goods in the shop. Sorry!");
}

goodsQuantityList.set(index, qty - goodNum);
}else{
throw new Exception("Our shop doesn't sell " + goodName);
}

}

public void printGoods() {
System.out.print("Seller :" + this.sellerName + "\t");
System.out.println("Totoal Types of Goods is :" + this.TotalTypeOfGoods);

for(int i = 0; i < goodsNameList.size(); i++){
System.out.print("Goods Name: " + goodsNameList.get(i));
System.out.println("Remains: " + goodsQuantityList.get(i));
}

System.out.println();
}
}

-----------------testing
Seller :My Store Totoal Types of Goods is :3
Goods Name: T-shirtRemains: 350
Goods Name: PillRemains: 150
Goods Name: HatRemains: 100

Seller :The Other Store Totoal Types of Goods is :2
Goods Name: T-shirtRemains: 150
Goods Name: HatRemains: 200本回答被提问者采纳
相似回答