  | 
              
	              
	                
 
  
    |   | 
   
  
    
        
        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 :
                          19982 | 
                      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 | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
      		  
	
     | 
   
 
                 |