收藏 分享(赏)

(16)--C++程序设计案例教程第8章-案例-背单词.pdf

上传人:职教中国 文档编号:21416946 上传时间:2023-11-02 格式:PDF 页数:6 大小:146.61KB
下载 相关 举报
(16)--C++程序设计案例教程第8章-案例-背单词.pdf_第1页
第1页 / 共6页
(16)--C++程序设计案例教程第8章-案例-背单词.pdf_第2页
第2页 / 共6页
(16)--C++程序设计案例教程第8章-案例-背单词.pdf_第3页
第3页 / 共6页
亲,该文档总共6页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、8.7 案例背单词程序的设计与实现 任务要 求:该系统 是帮 助学 生背 诵单 词的 软件,要 求用 户可以 选择 背诵 的词 库,并可 以编 辑自 己的词库,系统 可以 给出 中文,让 学生 输入 其英 文,也 可输 出英 文让 学生 输入 中文。并 判定 词义是否正 确。如 不正 确给 出提 示并 要求 用户 重 新输入。如正 确给 以鼓 励。还 应有 词语 预览 功 能。基本功 能:(1)词 库的 维护(可 增加,至 少要 有 100 个单词)(2)课 程预 览(3)显 示中 文用 户输 入英 文的 背诵 方法(4)显 示英 文用 户输 入中 文的 背诵 方法(这两个 可任 选一 个完

2、成)背诵 成绩 的记 录。该 程 序 设 计 为多 文 件 结 构,使用 map 实 现中 文 和 英 文 的对 照 管 理,基 中 核 心 功能 由MainFrame 类 来实 现。MainFrame 类的 结构 如图所 示。图 8.2 MainFrame 类模型 程序 8-14:背单 词程 序的 实现 程序为 多文 件结 构,包含 的程序 文 件有 3 个,MainFrame.h,MainFrame.cpp 和 含有 main函数的 主文 件 main.cpp,另 外 还有 一个 存放 词典信 息的 文本 文件 dict.txt。1.main.cpp 代 码清 单#includestdaf

3、x.h#include MainFrame.h int main()MainFrame mf;mf.ShowMenu();return 0;2.MainFrame.h 代码 清单#include#include/关 联容 器 是以 红黑 树基 础 using namespace std;class MainFrame class MainFrame ModelMainFrame#mode:int#Dict:map+MainFrame()+MainFrame()+InitDict():void+CoursePreview():void+DictMaintainance():void+Test()

4、:void+ShowMenu():void+AddWord():void protected:int mode;map Dict;public:MainFrame();MainFrame();void InitDict();/初 始化 字典 void CoursePreview();/课程 预览 void DictMaintainance();/词 库维 护 void Test();/开始 测试2 void ShowMenu();/显 示主 界面 void AddWord();/添 加单 词;3.MainFrame.cpp 代 码清 单#include stdafx.h#include Mai

5、nFrame.h#include/文件 流#include#include/标 准库#include/vector 内 存连 续 支持 随机访 问#include/指针#include/算法#include/分函 数和 类两 种用 途 using namespace std;MainFrame:MainFrame()MainFrame:MainFrame()void MainFrame:ShowMenu()int iOption;cout iOption;mode=iOption;while(!cin|iOption 2)/输入 的 正确判 断 cout iOption;mode=iOptio

6、n;cin.clear();cin.sync();/system(cls);cout endl;cout endl;cout 我爱背单 词 endl;cout 1.课程 预览 endl;cout 2.词库 维护 endl;cout 3.开始 测试 endl;cout 4.添加 单词 endl;cout 5.退出 程序 endl;cout endl;cout iOption;while(!cin|iOption 5)cout iOption;InitDict();switch(iOption)case 1:/课 程预 览 CoursePreview();break;case 2:/词 库维 护

7、DictMaintainance();break;case 3:/开 始测 试 Test();break;case 4:/修 改单 词 AddWord();break;case 5:/返 回目 录 exit(0);/初 始化 字典 void MainFrame:InitDict()ifstream ifs;Dict.clear();ifs.open(dict.txt);string strEnglish;string strChinese;while(!ifs.eof()/判断 文件 指针 是否 到结 尾 ifs strEnglish strChinese;switch(mode)case 1

8、:DictstrEnglish=strChinese;break;case 2:DictstrChinese=strEnglish;break;ifs.close();/课 程预 览 void MainFrame:CoursePreview()system(cls);/清屏 map:iterator itr;/迭代 int i=1;for(itr=Dict.begin();itr!=Dict.end();+itr)cout i+.t first:second endl;/补 返回 主界 面的 代码 getchar();system(pause);ShowMenu();/词库(字典)维护 voi

9、d MainFrame:DictMaintainance()string strEnglish,strChinese;while(1)cout strEnglish strChinese;if(strEnglish=0)break;switch(mode)case 1:DictstrEnglish=strChinese;break;case 2:DictstrChinese=strEnglish;break;ofstream ofs;ofs.open(dict.txt);map:iterator itr;for(itr=Dict.begin();itr!=Dict.end();+itr)ofs

10、 first second endl;getchar();ShowMenu();ofs.close();system(pause);/开 始测 试,每次 随机 产生8 道题 void MainFrame:Test()system(cls);cout 开始测 试 endl;/由于map 不支 持随 机取 值,所以 现将map 中 的所有key 存放到vector 中;vector Question;string strAnswer;map:iterator itr;for(itr=Dict.begin();itr!=Dict.end();+itr)Question.push_back(itr-f

11、irst);/将vector 随机 乱序 random_shuffle(Question.begin(),Question.end();/显 示提 示 switch(mode)case 1:cout 请输出 所给 英文 的中 文解 释 endl;break;case 2:cout 请输出 所给 中文 的英 文单 词 endl;break;/显示8 道 题目,并 答题 记录 分数 int Score=0;for(int i=0;i8;+i)cout Questioni strAnswer;if(DictQuestioni=strAnswer)Score+;cout 回答正 确!endl;else

12、 cout 回答错 误!endl;cout 本次测 试得 分为:Score endl;getchar();ShowMenu();system(pause);/暂停/添 加单 词 void MainFrame:AddWord()string english;string chinese;system(cls);cout english;/查 找该 单词 是否 已经 存在 map:iterator iter;iter=this-Dict.find(english);if(iter!=Dict.end()cout 单词 english 已经存在!endl;cout 添加失 败 endl;system

13、(pause);return;cout chinese;switch(mode)case 1:Dictenglish=chinese;break;case 2:Dictchinese=english;break;cout 成功添 加新 单词!endl;getchar();ShowMenu();system(pause);return;4.dict.txt 文件 部分 内容 如下:0 00 00 0 abandonment 放弃 abide 遵守 zero 零 zone 地带 zoo 动物 园 爱 love 包括 include 宝石 gem 不公平 的 unfair 参数 parameter

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报