Order Form
นายมูตู
ซึ่งเป็นชาวโรมาเนีย เบื่ออาชีพนักฟุตบอล
จึงอยากเปิดร้านขายส่งการ์ตูนในประเทศไทย
เขาได้พยายามออกแบบฟอร์มการคิดสตางค์การ์ตูนรายสัปดาห์สำหรับร้านขายส่งอย่างง่ายๆขึ้นมา
ให้นายตอร์เรส ซึ่งเป็นนักฟุตบอลเหมือนกัน เป็นคนเขียนโปรแกรม
นายมูตูต้องการวินโดว์แบบนี้ตอนที่โปรแกรมสตาร์ท
(เบื้องต้นเขาให้นายตอร์เรสเขียนโปรแกรมที่รวมราคาการสั่งซื้อ
ของการ์ตูนรายสัปดาห์ kc weekly กับ boom เท่านั้น)
โดยผู้มาซื้อ
จะต้องทำการกรอก order number ชื่อ ที่อยู่ ทุกช่องที่มีให้กรอก
แล้วติ๊กว่าจะซื้อ kc weekly กับ boom ไปทั้งสอง หรือแค่เจ้าเดียว
พร้อมทั้งกรอกฟอร์มด้วยว่าต้องการซื้ออย่างละกี่เล่ม
โปรแกรมจะทำการคำนวณราคารวมของการ์ตูนแต่ละเจ้า(เฉพาะที่ติ๊ก)
แล้วรวมราคาทั้งหมดให้ แต่ถ้าหากซื้อเกิน 10,000 บาท จะได้รับส่วนลด 7%
ด้วย (ส่วนลดคิดละเอียดถึงหน่วยห้าสิบสตางค์
ปัดเลขขึ้นหรือลงตามความใกล้เลขเต็มกับเลขห้าสิบสตางค์
เงินในฟอร์มใช้ดอลล่าร์ เพราะนายมูตูไม่รู้ว่าบาทจะเขียนยังไง แต่ให้ใช้เหมือนกับเป็นบาทไปเลยก็แล้วกัน)
รายละเอียดของการคิดส่วนลดเป็นดังนี้
- ถ้าส่วนลดมีเศษไม่ถึง 25 สตางค์ ให้ตัดส่วนสตางค์นั้นทิ้งเสีย
- ถ้าส่วนลดมีเศษ ตั้งแต่ 25 ถึง 75 สตางค์ ให้ปัดเศษนั้นเป็น 50 สตางค์
- ถ้าส่วนลดมีเศษมากกว่า 75 สตางค์ ให้ปัดเป็น 1 บาทเลย
รูปด้านล่างแสดงผลการคำนวณ ทั้งในกรณีไม่ได้ลดราคา และกรณีได้ลดราคา
- ถ้าช่อง
textfeld ของ Order Number หรือ Name / Address บรรทัดใดบรรทัดหนึ่ง
ไม่ถูกแก้ไข โปรแกรมจะไม่คำนวณให้เมื่อกด Calculate แต่จะแจ้งerror
message ด้วยวินโดว์ข้างล่างนี้
- ถ้าตรง JCheckBox ของชนิดการ์ตูนไม่มีการติ๊กเลย โปรแกรมก็จะไม่คำนวณ แต่จะแจ้ง error message ดังนี้
ตอร์เรสขึ้นโครงโค้ดมาแล้ว
แต่ว่าเนื่องจากพรุ่งนี้ตอร์เรสมีแมทช์สำคัญ
จึงได้แค่ขึ้นรูปวินโดว์ไว้เท่านั้น ขอให้นักเรียน
เขียนโปรแกรมนี้ให้เสร็จด้วย
โดยโค้ดที่ตอร์เรสเขียนโครงนั้น อยู่ที่นี่
ตอนที่ 2
มูตูต้องการเปลี่ยนแปลงโปรแกรมนิดหน่อย โดยให้ JCheckBox ทั้งสอง edit ไม่ได้ตั้งแต่ตอนแรก- ถ้า JCheckBox ถูกติ๊ก ตัว Quantity ของมันต้อง edit ได้ และค่าเริ่มต้นต้องเป็น 0
- ถ้า JCheckBox ถูกติ๊กออก ตัว Quantity ของมันต้อง edit ไม่ได้ และค่าต้องกลายเป็น 0 ทันที และต้องทำการ Calculate ใหม่ทั้งฟอร์ม
เขียนโค้ดให้มูตูนะ ตอร์เรสเบี้ยวไม่เขียนแล้ว
แนะนำ
- การพิมพ์ยังไงให้เครื่องหมายเงินปรากฎ เราใช้แบบนี้ โดย DecimalFormat จะช่วยจัดการให้แสดงผลถูกต้องเอง ลองไปอ่านเพิ่มเติมในเว็บดูนะ
DecimalFormat dollars = new DecimalFormat( "$0.00" );
kcTotalsJTextField.setText( dollars.format(kcTotals ) );
พอทำเสร็จแล้ว ทำเป็น executable jar ไว้ แล้วส่งมาที่ progmethcp@gmail.com ภายในเที่ยงคืนวันที่ 12 สิงหาคม โดยในเมล์ subject ต้องเขียนเป็น studentId_Event02 และชื่อไฟล์จะต้องเป็น studentId_Event02.jar