十六周实验报告(三)
来源:互联网 发布:安卓软件接口 编辑:程序博客网 时间:2024/05/18 18:16
/*【任务 3】电子词典 做一个简单的电子词典。在文件 dictionary.txt 中,保存的是英汉对照的一个词典,词汇量近 8000 个,英文、中文释义与词性间用’\t’隔开。建一个表示词条的类 Word,Word 类的一个对象可以描述一个词,类对象数组可以存储词库。将文件中的内容读到对象数组中,由用户输入英文词,显示中文释义。 提示:文件中的词汇已经排序,故在查找时,用二分查找法提高效率。 拓展 1(选做):允许用户运行程序后,连续地查词典,直到输入”0000”结束。 *//* (程序头部注释开始)* 程序的版权和版本声明部分* Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved.* 文件名称: dictionary.cpp * 作 者: 苗向前 * 完成日期: 2012 年 6 月 10 日* 版 本 号: V 3.0 * 程序头部的注释结束*/#include <fstream>#include <iostream>#include <string>using namespace std;class Word{public:string word;string chinese;string lexical;};void read_words(int num, Word words[]);void show_word(int index, Word words[]);void find_word(string key, int num, Word words[]);int main( ){Word words[7962];int num = 7962;string key;read_words(num, words);//读入文件中的数据//for (int i = 0; i < num; i++)//show_word(i, words);while (true){cout << "请输入要查的单词" << endl;cin >> key;if (key == "0000")break;find_word(key, num, words);}system("PAUSE");return 0;}//定义从文件读入数据函数void read_words(int num, Word words[]){ifstream infile("dictionary.txt", ios::in);if(!infile){cerr << "dictionary.txt open error!" << endl;system("PAUSE");exit(1);}for(int i = 0; i < num; i++){infile >> words[i].word >> words[i].chinese >> words[i].lexical;}infile.close();}void show_word(int index, Word words[]){cout << words[index].word << '\t' << words[index].chinese << '\t' << words[index].lexical << endl;}void find_word(string key, int num, Word words[]){int min = 0, max = num, mid;while (true){mid = (min+max) / 2;if(words[mid].word == key){show_word(mid, words);break;}else{if(key < words[mid].word){max = mid - 1;}else{min = mid + 1;}}if(min == max + 1){cout << "查无此词!" << endl;break;}}}/*请输入要查的单词jkghk查无此词!请输入要查的单词keykey 钥匙,关键,答案 n.请输入要查的单词0000请按任意键继续. . .*/
- 十六周实验报告(三)
- 十六周实验报告(二)
- 十六周实验报告(四)
- 十六周实验报告1.0
- 十六周实验报告1
- 十六周实验报告 任务一
- 十六周实验报告 任务二
- C++程序设计实验报告(二十六)
- 第十二周实验报告(三)
- 第十三周实验报告(三)
- 第十五周实验报告(三)
- 第十六周实验报告(三)
- 第十七周实验报告(三)
- 第十二周实验报告(任务三)
- 第十三周实验报告(任务三)
- 第十五周实验报告(任务三)
- 第十七周实验报告(任务三)
- 第二周实验报告(三)
- Python模块学习之time datetime模块
- 十六周实验报告(二)
- 解决TCP出现大量TIME_WAIT的方法
- 面试-你懂的
- 初学javascript设计模式(一)工厂模式第一遍阅读
- 十六周实验报告(三)
- WEB性能测试:你应该带上Visual Studio 2010
- 十六周实验报告(四)
- velocity中根据遍历次数判断取得值
- 这十月,与C++代码相伴的日子
- 十五周实验报告(一)
- 语音信号分析之重要工具: 线性预测分析
- Android C 直接調用JNI ->JAVA
- HDU 1166模仿大牛写的线段树