文章目录
前言
之前学习python的时候做了几个小程序,现在看起来还有不少可以将来用得上的地方,因此记录下来以备使用。
当时正好要鼓励小学生学习,所以做的都是练习题式的程序,包含拼音、汉字等等,本篇先是拼音练习。
一、拼音练习题功能需求
本项目用于小学生学习汉字、拼音。通过认读汉字,标拼音的方式,练习课堂所学。本项目完成的功能点如下:
1)能够显示课本要求掌握的汉字,在汉字上方提供标注拼音的编辑框,
2)在编辑框中提供键盘输入拼音功能,包括提供四声注音、选择注音位置功能
3)汉字及其拼音库以文件方式保存,能够增加新的汉字拼音。
4)具备出题和判分功能,学生完成所有汉字的注音后能够交卷,系统判定得分。得分不到100,可以再次检查修改后重新提交。
5)能够记录学生完成时间,能够将测验结果、用时、错题记录到日志中。
程序基本框架采用tkinter,用Label控件显示汉字,用Text控件作为拼音输入框,将这些控件都声明为数组(字典),就可以一次操作多个汉字及其拼音输入框了。
设置一次练习10个汉字,界面设计如下图。
上述功能中,汉字拼音库的保存以及键盘输入拼音的方法是两大关键点和难点,设计一套简便易用的汉字拼音库、一种便于学生掌握的键盘输入拼音方法,是本项目的关键。
下面重点介绍汉字拼音库的保存和键盘输入拼音这两个设计,其他功能在上述基础上比较简单,不再赘述,有兴趣的同学可以直接参考原始代码。
二、汉字拼音库的保存方式
1.拼音字符的存储方式
首先确定拼音字符的表达方式,其中声母与英文字符一致,韵母必须能够表达音调注音。由于标准字符库中就包含带注音的拼音韵母字符如ā、á、ǎ、à,因此程序中采用常量元组的字典来表达韵母:
声明:
aoeiuv = {
}
初始化赋值:
aoeiuv['a']=('a','ā','á','ǎ','à')
aoeiuv['o']=('o','ō','ó','ǒ','ò')
aoeiuv['e']=('e','ē','é','ě','è')