當前位置:成語大全網 - 英語詞典 - 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;

}

妳看看對不對,能不能跑吧。如果有新的需求我可以繼續寫。代碼應該很清晰了,如果妳哪不懂可以給妳解釋。歡迎追問。