利用C++开发一个迷你的英文单词录入和测试小程序

主要是利用最近学的一些C++ 11新特性,完全虚构一个小程序来练练手,其实也不是完全虚构也有一点点用处。

主要参考的书:

深入应用C++11 -- 代码优化与工程实践

先描述需求

1. 可以录入英文单词和翻译的内容

2. 可以等录入的多了,挑选一些出来做个小随机测试

3. 能查看所有的单词

准备条件

需要rapidjson ( 封装sqlite 需要用)

需要slite3对应的lib和dll

需要根据深入应用C++11 把sqlite3封装类给整出来,笔者根据书上照葫芦画瓢,画了部分。

利用C++开发一个迷你的英文单词录入和测试小程序_第1张图片

利用C++开发一个迷你的英文单词录入和测试小程序_第2张图片

有了这个类,写sqlite3的小程序简直太爽了。

插入

查询

到目前,我们有了sqlite3 操作的封装的类,以及一个小需求。

C++11 的可变参数,好像很厉害的样子,感觉这个要是精通了,可以写一些高复用的库。

剩下来,我们来看看如何构建这个小程序

总体设计

这里设计了一个状态机,vocabularyMachine, 有多个状态,录入单词模式,查看模式,考试模式

利用C++开发一个迷你的英文单词录入和测试小程序_第3张图片

通过标准输入来驱动状态的变化。这里主要是为了掌握而构造的设计模式的场景。

选择模式,也是主菜单模式,主要处理用户输入,然后设置状态

利用C++开发一个迷你的英文单词录入和测试小程序_第4张图片

查看模式

利用C++开发一个迷你的英文单词录入和测试小程序_第5张图片

这里主要利用VocabularyMachine 以及内部状态类来实现(C++ 以及内部类)

利用C++开发一个迷你的英文单词录入和测试小程序_第6张图片

状态机持有数据库管理的对象。

主函数

利用C++开发一个迷你的英文单词录入和测试小程序_第7张图片

运行结果

利用C++开发一个迷你的英文单词录入和测试小程序_第8张图片

利用C++开发一个迷你的英文单词录入和测试小程序_第9张图片

总结

C++ 可变参数真的很强大

状态机模式,好像让程序变的更优雅一点了,至少跟过程程序设计相比

你可能感兴趣的:(c++,开发语言)