这一周根据实验室的要求,主要完成了学生管理系统的搭建,不同于以往这次选择搭建一个
英文电子词典管理系统
主要功能如下,并且同时附带上代码
增加或删改单词
英译汉,汉译英
为了方便起见,我将所有功能整合在一起
代码如下
void dealAction(int action)
{
if(action==1)
{
char word[20];
int pos;//单词位置
printf("请您输入要查询的单词:");
scanf("%s",word);
pos = searchWord(word);
if(pos!=-1)
printf("单词\'%s\'的中文意思是: %s\n",word,dictionnarySql[pos].cn);
else
printf("对不起,没有找到您所需要的单词\n");
}
else if(action==2)
{
int pos;
char cn[80];
printf("请您输入汉语词意(关键词即可):");
scanf("%s",cn);
pos = searchCn(cn);
if(pos!=-1)
printf("该翻译的英语单词是: %s\n",dictionnarySql[pos].word);
else
printf("对不起,没有找到您所需要的翻译\n");
}
else if(action==3)
{
char word[20];
char cn[80];
printf("请您输入要补充的单词:");
scanf("%s",word);
strcpy(dictionnarySql[worsNumber].word,word);
printf("请您输入该单词汉语翻译:");
scanf("%s",cn);
strcpy(dictionnarySql[worsNumber].cn,cn);
worsNumber++;
saveSql();
printf("补充单词完成\n");
}
else if(action==4)
{
char word[50];
int pos;//单词位置
printf("请输入您要删除的单词:");
scanf("%s",word);
pos = searchWord(word);
if(pos!=-1)
{
char a[5] = "#";
strcpy(dictionnarySql[pos].cn,a);
strcpy(dictionnarySql[pos].word,a);
saveSql();
printf("已经删除该单词\n");
}
else
printf("对不起,没有找到您所需要的单词\n");
}
else if(action==5)
{
char word[50];
int pos;//单词位置
printf("请输入您要修正的单词:");
scanf("%s",word);
pos = searchWord(word);
if(pos!=-1)
{
printf("请输入单词汉语翻译:");
char cn[60];
scanf("%s",cn);
strcpy(dictionnarySql[pos].cn,cn);
saveSql();
printf("已经修正该单词翻译。\n");
}
else
printf("对不起,没有找到您所需要的单词\n");
}
}
//------------------------
//返回单词在数据库中的位置
//------------------------
*至于查找部分二分法,顺序查找皆可*
int searchWord(char word[20])
{
int low, mid, high;
low = 0;
high = worsNumber;
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;
}
}
//若二分查找查询不到,就执行顺序查找
int i=0;
for(i=0;i<worsNumber;i++)
{
if(strcmp(dictionnarySql[i].word,word)==0)
return i;
}
return -1;//如果查询不到,就返回负数
}