ชิ้นงาน รายงาน โปรแกรมสั่งกาแฟออนไลน์ ภาษาไพทอน (python gui)
ชิ้นงาน รายงาน โปรแกรมสั่งกาแฟออนไลน์ ภาษาไพทอน (python gui)
ผลลัพธ์ที่เกิดขึ้นจากการเรียนในรายวิชาการเขียนโปรแกรม 2 รหัสวิชา ว30297 ระดับชั้นมัธยมศึกษาปีที่ 5 ห้อง 7 โปรแกรมสั่งกาแฟออนไลน์
ผู้จัดทำ
- นางสาว วรัญลิณี กรงาม รหัสนักเรียน 37146
- นางสาว นันทิตา พรรมาตย์ รหัสนักเรียน 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) และรูปเล่มรายงาน