Upload
sasiiporn-luangngam
View
717
Download
1
Embed Size (px)
DESCRIPTION
นำเสนอโปรแกรมการชำระเงินโดยเป็นส่วนหนึ่งของรายวิชา237214 PROGRAMMING FOR TEACHERS
Citation preview
L/O/G/O
www.themegallery.com
PAYMENT PROGRAM 237214 PROGRAMMING FOR TEACHERS
โปรแกรมช าระเงนิสนิคา้ | แลกเปลีย่นธนบตัรและเหรยีญ
• 543050215-9 นายจักรกฤษณ์ หนาแน่น
• 543050227-2 นางสาวปิยะพร พุ่มจันทร์
• 543050228-0 นายพลรักษ์ คู่กระสังข์
• 543050235-3 นางสาวสศิพร ลวงงาม
• 543050386-2 นางสาวสุจิรา ค าสีหา
• 543050549-0 นายวีระชาต ิ สังวัชรนันท์
นักศึกษาชั้นปีที ่2 สาขาคอมพิวเตอร์ศึกษา
คณะศึกษาศาสตร์ มหาวิทยาลัยขอนแก่น
ผู้จัดท า
• สมมติให้คุณเป็นนักพัฒนาโปรแกรมที่มีความสามารถ วัน
หน่ึงคุณไปซื้อสินค้าที่ร้านสะดวกซ้ือแห่งหนึ่ง ซึ่งในวันนั้น
เจ้าของร้านไม่อยู่ แต่ลูกชายของเจ้าของร้านอยู่ คุณเลือก
ซื้อสินค้าและจ่ายเงิน แต่คุณมาคิดอีกทีเด็กคนน้ีทอนเงินให้
คุณขาดไป 100 บาท คุณโกรธและรอพบกับเจ้าของร้าน
เจ้าของร้านจึงขอให้คุณช่วยท าโปรแกรมที่สามารถคิดเงิน
และบอกรายละเอียดการทอนเงินให้ร้านแห่งน้ี เพราะ
บ่อยครั้งที่ต้องให้ลูกชายเฝ้าร้านและมักทอนเงินผิด
โปรแกรมช าระเงินสินค้า | แลกเปลี่ยนธนบัตรและเหรียญ สถานการณ์การเรียนรู ้
• คุณตอบ “ตกลง”
• คุณจึง “เข้าร่วมอบรมการพัฒนาโปรแกรมช าระเงิน”
• หลังจากจบการอบรม “สามารถสร้างโปแกรมช าระเงินได้”
โปรแกรมช าระเงินสินค้า | แลกเปลี่ยนธนบัตรและเหรียญ ภารกิจการเรียนรู ้
ภารกิจการเรียนรู้
1. จัดกลุ่มกลุ่มละ 2 คน
2. สร้างโปรแกรมช าระเงินตามที่ได้อบรม พร้อมท า
โฟลว์ชาร์ต หลังการอบรมสุ่มเลือกตัวแทนน าเสนอ
• สามารถค านวณราคาสินค้า (ราคาสินค้าทั้งหมด
,จ านวนเงินทอนพร้อมระบุว่าธนบัตรหรือเหรียญ
ใดบ้าง) และใช้ในการแลกเปลี่ยนธนบตัรและ
เหรียญ
– เป็นโปรแกรมที่สามารถใช้ได้ในร้านค้าสะดวกซือ้ทั่วไปเพือ่ความ
สะดวกสบายและความถูกต้องของการช าระเงินและแลกเปลี่ยนเงนิ
โปรแกรมช าระเงินสินค้า | แลกเปลี่ยนธนบัตรและเหรียญ รายละเอียด
[ เงื่อนไขที่ใช้ในการเขียนโปรแกรม]
DO...WHILE : โปรแกรมจะท าค าสั่งที่ 1 ก่อน 1 รอบ แล้วจึงท าการตรวจสอบ
เงื่อนไขว่าเป็นจริงหรือไม่
SWITCH CASE : การเลือกการท างานจากการตรวจสอบตัวแปรที่ถูกก าหนดไว้
กับข้อมูลที่ถูกป้อนเข้ามาและท าตามค าสั่งตามเงื่อนไขการท างานของตัวแปรนั้นๆ
FOR : ค าสั่งในการก าหนดให้มีการท างานซ้ าโดยตรวจสอบจากตัวแปรที่ตั้งเป็น
เงื่อนไขก าหนดไว้หากถูกต้องก็ท าการวนซ้ าไปเร่ือยๆจนกว่าจะไม่ถูกต้องตามเงื่อนไข
IF…ELSE : เป็นการตรวจสอบเงื่อนไขและท าตามเงื่อนไขที่ได้ก าหนดไวแ้ต่หากไม่
ตรงตามในเงื่อนไข if ก็จะข้ามไปท าตามค าสั่งในเงื่อนไข else
โปรแกรมช าระเงินสินค้า | แลกเปลี่ยนธนบัตรและเหรียญ รายละเอียด
โปรแกรมช าระเงินสินค้า | แลกเปลี่ยนธนบัตรและเหรียญ โฟลว์ชาร์ต
เริ่มต้น
รับค่าราคาสินค้า
ผลรวม=ราคาสินค้า+ผลรวม
ราคา
สินค้า
!= 0
แสดงผลรวม,รับค่าเงิน
จากลูกค้า
i= 0; i < 9; i++
จ านวนธนบัตรและเหรียญ[i] = เงินทอน/ค่าเงินในarray[i];
เงินทอน = เงินทอน%ค่าเงินในarray[i]
เงินทอน=ผลรวม-เงินจากลูกค้า
รับค่าจ านวนเงิน
Switch
case
รับค่าเงินเหรียญ รับค่าเงินธนบัตร
จ านวนเหรียญ=จ านวนเงิน/ค่าเงินเหรียญ จ านวนธนบัตร=จ านวนเงิน/ค่าเงินธนบัตร
แสดงผลจ านวนเหรียญ แสดงผลจ านวนธนบัตร
ใช่ ไม่ใช่
ใช่
ไม่ใช่
1 2
1 2
Switch
case
โปรแกรมช าระเงินสินค้า | แลกเปลี่ยนธนบัตรและเหรียญ โฟลว์ชาร์ต
สิ้นสุด
แสดงผลเงินทอนและ
จ านวนธนบัตรและ
เหรียญที่ต้องทอน
check !=
false
Do you want to continue [y / n]
THANK YOU
ไม่ใช่
ใช่
โปรแกรมช าระเงินสินค้า | แลกเปลี่ยนธนบัตรและเหรียญ ผลลัพธ ์
ให้ผู้ใช้เลือกการท างาน
กด 1 เพื่อช าระสินค้า
กด 2 เพื่อแลกเงิน
เมื่อกด 1 ท าการป้อน
ข้อมูลราคาสินค้า
ทั้งหมด หากป้อนครบ
ทุกชิ้น กด 0
โปรแกรมจะแสดงราคา
สินค้าทั้งหมด จากนั้น
จึงป้อนจ านวนเงินที่รับ
จากลูกค้า โปรแกรม
จะแสดงผลเงินทอน
พร้อมรายละเอียด
จ านวนธนบัตรและ
จ านวนเหรียญ
โปรแกรมช าระเงินสินค้า | แลกเปลี่ยนธนบัตรและเหรียญ ผลลัพธ ์
เมื่อกด 2 ท าการป้อนจ านวน
เงิน จากนั้นจึงเลือก กด 1
เพื่อแลกเหรียญ ท าการเลือก
ชนิดเหรียญ แสดงผลจ านวน
เหรียญ
เมื่อกด 2 ท าการป้อนจ านวน
เงิน จากนั้นจึงเลือก กด 2
เพื่อแลกธนบัตร ท าการเลือก
ชนิดธนบัตร แสดงผลจ านวน
ธนบัตร
ต้องการท างานต่อหรือไม่
- กด y หรือ Y เพื่อท างานต่อ
- กด n หรือ N หยุดการ
ท างาน
โปรแกรมช าระเงินสินค้า | แลกเปลี่ยนธนบัตรและเหรียญ อธิบายโค้ด
import java.util.Scanner;
import java.io.*;
import java.lang.*;
public class payment
{
public static void main(String[ ] args) throws IOException
{
BufferedReader stdin = new BufferedReader(new
InputStreamReader(System.in));
int x,n,sum=0,num,money=0,receive=0,count=1,y;
String inputNum ="",cont="";
boolean check = true;
ก าหนดตัวแปรต่างๆ ที่จะใช้ในการ
ท างานของโปรแกรม
โปรแกรมช าระเงินสินค้า | แลกเปลี่ยนธนบัตรและเหรียญ อธิบายโค้ด
รับค่าเพ่ือเลือก case และก าหนดให้
ค่าที่รับมาเก็บไว้ที่ตัวแปร X และให้
x เป็นตัวแปรที่ใช้ตรวจสอบ case
do{
System.out.print("Choose the operation : Press 1 to payment. |
Press 2 to change money."+"\n"+"You press :");
inputNum =stdin.readLine();
x =Integer.parseInt(inputNum);
switch(x)
โปรแกรมช าระเงินสินค้า | แลกเปลี่ยนธนบัตรและเหรียญ อธิบายโค้ด
{
case 1 :
System.out.print("========================"+"\n"+"P
lease underprice the product.(PRESS 0 TO
FINISH)"+"\n"+"========================");
do
{
System.out.print("\n"+"Product "+count+"=");
inputNum =stdin.readLine();
num =Integer.parseInt(inputNum);
sum=sum+num;
count++;
}
while (num!=0);
System.out.print("\n"+"TOTAL PRICE = "+sum);
แสดงผลข้อความอธิบายการ
ท างาน
ท าการแสดงล าดับสินค้าพร้อมรับข้อมูล
ราคาสินค้าเก็บไว้ที่ num และ
sum=sum+num และนับล าดับ+1
ตรวจสอบ num ต้องไม่เท่ากับ 0
หากน าเท่ากับ 0 แสดงผลรวมราคา
สินค้าทั้งหมดนั่นคือ sum
เงื่อนไข case = 1 ให้ท า
โปรแกรมช าระเงินสินค้า | แลกเปลี่ยนธนบัตรและเหรียญ อธิบายโค้ด
System.out.print("\n"+"RECEIVE MONEY = ");
inputNum =stdin.readLine();
receive =Integer.parseInt(inputNum);
money=receive-sum;
System.out.print("========="+"\n"+"TAUNTON PAYMENT
= "+money+"\n"+"=========");
ท าการหาเงินทอน
แสดงผลให้ป้อนข้อมูลจ านวนเงินที่ได้รับ
จากลูกค้าเก็บไว้ที่ตัวแปร receive
แสดงผลจ านวนเงินทอนเงินทอนจากตัว
แปร money
โปรแกรมช าระเงินสินค้า | แลกเปลี่ยนธนบัตรและเหรียญ อธิบายโค้ด
int[] pay = new int[9];
int[] numpay = new int[]{1000,500, 100, 50, 20, 10, 5, 2
, 1};
for (int i= 0; i < 9; i++) {
pay[i] = money/numpay[i];
money = money%numpay[i]; }
System.out.println("\n"+"Pay 1,000 : " + pay[0]+" banks");
System.out.println("Pay 500 : " + pay[1]+" banks");
System.out.println("Pay 100 : " + pay[2]+" banks");
System.out.println("Pay 50 : " + pay[3]+" banks");
System.out.println("Pay 20 : " + pay[4]+" banks");
System.out.println("Pay 10 : " + pay[5]+" coins");
System.out.println("Pay 5 : " + pay[6]+" coins");
System.out.println("Pay 2 : " + pay[7]+" coins");
System.out.println("Pay 1 : " + pay[8]+" coins");
System.out.print("====================="+"\n");
break;
สร้างตัวแปรแบบอาร์เรย์ขึ้นมาสองตัว
คือตัวแปรแสดงจ านวนธนบัตรหรือ
เหรียญกับตัวแปรชนิดเงิน
ท าการวนรับค่าโดยใช้ for ก าหนด
เงื่อนไข และท าการค านวณหาจ านวน
ธนบัตรหรือเหรียญจากการน าเงิน
ทอนไปหารชนิดเงิน และหาเศษโดย
การน าเงินทอนไปหารหาเศษกับชนิด
เงินและวนค่าไปเร่ือยๆจนหลุดจากลูป
คือ i>=9
หลุดจากลูป แสดงผลจากการเก็บ
ข้อมูลในอาร์เรย์จ านวนธนบัตรหรือ
เหรียญ หยุดการท างาน
โปรแกรมช าระเงินสินค้า | แลกเปลี่ยนธนบัตรและเหรียญ อธิบายโค้ด
เงื่อนไขเมื่อ case=2 ให้ท า แสดงผลเพื่อรับ
ค่าจ านวนเงินที่ต้องการแลก และแสดงผล
เพื่อให้รับค่าในการตรวจสอบ case โดยใช้ตัว
แปร y ในการตรวจสอบ
case 2 :
System.out.print("==============="+"\n"+"RECEIVE MONEY = ");
inputNum =stdin.readLine();
money =Integer.parseInt(inputNum);
System.out.print("===============");
System.out.print("\n"+"Press 1 to change coins. | Press 2 to change
banks."+"\n"+"You press :");
inputNum =stdin.readLine();
y =Integer.parseInt(inputNum);
switch(y)
โปรแกรมช าระเงินสินค้า | แลกเปลี่ยนธนบัตรและเหรียญ อธิบายโค้ด
{
case 1 :
int change,coins;
System.out.print("\n"+"please select 10 , 5 , 2 , 1 to
change : ");
inputNum =stdin.readLine();
change =Integer.parseInt(inputNum);
coins=money/change;
System.out.print("\n"+"===================="+"\n"+"R
ECEIVE MONEY = "+money+" CHANGE"+change+" =
"+coins+" coins"+"\n"+"====================="+"\n");
break;
เงื่อนไข case = 1 ให้ท า
สร้างตัวแปรอีก 2 ตัว แสดงผล
เพื่อให้เลือกชนิดของเหรียญและรับ
ค่าเก็บไว้ในตัวแปร change
ท าการค านวณหาจ านวนเหรียญ
แสดงผลจ านวนเหรียญ
หยุดการท างาน
โปรแกรมช าระเงินสินค้า | แลกเปลี่ยนธนบัตรและเหรียญ อธิบายโค้ด
case 2 :
int change1,banks;
System.out.print("\n"+"please select 1000 , 500 , 100 , 50 ,
20 to change : ");
inputNum =stdin.readLine();
change1 =Integer.parseInt(inputNum);
banks=money/change1;
System.out.print("\n"+"======================"+"\n"+"
RECEIVE MONEY = "+money+" CHANGE"+change1+" =
"+banks+"banks"+"\n"+"======================"+"\n");
break;
}
break;
}
เงื่อนไข case=2 ให้ท า
สร้างตัวแปรอีก 2 ตัว แสดงผลเพื่อให้เลือก
ชนิดของธนบัตรและรับค่าเก็บไว้ในตัวแปร
change1
ท าการค านวณหาจ านวนธนบัตร
แสดงผลจ านวนธนบัตร
หยุดการท างานswitch case ย่อย
หยุดการท างานswitch case หลัก
โปรแกรมช าระเงินสินค้า | แลกเปลี่ยนธนบัตรและเหรียญ อธิบายโค้ด
check = false;
System.out.print("Do you want to continue [y / n] :");
cont = stdin.readLine();
System.out.println(" ");
if ((cont.equals("Y")) || (cont.equals("y"))) check = true;
else check = false;
} while (check);
System.out.println(" ");
System.out.print("------------- Thank You ---------------
");
System.out.println(" ");
}
}
ก าหนดให้ check=false และแสดงผล
เพื่อรับค่าว่าจะท างานต่อหรือไม่
ถ้า รับค่า y หรือ Y ให ้check=true
ตรวจสอบเงื่อนไขตัวแปร boolean
check ถ้า true ท าซ้ า
ถ้าไม่ให้แสดงค าว่า thank you
จบการท างาน
โปรแกรมช าระเงินสินค้า | แลกเปลี่ยนธนบัตรและเหรียญ แลกเปลี่ยนเรียนรู ้
QUESTION
L/O/G/O
www.themegallery.com
237214 PROGRAMMING FOR TEACHERS
T h a n k Y o u !