Order o = new Order();
FoodType f1 = new FoodType("ส้มตำ","ส้มตำทะเล",70);
FoodType f2 = new FoodType("ส้มตำ","ส้มตำปู",70);
FoodType f3 = new FoodType("ก๋วยเตี๋ยว","ก๋วยเตี๋ยวไก่",50);
FoodType f4 = new FoodType("ก๋วยเตี๋ยว","ก๋วยเตี๋ยวหมู",45);
FoodType f5 = new FoodType("ต้มยำ","ต้มยำกุ้ง",100);
FoodType f6 = new FoodType("ต้มยำ","ต้มยำไก่",70);
FoodType f7 = new FoodType("อาหารทะเล","กุ้งมังกร",610);
FoodType f8 = new FoodType("อาหารทะเล","ปลาหมึกยัดไส้",150);
o.addFoodType(f1);
o.addFoodType(f2);
o.addFoodType(f3);
o.addFoodType(f4);
o.addFoodType(f5);
o.addFoodType(f6);
o.addFoodType(f7);
o.addFoodType(f8);
o.listFoodType();
และ ใน Order.orderlist()
ใน loop for กำหนดค่า list = scan.next()
และ orderNumber = scan.nextInt()
เป็นการกำหนดค่าทับลงไปในตัวแปร
แม้จะอยู่ใน loop ก็จะได้ค่าสุดท้ายค่าเดียวตลอด
ดังนั้น ควรทำตัวแปร list ให้เป้น vector ของ ชุดข้อมูล
โดยการเพิ่ม class ขึ้นมาอีกซักอันเพื่อเก็บ ข้อมูลการสั่งแต่ละรายการ ดังนี้
Code (Java)
public class Item {
private String list;
private int orderNumber;
public void Item( int i){
Scanner scan = new Scanner(System.in);
System.out.print("รายการที่ " + (i + 1) + " ");
list = scan.next();
System.out.print("จำนวน ");
orderNumber = scan.nextInt();
}
}
public class Order {
private double total;
private Vector<Item> list = new Vector<Item>();
private Vector<FoodType> foodtype = new Vector<FoodType>();
public void orderlist() {
Scanner scan = new Scanner(System.in);
int number;
System.out.print("ต้องการกี่รายการ ? = ");
number = scan.nextInt();
for (int i = 0; i < number; i++) {
Item obj = new Item( i );
list.addElement(obj);
}
}
}
และ ใน function Order.orderlist()
กับ function Order.calorderlist()
ให้แก้ไขใหม่ input กับ output ให้สัมพันธ์กัน
ผมทำตัวอย่าง แค่ class Item และ Order.orderlist() เท่านั้นนะครับ
ลองดูในส่วนของ calorderlist เอาเองนะครับ ถ้าไม่ได้ก็ค่อยมาโพสถามใหม่