博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第十四周项目4-电子词典
阅读量:5871 次
发布时间:2019-06-19

本文共 1236 字,大约阅读时间需要 4 分钟。

做一个简单的电子词典。在文件dictionary.txt中,保存的是英汉对照的一个词典,词汇量近8000个,英文与释义间用’\t’隔开。

编程序,将文件中的内容读到两个数组e[]和c[]中,分别代表英文和中文,由用户输入英文词,显示中文意思。

运行程序后,支持用户连续地查词典,直到输入“0000”结束。

/* *Copyright (c) 2014,烟台大学计算机学院 *All gight reserved. *文件名称:temp.cpp *作者:邵帅 *完成时间:2014年11月29日 *版本号:v1.0*/#include
#include
#include
#include
using namespace std;int binary_search(string key,int n);string e[8000],c[8000];int num=0,i;string key;int main(){ //打开文件 ifstream infile("dictionary.txt",ios::in); if (!infile) { cout<<"打开文件失败!"; exit(1); } while (infile>>e[num]>>c[num]) num++; infile.close(); //开始查找 while (1) { cout<<"请输入要查询的词(0000结束):";cin>>key;if (key=="0000") { cout<<"感谢你的使用!"; break; }i=binary_search(key,num);if (i==-1) { cout<<"没有找到这个词..."<
<
key) high=mid-1; else low=mid+1; } return i;}
运行结果:

因为文件中的词汇已经排序,故在查找时,用二分查找法提高效率。

二分法查找:

int binary_search(string key,int n){	int i=-1;	int low=0,high=n-1,mid;	while (low<=high)	{		mid=(low+high)/2;//中间值		if (e[mid]==key)		{			i=mid;			break;		}		else if (e[mid]>key)		    high=mid-1;		else		    low=mid+1;	}	return i;如果都不符合则返回-1}
@ Mayuko

转载于:https://www.cnblogs.com/mayuko/p/4567604.html

你可能感兴趣的文章
车萝卜CEO马斌斌:真正自动驾驶的时候你更需要HUD和ARHUD ...
查看>>
表格存储Tablestore权威指南(持续更新)
查看>>
PostgreSQL 优化器代码概览
查看>>
Fescar TC-beigin流程
查看>>
OA系统门户是什么?全面解析信息门户的类别、难点和关键点
查看>>
推荐系统之业务架构总览
查看>>
python中is、id、==与浅拷贝和深拷贝
查看>>
Docker-pull
查看>>
轻松了解Kubernetes认证功能
查看>>
MySQL8.0 - 新特性 - Descending Index
查看>>
[雪峰磁针石博客]大数据Hadoop工具python教程2-python访问HDFS
查看>>
硅谷渐患“大城市”病,世界创新中心或将外移
查看>>
技术剖析 | Axonius为什么能获得 2019 RSAC创新大奖
查看>>
goldendict设置使用vlc或mplayer发音
查看>>
Android 轮播图从 0 到 1
查看>>
作业一——根据成绩计算出至少需要发多少奖金才能让所有的组满意。
查看>>
构建与定制:唯品会PaaS基于Kubernetes的实践
查看>>
阿里巴巴宣布成立半导体公司,要自主研发芯片
查看>>
IntelliJ IDEA 2019.1.1 预览版发布,以及对旧版本的更新
查看>>
将 AR 新创公司收入囊中后,Lyft 的自动驾驶脚步要加快了
查看>>