21
L/O/G/O www.themegallery.com PAYMENT PROGRAM 237214 PROGRAMMING FOR TEACHERS โปรแกรมชาระเงินสินค้า | แลกเปลี่ยนธนบัตรและเหรียญ

Payment Program

Embed Size (px)

DESCRIPTION

นำเสนอโปรแกรมการชำระเงินโดยเป็นส่วนหนึ่งของรายวิชา237214 PROGRAMMING FOR TEACHERS

Citation preview

Page 1: Payment Program

L/O/G/O

www.themegallery.com

PAYMENT PROGRAM 237214 PROGRAMMING FOR TEACHERS

โปรแกรมช าระเงนิสนิคา้ | แลกเปลีย่นธนบตัรและเหรยีญ

Page 2: Payment Program

• 543050215-9 นายจักรกฤษณ์ หนาแน่น

• 543050227-2 นางสาวปิยะพร พุ่มจันทร์

• 543050228-0 นายพลรักษ์ คู่กระสังข์

• 543050235-3 นางสาวสศิพร ลวงงาม

• 543050386-2 นางสาวสุจิรา ค าสีหา

• 543050549-0 นายวีระชาต ิ สังวัชรนันท์

นักศึกษาชั้นปีที ่2 สาขาคอมพิวเตอร์ศึกษา

คณะศึกษาศาสตร์ มหาวิทยาลัยขอนแก่น

ผู้จัดท า

Page 3: Payment Program

• สมมติให้คุณเป็นนักพัฒนาโปรแกรมที่มีความสามารถ วัน

หน่ึงคุณไปซื้อสินค้าที่ร้านสะดวกซ้ือแห่งหนึ่ง ซึ่งในวันนั้น

เจ้าของร้านไม่อยู่ แต่ลูกชายของเจ้าของร้านอยู่ คุณเลือก

ซื้อสินค้าและจ่ายเงิน แต่คุณมาคิดอีกทีเด็กคนน้ีทอนเงินให้

คุณขาดไป 100 บาท คุณโกรธและรอพบกับเจ้าของร้าน

เจ้าของร้านจึงขอให้คุณช่วยท าโปรแกรมที่สามารถคิดเงิน

และบอกรายละเอียดการทอนเงินให้ร้านแห่งน้ี เพราะ

บ่อยครั้งที่ต้องให้ลูกชายเฝ้าร้านและมักทอนเงินผิด

โปรแกรมช าระเงินสินค้า | แลกเปลี่ยนธนบัตรและเหรียญ สถานการณ์การเรียนรู ้

Page 4: Payment Program

• คุณตอบ “ตกลง”

• คุณจึง “เข้าร่วมอบรมการพัฒนาโปรแกรมช าระเงิน”

• หลังจากจบการอบรม “สามารถสร้างโปแกรมช าระเงินได้”

โปรแกรมช าระเงินสินค้า | แลกเปลี่ยนธนบัตรและเหรียญ ภารกิจการเรียนรู ้

ภารกิจการเรียนรู้

1. จัดกลุ่มกลุ่มละ 2 คน

2. สร้างโปรแกรมช าระเงินตามที่ได้อบรม พร้อมท า

โฟลว์ชาร์ต หลังการอบรมสุ่มเลือกตัวแทนน าเสนอ

Page 5: Payment Program

• สามารถค านวณราคาสินค้า (ราคาสินค้าทั้งหมด

,จ านวนเงินทอนพร้อมระบุว่าธนบัตรหรือเหรียญ

ใดบ้าง) และใช้ในการแลกเปลี่ยนธนบตัรและ

เหรียญ

– เป็นโปรแกรมที่สามารถใช้ได้ในร้านค้าสะดวกซือ้ทั่วไปเพือ่ความ

สะดวกสบายและความถูกต้องของการช าระเงินและแลกเปลี่ยนเงนิ

โปรแกรมช าระเงินสินค้า | แลกเปลี่ยนธนบัตรและเหรียญ รายละเอียด

Page 6: Payment Program

[ เงื่อนไขที่ใช้ในการเขียนโปรแกรม]

DO...WHILE : โปรแกรมจะท าค าสั่งที่ 1 ก่อน 1 รอบ แล้วจึงท าการตรวจสอบ

เงื่อนไขว่าเป็นจริงหรือไม่

SWITCH CASE : การเลือกการท างานจากการตรวจสอบตัวแปรที่ถูกก าหนดไว้

กับข้อมูลที่ถูกป้อนเข้ามาและท าตามค าสั่งตามเงื่อนไขการท างานของตัวแปรนั้นๆ

FOR : ค าสั่งในการก าหนดให้มีการท างานซ้ าโดยตรวจสอบจากตัวแปรที่ตั้งเป็น

เงื่อนไขก าหนดไว้หากถูกต้องก็ท าการวนซ้ าไปเร่ือยๆจนกว่าจะไม่ถูกต้องตามเงื่อนไข

IF…ELSE : เป็นการตรวจสอบเงื่อนไขและท าตามเงื่อนไขที่ได้ก าหนดไวแ้ต่หากไม่

ตรงตามในเงื่อนไข if ก็จะข้ามไปท าตามค าสั่งในเงื่อนไข else

โปรแกรมช าระเงินสินค้า | แลกเปลี่ยนธนบัตรและเหรียญ รายละเอียด

Page 7: Payment Program

โปรแกรมช าระเงินสินค้า | แลกเปลี่ยนธนบัตรและเหรียญ โฟลว์ชาร์ต

