#include <stdio.h>
#include <string.h>
int worsNumber = 0;
struct dic
{
char word[20];
char cn[80];
};//定义结构体储存文件的单词。
struct dic dictionnarySql[9000];//定义结构体数组。
/*************************************************************
功能描述:运用二分查找单纯的位置
输入参数: word[20]需要查找的单词
返 回 值:mid即单词所在位置,
其他说明:运用简单的算法提高计算效率,达到节省资源的目的
*************************************************************/
int searchWord(char word[20])
{
int low, mid, high;
low = 0;
high = worsNumber-1;
while(low<=high)
{
mid = (low+high)/2;
if(strcmp(dictionnarySql[mid].word,word)>0)
high = mid-1;
else if(strcmp(dictionnarySql[mid].word,word)<0)
low = mid+1;
else
return mid;//找到单词返回mid。
}
return -1;//没有查找到返回-1。
}
int main()
{
int index=1;
FILE *fp;//定义指针指向文件
char word[20];
int pos;
fp=fopen("dictionary.txt","r");//打开文件
int i=0;
while(fscanf(fp,"%s %s",(dictionnarySql+i)->word,(dictionnarySql+i)->cn)!=EOF)//将文件内容读入结构体数组中
{
i++;
}
worsNumber =i;//记下单词总数
while(index!=0)
{
printf("请您输入要查询的单词,输入“0000”结束;");
scanf("%s",word);//输入查找的单词
if(strcmp(word,"0000")==0)
{
index=0;
}
else
{
pos = searchWord(word);
if(pos!=-1)
printf("单词\'%s\'的中文意思是: %s\n",word,dictionnarySql[pos].cn);
else
printf("对不起,没有找到您所需要的单词\n");
}
}
fclose(fp);//关闭文件
return 0;
}
项目三 电子词典
最新推荐文章于 2023-10-17 22:09:26 发布