[Asm] 纯文本查看 复制代码
import tkinter as tk
from tkinter import ttk
from tkinter import messagebox
def calculate_interest():
try:
amount = float(entry_amount.get())
rate = float(entry_rate.get())
months = int(entry_months.get())
# 年利率 → 月利率
monthly_rate = rate / 100 / 12
# 简单利息(活期等通常为单利)
interest = amount * monthly_rate * months
total = amount + interest
entry_interest.delete(0, tk.END)
entry_interest.insert(0, f"{interest:.2f}")
entry_total.delete(0, tk.END)
entry_total.insert(0, f"{total:.2f}")
except ValueError:
messagebox.showerror("输入错误", "请输入正确的数字!")
def reset_fields():
entry_amount.delete(0, tk.END)
entry_rate.delete(0, tk.END)
entry_months.delete(0, tk.END)
entry_interest.delete(0, tk.END)
entry_total.delete(0, tk.END)
combo_currency.set("人民币")
combo_type.set("活期")
# 主窗口
root = tk.Tk()
root.title("银行存款利息计算器")
root.geometry("400x420")
# --------------- 布局区域 ----------------
tk.Label(root, text="币种:", anchor="w").place(x=30, y=30)
combo_currency = ttk.Combobox(root, values=["人民币", "美元", "欧元"])
combo_currency.place(x=140, y=30)
combo_currency.set("人民币")
tk.Label(root, text="期限种类:", anchor="w").place(x=30, y=80)
combo_type = ttk.Combobox(root, values=["活期", "定期"])
combo_type.place(x=140, y=80)
combo_type.set("活期")
tk.Label(root, text="存款金额(元):").place(x=30, y=130)
entry_amount = tk.Entry(root)
entry_amount.place(x=140, y=130)
entry_amount.insert(0, "0")
tk.Label(root, text="年利率(%):").place(x=30, y=180)
entry_rate = tk.Entry(root)
entry_rate.place(x=140, y=180)
entry_rate.insert(0, "0")
tk.Label(root, text="存期(月):").place(x=30, y=230)
entry_months = tk.Entry(root)
entry_months.place(x=140, y=230)
entry_months.insert(0, "0")
# 按钮
btn_submit = tk.Button(root, text="提交", bg="#FF5722", fg="white", width=10, command=calculate_interest)
btn_submit.place(x=80, y=280)
btn_reset = tk.Button(root, text="重置", bg="#FF9800", fg="white", width=10, command=reset_fields)
btn_reset.place(x=200, y=280)
# 输出区域
tk.Label(root, text="利息(元):").place(x=30, y=330)
entry_interest = tk.Entry(root)
entry_interest.place(x=140, y=330)
tk.Label(root, text="本息合计(元):").place(x=30, y=380)
entry_total = tk.Entry(root)
entry_total.place(x=140, y=380)
root.mainloop()