5,530
社区成员
发帖
与我相关
我的任务
分享
//导引律枚举
enum HOMINGLAW
{
PN, //比例导引律
APN, //修正比例导引律
TPN, //追踪法导引律
}
class GuidanceLaw
{
public:
GuidanceLaw();
virtual ~GuidanceLaw();
public:
virtual BOOL Initialize() = 0;
virtual void Advance() = 0;
//其它代码
…………
};
class PNGuidanceLaw : public GuidanceLaw
{
//具体实现
BOOL Initialize();
void Advance();
};
class APNGuidanceLaw : public GuidanceLaw
{
//具体实现
BOOL Initialize();
void Advance();
};
class TPNGuidanceLaw : public GuidanceLaw
{
//具体实现
BOOL Initialize();
void Advance();
};
class Guidance
{
public:
Guidance() : pGuidanceLaw(NULL)
{
}
Guidance(HOMINGLAW law)
{
switch(law)
{
case PN:
pGuidanceLaw = new PNGuidanceLaw;
break;
case APN:
pGuidanceLaw = new APNGuidanceLaw;
break;
case TPN;
pGuidanceLaw = new TPNGuidanceLaw;
break;
default:
pGuidanceLaw = new PNGuidanceLaw; //默认采用比例导引律
break;
}
}
virtual ~Guidance();
//其它操作代码
…………
protected:
GuidanceLaw* pGuidanceLaw;
…………
};
//1.查询
void word_input(); //接受用户输入
//实现中可能需要根据输入语言产生分支 (英译汉汉译英)
void word_search(char*); //在数据库中查询
void word_print(); //显示查找结果
void history_add(); //新增查询历史
void history_print(); //显示查询历史
//2. 测试
void test_mode(); //选择测试模式
{
int idx;
cin>>idx;
switch(idx)
{
case 1:
//给单词选含义
case 2:
//给例句选单词
//...
default:
}
}
void choose_meaning(); //给单词选含义
void choose_word(); //给例句选单词
//...
//想法:被测试单词的选择依据其等级
//3.添加例句
void sentence_locate(); //定位生词
void sentence_input(); //输入例句
void sentence_add(); //添加例句
void sentence_print(); //显示例句
//4.单词分级
void set_rank(); //设置(调整)分级
void auto_rank(); //自动调整等级
void manu_rank(); //手动调整等级
void get_rank(); //获取现有等级
/*
想法:分级方式:(根据艾宾浩斯)
0:生词,从未背过
1:今日学习
2:1天前
3:2天前
4:4天前
5:7天前
6:15天前
7:一个月前(之后不再安排复习)
等级改变规则:
复习通过,自动升级
复习未通过,根据情况清零为0,或降级,或平级
手动设置优先
问题:怎么保证手动设置优先?
*/
//5.调整记忆策略
void set_strategy(); //设置记忆策略
void load_strategy(); //载入记忆策略
void reset_strategy(); //重置记忆策略
void get_strategy(); //获取现有记忆策略
//可能的记忆策略
void daily_strg(); //每天固定数量
void ddl_strg(); //按截止日期
//...
//记忆策略下属规则
void daily_new(); //每日新词
void daily_review(); //每日复习
void set_test(); //安排测试
//...
//6.生词统计
void read_file(); //读取文本
void word_input(); //输入待统计单词
void word_search(char*); //查找待统计单词
void word_count(char*); //单词计数
void print_count(); //显示统计结果