考试小程序。输入用户名和密码,密码显示为*,点击退出按钮则关闭窗体,点击登录按钮进行用户名密码验证,如果用户名不对,在登录按钮下方显示红色文字“用户名不存在,请重新输入!”,密码不对则显示“密码错误,请重新输入!”,如验证成功则打开新窗体“考试界面”。(正确的用户名是admin,密码是123456) 考试界面从题库中随机抽取一题 题库: 题目:1+1等于?,选项:1,2,3,4 题目:3>2是?,选项:正确的,错误的 题目:2*3等于?,选项:2,4,6,8 点击提交按钮首先弹出是否提交对话框,如果点击确定,则弹出考试结果对话框(需要判断选项是否正确),如果再点击确定则关闭所有窗体。
时间: 2023-06-25 21:02:55 浏览: 168
以下是一个基础版的考试小程序的代码示例,仅供参考:
```python
import tkinter as tk
import random
# 题库
questions = [
{'question': '1+1等于?', 'options': ['1', '2', '3', '4'], 'answer': '2'},
{'question': '3>2是?', 'options': ['正确的', '错误的'], 'answer': '正确的'},
{'question': '2*3等于?', 'options': ['2', '4', '6', '8'], 'answer': '6'}
]
# 登录验证函数
def login():
username = username_entry.get()
password = password_entry.get()
# 验证用户名和密码
if username == 'admin' and password == '123456':
login_window.destroy()
exam_window = tk.Tk()
exam_window.title('考试界面')
exam_window.geometry('400x300')
# 随机抽取一道题目
question = random.choice(questions)
# 显示题目和选项
question_label = tk.Label(exam_window, text=question['question'])
question_label.pack()
var = tk.StringVar()
var.set('')
for option in question['options']:
option_radio = tk.Radiobutton(exam_window, text=option, variable=var, value=option)
option_radio.pack()
# 提交按钮
def submit():
# 弹出确认对话框
confirm = tk.messagebox.askyesno('确认', '确定要提交答案吗?')
if confirm:
# 判断答案是否正确
answer = var.get()
if answer == question['answer']:
result = '恭喜您,答对了!'
else:
result = '很遗憾,答错了!'
# 弹出结果对话框
tk.messagebox.showinfo('考试结果', result)
exam_window.destroy()
login_window.destroy()
submit_button = tk.Button(exam_window, text='提交', command=submit)
submit_button.pack()
elif username == 'admin':
tk.messagebox.showerror('错误', '密码错误,请重新输入!')
else:
tk.messagebox.showerror('错误', '用户名不存在,请重新输入!')
# 登录窗口
login_window = tk.Tk()
login_window.title('登录')
login_window.geometry('300x200')
username_label = tk.Label(login_window, text='用户名:')
username_label.pack()
username_entry = tk.Entry(login_window)
username_entry.pack()
password_label = tk.Label(login_window, text='密码:')
password_label.pack()
password_entry = tk.Entry(login_window, show='*')
password_entry.pack()
login_button = tk.Button(login_window, text='登录', command=login)
login_button.pack()
quit_button = tk.Button(login_window, text='退出', command=login_window.destroy)
quit_button.pack()
login_window.mainloop()
```
需要注意的是,这个程序仅仅是一个基础版,还有很多需要完善的地方,比如:
- 题目的数量和难度可以进一步扩展。
- 界面可以美化,让用户体验更加友好。
- 可以添加多个用户,并且保存用户的考试记录等信息。
- 题库可以存储在外部文件中,方便进行维护和管理。
- 等等。
希望这个示例能够帮助你理解如何使用 Python 和 tkinter 开发一个简单的考试小程序。
阅读全文