题目要求:
实现简单的英汉词典,词库就10个单词好了
实现功能:
输入单词时,可以输出相应的中文
输入中文时,可以输出相应的英文
如果输入的单词或者中文查找不存在时,则输出"你所查找的内容不存在,请重新输入"。
【要求使用链表来实现,并且直至输入能查找的词时程序才退出,只要查找不到就要一直重复输入】
提供10个单词
one 一
two 二
three 三
four 四
five 五
six 六
seven 七
eight 八
nine 九
ten 十
#include
#include
#include
#define WORDSIZE 20
#define MEANSIZE 25
struct Record{
char word[WORDSIZE];
char mean[MEANSIZE];
};
struct Node{
struct Record data;
struct Node *next;
};
int flag = 0;
void initData(struct Node *head);
void printData(struct Node *head);
void searchByWord(struct Node *head,char *word);
void searchByMean(struct Node *head,char *mean);
int main()
{
struct Node* head;
head = (struct Node*)malloc(sizeof(struct Node));
initData(head);
int choose;
char input[20];
while(!flag){
printf("------------------\n");
printf("1.根据中文查英文\n");
printf("2.根据英文查中文\n");
printf("------------------\n");
printf("请输入你的选择\n");
scanf("%d",&choose);
switch(choose)
{
case 1:
printf("请输入(中文):");
scanf("%s",input);
searchByMean(head,input);
break;
case 2:
printf("请输入(英文):");
scanf("%s",input);
searchByWord(head,input);
break;
default:
printf("输入有误,请重新输入\n");
break;
}
//printData(head);
}
return 0;
}
//初始化数据
void initData(struct Node *head)
{
char english[10][6] = {"One","Two","Three","Four","Five","Six","Seven","Eight","Nine","Ten"};
char chinese[10][10] = {"一","二","三","四","五","六","七","八","九","十"};
struct Node *p = head;
int i;
for(i=0;i<10;i++)
{
struct Node* temp = (struct Node*)malloc(sizeof(struct Node));
strcpy((temp->data).word,english[i]);
strcpy((temp->data).mean,chinese[i]);
//printf("%s",(temp->data).word);
//printf("%s",(temp->data).mean);
p->next = temp;
p = p->next;
}
p->next = NULL;
}
//打印出链表数据
void printData(struct Node* head)
{
struct Node* p = head;
p = p->next;
while(p!=NULL){
printf("word is;%s\n",(p->data).word);
printf("mean is:%s\n",(p->data).mean);
p = p->next;
}
}
//根据英文查中文
void searchByWord(struct Node *head,char *word)
{
struct Node* p = head;
p = p->next;
while(p!=NULL){
if(strcmp((p->data).word,word)==0)
{
printf("\t---已找到---\n");
printf("\tENGLISH\tCHINESE\n");
printf("\t%s\t%s\n",(p->data).word,(p->data).mean);
printf("\t--------------\n");
flag = 1;
break;
} else{
p = p->next;
}
}
printf("未找到,请重新输入\n");
}
//根据中文查英文
void searchByMean(struct Node *head,char *mean)
{
struct Node* p = head;
p = p->next;
while(p!=NULL){
if(strcmp((p->data).mean,mean)==0)
{
printf("\t---已找到---\n");
printf("\tENGLISH\tCHINESE\n");
printf("\t%s\t%s\n",(p->data).word,(p->data).mean);
printf("\t--------------\n");
flag = 1;
break;
} else{
p = p->next;
}
}
printf("未找到,请重新输入\n");
}
最近帮小师弟写的一个小demo,顺便让自己复习了一波C语言的知识。。。