用tkinter写一个售票程序。根据所选不同景点的名称、门票价格以及输入的购买张数计算门票总价格。东方明珠、野生动物园、科技馆的门票价格分别是160、130、60元。 门票张数大于或等于50张,打8折; 门票张数大于或等于20张,打95折; 其他情况维持原价
时间: 2023-06-24 17:04:06 浏览: 89
好的,我来帮你写一个简单的售票程序。首先,我们需要导入`tkinter`模块:
```python
import tkinter as tk
```
然后,我们可以创建一个`Tk`对象,并设置窗口标题和大小:
```python
root = tk.Tk()
root.title("售票程序")
root.geometry("300x200")
```
接下来,我们可以创建一个`Label`控件来显示景点列表:
```python
label1 = tk.Label(root, text="请选择景点:")
label1.pack()
options = ["东方明珠", "野生动物园", "科技馆"]
var = tk.StringVar(value=options[0])
option_menu = tk.OptionMenu(root, var, *options)
option_menu.pack()
```
然后,我们可以创建一个`Label`控件来显示门票价格:
```python
label2 = tk.Label(root, text="门票价格:160元")
label2.pack()
```
接下来,我们可以创建一个`Entry`控件来输入购买张数:
```python
label3 = tk.Label(root, text="请输入购买张数:")
label3.pack()
entry = tk.Entry(root)
entry.pack()
```
然后,我们可以创建一个函数来计算门票总价格:
```python
def calculate_price():
ticket_price = {"东方明珠": 160, "野生动物园": 130, "科技馆": 60}
selected_option = var.get()
price_per_ticket = ticket_price[selected_option]
num_tickets = int(entry.get())
if num_tickets >= 50:
total_price = price_per_ticket * num_tickets * 0.8
elif num_tickets >= 20:
total_price = price_per_ticket * num_tickets * 0.95
else:
total_price = price_per_ticket * num_tickets
label4.config(text="总价为:{}元".format(total_price))
```
最后,我们可以创建一个`Button`控件来触发计算门票总价格的函数:
```python
button = tk.Button(root, text="计算总价", command=calculate_price)
button.pack()
label4 = tk.Label(root, text="")
label4.pack()
```
完整代码如下:
```python
import tkinter as tk
root = tk.Tk()
root.title("售票程序")
root.geometry("300x200")
label1 = tk.Label(root, text="请选择景点:")
label1.pack()
options = ["东方明珠", "野生动物园", "科技馆"]
var = tk.StringVar(value=options[0])
option_menu = tk.OptionMenu(root, var, *options)
option_menu.pack()
label2 = tk.Label(root, text="门票价格:160元")
label2.pack()
label3 = tk.Label(root, text="请输入购买张数:")
label3.pack()
entry = tk.Entry(root)
entry.pack()
def calculate_price():
ticket_price = {"东方明珠": 160, "野生动物园": 130, "科技馆": 60}
selected_option = var.get()
price_per_ticket = ticket_price[selected_option]
num_tickets = int(entry.get())
if num_tickets >= 50:
total_price = price_per_ticket * num_tickets * 0.8
elif num_tickets >= 20:
total_price = price_per_ticket * num_tickets * 0.95
else:
total_price = price_per_ticket * num_tickets
label4.config(text="总价为:{}元".format(total_price))
button = tk.Button(root, text="计算总价", command=calculate_price)
button.pack()
label4 = tk.Label(root, text="")
label4.pack()
root.mainloop()
```
运行程序,选择景点、输入购买张数,点击“计算总价”按钮,即可计算门票总价格。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)