|
发表于 2023-1-11 16:11:13
|
显示全部楼层
改进:
- import tkinter as tk
- import tkinter.messagebox
- import random
- import os
- try:
- import easygui
- except:
- try:
- if os.system("pip install easygui") == 1:
- raise Exception
- except:
- os.system("pip install --upgrade pip")
- try:
- if os.system("pip install easygui")==1:
- raise Exception
- except:
- print("安装失败")
- exit(-1)
- else:
- import easygui
- else:
- import easygui
- else:
- import easygui
- win=tk.Tk()
- win.title("计算题")
- win.geometry("270x130")
- win.resizable(width=False, height=False)
- var_num=tk.StringVar()
- var_num.set('')
- var_type=tk.StringVar()
- var_type.set('')
- def fuhao():
- pass
- def ques(a,b):
- if a=="1":
- fuhao= "+"
- elif a=="2":
- fuhao= "-"
- elif a=="3":
- fuhao= "×"
- else:
- fuhao= "÷"
- num=b
- _type=a
- score=0
- for i in range(num):
- a=random.randint(0,100)
- b=random.randint(0,100)
- y_ans=int(easygui.enterbox((a,fuhao,b),"计算题"))
- if fuhao=="+":
- r_ans=a+b
- elif fuhao=="-":
- r_answer=a-b
- elif fuhao=="×":
- r_answer=a*b
- else:
- r_answer=a/b
- if y_ans==r_ans:
- print("Right")
- score+=100/num
- else:
- print("Wrong")
- tk.messagebox.showinfo("得分",score)
- def start():
- ques_num=var_num.get()
- _type_num=var_type.get()
- if _type_num in ["1","2","3","4"]:
- ques_num=int(ques_num)
- ques(_type_num,ques_num)
- elif _type_num=="":
- tk.messagebox.showinfo("计算题",'输入的类型为空,如需帮助,请按"类型"按钮')
- else:
- tk.messagebox.showinfo("计算题",'没有更多类型了,如需帮助,请按"类型"按钮')
- def jst_exit():
- win.quit()
- win.destroy()
- def more():
- tk.messagebox.showinfo("类型","开发中...")
- def types():
- tk.messagebox.showinfo("类型","""1代表加法,2代表减法,3代表乘法,4代表除法
- 只需在题目类型输入框中填入对应的数字即可""")
- labname=tk.Label(win,text='题目数量:',width=80)
- labpwd=tk.Label(win,text='题目类型:',width=200)
- entname=tk.Entry(win,width=100,textvariable=var_num)
- entpwd=tk.Entry(win,width=100,textvariable=var_type)
- but_Ok=tk.Button(win,text='开始',command=start)
- but_Cancel=tk.Button(win,text='退出',command=jst_exit)
- but_quit=tk.Button(win,text='可选',command=more)
- but_type=tk.Button(win,text='类型',command=types)
- labname.place(x=20,y=10,width=80,height=20)
- labpwd.place(x=20,y=40,width=80,height=20)
- entname.place(x=100,y=10,width=140,height=20)
- entpwd.place(x=100,y=40,width=80,height=20)
- but_Ok.place(x=30,y=80,width=50,height=20)
- but_Cancel.place(x=110,y=80,width=50,height=20)
- but_quit.place(x=190,y=80,width=50,height=20)
- but_type.place(x=190,y=40,width=50,height=20)
- win.mainloop()
复制代码 |
|