c++自制背单词应用

文件结构:

背词历史.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
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值