학생 사전 설계
# include & ltconio.h & gt
# include & ltstdio.h & gt
# include & ltstdlib.h & gt
# include & ltstring.h & gt
# szWORD 32 정의
# szSTRN 224 정의
# defineszitem sizeof (structtitem)
Char filedict [SZ strn];
Typedef 구조 항목 {
Char word [SZ word];
Char mean [SZ strn];
} 항목
Fpos_t 찾기 (char *word, char *mean)
{
파일 * f = 0;; 첫 번째 항목
Int r = 0;; Fpos _ t p = 0;;
만약 (! 단어) 0 을 반환합니다.
F = fopen(fileDict, "Rb");
만약 (! F) 0 을 반환합니다.
그리고 (! Feof(f))
Fgetpos(f & amp;; P);
R = fread(& amp;; I, szITEM, 1, f);
If(r & lt;; 1) 파위
If(I). 단어 [0] = = 0) 계속;
If (strcmp (i. 단어, 단어)) 계속;
If (평균) strcpy (평균, 즉 평균);
Fclose (f);
P+1을 반환합니다
}
Fclose (f);
0 을 반환합니다
}
무효 추가 (무효)
{
첫 번째 항목 파일 * f = 0;; Fpos _ t p = 0;;
Memset(& amp;; I, 0, szitem);
Printf ("단어를 입력하십시오:"); Scanf ('%s', i.. 단어);
P = lookup (i. 단어, 0);
다음 경우 (p ){
Printf ("이 단어는 사전에 기록되었습니다! \ n ");
반환;
}
Printf ("정의를 입력하고 enter 키를 눌러 종료하십시오:");
Fflush (stdin);
게스 (I). Mean);
F = fopen(fileDict, "ab");
Fwrite(& amp;; I, szITEM, 1, f);
Fclose (f);
Printf ("항목이 추가됨 \ n");
}
유효하지 않은 지우기 (유효하지 않은 지우기)
{
첫 번째 항목 파일 * f = 0;; Fpos _ t p = 0;;
Memset(& amp;; I, 0, szitem);
Printf ("단어를 입력하십시오:"); Scanf ('%s', i.. 단어);
P = lookup (i. 단어, 0);
If(p = = 0 ){
Printf ("사전에 이 단어의 기록이 없다! \ n ");
반환;
}
P-;
Memset(& amp;; I, 0, szitem);
F = fopen(fileDict, "r b+");
Fset pos(f & amp;; P);
Fwrite(& amp;; I, szITEM, 1, f);
Fclose (f);
Printf ("항목이 삭제되었습니다. \ n");
}
유효하지 않은 편집 (유효하지 않음)
{
첫 번째 항목 파일 * f = 0;; Fpos _ t p = 0;;
Memset(& amp;; I, 0, szitem);
Printf ("단어를 입력하십시오:"); Scanf ('%s', i.. 단어);
P = lookup (i. 단어, 0);
If(p = = 0 ){
Printf ("사전에 이 단어의 기록이 없다! \ n ");
반환;
}
P-;
Printf ("정의를 입력하고 enter 키를 눌러 종료하십시오 (enter abort 를 눌러 변경 사항을 취소합니다):";
Fflush (stdin);
게스 (I). Mean);
If(strstr (즉, "abort"))
Printf ("수정이 중단되었습니다! \ n ");
반환;
}
F = fopen(fileDict, "r b+");
Fset pos(f & amp;; P);
Fwrite(& amp;; I, szITEM, 1, f);
Fclose (f);
Printf ("항목이 저장되었습니다. \ n");
}
유효하지 않은 질의 (유효하지 않은 질의)
{
첫 번째 항목 Fpos _ t p = 0;;
Memset(& amp;; I, 0, szitem);
Printf ("단어를 입력하십시오:"); Scanf ('%s', i.. 단어);
P = 찾기 (i.word, i. Mean);
If(p = = 0 ){
Printf ("사전에 이 단어의 기록이 없다! \ n ");
반환;
}
Printf ('항목% s \ n 설명% s', i.word, i.. Mean);
}
무효 세트 (무효)
{
Intcmd = 0;
Printf ("현재 사전은 %s 입니다. 변경하시겠습니까 (변경하려면 y 또는 y 선택)?" , filedict);
Cmd = getch ();
If (cmd = =' y' | | cmd = =' y') {
Printf ("사전 파일 이름 입력 (경로 포함):";
Scanf ('%s', filedict);
Printf ("설정이 성공했습니다! \ n ");
}
}
Int main(int argc, char * argv [])
{
Intcmd = 0;
If(argc & gt;; 1)
Strcpy(fileDict, argv [1]);
기타
Strcpy(fileDict, "c: \ \ dict.txt");
/*end if*/
For (; 을 눌러 섹션을 인쇄할 수도 있습니다 ) {
Printf ("\ n \
* * * *********************\n\
* * 미니 사전에 오신 것을 환영합니다! **\n\
* * * *********************\n\
** 0 세트 사전 **\n\
* * 1- 질의 용어 **\n\
* * 2- 새 항목 **\n\
* * 3- 항목 편집 **\n\
* * 4- 항목 삭제 **\n\
* * 5- 사전 종료 **\n\
* * * * * * * * * * * * * * * * * * * * * * * \ n ");
Cmd = getch ()-"0";
스위치 (명령) {
상황 0: set (); 깨뜨리다
사례1:query (); 깨뜨리다
사례 2: append (); 깨뜨리다
상황 3: 편집 (); 깨뜨리다
사례 4: erase (); 깨뜨리다
기본값: 0 을 반환합니다.
}
}
0 을 반환합니다
}