parent
293d25f643
commit
a732fc342c
@ -1,39 +0,0 @@
|
|||||||
import tkinter as tk
|
|
||||||
import csv
|
|
||||||
import random
|
|
||||||
|
|
||||||
|
|
||||||
# 从CSV读取数据
|
|
||||||
def read_words_from_csv(file_path):
|
|
||||||
with open(file_path, 'r', encoding='utf-8') as csvfile:
|
|
||||||
reader = csv.reader(csvfile)
|
|
||||||
next(reader) # 跳过表头
|
|
||||||
return list(reader)
|
|
||||||
|
|
||||||
|
|
||||||
# 随机选取固定数量的单词
|
|
||||||
def select_random_words(words, count=5):
|
|
||||||
return random.sample(words, count)
|
|
||||||
|
|
||||||
|
|
||||||
# 创建并显示单词
|
|
||||||
def display_words(window, words):
|
|
||||||
for index, (number, word) in enumerate(words, start=1):
|
|
||||||
tk.Label(window, text=f"{number}: {word}", font=("Arial", 12)).pack(pady=5)
|
|
||||||
|
|
||||||
|
|
||||||
# 主程序
|
|
||||||
def main():
|
|
||||||
# 读取单词
|
|
||||||
words = read_words_from_csv('words.csv')
|
|
||||||
|
|
||||||
window = tk.Tk()
|
|
||||||
window.title("单词学习器")
|
|
||||||
|
|
||||||
tk.Button(window, text="开始背单词",
|
|
||||||
command=lambda: display_words(tk.Toplevel(), select_random_words(words, 5))).pack(pady=10)
|
|
||||||
window.mainloop()
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
@ -1,33 +0,0 @@
|
|||||||
# -*- coding: gbk -*-
|
|
||||||
import pymysql
|
|
||||||
import pandas as pd
|
|
||||||
# -*- coding: <encoding name> -*-
|
|
||||||
|
|
||||||
|
|
||||||
db_config = {
|
|
||||||
'host': 'localhost',
|
|
||||||
'port': 3306,
|
|
||||||
'user': 'root',
|
|
||||||
'password': '21412030117',
|
|
||||||
'database': 'word',
|
|
||||||
'charset': 'utf8mb4',
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
try:
|
|
||||||
connection = pymysql.connect(**db_config)
|
|
||||||
cursor = connection.cursor()
|
|
||||||
extracted='data.csv'
|
|
||||||
data_to_insert= pd.read_csv(extracted)
|
|
||||||
|
|
||||||
|
|
||||||
for item in data_to_insert:
|
|
||||||
xuhao, neirong = item
|
|
||||||
insert_sql = "INSERT INTO word (xuhao, neirong) VALUES (%s, %s)"
|
|
||||||
cursor.execute(insert_sql, (xuhao, neirong))
|
|
||||||
|
|
||||||
|
|
||||||
connection.commit()
|
|
||||||
print("数据插入成功!")
|
|
||||||
except Exception as e:
|
|
||||||
print(f"数据插入失败,错误信息:{e}")
|
|
@ -1,32 +1,33 @@
|
|||||||
import tkinter as tk
|
# -*- coding: gbk -*-
|
||||||
from tkinter import messagebox
|
import pymysql
|
||||||
|
import pandas as pd
|
||||||
# 单词列表
|
# -*- coding: <encoding name> -*-
|
||||||
words = ["apple", "banana", "cherry", "date", "elderberry"]
|
|
||||||
|
|
||||||
class WordApp(tk.Tk):
|
db_config = {
|
||||||
def __init__(self):
|
'host': 'localhost',
|
||||||
super().__init__()
|
'port': 3306,
|
||||||
self.title("单词学习")
|
'user': 'root',
|
||||||
self.current_word_index = 0
|
'password': '21412030117',
|
||||||
self.word_label = tk.Label(self, text="", font=("Helvetica", 20))
|
'database': 'word',
|
||||||
self.word_label.pack(pady=20)
|
'charset': 'utf8mb4',
|
||||||
self.create_buttons()
|
}
|
||||||
|
|
||||||
def create_buttons(self):
|
|
||||||
self.know_button = tk.Button(self, text="认识", command=self.show_next_word, width=10)
|
try:
|
||||||
self.not_know_button = tk.Button(self, text="不认识", command=self.show_next_word, width=10)
|
connection = pymysql.connect(**db_config)
|
||||||
self.know_button.pack(side=tk.LEFT, padx=10, pady=10)
|
cursor = connection.cursor()
|
||||||
self.not_know_button.pack(side=tk.RIGHT, padx=10, pady=10)
|
extracted='words.csv'
|
||||||
|
data_to_insert= pd.read_csv(extracted)
|
||||||
def show_next_word(self):
|
|
||||||
if self.current_word_index < len(words):
|
|
||||||
self.word_label.config(text=words[self.current_word_index])
|
for item in data_to_insert:
|
||||||
self.current_word_index += 1
|
xuhao, neirong = item
|
||||||
else:
|
insert_sql = "INSERT INTO word (xuhao, neirong) VALUES (%s, %s)"
|
||||||
messagebox.showinfo("结束", "所有单词已学习完毕!")
|
cursor.execute(insert_sql, (xuhao, neirong))
|
||||||
self.destroy()
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
connection.commit()
|
||||||
app = WordApp()
|
print("数据插入成功!")
|
||||||
app.mainloop()
|
except Exception as e:
|
||||||
|
print(f"数据插入失败,错误信息:{e}")
|
@ -1,47 +0,0 @@
|
|||||||
import tkinter as tk
|
|
||||||
import csv
|
|
||||||
import random
|
|
||||||
from struct import pack
|
|
||||||
|
|
||||||
|
|
||||||
# 从CSV读取数据
|
|
||||||
def read_words_from_csv(file_path):
|
|
||||||
with open(file_path, 'r', encoding='utf-8') as csvfile:
|
|
||||||
reader = csv.reader(csvfile)
|
|
||||||
next(reader) # 过表头
|
|
||||||
return list(reader)
|
|
||||||
|
|
||||||
# 随机选取固定数量的单词
|
|
||||||
def select_random_words(words, count=5):
|
|
||||||
return random.sample(words, count)
|
|
||||||
|
|
||||||
# 创建并显示单词及按钮
|
|
||||||
def display_words(window, words, word_index, total_words):
|
|
||||||
if word_index < total_words:
|
|
||||||
number, word = word_index + 1, words[word_index][1]
|
|
||||||
tk.Label(window, text=f"{number}: {word}", font=("Arial", 12)).pack(pady=5)
|
|
||||||
tk.Button(window, text="认识", command=lambda: next_word(window, word_index +1)).pack(side=tk.LEFT, padx=10, pady=5)
|
|
||||||
tk.Button(window, text="不认识", command=lambda: next_word(window, word_index)).pack(side=tk.RIGHT, padx=1, pady=5)
|
|
||||||
else:
|
|
||||||
tk.Label(window, text="所有单词已显示完毕", font=("Arial", 14, 'bold')).pack()
|
|
||||||
|
|
||||||
def next_word(window, word_index, total_words):
|
|
||||||
window.destroy()
|
|
||||||
new_window = tk.Toplevel()
|
|
||||||
new_window.title("单词学习")
|
|
||||||
display_words(new_window, word_index, total_words)
|
|
||||||
|
|
||||||
# 主程序
|
|
||||||
def main():
|
|
||||||
# 读取单词
|
|
||||||
words = read_words_from_csv('words.csv')
|
|
||||||
window = tk.Tk()
|
|
||||||
window.title("单词学习器")
|
|
||||||
tk.Button(window, text="开始背单词",
|
|
||||||
command=lambda: display_words(tk.Toplevel(), 0, len(words))),
|
|
||||||
pack(pady=10)
|
|
||||||
window.mainloop()
|
|
||||||
|
|
||||||
|
|
||||||
if __name__=='__main__':
|
|
||||||
main()
|
|
Loading…
Reference in new issue