软考知识点复习工具
为了更好的复习软考,参考多方代码编写了这个复习工具,用python的tkinter,messagebox,xlrd,random写的。初始界面如下。
点击抽查,会在底下打印出一条知识点,右边黄色方框为计数部分,每到十次就会弹窗提示“休息”。
最后在cmd的py文件所在路径用pyinstaller -F -w heybitch.py导出exe文件即可。
源码如下:
from tkinter import * from tkinter import messagebox import xlrd import random on_hit = False counter = 0 def books(): workbook = xlrd.open_workbook('D:\WORK\CODE\高级信息系统项目管理师.xlsx') excel_sheet = workbook.sheet_by_index(0) # 获取行数和列数 nrows_num = excel_sheet.nrows ncols_num = excel_sheet.ncols i = 1 while i <= 10: if nrows_num > 10: # 生成随机数 random_num = random.randint(1, nrows_num - 1) num = int(excel_sheet.row(random_num)[0].value) number = excel_sheet.row(random_num)[1].value name = excel_sheet.row(random_num)[2].value res2.set(num) res.set(name) res1.set(number) i = i + 1 else: messagebox.showinfo("数据不足,请添加") break def count(): global on_hit if on_hit == False: def counting(): global counter counter += 1 label1.config(text=str(counter)) for i in [11, 21, 31, 41]: if counter == i: messagebox.showinfo('提示', '够钟休息啦,靓仔。') elif counter == 51: messagebox.showinfo('提示', 'coding time!') counting() def on_click(): books() count() root = Tk() root.title('信息系统项目管理师') root.geometry('580x600+500+250') # root.resizable(False,False)#固定窗体大小 button = Button(root, text='抽查', command=on_click) button.grid(row=0, column=0) root.canvas = Canvas(root, height=700, width=700) # 创建画布 root.image_file = PhotoImage(file="D:/work/text/lyf3.gif") # 加载图片文件 root.image = root.canvas.create_image(0, 0, anchor='nw', image=root.image_file) # 将图片置于画布上 root.canvas.grid(rowspan=4, columnspan=4) # 放置画布(为上端) label = Label(root, text='计数') label.grid(row=0, column=1) res = StringVar() res1 = StringVar() res2 = StringVar() entry = Entry(root, width='4', textvariable=res2) entry.grid(row=1, column=0) entry1 = Entry(root, width='45', textvariable=res1) entry1.grid(row=1, column=1) label1 = Label(root, text='0', bg='yellow', height='3', width='4') label1.grid(row=0, column=2) message = Message(root, bg='black', foreground='white', textvariable=res) message.grid(row=2, column=0, columnspan=3) root.mainloop()