ชิ้นงานภาษาไพทอน gui

ชิ้นงาน รายงาน โปรแกรมสั่งกาแฟออนไลน์ ภาษาไพทอน (python gui)

ชิ้นงาน รายงาน โปรแกรมสั่งกาแฟออนไลน์ ภาษาไพทอน (python gui)

ผลลัพธ์ที่เกิดขึ้นจากการเรียนในรายวิชาการเขียนโปรแกรม 2 รหัสวิชา ว30297 ระดับชั้นมัธยมศึกษาปีที่ 5 ห้อง 7 โปรแกรมสั่งกาแฟออนไลน์

ผู้จัดทำ

  1. นางสาว วรัญลิณี  กรงาม  รหัสนักเรียน 37146
  2. นางสาว นันทิตา  พรรมาตย์ รหัสนักเรียน 39435

ครูผู้สอนนายวุฒิชัย  แม้นรัมย์  กลุ่มสาระการเรียนรู้วิทยาศาสตร์และเทคโนโลยี


รายงานเล่มนี้จัดทำขึ้นเพื่อแสดงให้เห็นถึงผลลัพธ์ที่เกิดขึ้นจากการเรียนใน รายวิชาการเขียนโปรแกรม 2 รหัสวิชา ว30291 ซึ่งเรียนด้วยภาษา Python ด้วยรูปแบบการเรียนในรูปแบบออนไลน์ และมีการปฏิบัติงาน เป็นกลุ่ม กลุ่มละ 3-4 คน ผลที่เกิดจากการเรียนด้วยรูปแบบการสอนที่มีประสิทธิภาพ ส่งผลให้นักเรียนสามารถ เขียนโปรแกรมออกมาได้เป็นรูปธรรมที่ชัดเจน มีความเข้าใจในชุดคำสั่งต่าง ๆ ที่ได้เขียนขึ้นมา
ขอขอบคุณผู้ที่สนใจศึกษาเนื้อหาจากเอกสารรายงานเล่มนี้ และหวังเป็นอย่างยิ่งว่ารายงานเล่มนี้จะเกิดประโยชน์ต่อผู้ที่สนใจศึกษา ขอขอบคุณ ครูวุฒิชัย แม้นรัมย์ ครูกลุ่มสาระการเรียนรู้วิทยาศาสตร์และเทคโนโลยี โรงเรียนธัญบุรี หากรายงานมีข้อผิดพลาดประการใด ผู้จัดทำขอน้อมรับไว้และขออภัยมา ณ ที่นี้ด้วย

ชุดคำสั่ง โปรแกรมสั่งกาแฟออนไลน์ ภาษาไพทอน (python gui)

 

from asyncio.windows_events import NULL
from tkinter import ttk
from tkinter import messagebox
from tkinter import *

coffeebuttoncheck = 0
coffeelist = ["เอสเปรสโซ", 'อเมริกาโน', "ลาเต้", "คาปูชิโน", "มอคค่า", "มัคคิอาโต", "แฟลทไวท์", "อัฟโฟกาโต"]
typecoffeecheck = ""
typecoffeelist = ["ร้อน", "เย็น", "ปั่น"]
sweetlist = ["ไม่หวาน", "หวานน้อย", "หวานปกติ", "หวานมากกว่าปกติ"]
totalprice = 0

class Coffee:
    def __init__(self, hot_s, hot_m, hot_l, cold_s, cold_m, cold_l, blend_s, blend_m, blend_l):
        self.hot_s = hot_s
        self.hot_m = hot_m
        self.hot_l = hot_l
        self.cold_s = cold_s
        self.cold_m = cold_m
        self.cold_l = cold_l
        self.blend_s = blend_s
        self.blend_m = blend_m
        self.blend_l = blend_l

EspressoPrice = Coffee(35, 45, 55, 55, 65, 75, 60, 70, 80)
AmericanoPrice = Coffee(25, 35, 45, 40, 50, 60, 45, 55, 65)
LattePrice = Coffee(50, 60, 70, 60, 70 ,80, 65, 75, 85)
CappuccinoPrice = Coffee(45, 55, 65, 55, 65, 75, 60, 70, 80)
MochaPrice = Coffee(50, 60, 70, 65, 75, 85, 70, 80, 90)
MacchiatoPrice = Coffee(50, 60, 70, 65, 75, 85, 75, 85, 95)
FlatwhitePrice = Coffee(55, 60, 70, 65, 75, 85, 75, 85, 95)
AffogatoPrice = Coffee(80, 100, 120, 90, 110, 130, 110, 130, 150)

coffeepricelist = [EspressoPrice, AmericanoPrice, LattePrice, CappuccinoPrice, MochaPrice, MacchiatoPrice, FlatwhitePrice, AffogatoPrice]