เริ่มต้น

รับค่าราคาสินค้า

ผลรวม=ราคาสินค้า+ผลรวม

ราคา

สินค้า

!= 0

แสดงผลรวม,รับค่าเงิน

จากลูกค้า

i= 0; i < 9; i++

จ านวนธนบัตรและเหรียญ[i] = เงินทอน/ค่าเงินในarray[i];

เงินทอน = เงินทอน%ค่าเงินในarray[i]

เงินทอน=ผลรวม-เงินจากลูกค้า

รับค่าจ านวนเงิน

Switch

case

รับค่าเงินเหรียญ รับค่าเงินธนบัตร

จ านวนเหรียญ=จ านวนเงิน/ค่าเงินเหรียญ จ านวนธนบัตร=จ านวนเงิน/ค่าเงินธนบัตร

แสดงผลจ านวนเหรียญ แสดงผลจ านวนธนบัตร

ใช่ ไม่ใช่

ใช่

ไม่ใช่

1 2

1 2

Switch

case

Page 8: Payment Program

โปรแกรมช าระเงินสินค้า | แลกเปลี่ยนธนบัตรและเหรียญ โฟลว์ชาร์ต

สิ้นสุด

แสดงผลเงินทอนและ

จ านวนธนบัตรและ

เหรียญที่ต้องทอน

check !=

false

Do you want to continue [y / n]

THANK YOU

ไม่ใช่

ใช่

Page 9: Payment Program

โปรแกรมช าระเงินสินค้า | แลกเปลี่ยนธนบัตรและเหรียญ ผลลัพธ ์

ให้ผู้ใช้เลือกการท างาน

กด 1 เพื่อช าระสินค้า

กด 2 เพื่อแลกเงิน

เมื่อกด 1 ท าการป้อน

ข้อมูลราคาสินค้า

ทั้งหมด หากป้อนครบ

ทุกชิ้น กด 0

โปรแกรมจะแสดงราคา

สินค้าทั้งหมด จากนั้น

จึงป้อนจ านวนเงินที่รับ

จากลูกค้า โปรแกรม

จะแสดงผลเงินทอน

พร้อมรายละเอียด

จ านวนธนบัตรและ

จ านวนเหรียญ

Page 10: Payment Program

โปรแกรมช าระเงินสินค้า | แลกเปลี่ยนธนบัตรและเหรียญ ผลลัพธ ์

เมื่อกด 2 ท าการป้อนจ านวน

เงิน จากนั้นจึงเลือก กด 1

เพื่อแลกเหรียญ ท าการเลือก

ชนิดเหรียญ แสดงผลจ านวน

เหรียญ

เมื่อกด 2 ท าการป้อนจ านวน

เงิน จากนั้นจึงเลือก กด 2

เพื่อแลกธนบัตร ท าการเลือก

ชนิดธนบัตร แสดงผลจ านวน

ธนบัตร

ต้องการท างานต่อหรือไม่

- กด y หรือ Y เพื่อท างานต่อ

- กด n หรือ N หยุดการ

ท างาน

Page 11: Payment Program

โปรแกรมช าระเงินสินค้า | แลกเปลี่ยนธนบัตรและเหรียญ อธิบายโค้ด

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;

ก าหนดตัวแปรต่างๆ ที่จะใช้ในการ

ท างานของโปรแกรม

Page 12: Payment Program

โปรแกรมช าระเงินสินค้า | แลกเปลี่ยนธนบัตรและเหรียญ อธิบายโค้ด

รับค่าเพ่ือเลือก 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)

Page 13: Payment Program

โปรแกรมช าระเงินสินค้า | แลกเปลี่ยนธนบัตรและเหรียญ อธิบายโค้ด

{

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 ให้ท า

Page 14: Payment Program

โปรแกรมช าระเงินสินค้า | แลกเปลี่ยนธนบัตรและเหรียญ อธิบายโค้ด

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

Page 15: Payment Program

โปรแกรมช าระเงินสินค้า | แลกเปลี่ยนธนบัตรและเหรียญ อธิบายโค้ด

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

หลุดจากลูป แสดงผลจากการเก็บ

ข้อมูลในอาร์เรย์จ านวนธนบัตรหรือ

เหรียญ หยุดการท างาน

Page 16: Payment Program

โปรแกรมช าระเงินสินค้า | แลกเปลี่ยนธนบัตรและเหรียญ อธิบายโค้ด

เงื่อนไขเมื่อ 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)

Page 17: Payment Program

โปรแกรมช าระเงินสินค้า | แลกเปลี่ยนธนบัตรและเหรียญ อธิบายโค้ด

{

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

ท าการค านวณหาจ านวนเหรียญ

แสดงผลจ านวนเหรียญ

หยุดการท างาน

Page 18: Payment Program

โปรแกรมช าระเงินสินค้า | แลกเปลี่ยนธนบัตรและเหรียญ อธิบายโค้ด

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 หลัก

Page 19: Payment Program

โปรแกรมช าระเงินสินค้า | แลกเปลี่ยนธนบัตรและเหรียญ อธิบายโค้ด

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

จบการท างาน

Page 20: Payment Program

โปรแกรมช าระเงินสินค้า | แลกเปลี่ยนธนบัตรและเหรียญ แลกเปลี่ยนเรียนรู ้

QUESTION

Page 21: Payment Program

L/O/G/O

www.themegallery.com

237214 PROGRAMMING FOR TEACHERS

T h a n k Y o u !