文件结构:
背词历史.log 用来存放背过的单词,存放的格式是
年-月-日 时:分:秒
单词 词性 中文解释
生词本.txt 用来存放当下要背诵的单词列表,格式是
单词 词性 中文解释
历史记录.txt 用来当做按照时间查询生词的缓存,记录最后一个词查询的结果
其格式与 生词本.txt 一样
主要功能:
更新日志:
2018-9-4 背词宝version1.0 诞生
2018-9-4 背词宝version1.1 诞生
新增的内容:
1.新增背词功能,在背诵完生词后生词会自动从生词表删除,并且添加到背词历史中
2.新增历史生词查询功能,可以根据当天的年与日查询背诵完的生词
代码:
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
#include <iomanip> //输出控制头文件
#include <time.h>
#include <windows.h>
using namespace std;
class Recite{
fstream file;
fstream file1;
public:
Recite(); //创建生词本文件
void insert_word(); //添加单词
void query_all(); //查询所有单词
void query_by_time();//根据时间查历史记录
void query_history();//查询历史背词
void query_exact(); //精确查词
void delete_word(); //删除单词
int get_num(); //返回生词本中单词的数量
void recite_word(); //背生词
void update_log(); //更新日志
void run(); //总的服务界面
};
Recite::Recite() {
file.open("生词本.txt");
file.close();
file.open("背词历史.log");
file.close();
file.open("历史记录.txt");
file.close();
}
void Recite::insert_word() {
clock_t startTime, endTime;
file.open("生词本.txt", ios::out | ios::app); //在文件末尾处写入
if (file.is_open() == 1) {
//打开成功的话
startTime = clock();
char word[20], cha[5], trans[20]; //单词 词性 解释
cout << "请输入要写入错题本的单词:";
cin >> word;
cout << "请输入单词的词性:";
cin >> cha;
cout << "请输入单词的解释:";
cin >> trans;
file << word << " " << cha << " " << trans<<endl; //1就代表没有被删除的单词
file.close();
endTime = clock();
cout << "写入成功,总共用时" << (double)(endTime - startTime) / CLOCKS_PER_SEC << " s" << endl;
}
else {
cout << "打开文件失败" << endl;
system("pause");
}
}
void Recite::query_all() {
clock_t startTime, endTime;
startTime = clock();
char buffer[100];
int number = 0; //记录记录的条数
cout << " --------+----+---------" << endl;
cout << "|" << setw(8) << "单词";
cout << "|" << setw(4) << "词性";
cout << "|" << setw(8) << "翻译";
cout << "|" << endl;
cout << " --------+----+---------" << endl;
file.open("生词本.txt", ios::in | ios::app);
while (!file.eof()) {
file.getline(buffer, 100);
istringstream is(buffer);
string s1, s2, s3,s4;
is >> s1 >> s2 >> s3>>s4;
if (s1 != ""&&s2 != ""&&s3 != "") {
number++;
cout << "|" << setw(8) << s1;
cout << "|" << setw(4) << s2;
cout << "|" << setw(8) << s3;
cout << "|" << endl;
cout << " --------+----+---------" << endl;
}
}
endTime = clock();
cout << "总共有" << number