 |
|
Java ช่วยดูโปรแกรมร้านอาหารให้หน่อยค่ะ พอดีว่าทำแล้วแต่มันยังติดปัญหานิดหน่อยค่ะ |
|
 |
|
|
 |
 |
|
Code (Java)
//แบ่งออกเป็น 3 คลาส ค่ะ
//คลาสที่1
import java.util.Scanner;
import java.util.Vector;
public class Order {
private double total;
private String list;
private int orderNumber;
private Vector<FoodType> foodtype = new Vector<FoodType>();
public String getList() {
return list;
}
public int getOrderNumber() {
return orderNumber;
}
public void addFoodType(FoodType f) {
foodtype.addElement(f);
}
public void listFoodType() {
for (int i = 0; i < foodtype.size(); i++) {
System.out.println("ชนิดอาหาร "
+ foodtype.elementAt(i).getMenuType() + " \t รายการ "
+ foodtype.elementAt(i).getMenuList() + " \t ราคา "
+ foodtype.elementAt(i).getPrice());
}
}
// รับค่าจากผู้ใช้
public void orderlist() {
Scanner scan = new Scanner(System.in);
int number;
System.out.print("ต้องการกี่รายการ ? = ");
number = scan.nextInt();
for (int i = 0; i < number; i++) {
System.out.print("รายการที่ " + (i + 1) + " ");
list = scan.next();
System.out.print("จำนวน ");
orderNumber = scan.nextInt();
}
}
// แสดงรายการที่สั่ง
public void calorderlist() {
for (int i = 0; i < foodtype.size(); i++) {
if (foodtype.elementAt(i).getMenuList().equals(list)) {
System.out.println("" + foodtype.elementAt(i).getMenuList()
+ " \t \t " + orderNumber + " \t \t "
+ foodtype.elementAt(i).getPrice() + " \t \t "
+ orderNumber * foodtype.elementAt(i).getPrice());
}
}
}
}
//คลาสที่2
import java.util.Scanner;
public class FoodType {
private String menutype;
private String menulist;
private double price;
public FoodType(String menutype,String menulist,int price) {
this.menutype = menutype;
this.menulist = menulist;
this.price = price;
}
public String getMenuType(){
return menutype;
}
public String getMenuList(){
return menulist;
}
public double getPrice (){
return price;
}
public String toString (){
return "ชนิดอาหาร "+menutype+ "รายการ "+menulist +"ราคา "+price;
}
}
//คลาสที่ 3
import java.util.Scanner;
public class Detail {
private int orderID;
private int tableNumber;
private String date;
private String time;
public Detail(int orderID,String date,String time) {
this.orderID = orderID;
this.date = date;
this.time = time;
}
public void Detail(){
Scanner scan = new Scanner(System.in);
System.out.print("หมายเลขโต๊ะ ");
tableNumber = scan.nextInt();
}
public int getTableNumber() {
return tableNumber;
}
public int getOrderID() {
return orderID;
}
public String toString(){
return "หมายเลขโต๊ะ " + tableNumber+ "\t \t \t เลขที่ "+orderID +"\n \nวันที่/เวลา \t \t " +date +".. \t " +time;
}
}
//คลาส Run
import java.util.Scanner;
public class Run {
public static void main(String[] args) {
Scanner scan = new Scanner (System.in);
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();
Detail d = new Detail(334, "23/1/2558","12.30 น.");
System.out.println(" ");
d.Detail();
o.orderlist();
System.out.println("----------------------------------------\n");
System.out.println("\t \t ใบเสร็จรับเงิน");
System.out.println(d.toString());
System.out.println("\nรายการ " + " \t \t จำนวน " + "\t \t ราคา " + " \t \t รวม ");
o.calorderlist();
}
}

*ติดปัญหาที่เวลาป้อนค่าไปแล้วมันแสดงแค่รายการสุดท้าย มันไม่แสดงรายการทั้งหมดที่ป้อน
Tag : Java, C#, JAVA
|
ประวัติการแก้ไข 2015-02-02 16:01:31
|
 |
 |
 |
 |
Date :
2015-02-01 23:40:31 |
By :
จ๊ะจ๋า |
View :
18865 |
Reply :
6 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code
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();
ทำไมมันขึ้นข้อมูลไม่สัมพันธ์กันครับ อาจะต้องใช้การ Debug ดูค่าแล้วครับ
|
 |
 |
 |
 |
Date :
2015-02-02 11:06:21 |
By :
mr.win |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ไม่แน่ใจว่าจะตอบโจทย์หรือเปล่า ลองเปลี่นวิธีเรียกใช้ดูไหมครับ
Code (Java)
// แสดงรายการที่สั่ง
public void calorderlist() {
for (int i = 0; i < foodtype.size(); i++) {
if (foodtype.elementAt(i).getMenuList().equals(list)) {
System.out.println("" + foodtype.elementAt(i).getMenuList()
+ " \t \t " + orderNumber + " \t \t "
+ foodtype.elementAt(i).getPrice() + " \t \t "
+ orderNumber * foodtype.elementAt(i).getPrice());
}
}
}
ลองแบบข้างล่าง
Code (Java)
// แสดงรายการที่สั่ง
public void calorderlist() {
for (FoodType obj : foodtype) {
System.out.println("" + obj.getMenuList()
+ " \t \t " + orderNumber + " \t \t "
+ obj.getPrice() + " \t \t "
+ (orderNumber * obj.getPrice())
);
}
}
|
ประวัติการแก้ไข 2015-02-02 11:24:12
 |
 |
 |
 |
Date :
2015-02-02 11:22:44 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ที่ class Order
ตัวแปร list เป็น string
และ ใน 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 เอาเองนะครับ ถ้าไม่ได้ก็ค่อยมาโพสถามใหม่
|
ประวัติการแก้ไข 2015-02-02 21:55:43 2015-02-02 21:57:15 2015-02-03 13:29:45 2015-02-03 13:31:05
 |
 |
 |
 |
Date :
2015-02-02 21:47:11 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
มีโค้ด class order ที่เขียนเสร็จแล้วไหมคะ
|
 |
 |
 |
 |
Date :
2019-11-23 17:26:41 |
By :
nicha |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|