현재 위치 - 회사기업대전 - 정보 컨설팅 - C 언어 프로그래밍: 주소록 프로그래밍

C 언어 프로그래밍: 주소록 프로그래밍

# "stdlib.h" 포함

# "string.h" 포함

# "conio.h" 포함

#' stdio.h' 포함

# "dos.h" 포함

FILE * FP

Int I;; //i 는 길이가 아닌 전역 변수입니다.

구조 주소

{charpostnum [10];

차 a [40]; //집 주소

}

구조생일

{int 년;

Int 월;

Int 일;

}

구조적 친구

{int num// 일련 번호

차 이름 [20];

매력적인 섹스

유료 전화 [13];

구조 생일

구조 주소 주소 주소 address;;

}

친구 [50];

잘못된 하중 ()

{

Int j;;

긴 k;

Fp=fopen("friend.txt ","a+"); //friend.txt 파일을 엽니다

If(fp! = 비어 있음)

{

For (I =1; 나 & lt50; I++)

{

J = fgetc (FP);

If(j==EOF) // 문서의 끝에 도달했는지 여부를 결정합니다.

반환;

K = I-1;

Fseek(fp, k*sizeof(struct ffriend), seek _ set);

프레드 (& ampfriends[i], sizeof(struct ffriend), 1, FP); //파일에서 레코드 읽기

}

}

기타

{

Fp=fopen("friend.txt ","w ");

I =1;

}

}

빈 디스플레이 (int j)

{

//친구 [j]. Num = I;;

Printf(" \ n \ n \ t 아니요. -n 번호: %3d ",친구 [j]. Num);

Printf ("\ n \ tname -Name:%-20s ",friends[j]. 이름);

Printf ("\ n \ tGender -Sex:%c ",friends[j]. 성);

Printf(" \ n \ tTel- 전화: %- 13s ",친구 [j]. 전화);

Printf(" \ n \ t 생년월일-생일:% 4d-%2d-%3d ",friends [j]. 생일. 연도, 친구 [j]. 생일, 월, 친구. 생일);

Printf ("\ n \ tzip code-postnum:%-10s", friends [j]. Address.postnum);

Printf(" \ n \ t e-메일 주소-주소: %-40s ",friends [j]. Address.a);

}

Void 추가 (int j)

{

Fflush (stdin); //해당 영역의 파일 버퍼를 지우고 파일이 쓰기 모드로 열릴 때 파일에 버퍼를 씁니다.

//stdin 은 보통 키보드로 입력 스트림을 가리키는 표준 파일 * (파일 포인터) 입니다.

친구 [j]. Num = j;;

Printf(" \ n \ t \ t \ t 일련 번호-번호: %d ",j);

Printf ("\ n \ t \ t \ tname-name:");

Scanf("%s ",친구 [j]. 이름);

Fflush (stdin); //왜 fflush (stdin); 효과가 자동으로 건너뛰나요?

Printf ("\ t \ t \ t gender-sex (m/w):"); //한자를 입력하는 남녀가 자동으로 연락처 번호를 건너뛰는 이유는 무엇입니까?

Scanf("%c ",& 친구 [j]. 성);

Printf ("\ t \ t \ t tel-phone:");

Scanf("%s ",친구 [j]. 전화);

Printf("\t 생년월일-생일 ");

Printf(" \ n \ t \ t \ t 연도: ");

Scanf("%d ",& 친구 [j]. 생일. 연도);

Printf ("\ t \ t \ t month-month:");

Scanf("%d ",& 친구 [j]. 생일. 월);

Printf ("\ t \ t \-day:");

Scanf("%d ",& 친구 [j]. 생일. 일);

Printf ("\ t \ t 우편 번호-우편 번호: ");

Scanf("%s ",friends [j] .address.postnum);

Printf(" \ t \ t \ t 메일 주소-주소: ");

Scanf("%s ",friends [j]. address.a);

Getchar ();

}

Void 삭제 ()