#ฟังก์ชันเมนูกาแฟ------------------------------------------------------------------------

def ChangeAllButtonColor():
    global coffeebuttonlist
    for i in range(len(coffeebuttonlist)):
        coffeebuttonlist[i].config(bg="#D1D1D1")

def Coffee_func(coffeeindex):
    global coffeebuttonlist, coffeebuttoncheck
    ChangeAllButtonColor()
    coffeebuttonlist[coffeeindex].config(bg="#BFA2DB")
    coffeebuttoncheck = coffeeindex
    submitButton.config(state="normal")

#ฟังก์ชันระดับความหวาน--------------------------------------------------------------

def Sweet_func(event):
    #sweetnesslevellist = [0, 50, 100, 150]
    global sweetlist, sweetindex

    if sweetnessSlider.get() == 0:
        sweetindex = 0
        sweetnessLevelLabel.config(text=sweetlist[sweetindex])

    elif sweetnessSlider.get() == 50:
        sweetindex = 1
        sweetnessLevelLabel.config(text=sweetlist[sweetindex])

    elif sweetnessSlider.get() == 100:
        sweetindex = 2
        sweetnessLevelLabel.config(text=sweetlist[sweetindex])

    elif sweetnessSlider.get() == 150:
        sweetindex = 3
        sweetnessLevelLabel.config(text=sweetlist[sweetindex])

#ประเภทกาแฟ--------------------------------------------------------------------
def ChangeTypeButtonColor():
    global typebuttoncolor
    for j in range(len(typebuttoncolor)):
        typebuttoncolor[j].config(bg="#D1D1D1")

def hot_func():
    global coffeebuttoncheck, coffeepricelist, typecoffeelist, typecoffeecheck, totalprice
    typecoffeecheck = typecoffeelist[0]
    ChangeTypeButtonColor()
    hotButton.config(bg="#FF7878")
    if sizeVar.get() == "S":
        totalpriceVar.set(coffeepricelist[coffeebuttoncheck].hot_s)
        totalprice = coffeepricelist[coffeebuttoncheck].hot_s
    
    elif sizeVar.get() == "M":
        totalpriceVar.set(coffeepricelist[coffeebuttoncheck].hot_m)
        totalprice = coffeepricelist[coffeebuttoncheck].hot_m

    elif sizeVar.get() == "L":
        totalpriceVar.set(coffeepricelist[coffeebuttoncheck].hot_l)
        totalprice = coffeepricelist[coffeebuttoncheck].hot_l

def cold_func():
    global coffeebuttoncheck, coffeepricelist, typecoffeelist, typecoffeecheck, totalprice
    typecoffeecheck = typecoffeelist[1]
    ChangeTypeButtonColor()
    coldButton.config(bg="#9ADCFF")
    if sizeVar.get() == "S":
        totalpriceVar.set(coffeepricelist[coffeebuttoncheck].cold_s)
        totalprice = coffeepricelist[coffeebuttoncheck].cold_s
    
    elif sizeVar.get() == "M":
        totalpriceVar.set(coffeepricelist[coffeebuttoncheck].cold_m)
        totalprice = coffeepricelist[coffeebuttoncheck].cold_m

    elif sizeVar.get() == "L":
        totalpriceVar.set(coffeepricelist[coffeebuttoncheck].cold_l)
        totalprice = coffeepricelist[coffeebuttoncheck].cold_l

def blend_func():
    global coffeebuttoncheck, coffeepricelist, typecoffeelist, typecoffeecheck, totalprice
    typecoffeecheck = typecoffeelist[2]
    ChangeTypeButtonColor()
    blendButton.config(bg="#CCF6C8")
    if sizeVar.get() == "S":
        totalpriceVar.set(coffeepricelist[coffeebuttoncheck].blend_s)
        totalprice = coffeepricelist[coffeebuttoncheck].blend_s
    
    elif sizeVar.get() == "M":
        totalpriceVar.set(coffeepricelist[coffeebuttoncheck].blend_m)
        totalprice = coffeepricelist[coffeebuttoncheck].blend_m

    elif sizeVar.get() == "L":
        totalpriceVar.set(coffeepricelist[coffeebuttoncheck].blend_l)
        totalprice = coffeepricelist[coffeebuttoncheck].blend_l

#ฟังก์ชันปุ่มยืนยัน------------------------------------------------------------------

