理论教育 背单词小程序:项目实例

背单词小程序:项目实例

时间:2023-11-25 理论教育 版权反馈
【摘要】:应用程序级的文件编程时, 常用C 库函数, 下面以一个背单词程序的实现为例, 练习并体验文件编程, 重点体会文件的打开、 读写等基本操作的编程。基于对生活中背单词过程的分析设计, 只设计实现如下基础功能, 功能流程见图5.11。 用户可以设置背词时一组单词的数量。图5.11背单词程序流程图项目文件说明如下。图5.12背单词程序执行效果

背单词小程序:项目实例

应用程序级的文件编程时, 常用C 库函数, 下面以一个背单词程序的实现为例, 练习并体验文件编程, 重点体会文件的打开、 读写等基本操作的编程。 由于采用文件而不是采用数据库存放数据, 程序功能相对比较简单, 不提供按单词意思或词性等多条件查询操作。 基于对生活中背单词过程的分析设计, 只设计实现如下基础功能, 功能流程见图5.11。

(1) 用户可以设置背词时一组单词的数量。

(2) 提供单词收藏功能, 可以让用户选择背词典词库还是背收藏词库。

(3) 历史背诵位置记忆。

图5.11 背单词程序流程图

项目文件说明如下。

源代码文件: recitewords.c。

②词典文件: DICwords.dat。

③收藏词典文件: DICfavor.dat。

④参数配置文件: options。

⑤字典格式要求: 单词和解释各占一行。

options 文件中的参数含义见代码注释说明, 代码如下。(www.daowen.com)

需要说明的是, 标准输入(stdin)和标准输出(stdout)是典型的“行缓冲”代表, 输入和输出的字符先存放在缓冲区, 在遇到换行符时才执行真正的I/O 操作, 清除缓冲。 本程序中利用getchar()函数获取输入时, 程序在该处等待用户输入, 用户按下回车键才返回,而getchar 函数只取第一个字符作为函数返回值, 但用户输入的回车符号残留在了缓冲中并没有被清除; 同样, 调用scanf 获得输入时, 该函数不读取回车符, 同样也会将其遗留在缓冲中。 这些遗留在缓冲中的回车符在后续getchar 读入时被读取, 会干扰程序的执行逻辑, 所以为了清理这些符号, 我们在scanf 前和getchar 后又添加了一行getchar 调用“吃掉”缓冲区中多余的回车符。

本程序执行逻辑简单, 如果不更改参数, 可以一路回车流畅的执行。 如果需要修改参数, 只需根据提示输入Y 或y, 或相关数字即可。 程序运行效果图参见图5.12。

图5.12 背单词程序执行效果

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