#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define NUM 8000
struct Dictionary
{
char english[250];
char chinese[200];
char cla[200];
};
struct Dictionary dict[8000];
void read_Dictionary();
int main()
{
printf("欢迎使用优快云电子词典!\n");
char key[10];
read_Dictionary();
do
{
printf("请输入要查询的英文单词:");
scanf("%s",key);
if (strcmp(key,"0000")==0)
break;
int low,high,mid,index;
low=0,high=NUM-1;
while(low<=high)
{
mid=(low+high)/2;
if (strcmp(dict[mid].english,key)==0)
{
index=mid;
break;
}
else if (strcmp(dict[mid].english,key)>0)
high=mid-1;
else low=mid+1;
}
if (index>=0)
{
printf("%s------>%s\t%s\n",key,dict[index].cla,dict[index].chinese);
}
else
printf("查无此词!\n\n");
}
while (1);
return 0;
}
void read_Dictionary()
{
FILE *fp;
int i;
if ((fp=fopen("dictionary.txt","r"))==NULL)
{
printf("dictionary file cannot open!");
exit(0);
}
else
{
for (i=0; i<NUM; i++)
{
fscanf(fp,"%s%s%s",dict[i].english,dict[i].chinese,dict[i].cla); //读入英文和中文
}
}
fclose(fp);
}