程序设计实训项目三 电子词典
来源:互联网 发布:程序员开发软件 编辑:程序博客网 时间:2024/05/18 22:40
题目描述
做一个简单的电子词典。在文件dictionary.txt中,保存的是英汉对照的一个词典,词汇量近8000个,英文与释义间用’\t’隔开。编程序,将文件中的内容读到两个数组English[]和Chinese[]中,分别代表英文和中文,由用户输入英文词,显示中文意思。运行程序后,支持用户连续地查词典,直到输入“0000”结束,如图:
提示:文件中的词汇已经排序,故在查找时,用二分查找法提高效率。
/*烟台大学计算机学院 2016作者: 马春澎完成日期:2017年1月4日 */#include <stdio.h>#include <stdlib.h>#include<string.h>char English[8000][20],Chinese[8000][24];//用于从文件中读入的英文数组和中文数组int num;//实际词汇总数int binary_search(int first,int last,char *word);//二分查找int main(){ int count1=0,count2=0; char word[20];//查找单词 FILE *fp; fp=fopen("dictionary.txt","r");//以只读的方式打开文件 if(fp==NULL)//测试文件是否打开成功 { printf("文件打开失败\n"); exit(-1); } while(fscanf(fp,"%s%s",English[num],Chinese[num])!=EOF)//读取成功,重复从文件中读 { num++;//计算单词总数 } fclose(fp); printf("********************欢迎使用********************\n\n"); do { printf("请输入您要查找的单词(输入0000退出)\n"); scanf("%s",word);//输入单词进行查找 if(strcmp(word,"0000")==0) break; else { int index=-1,first=0,last=num-1;//查找的上下界 index=binary_search(first,last, word); if (index == -1) { printf("查无此词!\n\n"); count1++; printf("您已查找本词典内没有的词%d次(如果您输入五次词典中没有的词系统将自动退出)\n",count1); printf("************************************************\n\n"); } else { count2++; printf("%s 的中文意思是:%s\n\n", word, Chinese[index]); printf("您已成功查找%d次\n",count2); printf("************************************************\n\n"); } } if(count1==5) break; } while(1); printf("***************** 感谢您的使用 ******************"); return 0;}/*************************************************************功能描述:二分查找,查找文件中单词所在的位置输入参数:first—查找的起始位置 last—查找的终止位置 word—需要查找的单词返 回 值:mid—要查找的单词所在的位置其他说明:无*************************************************************/int binary_search(int first,int last,char *word)//二分查找{ int mid; while(first<=last)//第一个位置大于等于最后一个位置时跳出循环 { mid=(first+last)/2;//找中间位置 if(strcmp(English[mid],word)==0)//找到了 return mid;//查找成功并返回 if(strcmp(English[mid],word)>0)//将在前半段继续查找 last=mid-1; else //在后半段查找 first=mid+1; } return -1;//表示查不到这个词}
输入 about
输出 about的中文意思是:prep.关于,大约
输入 ade
输出 查无此词!
输入五次 ade 系统自动退出
运算结果知识点总结
文件的打开的应用,二分查找的应用
学习心得
以前没有使用过打开文件,通过这个程序认识到文件的方便,以后要熟练的应用。
0 0
- 程序设计实训项目三 电子词典
- 程序设计实训报告--电子词典
- 程序设计实训报告-电子词典
- 项目三 电子词典
- 课程设计 【项目三】 电子词典
- 第十四周 项目三 电子词典
- 程序设计:电子词典
- 第十六周 项目三:电子词典(二分法)
- 第十四周项目三 OOP版电子词典
- 第十四周 项目三:OOP版电子词典
- 第十四周项目三:OOP版电子词典
- 第十四周项目三:OOP版电子词典
- 第十四周 项目三--OOP版电子词典
- 电子词典项目
- 程序设计实训三 电子词典
- 程序设计3-电子词典
- 第15周 项目三 oop版电子词典
- 第十四周上机项目三OOP版电子词典
- object-c万能解决bug思路
- ajax跨域问题解决
- Tensorflow argmax函数详解
- spring4和mybatis3整合
- 代码自动生成工具(一)-Csv读表代码自动生成工具
- 程序设计实训项目三 电子词典
- Android中的屏幕适配
- oracle数据库死锁问题
- 数据库打开阶段,新增的数据文件损坏
- 电子词典
- 【Linux 系统 连接网络、固定IP】
- Scala速成
- IP地址与子网掩码
- tnsping命令详解