[英]Write a text file using Python
im working on this question: Write a Python program that will allow the user to order items from a menu in a restaurant. 我正在研究这个问题:编写一个Python程序,该程序将允许用户从餐厅的菜单中订购商品。
The GUI should allow the customer to enter his or her name and telephone number. GUI应允许客户输入其姓名和电话号码。
The system must generate a random number to indicate the Order Number. 系统必须生成一个随机数以指示订单号。
The customer should be allowed to choose: (1) any items from the salad menu, (2) any one of the starter menu, (3) any one of the main courses 应当允许客户选择:(1)沙拉菜单中的任何项目,(2)任何入门菜单中的任何一项,(3)任何主菜中的任何一个
When the user clicks the order button, the program should display the customer details (name and telephone number) as well as the details of the order based on his or her selections. 当用户单击订单按钮时,程序应显示客户详细信息(姓名和电话号码)以及基于其选择的订单详细信息。
There should be a field that will display the total amount of the order. 应该有一个显示订单总金额的字段。
6. The information, that is the order number and the Total amount of the order must be written to a text file after a successful transaction. 6.成功交易后,必须将信息(即订单号和订单总额)写入文本文件。 Take care not to over write the previous information in the text file.
注意不要在文本文件中覆盖以前的信息。
My program is working fine but I dnt know how to do bullet 6. Which is write the order number ad total amount to a text file without overwritting. 我的程序运行正常,但我不知道该怎么做。项目6。即将订单号广告总额写到文本文件中,而不会改写。
Here is my code: #Create a menu program 这是我的代码:#创建菜单程序
import random
from Tkinter import *
class App(Frame):
#GUI application
def __init__(self,master):
Frame.__init__(self,master)
self.grid()
self.create_widgets()
def create_widgets(self):
#Label to welcome the user
Label(self, text="Welcome to Costa's restaurant menu"
).grid(row=0, column=0, sticky=W)
#Label to request the name of the customer
Label(self, text="Customer Name: "
).grid(row=1, column=0, sticky=W)
self.ent_cust = Entry(self)
self.ent_cust.grid(row=1, column=1, sticky=W)
#Label to request the telephone number:
Label(self, text="Telephone number: "
).grid(row=1, column=2, sticky=W)
self.ent_tel = Entry(self)
self.ent_tel.grid(row=1, column=3, sticky=W)
#Label to generate a random order number
rnd = (int(random.randrange(50)) + 1)
Label(self, text=("Your order number " + str(rnd))).grid(row=0, column=2, sticky=W)
n = 4
#MENU items to choose from
#the salads
Label(self, text="Select any items from the salad menu: @R30").grid(row=n, column=0, sticky=W)
self.has_greensalad = BooleanVar()
# the green salad
Checkbutton(self, text="Special mixed green salad"
, variable=self.has_greensalad).grid(row=(n + 1), column=0, sticky=W)
#the blue cheese salad
self.has_bluecheese = BooleanVar()
Checkbutton(self, text="Blue cheese salad"
, variable=self.has_bluecheese).grid(row=(n + 1), column=1, sticky=W)
#the greek salad
self.has_greek = BooleanVar()
Checkbutton(self, text="Greek salad"
, variable=self.has_greek).grid(row=(n + 1), column=2, sticky=W)
#the starters
z = (n + 2)
Label(self, text="Select any one of the starter menu: @60:"
).grid(row=z, column=0, sticky=W)
#the oysters
self.startermenu = StringVar()
Radiobutton(self, text="6 oysters",
variable=self.startermenu, value="6 oysters"
).grid(row=(z + 1), column=0, sticky=W)
#the prawns
Radiobutton(self, text="Prawns",
variable=self.startermenu, value="Prawns"
).grid(row=(z + 1), column=1, sticky=W)
#chicken wings
Radiobutton(self, text="Chicken wings",
variable=self.startermenu, value="Chicken wings"
).grid(row=(z + 1), column=2, sticky=W)
#main course
x = (z + 3)
Label(self, text="Select any one of the main menu @ R150"
).grid(row=x, column=0, sticky=W)
self.maincourse = StringVar()
main_courses = ["Hamburger with chips", "Lasagne","Pasta Carbonara","Risotto alla milanese"]
column = 0
for main in main_courses:
Radiobutton(self,
text = main,
variable=self.maincourse,
value = main
).grid(row=(x + 1), column=column, sticky=W)
column += 1
q = (x + 5)
Button(self, text='Place the Order', command=self.determine_order).grid(row=q, column=1, sticky=W)
self.txt_order = Text(self, width=75, height=10, wrap=WORD)
self.txt_order.grid(row=(q + 1), column=0, columnspan=4)
Label(self, text="Total: R",
).grid(row=(q + 11)
, column=0, sticky=W)
self.txt_total = Text(self, width=8, height=1, wrap=NONE)
self.txt_total.grid(row=(q + 11), column=0)
def determine_order(self):
""" Fill text box with order based on user input. """
totalprice = 0
salads = 30
starters = 60
mainmenu = 150
name = self.ent_cust.get()
tel = self.ent_tel.get()
salads = ""
if self.has_greensalad.get():
salads += "Special mixed Green Salad\n"
totalprice = (totalprice + starters)
if self.has_bluecheese.get():
salads += "Blue cheese salad\n"
totalprice = (totalprice + starters)
if self.has_greek.get():
salads += "Greek Salad\n"
totalprice = (totalprice + starters)
if (salads == ""):
salads = "No salads ordered\n"
totalprice = (totalprice + 0)
startermenu = self.startermenu.get()
if (len(startermenu) == 0):
startermenu = "You didn't order a starter"
else:
totalprice = (totalprice + starters)
maincourse = self.maincourse.get()
if (len(maincourse) == 0):
maincourse = "You didn't order a main course"
else:
totalprice = (totalprice + mainmenu)
order = ((((((((name + " (") + tel) + ") ordered from the salad menu:\n") + salads) + "\nFrom the starters menu:\n ") + startermenu) + "\n\nFrom the main menu:\n") + maincourse)
self.txt_order.delete(0.0, END)
self.txt_order.insert(0.0, order)
self.txt_total.delete(0.0, END)
self.txt_total.insert(0.0, float(totalprice))
def main():
root = Tk()
root.title("Costa's Restaurant Menu")
app = App(root)
root.mainloop()
main()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.