基于tkinter的智能问答系统
时间: 2023-12-16 15:28:02 浏览: 168
基于tkinter的智能问答系统需要以下步骤:
1.读取excel文件中的题目和答案。
2.创建一个GUI界面,展示题目和选项。
3.用户点击选项后,判断用户选择的答案是否正确。
4.根据用户选择的答案给出相应的提示。
5.用户点击下一题按钮,展示下一道题目。
以下是一个基于tkinter的智能问答系统的代码示例:
```python
import tkinter as tk
import pandas as pd
class Quiz:
def __init__(self, master):
self.master = master
self.master.title("智能问答系统")
self.question_number = 0
self.score = 0
self.questions = pd.read_excel("questions.xlsx")
self.create_widgets()
def create_widgets(self):
self.question_label = tk.Label(self.master, text="")
self.question_label.pack(pady=10)
self.option1 = tk.Button(self.master, text="", width=30, command=lambda: self.check_answer(self.option1["text"]))
self.option1.pack(pady=5)
self.option2 = tk.Button(self.master, text="", width=30, command=lambda: self.check_answer(self.option2["text"]))
self.option2.pack(pady=5)
self.option3 = tk.Button(self.master, text="", width=30, command=lambda: self.check_answer(self.option3["text"]))
self.option3.pack(pady=5)
self.option4 = tk.Button(self.master, text="", width=30, command=lambda: self.check_answer(self.option4["text"]))
self.option4.pack(pady=5)
self.next_button = tk.Button(self.master, text="下一题", width=20, command=self.next_question)
self.next_button.pack(pady=10)
self.display_question()
def display_question(self):
self.question_label.config(text=self.questions["Question"][self.question_number])
self.option1.config(text=self.questions["Option1"][self.question_number])
self.option2.config(text=self.questions["Option2"][self.question_number])
self.option3.config(text=self.questions["Option3"][self.question_number])
self.option4.config(text=self.questions["Option4"][self.question_number])
def check_answer(self, answer):
if answer == self.questions["Answer"][self.question_number]:
self.score += 1
tk.messagebox.showinfo("提示", "回答正确!")
else:
tk.messagebox.showinfo("提示", "回答错误!")
def next_question(self):
self.question_number += 1
if self.question_number == len(self.questions):
tk.messagebox.showinfo("提示", f"答题结束,您的得分是{self.score}分!")
self.master.destroy()
else:
self.display_question()
root = tk.Tk()
quiz = Quiz(root)
root.mainloop()
```