def submit_func():
    global coffeelist, coffeebuttoncheck, typecoffeecheck, sweetlist, sweetindex, totalprice
    coffee = coffeelist[coffeebuttoncheck]
    sweetpercent = sweetnessSlider.get()
    sweetlevel = sweetlist[sweetindex]
    size = sizeVar.get()
    typecoffee = typecoffeecheck
    address = addressBox.get("1.0", "end")

    print(coffee, sweetpercent, sweetlevel, size, typecoffee, totalprice, address)
    messagebox.showinfo("ใบเสร็จ", f'\nคุณได้สั่งกาแฟ : {coffee}{typecoffee}\nไซส์ : {size}\nความหวาน : {sweetlevel} {sweetpercent}%\nที่อยู่จัดส่ง : {address}\nราคา : {totalprice} บาท')
    reset_func()
    submitButton.config(state="disabled")

def reset_func():
    global coffeelist, coffeebuttoncheck, typecoffeecheck, sweetlist, sweetindex, totalprice, coffeeindex
    coffeebuttoncheck=NULL
    coffeeindex = NULL
    ChangeAllButtonColor()
    sweetnessSlider.set(0)
    sweetnessLevelLabel.config(text="")
    sizeCombobox.set("")
    ChangeTypeButtonColor()
    addressBox.delete("1.0", "end")
    totalprice = 0
    totalpriceVar.set("")


#สร้างหน้าต่าง--------------------------------------------------------------------

windows = Tk()
windows.resizable(FALSE, FALSE)
windows.title("Waran's Coffee Shop")
windows.geometry("1250x700")
windows.option_add("*font", 'fc_iconic 20')

#กำหนดตัวแปร--------------------------------------------------------------------

sweetnessLevelVar = StringVar()
sizeVar = StringVar()
totalpriceVar = StringVar()

#เมนูกาแฟ ----------------------------------------------------------------------

coffee_list_canvas = Canvas(width=450, height=700, bg="#D3E4CD")
coffee_list_canvas.place(relx=0, rely=0)
coffee_list_canvas.create_line(451, 0, 451, 700, dash=(10, 1))
coffee_list_canvas.create_line(450, 0, 450, 700, dash=(10, 1))
coffee_list_canvas.create_line(449, 0, 449, 700, dash=(10, 1))

coffeemenuLabel = Label(windows, text="เมนูกาแฟ", bg="#D3E4CD", font="fc 20 bold")
coffeemenuLabel.place(relx=0.13, rely=0.02)

espressoButton = Button(windows, width=8, height=3, text="เอสเปรสโซ่", bg="#D1D1D1", command=lambda: Coffee_func(0))
espressoButton.place(relx=0.05, rely=0.11)

americanoButton = Button(windows, width=8, height=3, text="อเมริกาโน", bg="#D1D1D1", command=lambda:Coffee_func(1))
americanoButton.place(relx=0.2, rely=0.11)

cuppuccinoButton = Button(windows, width=8, height=3, text="คาปูชิโน", bg="#D1D1D1", command=lambda:Coffee_func(2))
cuppuccinoButton.place(relx=0.05, rely=0.33)

latteButton = Button(windows, width=8, height=3, text="ลาเต้", bg="#D1D1D1", command=lambda:Coffee_func(3))
latteButton.place(relx=0.2, rely=0.33)

mochaButton = Button(windows, width=8, height=3, text="มอคค่า", bg="#D1D1D1", command=lambda:Coffee_func(4))
mochaButton.place(relx=0.05, rely=0.55)

macchiatoButton = Button(windows, width=8, height=3, text="มัคคิอาโต", bg="#D1D1D1", command=lambda:Coffee_func(5))
macchiatoButton.place(relx=0.2, rely=0.55)

flatwhiteButton = Button(windows, width=8, height=3, text="แฟลทไวท์", bg="#D1D1D1", command=lambda:Coffee_func(6))
flatwhiteButton.place(relx=0.05, rely=0.77)

affogatoButton = Button(windows, width=8, height=3, text="อัฟโฟกาโต", bg="#D1D1D1", command=lambda:Coffee_func(7))
affogatoButton.place(relx=0.2, rely=0.77)

coffeebuttonlist = [espressoButton, americanoButton, cuppuccinoButton, latteButton, mochaButton, macchiatoButton, flatwhiteButton, affogatoButton]

#ระดับความหวาน -------------------------------------------------------------------

sweetnessCanvas = Canvas(width=400, height=350, bg="#FFC4E1")
sweetnessCanvas.place(relx=0.3615, rely=0)
sweetnessCanvas.create_line(0, 348, 400, 348, dash=(10, 1))
sweetnessCanvas.create_line(0, 349, 400, 349, dash=(10, 1))
sweetnessCanvas.create_line(0, 350, 400, 350, dash=(10, 1))

sweetnessCanvas.create_line(400, 0, 400, 350, dash=(10, 1))
sweetnessCanvas.create_line(399, 0, 399, 350, dash=(10, 1))
sweetnessCanvas.create_line(398, 0, 398, 350, dash=(10, 1))

