问题及代码

做一个简单的电子词典。在文件dictionary.txt中,保存的是英汉对照的一个词典,词汇量近8000个,英文与释义间用’\t’隔开。编程序,将文件中的内容读到两个数组e[]和c[]中,分别代表英文和中文,由用户输入英文词,显示中文意思。运行程序后,支持用户连续地查词典,直到输入“0000”结束,

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

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int find(int low,int high,char *word);char English[8000][20],Chinese[8000][20];int main()
{char word[20];int low,high,index,i=0;FILE *fp;fp=fopen("dictionary.txt","r");//打开文件if(fp==NULL){printf("error,can't open the file");exit(1);}//判断是否打开while( fscanf(fp,"%s\t%s",English[i],Chinese[i])!=EOF){i++;}fclose(fp);//单词及汉译输入数组while(1){printf("请输入要查找的单词(输入0000退出) ");scanf("%s",word);//输入关键词if(strcmp(word,"0000")==0){break;}else{low=0;high=i-1;index=find(low,high,word);}//二分法查找单词if(index>=0){printf("%s的中文意思是%s\n",word,Chinese[index]);printf("欢迎使用\n");}else{printf("查无此词\n");}}return 0;}
/******************************************************
功能描述  用于查找搜索的单词位置
输入参数  low :用于二分法查找的最小位置high:用于二分法查找最大位置word:要查找的单词
返回值  mid:确定英文单词的位置,确定汉译;-1:表示无此单词
其他说明  无
******************************************************/
int find(int low,int high,char *word)
{int mid;while(low<=high){mid=(low+high)/2;if(strcmp(word,English[mid])==0){return mid;}else if(strcmp(English[mid],word)>0){high=mid-1;}else{low=mid+1;}}return -1;
}

运行结果及测试(需要打开dictionary。txt)  第一组 word数组:success(汉译)

第二组word数组:zxc(查无此词)

第三组word数组:0000(退出)

知识点总结

使用了数组,二分法,循环判断结构;

学习心得

这是一次知识点综合实践的练习


课程设计实训-3 英文词典相关推荐

  1. C++课程设计实训_基于多态书籍信息管理系统的设计与实现、附源码、有过程截图

    C++课程设计实训_基于多态书籍信息管理系统的设计与实现.附源码,有过程截图 书籍信息管理系统的设计与实现(基于多态) 学生姓名: 学 号: 指导老师: 所 在 系: 专 业: 班 级: C++课程设 ...

  2. android课程设计实训目的,汽车专业实习目的与意义

    实习目的及意义 1.通过生产实习加深对汽车运用与维修专业认识,巩固专业思想,激发学习热情. 2.熟悉汽车修理环境.修理工具.为以后走上工作岗位积累一定的知识与经验. 3.开拓我们的视野,增强专业意识, ...

  3. C++课程设计实训报告

                          南阳理工学院·软件学院 课程设计报告 课程名称: C++面向对象程序设计(课程设计) 课题名称: 新生基本信息统计软件 姓    名: 学    号: 专 ...

  4. 【C语言】课程设计实训——人事管理系统

    目录 题目: 总体设计 详细设计 系统实现 题目 1.需求分析 人事档案信息采用文件存储,要提供文件的输入输出操作:根据学院人事的变动情况,可添加或删除记录,因而要提供文件的添加删除操作:能根据编号和 ...

  5. 【数据结构】-大二数据结构与算法课程设计实训报告

    采花生问题 1.1 需求分析 1.1.1 题目概要 给一矩阵,按贪心思路最多能采多少花生并在规定时间内返回. 1.1.2 题目要求 给定一块花生田的大小和花生的分布,在限定时间内,小Q最多可以采到多少 ...

  6. c语言项目研发实训设计,关于软件设计实训心得体会(通用5篇)

    关于软件设计实训心得体会(通用5篇) 当我们经过反思,对生活有了新的看法时,往往会写一篇心得体会,这样能够让人头脑更加清醒,目标更加明确.那么好的心得体会都具备一些什么特点呢?以下是小编精心整理的关于 ...

  7. 包装实训总结报告_包装设计实训心得体会

    包装设计实训心得体会 包装设计实训心得体会 当我们受到启发,对学习和工作生活有了新的看法时,不妨将其写成一篇心 得体会, 让自己铭记于心, 它可以帮助我们了解自己的这段时间的学习. 工作生 活状态. ...

  8. 山西高平地域文化导入美术设计实训项目的实践

    地域文化,是指某个地域的人们在特定的范围内,在自然环境的基础上,在长期的生产生活中创造的.人类活动的产物.山西高平是神农炎帝的故里,长平之战的发生地,是一个有着很深文化积淀的新兴城市,行政区域是国土面 ...

  9. html框架实验总结,网页设计实训心得

    网页设计实训心得 圣诞活动圣诞雪景 关于我们 二.分页的制作 1.圣诞起源表格布局及其效果图 网页制作实训报告 网页制作实训报告 2.圣诞雪景代码显示及其最终效果. type="text/j ...

最新文章

  1. 将undefault和null的数据转换成bool类型的数据 使用!!
  2. PostgreSQL增强版命令行客户端(pgcli)
  3. Samba服务器简介及自动挂载配置案例
  4. cad画流程图的插件_盘一盘,那些提效/创意的 vscode 插件
  5. Perl脚本语言学习1:
  6. axure rp9安装教程,axurerp9安装步骤
  7. 数据分析:同比-环比
  8. 视频教程-物联网嵌入式技术应用-物联网技术
  9. 【BZOJ4987】Tree 树形DP
  10. 机器学习实战之朴素贝叶斯与垃圾邮件分类
  11. socketDemo套接字
  12. 什么是浮点型?什么是单精度浮点数(float)以及双精度浮点数(double)?
  13. centos7.x安装配置流程
  14. [宋史学习] 王全斌功过
  15. 那些你可能不知道的搜索奇技淫巧
  16. ros melodic解决报错ImportError: libcv_bridge.so: cannot open shared object file: No such file or directo
  17. 私域运营中,企业私域流量挖掘用户价值的三种手段
  18. 【转】 男人二十岁后应该学会的习惯
  19. 本科计算机er发篇sci是一种什么样的体验?
  20. 什么是BOM BOM概述 浏览器对象模型 BOM的构成

热门文章

  1. PHP+Mysql—白酒管理系统(前端+后端)
  2. 米尔边缘AI计算盒子FZ5体验评测:一款极高性价比AI开发板
  3. 第三章——调制信号的功率谱
  4. 未来十年地理科学研究的战略方向
  5. oracle怎么显示对方科目,EBS会计科目
  6. 董明珠称“格力手机做得不比苹果差”哪里来的底气?
  7. 《趋势的力量》读书笔记
  8. 什么是恒流源,与恒压源、恒压恒流电源有什么不同?
  9. 搬砖之余来一杯意式浓缩咖啡(Espresso高级用法)
  10. 动态箭头gif图标_GIF动图修改教程,超详细