Order
、InternalOrder
およびの3 つのクラスがありOrderTester
ます。私はしばらく探し回っていましたが、私が見ているものでは、これらの例をここで必要なものに変更することができませんでした.
InternalOrder
そのため、 andOrderTester
クラスに問題があります。これまでのところ、両方の私のコードは...
public class InternalOrder extends Order {
public static final int DISCOUNT = 40/100;
public InternalOrder(String productName, int quantity) {
super(productName, quantity, DISCOUNT);
}
public void printInternalReport() {
System.out.println("Printing internal report...");
}
}
と
public class OrderTester {
public static void main(String[] args) {
testCase1();
testCase2();
testCase3();
testCase4();
testCase5();
testCase6();
testCase7();
testCase8();
testCase9();
testCase10();
}
public static void testCase1() {
Order ord = new Order();
System.out.println("Test Number : " + Order.orderNum + " Type of Order : Normal, " + "Product Name : " + "Order Quantity : " + "Discount : ");
}
public static void testCase2() {
Order ord = new Order();
System.out.println("Test Number : " + Order.orderNum + " Type of Order : Normal, " + "Product Name : " + "Order Quantity : " + "Discount : ");
}
さて、テスト10に進みますが、現時点ではすべて同じです。
必要なものは次のとおりです。
このInternalOrder
クラスには、作業要件の一部として社内で固定在庫を注文する Stellar Stationary スタッフのロジックが含まれます。
内部注文は自動的に 40% の割引を受けます。
- クラスは
InternalOrder
クラスを拡張することOrder
です。 final static
というフィールドを含めることDISCOUNT
です。このフィールドは、スタッフが受け取る割引率の定数として使用され、40% に設定する必要があります。
さて、私のパートにはこの 2 つがありますが、次のパートについては完全にはわかりません。
- クラスには 1 つのコンストラクターが含まれます。コンストラクターは、productName と quantity の 2 つのパラメーターを受け取ります。コンストラクターは、これらのパラメーターをそのスーパークラス (Order) に渡し、
DISCOUNT
定数を 3 番目のパラメーターとして渡します。
スーパークラスに何か追加する必要がありますか?それは私をかなり混乱させるからです。そして、OrderTester
インポートするのが難しいテーブルがあるので、いくつかの行を作成します。
このクラスは、プログラムを起動し、および
クラスOrderTester
をテストして正しく動作することを確認するために使用されます。Order
InternalOrder
実行するテストは 10 個あり、各テストは独自の静的メソッドで実行し、testCase1()
を通じて呼び出す必要がありますtestCase10()
。各テストは、次の表に従ってテストする必要があります。
Test Number Type of Order Product Name Order Quantity Discount
1 "Normal" "N/A" "N/A" "N/A"
このテストで。Quantity と Discount が int の場合、「N/A」を生成する方法がわかりません。
他のコードが必要な場合は、以下に投稿します。
public class Order {
private String productName;
private double price;
private int discount;
private int quantity;
private double total;
private String message;
private boolean isDiscounted;
private boolean isValidOrder;
public static int orderNum = 0;
public Order() {
isValidOrder = false;
message = "**ERROR** Order number cannot be totalled as no details have been supplied.";
orderNum++;
}
public Order(String productName, int quantity){
this.productName = productName;
this.quantity = quantity;
getPrice(this.productName);
if(isValidOrder != false){
calculate();
}
orderNum++;
}
public Order(String productName, int quantity, int discount){
this.productName = productName;
testQuantity(quantity);
getPrice(productName);
if(isValidOrder != false){
calculate();
}
orderNum++;
}
private String getOrderDetails(){
message = message;
if(isValidOrder == true && isDiscounted == false){
message = "Order Number: " + quantity + "\n" + "Product Name; " + productName + "\n" + "Product Price: $" + price + "\n" + "Order Quantity: " + quantity + "\n" + "Total Price: $" + total;
} else if(isValidOrder == true && isDiscounted == true){
message = "Order Number: " + quantity + "\n" + "Product Name; " + productName + "\n" + "Product Price: $" + price + "\n" + "Order Quantity: " + quantity + "\n" + "Total Price: $" + total;
} else {
return message;
}
return message;
}
private void calculate(){
if(this.isDiscounted == false){
total = quantity * price;
} else {
total = quantity * price - quantity * price * (discount / 100 );
}
}
private void getPrice(String productName){
switch(productName){
case "Pencil":
this.price = 0.6;
break;
case "Pen":
this.price = 0.3;
break;
case "Ruler":
this.price = 1.2;
break;
case "Pencil Sharpener":
this.price = 0.3;
break;
case "Compass":
this.price = 4.5;
break;
case "Erasor":
this.price = 4.5;
break;
case "Scissors":
this.price = 2.5;
break;
case "Pencil Case":
this.price = 10.0;
break;
default:
this.price = 0.0;
this.isValidOrder = false;
this.message = "**ERROR**: Invalid product name";
break;
}
}
private void testDiscount(int discount) {
if (discount <=0) {
message = "**ERROR**: The discount rate cannot be lower than or equal to 0.";
}
else if (discount >50) {
message = "**ERROR**: The discount rate cannot be higher than 50.";
} else {
this.discount = discount;
this.isDiscounted = true;
}
}
private void testQuantity(int quantity){
if(quantity <=0) {
isValidOrder = false;
message = ("**ERROR**: Invalid quantity. Quantity cannot be 0 or less.");
message = message + "messagehere";
message += "messagehere";
}
else if (quantity >1000) {
isValidOrder = false;
message = ("**ERROR**: Invalid quantity. Quantity cannot be greater than 1000.");
} else {
isValidOrder = true;
this.quantity = quantity;
}
}
}