自从2015年开始,为了上课方便,我编写了一个课堂管理系统并陆续增加了很多功能,已连续使用7个学期,在使用过程中也经常修补和完善其中一些细节。这个软件也是《Python可以这样学》最后一章的完整案例,涉及tkinter、数据库、多线程、Word文件操作、Excel文件操作、进程管理、二进制序列化、Socket等内容,覆盖的知识面较广,除了可以使用,也可以作为一个完整的教学案例或实训项目。
教师端界面:
学生端界面:
第一次使用软件之前,首先应该导入学生名单和题库,由于最初这个软件是编写了自己用的,自己清楚每个注意事项,所以不会有问题。但是后来使用这个软件的老师越来越多,就暴露出一些小问题。例如,原来的代码没有对学生名单进行检查,而是直接导入,这样的话就很容易导致数据库里学生名单有重复。
代码原来的样子:
要解决这个问题很简单,只需要在导入之前先检查一下Excel文件中的学生名单是否在数据库中已存在,如果有冲突就拒绝导入,如果没有冲突就进行导入。捋清思路之后,对代码进行改写即可,尽可能地利用原有的代码,避免重复编写代码。
修改后代码:
代码修改之后,导入重复信息时的界面:
导入不冲突的信息时的界面: