课程设计3 电子词典
来源:互联网 发布:python数据挖掘常用包 编辑:程序博客网 时间:2024/06/01 22:49
Copyright (c) 2016 烟台大学计算机与控制工程学院All rights reserved.文件名称:test.cpp作者:何定钦完成日期:2016年1月3日题目描述: 做一个简单的电子词典。在文件dictionary.txt中,保存的是英汉对照的一个词典, 词汇量近8000个,英文与释义间用’\t’隔开。编程序,将文件中的内容读到两个数组e[]和c[]中, 分别代表英文和中文,由用户输入英文词,显示中文意思。运行程序后,支持用户连续地查词典, 直到输入“0000”结束。 提示:文件中的词汇已经排序,故在查找时,用二分查找法提高效率。输入: 查询单词输出: 单词意思分析:#include <stdio.h>#include <stdlib.h>#include <string.h>#define N 8000char e[N][20],c[N][20]; /*两个全局字符型变量,分别为存储英语单词的数组以及中文意思的数组*/void search();/*功能:1.打开文件2读入文件中的数据3.调用函数*/int main(){ int i; /*循环次数*/ FILE *fin; /* 输入文件 */ fin=fopen("dictionary.txt","r"); /* 打开输入文件读 */ if(!fin) /* 文件打开失败 */ { fprintf(stderr,"error open file!\n"); /* 输出错误信息到标准错误设备 */ exit(-1); /* 强制退出,并返回错误码 */ } else { for(i=0; i<N; i++) fscanf(fin,"%s%s",e[i],c[i]); /*将文件中的数据读入*/ search(); /*调用函数*/ fclose(fin); /*关闭文件*/ } return 0;}/*功能:二分法查单词的意思*/void search(){ int low,high,mid; /*分别表示为e数组中下限,上限以及中间位置*/ int r; /*scanf的返回值*/ char s[20]; /*使用者输入的单词*/ printf("请输入你要查询的单词(0000结束):\n"); while((r=scanf("%s",s))!=EOF) { if(strcmp(s,"0000")==0) /*输入的字符串为0000则结束查询*/ break; else { low=0; high=N-1; mid=0; while(low<=high) { mid=(low+high)/2; if(strcmp(e[mid],s)==0) /*判断输入的字符串是否与文件中的相同*/ { printf("%s 的中文意思是: %s\n",s,c[mid]); break; } else if(strcmp(e[mid],s)>0) /*若输入的字符串小于此时文件中的字符串,则在e[low...mid-1]中寻找,否则在e[mid+1...high]中寻找*/ high=mid-1; else low=mid+1; } if(low>high) /*没有找到该字符串*/ printf("没有此单词的意思!\n"); } printf("请输入你要查询的单词(0000结束):\n"); } return;}
结果:
知识点总结:
文件的打开方式,以及文件数据的读入方式,还有二分法的学习。
心得体会:
卡在怎样打开文件,并怎样读文件当中的数据,以及使用二分法查询单词的时候,如果没有找到该单词,不知道结束查询的方式是什么。
0 0
- 课程设计3 电子词典
- 课程设计3电子词典
- 课程设计<3>---电子词典
- 课程设计3——电子词典
- 课程设计—电子词典
- C语言课程设计----电子词典
- 课程设计 【项目三】 电子词典
- C语言课程设计:小型电子词典
- C语言期末课程设计3.电子词典
- 程序设计3-电子词典
- 电子词典
- 电子词典
- 电子词典
- 电子词典
- 电子词典
- 电子词典
- 电子词典
- 电子词典
- mybatis 批处理 oracle
- transition -- animation -- transform
- html5里bgsound标签的问题
- conv_layer和deconv_layer解读
- mysql使用sql语句记录
- 课程设计3 电子词典
- Android ToolBar
- spring4简单实例(1)
- mongodb数据的导出与导入
- 【sqlserver】merge into test
- MFC 两种创建状态栏方法以及在状态栏实时显示时间
- 右键弹出菜单
- 程序员面试金典: 9.5位操作 5.3给定正整数,找出与其二进制表示中1的个数相同、且大小最接近的两个数
- Unity LBS地图(瓦片地图,不接入任何SDK)