关于外甥女的新年礼物

目录

设计背景

设计思路

准备工作

库函数的使用

存储结构 

函数的使用 

背景的调试

语文检测系统 

数学检测系统

英语检测系统


设计背景

为了巩固小学一年级外甥女的学习, 寒假期间要每天给外甥女出数学题、提英语句子与英语单词、随机抽查语文生字进行组词与默写。前几天外甥女问我给她准备了什么新年礼物,我就想到了这个学习检测系统。解放家长的双手,你,值得拥有。

设计思路

本系统设计主要分为三大块:语文,数学,英语 

准备工作

库函数的使用

#include <iostream>//c ++ 必备
#include <fstream> //文件流函数
#include <windows.h>//提供清屏,字体与背景颜色支持,延迟运行代码
#include <stdlib.h>//随机数函数
#include <algorithm>//算法库函数,结合vector动态数组使用
#include <time.h>//提供随机数时间种子
#include <vector>//动态数组

存储结构 

bool vis_English_sentence[100010];//标记英语句子
bool vis_English_word[100010];//标记英语单词
bool vis_Chinese_item[100010]; //标记语文生字
vector<string> English_sentence;//存储英语句子
vector<string> English_word;//存储英语单词
vector<string> Chinese_item;//存储语文生字
vector<string> Chinese_word;//存储语文组词

函数的使用 

system("cls");//清空程序框内容
fstream infile;//定义文件流
infile.eof();//判断文件读取是否到末尾
infile >> s;//读取文件中的一个字符串
getline(infile,s);//读取文件中的一整行
infile.close()//关闭文件流
vector<Typename> name;//定义动态数组
name.push_back(t);//于动态数组尾部插入t
name.pop_back();//删除动态数组中的最后一个元素
sort(name.begin(),name.end());//对于动态数组进行排序
name.erase(unique(name.begin(),name.end()),name.end());//对于动态数组内的元素进行去重
srand((unsigned)time(NULL));//设置随机数种子
rand() % m;//随机[0,m)之间的数字
string类的find函数//用于查找字符串中是否含有某个字串

背景的调试

 使用比较护眼的黄底黑体字,保护孩子的眼睛

语文检测系统 

语文检测系统是随机从题库当中抽取生字,让孩子去读写,并用这个生字组三个以上的词。数据分别要用两个文件,一个存储所有的生字,一个存储所有的组词。在检测过程当中,可以指定抽查的生字个数,让孩子组词,若是组词数未达到标准,则从库中查找含有该字的词语进行答案展示,从而让孩子去加深记忆。

题库的抽取取决于选择的范围,可以只从一年级上学期学过的生字中抽,也可以从一年级到三年级所有学过的生字中抽,全靠用户自己选择。

生字的抽取是根据随机数的原理,随机出一个生字数组中的下标,为了避免出现随机下标重复的情况,设置vis_Chinese_item布尔数组来对于已经出现过生字进行标记,而后在随机枚举的过程中将自动跳过已经标记过的生字下标。

生字的组词则是对于词组库进行遍历,相当于在主串当中查字串的过程,若找到则输出即可 

数学检测系统

数学检测系统是根据用户的指定范围,随机生成含有加减法的算式,从而让孩子练习用。在随机的过程之中,注意不能出现0这种无意义的数字,且不能够在顺序进行中的任意一步出现负数,并且最终得到的结果一定要在指定范围内

为了实现对于数的枚举,可对rand函数进行如下操作:

假设想要得到的是R以内的加减法,而rand() % R只能对于区间[0,R)进行枚举,因此第一步将其变为rand() % (R + 1)使得枚举区间扩大至[0,R],第二步将其变为rand() % (2 * R + 1),将枚举区间调整为[0,2R],第三步将其变为rand() % (2 * R + 1) - R,枚举区间调整为[-R,R]

英语检测系统

英语检测系统包含对于英语单词的认读和对于英语句子的认读,家长选择所要检测的范围之后,相应范围的数据会被导入基础库,而后即可根据基础库中的内容随机抽取想要的数目进行英语检测

英语句子 

英语单词

总结

后续的数学测试会添加乘法和除法,以及分数的四则运算

猜你喜欢

转载自blog.csdn.net/couchpotatoshy/article/details/128519520