成语大全网 - 汉语词典 - c编程词典安装

c编程词典安装

#include<stdio.h>

#include<string.h>

#include<malloc.h>

#include<math.h>

#define min(A,B) (A<B?A:B)

#define max(A,B) (A<B?B:A)

typedef struct Dict

{

char en[30];

char zh[30];

struct Dict* next;

} Dict;

int main(void)

{

Dict* head = 0;

int stucount=0;//数量

while(1)

{

printf("输入操作号:1:词汇输入 2:浏览 3:汉英 4:英汉 5:删除 6:退出:");

int quest;

scanf("%d",&quest);

scanf("%*[^\n]");

if(quest==6)break;

else if(quest==1)

{

Dict* newDict = (Dict*)malloc(sizeof(Dict));

printf("请输入中文:");

scanf("%29s", newDict->zh);

scanf("%*[^\n]");

printf("请输入英文:");

scanf("%29s", newDict->en);

scanf("%*[^\n]");

//插入链表首,这样最新添加的显示在最上面,容易看见效果

newDict->next=head;

head=newDict;

++stucount;

}

else if(quest==2)

{

if(head==0)

printf("没有单词!\n");

else

{

printf("开始浏览单词:\n");

while(1)

int st=0,en=min(st+10,stucount);

{

printf("浏览:%d个到%d个单词\n",st+1,en);

Dict* stu = head;

for(int i=0; i<st; ++i)

{

stu=stu->next;

}

for(int i=st; i<en; ++i)

{

printf("中文:%s 英文:%s\n",stu->en,stu->zh);

stu=stu->next;

}

printf("输入操作号:1 向后翻页;2 向前翻页;-1 退出:");

int squest;

scanf("%d",&squest);

scanf("%*[^\n]");

if(squest==1)

{

if(en!=stucount) st=en;

}

else if(squest==2)

{

st=max(0,st-10);

}

else if(squest==-1)break;

en=min(st+10,stucount);

}

}

}

else if(quest==3 || quest==4 || quest==5)

{

char a[30];

if(quest==3)printf("请输入汉语词汇:");

else if(quest==4) printf("请输入英语词汇:");

else if(quest==5) printf("请输入待删除的词汇(汉英均可):");

scanf("%29s", a);

scanf("%*[^\n]");

Dict* stu = head;

Dict* lststu = 0;

int flag=0;

while(stu!=0 && flag==0)

{

if(quest==3)

{

if(strcmp(a,stu->zh)==0)

{

printf("英语为:%s\n",stu->en);

flag=1;

}

}

else if(quest==4)

{

if(strcmp(a,stu->en)==0)

{

printf("汉语为:%s\n",stu->zh);

flag=1;

}

}

else if(quest==5)

{

if(strcmp(a,stu->en)==0 || strcmp(a,stu->zh)==0)

{

stucount--;

if(lststu!=0)

lststu -> next = stu -> next;

else

head = stu -> next;

printf("已删除!\n");

flag=1;

}

}

lststu=stu;

stu=stu->next;

}

if(flag==0)

{

printf("没有查到词汇!\n");

}

}

}

return 0;

}

你看看对不对,能不能跑吧。如果有新的需求我可以继续写。代码应该很清晰了,如果你哪不懂可以给你解释。欢迎追问。