2016年上学期程序设计实训报告3
来源:互联网 发布:网络安全要学java么 编辑:程序博客网 时间:2024/05/16 09:58
问题:做一个简单的电子词典。在文件dictionary.txt中,保存的是英汉对照的一个词典,词汇 量近8000个,英文与释义间用’\t’隔开。编程序,将文件中的内容读到两个数组e[]和c[]中,分别代表英文和中文,由用户输入英文词,显示中文意思。运行程序后,支持用户连续地查词典,直到输入“0000”结束
代码:
/* 烟台大学计算机学院 2016 作者:闫春相 完成日期:2017年1月4日 版本号:V1.0 */ #include <stdio.h>#include <stdlib.h>#include<string.h>void menu();void open();int seach();void show(int );char english[8000][20],chinese[8000][20];//用来存储单词的数组char key[20];//保存要查单词的变量int num=0;//单词的数目int main(){ char c;//控制程序开始的变量 int n; menu(); scanf("%c",&c); if(c=='y'||c=='Y') { open(); do { n=seach(); if(n==-2) break; else show(n); } while(1); printf("欢迎您再次使用!\n"); } else printf("欢迎您再次使用!\n"); return 0;}/************************************************************* 20.功能描述:显示友好界面21.输入参数:无22.返 回 值:无 23.其他说明:无 24./************************************************************/ void menu(){ printf("请把字典文件放在指定的D:\\路径下,以确保程序能够顺利运行\n"); printf("准备好后按Y开始程序,按任意键推出....\t");}/************************************************************* 20.功能描述:打开文件并将数据读入数组21.输入参数:无22.返 回 值:无 23.其他说明:无 24./************************************************************/ void open(){ FILE *fp;//定义文件指针 fp=fopen("D:\\dictionary.txt","r"); if(fp==NULL) { printf("打开失败!请确认字典文件是否在D:\\路径下\n"); exit(0); } while(!feof(fp)) { fscanf(fp,"%s%s",english[num],chinese[num]); num++; } fclose(fp);}/************************************************************* 20.功能描述:利用二分法查找目标单词21.输入参数:key-要查找的单词22.返 回 值:index-控制查找结果的变量23.其他说明:无 24./************************************************************/ int seach(){ int low=0,high=num-1,index=-1,mid;//定义查找区间的上下界 printf("请输入你要查找的单词(0000结束)\n"); scanf("%s",key); if(strcmp(key,"0000")==0) return -2; else { while(low<=high) { mid=(low+high)/2; if(strcmp(english[mid],key)==0) { index=mid; break; } else if(strcmp(english[mid],key)>0) high=mid-1; else low=mid+1; } } return index;}/************************************************************* 20.功能描述:输出查找结果21.输入参数:无22.返 回 值:无 23.其他说明:无 24./************************************************************/ void show(int index){ if(index==-1) printf("对不起,没有查找到%s的意思\n",key); else printf("%s的中文意思是:%s\n",key,chinese[index]);}
运行截图:
0 0
- 2016年上学期程序设计实训报告3
- 2016年上学期程序设计实训报告1
- 2016年上学期程序设计实训报告2
- 2010年上学期学习计划
- 2016年上半年总结(大二上学期学期总结)
- 2016-7-13☞2017-3(大二上学期)
- 【《数据结构》2015-2016学年上学期总结】
- 2013年上学期学习总结
- 学期小结3:大二上学期
- 2007上学期课程表
- 大一上学期过去了
- 大三上学期杂谈
- 上学期总结
- 大三上学期总结
- 大二上学期计划
- 大一上学期
- 大三上学期总结
- 2014上学期总结
- ASCII码对应表chr(9)、chr(10)、chr(13)、chr(32)、chr(34)、chr(39)
- spark graphx 图计算demo,结果展现
- GOF23的一些总结(十二)
- EF进阶篇(一)——概述
- <sstream>输入流.输出流
- 2016年上学期程序设计实训报告3
- 点击通知栏启动程序
- Makefile中一些元素的代表含义
- 我们要学习的算法
- [置顶] Android实现应用的增量更新\升级 标签: 增量更新Androidbsdiffpatch增量升级 2016-01-25 16:01
- 【Android实战】----Android Studio2的安装使用
- class.getResourceAsStream与class.getClassLoader().getResourceAsStream区别
- hibernate注解(二)
- logback 常用配置详解(三) <filter>