sweetnessLabel1 = Label(windows, text="ความหวาน", fg="white", bg="#FFC4E1", font="fc 20 bold")
sweetnessLabel1.place(relx=0.48, rely=0.05)

sweetnessSlider = Scale(windows, orient=HORIZONTAL, length=250, from_=0, to=150, resolution=50, width=20, bg="#FFC4E1")
sweetnessSlider.place(relx=0.42, rely=0.15)
sweetnessSlider.bind('<B1-Motion>', Sweet_func)
sweetnessSlider.bind('<ButtonRelease-1>', Sweet_func)

percentLabel = Label(windows, text="%", bg="#FFC4E1", font="fc 20")
percentLabel.place(relx=0.64, rely=0.15)

sweetnessLabel2 = Label(windows, text="ระดับความหวาน :", fg="white", bg="#FFC4E1", font="fc 16")
sweetnessLabel2.place(relx=0.38, rely=0.35)

sweetnessLevelLabel = Label(windows, fg="white", bg="#FFC4E1", font="fc 16 bold")
sweetnessLevelLabel.place(relx=0.527, rely=0.35)

#ไซส์กาแฟ -----------------------------------------------------------------------

sizeCanvas = Canvas(width=400, height=350, bg="#B5EAEA")
sizeCanvas.place(relx=0.3615, rely=0.501)
sizeCanvas.create_line(400, 0, 400, 700, dash=(10, 1))
sizeCanvas.create_line(399, 0, 399, 700, dash=(10, 1))
sizeCanvas.create_line(398, 0, 398, 700, dash=(10, 1))

sizeLabel = Label(windows, text="Size", fg="white", bg="#B5EAEA", font="fc 20 bold")
sizeLabel.place(relx=0.495, rely=0.55)

sizelist = ["S", "M", "L"]
sizeCombobox = ttk.Combobox(windows, width=15, values=sizelist, state="readonly", textvariable=sizeVar)
sizeCombobox.place(relx=0.425, rely=0.65)

#ร้อนเย็นปั่น -----------------------------------------------------------------------

coffeetypeCanvas = Canvas(windows, width=400, height=350, bg="#F3F0D7")
coffeetypeCanvas.place(relx=0.683, rely=0)
coffeetypeCanvas.create_line(0, 348, 400, 348, dash=(10, 1))
coffeetypeCanvas.create_line(0, 349, 400, 349, dash=(10, 1))
coffeetypeCanvas.create_line(0, 350, 400, 350, dash=(10, 1))

typeLabel = Label(windows, text="ประเภทกาแฟ", font="fc 20 bold", fg="#5E454B", bg="#F3F0D7")
typeLabel.place(relx=0.775, rely=0.05)

hotButton = Button(windows, text="ร้อน☕", font="fc 20", bg="#D1D1D1", width=6, height=2, command=hot_func)
hotButton.place(relx=0.7, rely=0.2)

coldButton = Button(windows, text="เย็น?", font="fc 20", bg="#D1D1D1", width=6, height=2, command=cold_func)
coldButton.place(relx=0.8, rely=0.2)

blendButton = Button(windows, text="ปั่น?", font="fc 20", bg="#D1D1D1", width=6, height=2, command=blend_func)
blendButton.place(relx=0.9, rely=0.2)

typebuttoncolor = [hotButton, coldButton, blendButton]


#ที่อยู่ ----------------------------------------------------------------------------

addressCanvas = Canvas(windows, width=400, height=350, bg="#D8B384")
addressCanvas.place(relx=0.682, rely=0.5008)

addressLabel = Label(windows, text="ที่อยู่", font="fc 20 bold", fg="white", bg="#D8B384")
addressLabel.place(relx=0.82, rely=0.55)

addressBox = Text(windows, width=20, height=5)
addressBox.place(relx=0.72, rely=0.62)

submitButton = Button(windows, width=5, text="ยืนยัน", font="fc 20", fg="white", bg="#5E454B", command=submit_func)
submitButton.place(relx=0.9, rely=0.88)
submitButton.config(state="disabled")

totalLabel = Label(windows, text="ราคารวม :", font="fc 20", fg="white", bg="#D8B384")
totalLabel.place(relx=0.7, rely=0.892)


totalPriceLabel = Label(windows, textvariable=totalpriceVar, font="fc 20", fg="white", bg="#D8B384")
totalPriceLabel.place(relx=0.8, rely=0.894)


windows.mainloop()

ดาวน์โหลดไฟล์ >>> ชุดคำสั่ง โปรแกรมสั่งกาแฟออนไลน์ ภาษาไพทอน (python gui) และรูปเล่มรายงาน

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *