중화사전망 - 서예자전 - 사전 작성 c
사전 작성 c
# include & ltstring.h & gt
# include & ltmalloc.h & gt
# include & ltmath.h & gt
# min(A 정의 (a, b) (a < B? 답: 을)
# max(A 정의 (a, b) (a < B? 나: 갑
Typedef 구조 사전
{
Char en [30];
Char zh [30];
Struct Dict * next
} Dict
인트메인 (void)
{
Dict * head = 0;;
Intstuccount = 0; //수량
While( 1)
{
Printf ("입력 피연산자: 1: 어휘 입력 2: 찾아보기 3: 중국어-영어 4: 영어-중국어 5: 삭제 6: 종료:");
Int quest
Scanf ('%d', & ampquest);
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
++stu ccount;
}
Else if(quest = = 2)
{
If(head = = 0)
Printf ("할 말이 없어! \ n ");
기타
{
Printf ("단어 찾아보기 시작: \ n");
While( 1)
Int st=0, en = min(ST+ 10, stuccount);
{
Printf ("browse:% d to% d words \ n", st+ 1, en);
Dict * stu = 헤드
For(int I = 0;; 나 & ltST;; ++i)
{
스튜 = 스튜-> 다음으로,
}
For(int I = ST;; 나 & lten;; ++i)
{
Printf ("중국어: %s 영어: %s\n", stu-& gt;; 음, 스튜-> Zh);
스튜 = 스튜-> 다음으로,
}
Printf ("작업 번호 입력: 1 페이지 뒤로; 앞으로 2 페이지 -1exit: ");
Int squest
Scanf ('%d', & ampsquest);
Scanf ("%* [\ n]);
If(squest = = 1)
{
만약 (en! = stu count)ST = en;;
}
Else if(squest = = 2)
{
ST = max(0, ST-10);
}
Elseif (squest = =-1) break;
En = min(ST+ 10, stuccount);
}
}
}
Elseif (quest = = 3 | | quest = = 4 | | quest = = 5)
{
차 a [30];
If(quest = = 3)printf ("중국어 단어 입력:");
Else if(quest = = 4)printf ("영어 단어 입력:");
Else if(quest = = 5)printf ("삭제할 단어 입력 (중국어와 영어 모두 가능):");
Scanf(“% 29s', a);
Scanf ("%* [\ n]);
Dict * stu = 헤드
Dict * lst stu = 0;;
Intflag = 0;
그리고 (스튜! = 0 & amp& ampflag==0)
{
If(quest = = 3)
{
If(strcmp(a, stu-& gt;; Zh)= 0)
{
Printf ("영어: %s\n", stu-& gt;; En);
Flag =1;
}
}
Else if(quest = = 4)
{
If(strcmp(a, stu-& gt;; En)= 0)
{
Printf ("중국어는 %s\n", stu-& gt;; Zh);
Flag =1;
}
}
Else if(quest = = 5)
{
If(strcmp(a, stu-& gt;; En)= = 0 | | strcmp(a, stu-& gt;; Zh)= 0)
{
Stu ccount-;
If(lst stu! =0)
Lst stu-& gt;; Next = stu-& gt;; 다음으로,
기타
Head = stu-& gt;; 다음으로,
Printf ("삭제됨! \ n ");
Flag =1;
}
}
Lststu = stu
스튜 = 스튜-> 다음으로,
}
다음 경우 (플래그 ==0)
{
Printf ("단어를 찾을 수 없습니다! \ n ");
}
}
}
0 을 반환합니다
}
네가 달릴 수 있는지 보자. 새로운 수요가 있다면, 나는 계속 쓸 수 있다. 코드는 매우 명확해야 한다. 만약 네가 아무것도 이해하지 못한다면, 내가 너에게 설명해 줄 수 있다. 질문을 환영합니다.