第十六周实验报告3
来源:互联网 发布:notepad pro mac 编辑:程序博客网 时间:2024/05/18 20:09
/
* (程序头部注释开始)* 程序的版权和版本声明部分* Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved.* 文件名称:电子词典* 作 者刘程程 * 完成日期:2012 年 06 月 06 日* 版 本 号: V1.0 * 对任务及求解方法的描述部分* 输入描述:。将文件中的内容读到对象数组中,由用户输入英文词。* 问题描述: 做一个简单的电子词典。在文件dictionary.txt 中,保存的是英汉对照的一个词典,词汇量近8000 个,英文、中文释义与词性间用’\t’隔开。建一个表示词条的类Word,Word 类的一个对象可以描述一个词,类对象数组可以存储词库。* 程序输出:显示中文释义。 * 程序头部的注释结束#include <fstream>#include <iostream>#include <string>using namespace std;//定义学生类class Word{public: void set(string e,string c,string wc); int compare(string);//英语部分与给定字符串比较,等于返回,大于返回,小于返回-1; void display();private: string english; string chinese; string word_class;};void Word::set(string e,string c,string wc){ english=e; chinese=c; word_class=wc;}void Word::display(){ cout<<english<<'\t'<<word_class<<'\t'<<chinese<<endl<<endl;}int Word::compare(string k){ return english.compare(k);}int BinSeareh(int low,int high,Word*w,string k);int main(){ Word words[8000];//用于保存词库 string e,c,wc; string key;//查询关键词 int wordsNum=0;//词库中词数 //将文件中的数据读入到对象数组中 ifstream infile("dictionary.txt",ios::in);//以输入的方式打开文件 if(!infile) { cerr<<"open error!"<<endl; exit(1); } while(!infile.eof()) { infile>>e>>c>>wc; words[wordsNum].set(e,c,wc); ++wordsNum; } //输入待查关键字并用二分法查找 do { cout<<"请输入待查询的关键字(英文):"<<endl; cin>>key; if(key!="0000") { int low=0,high=wordsNum-1;//置当前查找区间上、下届的初值 int index=BinSeareh(low,high,words,key); if(index==-1) cout<<"查无此词"<<endl<<endl; else words[index].display(); } } while(key!="0000"); cout<<"欢迎再次使用!"<<endl<<endl; system("pause"); return 0;}int BinSeareh(int low,int high,Word*w,string k){ int mid; while(low<=high) { mid=(low+high)/2; if(w[mid].compare(k)==0) { return mid;//查找成功返回 } if(w[mid].compare(k)>0) high=mid-1;//继续在w[low..mid-1]中查找 else low=mid+1;//继续在w[mid+1..high]中查找 } return -1;//当low>high时表示查找区间为空,查找失败}
- 第十六周实验报告3
- 第十六周实验报告3
- 第十六周实验报告3
- 第十六周实验报告3
- 第十六周实验报告3
- 第十六周实验报告3
- 第十六周实验报告任务3--电子词典
- 第十六周实验报告2
- 第十六周实验报告1
- 第十六周实验报告1
- 第十六周实验报告2
- 第十六周实验报告2
- 第十六周实验报告1
- 第十六周实验报告2
- 第十六周实验报告2.0
- 第十六周实验报告1
- 第十六周实验报告1
- 第十六周实验报告2
- inline Hook IdePortStartIo+80 的奇怪驱动
- 存储过程和函数区别
- OPNET网络仿真
- 重命名索引
- ios开发之从输入流里读入数据
- 第十六周实验报告3
- 重建索引
- iocomp winform 类型的使用笔记
- Win32k(1) 图形线程的初始化
- Win32k(2) 报文驱动的通信机制
- 删除索引
- 在水晶报表中怎样显示页合计
- WebApplication(Web应用程序)和WebSite(网站)的区别
- 注册消息码