启动程序:

  1. 检查csv文件中的level属性和date属性,若无则设置为0和当前date
  2. 检索符合当天date的单词, 将其导入到python_list中, 每个单词及其属性以dict形式保存
  3. 若用户设置了每日背词数量, 则优先推送level>0的单词, 否则不安排优先顺序

推送程序:

  1. 推送单词本体, 用户尝试回忆单词含义,
  2. 回车键显示含义, 用户认知正确则level+1, 同时计算date,
  3. 若用户认知错误则level清零, 同时安排单词到list末尾, 稍后再次回忆
  4. 记忆单词结束以后, 将list(包含已更新的level和date)写回到数据库中

导入功能:

用户可以自行增加单词(其中不含level和date属性)并merge到数据库中, 不会影响到已存在的的单词及其属性


虽然我还没有开始写程序, 但是我想到了一个问题, 当数据库中的单词数量日积月累地增多时, 检索单词的属性会变得缓慢甚至卡顿, 于是我想到了另一种方案:

date并不作为单词的属性而是作为文件名,

当天打开app时直接在文件夹中寻找名为date.csv的文件并读取到list中,

level值发生变化时计算相应的date:

  1. 若date.csv已存在则写入文件的末尾,
  2. 若不存在则创建一个date.csv并写入到第一行

导入程序则需要创建一个识别库(仅包含单词本身, 无其他属性), 避免导入重复的单词, 符合规则的单词直接进入date.csv文件

WordsLearnerPro Board