{

Int k;;

Printf(" \ n \ t 일련 번호 제거-번호: ");

Scanf("%d ",& AMPK);

If(k & lt;; =i)

{

For(int j = k;; J<I+1; J++) /* 삽입 위치 뒤로 이동된 요소 순서 */

{

Strcpy (친구 [j]. 이름, 친구 [j+ 1]. 이름); /* 요소 컨텐트 교환 */

친구 [j]. 성 = 친구 [j+ 1]. 섹스;

Strcpy (친구 [j]. 전화, 친구 [j+ 1]. 전화);

친구 [j]. 생일. 년 = 친구 [j+ 1]. 생일. 년;

친구 [j]. 생일. 월 = 친구 [j+ 1]. 생일. 월;

친구 [j]. 생일. 일 = 친구 [j+ 1]. 생일. 일;

Strcpy (friends [j]. address.postnum, friends [j+1]. address.postnum);

Strcpy (친구 [j].address.a, 친구 [j+1]. address.a);

}

I-;

}

기타

{

Printf ("입력한 일련 번호가 너무 큽니다!" " );

}

}

Void Modify(int j)

{

추가 (j);

}

잘못된 저장 ()

{

Int j;;

Fp=fopen("friend.txt ","w ");

For (j =1; J<= I;; J++)

{

Fwrite(& amp;; Friends[j], sizeof(struct ffriend), 1, FP);

}

Fclose (FP);

}

Void main ()

{

Int j;;

탄화 등급

Char search name [10];

로드 ();

I-;

하다

{

Printf(" \ t \ t \ t \ t \ t 단순 주소록 \ n \ n ");

Printf ("함수 선택 \ n");

Printf (" 1A. 읽기 \ n ");

Printf("\2B. Append \ n ");

Printf("\6C ") 를 참조하십시오. Insert \ n ");

Printf ("\") 를 참조하십시오. 삭제 \ n ");

Printf ("\") 를 참조하십시오. 검색 \ n ");

Printf (". 수정 \ n ");

Printf("\2G. 저장 \ n ");

Printf (" 1h. 종료 \ n ");

Printf ("pleasechoice") \ n 참고: A~H 의 대문자를 입력하십시오. \ n ");

Scanf("%c ",& 학년);

스위치 (등급)

//대문자와 소문자를 추가할 수 있습니다.

{

사례' a': j =1; //디스플레이 기능

While(getchar ()! = 0x1b & & ampj & lt=i) // 추가 Esc 키를 눌러 종료합니다.

{

쇼 (j++);

Printf(" \ n 계속하려면 Enter 키를 누르십시오! "" );

}

만약 (j-1< 1)

{

Printf ("\ n \ tEmpty 문서화되지 않은 문서-빈 주석 \ n ");

Printf(" \ n 계속하려면 Enter 키를 누르십시오! "" );

Getchar ();

}

Printf("\n\t\t\t\t\t\t 이 작업은 종료되었습니다. ");

Printf(" \ n \ t-\ t \ t \ n "); ");

깨뜨리다

상황' b'://함수 추가

While (나 & lt=50) // ESC 키를 눌러 종료하는 기능을 추가합니다.

{

I++;+;

추가 (a);

Printf(" \ t 계속 증가합니까? Y/n);

//수정으로 else 를 추가하면 오류가 발생하거나 강제로 인쇄됩니다.

Char a = getchar ();

If(a=='n'||a=='N')

깨뜨리다

}

If(i==5 1)

Printf(" \ n \ t 문서가 꽉 차서 레코드를 추가할 수 없습니다. 꽉 찼습니다. ");

Printf("\n\t\t\t\t\t\t 이 작업은 종료되었습니다. ");

Printf(" \ n \ t-\ t \ t \ n "); ");

Getchar ();

깨뜨리다

사례' c':

Int k;;

Printf(" \ n \ t 삽입할 위치 입력: ");

Scanf("%d ",& AMPK);

J = I+1;

친구 [j]. Num = j;;

For (j; J & gtk;; J-)// 함수 삽입

{

Strcpy (친구 [j]. 이름, 친구 [j- 1]. 이름); //데이터 뒤로 이동

친구 [j]. 성 = 친구 [j- 1]. 섹스;

Strcpy (친구 [j]. 전화, 친구 [j- 1]. 전화);

친구 [j]. 생일. 연도 = 친구 [j- 1]. 생일. 연도;

친구 [j]. 생일. 월 = 친구 [j- 1]. 생일. 월;

친구 [j]. 생일. 일 = 친구 [j- 1]. 생일. 일;

Strcpy (friends [j]. address.postnum, friends [j-1]. address.postnum);

Strcpy (친구 [j].address.a, 친구 [j-1]. address.a);

}

추가 (k);

I++;+;

Printf("\n\t\t\t\t\t\t 이 작업은 종료되었습니다. ");

Printf(" \ n \ t-\ t \ t \ n "); ");

깨뜨리다

사례' D'://삭제 기능//여러 레코드를 임의로 삭제하는 기능을 추가합니다.

삭제 ();

만약 (나< 1)

Printf(" \ n 레코드 없음-레코드 없음 \ n ");

Printf(" \ n 계속하려면 Enter 키를 누르십시오! "" );

Getchar ();

Getchar ();

Printf("\n\t\t\t\t\t\t 이 작업은 종료되었습니다. ");

Printf(" \ n \ t-\ t \ t \ n "); ");

깨뜨리다

상황' e'://쿼리 함수

Printf(" \ n \ t 쿼리할 레코드의 관련 이름 입력: "); //열 번호별로 쿼리 추가

Scanf("%s ",search name);

For (j =1; J<= I;; J++)

{

If (strcmp (searchname, friends [j].name)= = 0)// 비교 문자열.

{

보이기 (j);

깨뜨리다

}

}

만약 (나< 1)

{

Printf(" \ n 찾으려는 레코드 없음-레코드 없음 ");

Printf(" \ n 계속하려면 Enter 키를 누르십시오! "" );

Getchar ();

}

Printf("\n\t\t\t\t\t\t 이 작업은 종료되었습니다. ");

Printf(" \ n \ t-\ t \ t \ n "); ");

Getchar ();

깨뜨리다

사례' f'://수정 함수//일련 번호로 쿼리 추가.

Printf(" \ n \ t 수정할 레코드의 관련 이름 입력: ");

가져오기 (search name);

Scanf("%s ",search name);

For (j =1; J<= I;; J++)

{

If (strcmp (searchname, friends [j].name)= = 0)// 비교 문자열.

{

수정 (j);

//getchar (); //출력 추가 수정 확인?

}

}

(나< 1) // 함수를 수정하는 경우

{printf(" \ n 수정할 레코드 없음-레코드 없음 ");

Printf(" \ n 계속하려면 Enter 키를 누르십시오! "" );

Getchar ();

Getchar ();

}

Printf("\n\t\t\t\t\t\t 이 작업은 종료되었습니다. ");

Printf(" \ n \ t-\ t \ t \ n "); ");

깨뜨리다

사례' g':

저장 (); //저장 기능

Getchar ();

Printf("\n\t\t\t\t\t\t 이 작업은 종료되었습니다. ");

Printf(" \ n \ t-\ t \ t \ n "); ");

깨뜨리다

상황' h'://종료 기능

Char x;;

Printf ("저장하시겠습니까? 예/아니오 \ n ");

Scanf("%s ",& ampx);

//getchar ();

//getchar ();

If(x=='y')

{

저장 ();

종료 (0);

}

기타

종료 (0);

기본값:

Printf(" \ n \ t 잘못 입력했습니다. 올바른 일련 번호를 입력하십시오! " );

Printf(" \ n 계속하려면 Enter 키를 누르십시오! "" );

Getchar ();

Printf("\n\t\t\t\t\t\t 이 작업은 종료되었습니다. ");

Printf(" \ n \ t-\ t \ t \ n "); ");

}

} while (1);

}

copyright 2024회사기업대전