현재 위치 - 회사기업대전 - 기업 정보 공시 - C++ 직원 관리 정보 시스템

C++ 직원 관리 정보 시스템

액세서리 1,: 사용 지침

1 등록 정보 입력: 사원 정보를 등록할 때 사원 수를 등록하라는 메시지가 표시되며 사원 번호가 자동으로 주어진 다음 사원명, 성별, 나이, 학력, 임금, 주소, 연락처 전화를 입력합니다.

2 찾아보기 정보 입력: 작업이 완료되면 회사의 모든 직원에 대한 정보를 찾아볼 수 있습니다.

세 가지 조회 정보 입력: 서로 다른 정보를 기준으로 회사 사원에 대한 정보를 조회할 수 있습니다. 예를 들어 직원 번호, 직원의 학력, 직원의 연락처에 따라. 직원의 한 가지 정보를 이해하면 그의 다른 정보를 찾는 데 도움이 된다. 소량의 정보를 파악하면 관련 정보를 찾을 수 있다는 것을 깨달았다.

4 삭제 정보 입력: 인터페이스를 입력할 때 모든 사원에 대한 정보를 먼저 표시한 다음 삭제할 사원명을 입력합니다. 작업이 완료되면 삭제된 모든 직원 정보를 표시할 수 있습니다.

5 추가 정보 입력: 이 인터페이스를 입력한 후 이전 사원의 정보를 표시하고 정보를 추가할 인원수를 묻는 메시지를 표시한 다음 신규 사원에 대한 정보를 입력합니다. 작업이 끝나면 모든 직원의 정보를 자동으로 표시할 수 있습니다.

정보 수정 6 입력: 인터페이스에 들어가면 모든 직원에 대한 정보를 표시한 다음 수정할 직원의 이름을 묻는 메시지를 표시합니다. 입력하면 해당 직원의 원래 정보가 표시되고 수정 여부를 묻는 메시지가 표시됩니다. 1 수정 입력, 0 을 입력하면 수정하지 않습니다. 수정이 필요한 경우 수정할 옵션의 일련 번호를 묻는 메시지를 표시한 다음 수정합니다. 수정 후 수정된 직원 정보가 자동으로 표시됩니다.

첨부: 사원 정보 관리 시스템 코드

File.c

이 파일에는 주로 파일 읽기 및 쓰기 함수와 관련된 함수가 포함되어 있습니다.

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

/*? 파일:? File.c? */?

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

# 포함? & ltstdio.h & gt

# 포함? & ltwindows.h & gt

# 포함? & lttime.h & gt

# 포함? & ltstring.h & gt

# 정의? N? 100? /* 매크로 정의 */

Struct? 직원

{? Int? Num? /* 직원 번호 */

샤일? 이름 [10]; /* 직원 이름 */

샤일? 성 [4]; /* 직원의 성별 */

샤일? Bir [16]; -응? /* 직원의 생년월일 */

샤일? 이설 [30]; /* 직원 교육 */

Int? 임금; -응? /* 직원 급여 */

샤일? Addr [30]; -응? /* 직원 주소 */

샤일? 전화 [20]; * 직원 전화 번호 */

} em [100]; -응? /* 구조 정의 */

무효화? 메뉴 ()? /* 메뉴 기능 */

{

Printf ("? ☆ ☆ ☆ 정보 관리 및 정보 시스템 ☆ \ n ");

Printf ("\ n");

Printf("B0902? 화성 \ n”);;

Printf ("\ n");

Printf ("* * * * * * * * * * * * * * 직원 정보 관리 * * * * * * * * * * * * * * * * \ n ");

Printf(" 1. 직원 정보 입력);

Printf("2. 직원 정보 찾아보기 \ n ");

Printf("3. 직원 정보 조회);

Printf("4. 직원 정보 삭제 \ n ");

Printf("5. 직원 정보 추가);

Printf("6. 직원 정보 수정 \ n ");

Printf("7. 관리 시스템 종료 \ n ");

Printf ("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * printf

Printf ("\ n");

Printf ("\ n");

}

무효화? 주 ()

{

메뉴 (); -응? /* 메뉴 기능 호출 */

Int? N, 깃발

샤일? A;

하다

{? Printf ("작업이 필요한 단계를 선택하십시오 (1-7): \ n");

Scanf("%d ",& ampn);

(n>= 1) 인 경우. & ampn & lt=7)

{

Flag =1;

깨뜨리다

}

기타

{

Flag = 0;;

Printf ("잘못 입력했습니다. 다시 선택하십시오!" " );

}

}

While (flag = = 0);

While(flag== 1)

{? 스위치 (n)

{

사건? 1:printf ("◆◆◆◆◆ 직원 정보 입력 ◆◆ \ n"); Printf ("\ n"); Input (); 깨뜨리다

사건? 2:printf ("? ◆◆\n 직원 정보 찾아보기 ◆◆\ n”);; Printf ("\ n"); 표시 (); 깨뜨리다

사건? 3:printf ("? ◆◆\n 직원 정보 조회 ◆◆\ n”);; Printf ("\ n"); 검색 (); 깨뜨리다 -응?

사건? 4:printf ("? ◆◆\n 직원 정보 삭제 ◆◆\ n”);; Printf ("\ n"); Del (); 깨뜨리다

사건? 5:printf ("? ◆◆\n 직원 정보 추가 ◆◆\ n”);; Printf ("\ n"); Add (); 깨뜨리다

사건? 6:printf ("? ◆◆\n 직원 정보 수정 ◆◆\ n”);; Printf ("\ n"); Modify (); 깨뜨리다

사건? 7: 종료 (0); 깨뜨리다

위약? : break

}

Getchar ();

Printf ("\ n");

Printf ("계속하시겠습니까 (y? 아니면? N): \ n ");

Scanf("%c ",& AMPA);

If(a=='y')

{

Flag =1;

시스템 ("cls"); -응? /* 화면 비우기 */

메뉴 (); -응? /* 메뉴 기능 호출 */

Printf ("작업이 필요한 단계를 다시 선택하십시오 (1-6): \ n");

Scanf("%d ",& ampn);

Printf ("\ n");

}

그렇지 않으면요?

종료 (0);

}

}

무효화? 입력 ()/* 입력 함수 */

{

Int? 나, M;

Printf ("정보를 만들어야 하는 직원 수 입력 (1-100): \ n");

Scanf("%d ",& ampm);

뭐 때문에? (I = 0;; 나 & ltm;; I++)

{

Printf ("직원 번호:");

Srand ((int) 시간 (0));

Em[i]. Num = rand ()%10000+20000000;

If(em[i]. Num! =em[i- 1]. 숫자)

Printf("%8d? "" , em[i]. Num);

Printf ("\ n");

Printf ("이름을 입력하십시오:?" " );

Scanf("%s ",& ampem[i]. 이름);

Getchar ();

Printf ("성별을 입력하십시오:?" " );

Scanf("%s ",& ampem[i]. 성);

Printf ("생년월일 입력:");

Scanf("%s ",& ampem[i]. Bir);

Printf ("학력 입력:?" );

Scanf("%s ",& ampem[i]. 이설);

Printf ("급여를 입력하십시오:?" " );

Scanf("%d ",& ampem[i]. 임금);

Printf ("주소를 입력하십시오:?" );

Scanf("%s ",& ampem[i]. Addr);

Printf ("전화번호 입력:?" );

Scanf("%s ",& ampem[i]. 전화);

Printf ("\ n");

}

Printf(" \ n 생성됨! \ n ");

저장 (m);

}

무효화? 저장 (int? M)/* 파일 저장 기능 */

{

Int? 나;

FILE * FP

만약? ((fp=fopen("employee_list ","WB ")= = NULL)? /* 파일을 만들어 열 수 있는지 확인 */

{

Printf? ("안 돼요? 오픈? 파일 \ n ");

종료 (0);

}

뭐 때문에? (I = 0;; 나 & ltm;; I++)/* 메모리의 직원 정보를 디스크 파일로 출력 */

만약? (fwrite(& amp;; Em[i], sizeof(struct? 직원), 1, FP)! = 1)

Printf ("파일? 써요? 오류 \ n ");

Fclose (FP);

}

Int? 로드 ()/* 가져오기 함수 */

{

FILE * FP

Int? I = 0;;

If((fp=fopen("employee_list ","Rb ")= = NULL)

{

Printf? ("안 돼요? 오픈? 파일 \ n ");

종료 (0);

}

그렇지 않으면요?

{

뭐해?

{

프레드 (& ampem[i], sizeof(struct? Employee), 1, FP);

I++;+;

}

While (feof (FP) = = 0);

}

Fclose (FP);

반환 (I-1);

}

무효화? Display()/* 찾아보기 함수 */

{

Int? 나;

Int? M = 로드 ();

Printf("\n? 직원 번호 \ tName \ tSex \ 생년월일 \ t 학력 \ t 급여 \ t 주소 \ t 전화 \ n ");

For(I = 0;; 나 & ltm;; I++)/*m 은 입력 부분의 직원 수 */

Printf("\n? % 6d \ t% s \ t% 4s \ t% s \ t% s \ t% d \ t% s \ t% s \ n ",em[i]. Num, em[i] 입니다. 이름, em[i]. 성, em[i]. Bir, em[i] 입니다. 이설, em[i]. 임금, em[i]. 주소, em[i]. 전화); -응?

}

무효화? Del ()? /* 함수 삭제 */

{? Int? M = 로드 ();

Int? I, j, n, t, flag

샤일? 이름 [20];

Printf("\n? 원래 직원 정보: \ n”);;

표시 (); -응? /*? 찾아보기 함수 호출 */

Printf ("\ n");

Printf ("삭제할 직원 이름 입력: \ n");

Scanf("%s ",이름);

For(flag= 1, I = 0;; 깃발 & amp& amp 나 & ltm;; I++)

{

If(strcmp(em[i].name, name)==0)

{

Printf(" \ n 이 사람이 찾았습니다. 원본 레코드는 다음과 같습니다. \ n ");

Printf(" \ n 직원 번호 \ tName \ tSex \ 생년월일 \ t 학력 \ t 나이 \ t 주소 \ t 전화 \ n ");

Printf ("\ n% d \ t% s \ t% s \ t% s \ t% s \ t% d \ t% s \ t% s \ n") Num, em[i] 입니다. 이름, em[i]. 성, em[i]. Bir, em[i] 입니다. 이설, em[i]. 임금, em[i]. 주소, em[i]. 전화); -응?

Printf(" \ n 이 개인 정보를 1 또는 0\n "을 눌러 삭제하지 않음);

Scanf("%d ",& ampn);

If(n== 1)/* 삭제하면 다른 모든 정보가 한 줄 위로 이동합니다 */

{

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

{

Strcpy(em[j]. 이름, em[j+ 1]. 이름);

Em[j]. Num=em[j+ 1]. Num

Strcpy(em[j]. 성, em[j+ 1]. 성);

Strcpy(em[j].bir, em[j+ 1]. Bir);

Strcpy(em[j]. 이설, 동부 지중해. 이설);

Em[j]. 임금 =em[j+ 1]. 임금; -응?

Strcpy(em[j]. 주소, em[j+ 1]. Addr);

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

}

Flag = 0;;

}

}

}

만약 (! 깃발)

M = m-1;

기타

Printf(" \ n 죄송합니다. 이 사람이 없습니다! \ n ");

Printf("\n? 삭제된 모든 직원 정보 찾아보기: \ n ");

저장 (m); /* 저장 함수 호출 */

표시 (); -응? /* 찾아보기 함수 호출 */

Printf(" \ n 1 삭제 계속, 0 을 눌러 삭제 중지 \ n ");

Scanf("%d ",& ampt);

스위치 (t)

{

사건? 1:del (); 깨뜨리다

사건? 0: 연결 끊기 :

위약? : break

}

}

무효화? 추가 ()/* 함수 추가 */

{

FILE * FP

Int? N;

Int? Count = 0;;

Int? 나;

Int? M = 로드 ();

Printf("\n? 원래 직원 정보: \ n”);;

표시 (); -응? /*? 찾아보기 함수 호출 */

Printf ("\ n");

Fp=fopen("emploee_list ","a ");

Printf ("추가할 직원 수 입력: \ n");

Scanf("%d ",& ampn);

뭐 때문에? (I = m;; 나< (m+n); I++)

{

Printf("\n? 새로 추가 된 직원에 대한 정보를 입력하십시오: \ n ");

Printf ("직원 번호 입력:?" );

Srand ((int) 시간 (0));

Em[i]. Num = rand ()%10000+20000000;

If(em[i]. Num! =em[i- 1]. 숫자)

Printf("%8d? "" , em[i]. Num);

Printf ("\ n");

Printf ("이름을 입력하십시오:?" " );

Scanf("%s ",& ampem[i]. 이름);

Getchar ();

Printf ("성별을 입력하십시오:?" " );

Scanf("%s ",& ampem[i]. 성);

Printf ("생년월일 입력:");

Scanf("%s ",& ampem[i]. Bir);

Printf ("학력 입력:?" );

Scanf("%s ",& ampem[i]. 이설);

Printf ("급여를 입력하십시오:?" " );

Scanf("%d ",& ampem[i]. 임금);

Printf ("주소를 입력하십시오:?" );

Scanf("%s ",& ampem[i]. Addr);

Printf ("전화번호 입력:?" );

Scanf("%s ",& ampem[i]. 전화);

Printf ("\ n");

Count = count+1;

Printf ("인원 증가: \ n");

Printf("%d\n ",count);

}

Printf(" \ n 추가됨! \ n "); -응?

M = m+ 개수;

Printf(" \ n 추가된 모든 직원 정보 찾아보기: \ n ");

Printf ("\ n");

저장 (m);

표시 ();

Fclose (FP);

}

무효화? 검색 ()/* 쿼리 함수 */

{

Int? T, 깃발

하다

{

Printf(" \ n 직원 번호로 문의하려면 1? 을 눌러 섹션을 인쇄할 수도 있습니다 -응? 학력별 문의는 2 를 누르세요? 을 눌러 섹션을 인쇄할 수도 있습니다 -응? 전화 번호 조회는 3, 주요 기능은 4 \ n ");

Scanf("%d ",& ampt);

If(t & gt;; = 1 입니다. & ampt & lt=4)

{

Flag =1;

깨뜨리다

}

기타

{

Flag = 0;;

Printf ("잘못 입력했습니다. 다시 선택하십시오!" " );

}

}

While (flag = = 0);

While(flag== 1)

{

스위치 (t)

{?

사건? 1:printf ("직원 번호별 쿼리 \ n"); Search_num () 을 참조하십시오. 깨뜨리다

사건? 2:printf ("학력별 조회 \ n"); Search _ 이설 (); 깨뜨리다

사건? 3:printf ("전화 번호로 조회 \ n"); Search _ tel (); 깨뜨리다

사건? 4: 메인 (); 깨뜨리다

기본값: break

}

}

}

무효화? Search_num ()

{

Int? Num

Int? I, t;

Int? M = 로드 ();

Printf ("찾으시는 직원 번호 입력 (20001111-2000999): \

Scanf("%d ",& ampnum);

For(I = 0;; 나 & ltm;; I++)

If(num==em[i]. 숫자)

{?

Printf(" \ n 이 사람을 찾았습니다. 기록은 다음과 같습니다. \ n ");

Printf(" \ n 직원 번호 \ tName \ tSex \ 생년월일 \ t 학력 \ t 나이 \ t 주소 \ t 전화 \ n ");

Printf ("\ n% d \ t% s \ t% s \ t% s \ t% s \ t% d \ t% s \ t% s \ n") Num, em[i] 입니다. 이름, em[i]. 성, em[i]. Bir, em[i] 입니다. 이설, em[i]. 임금, em[i]. 주소, em[i]. 전화); -응?

깨뜨리다

}

If(i==m)?

Printf(" \ n 죄송합니다. 이 사람을 찾지 못했습니다. \ n ");

Printf ("\ n");

Printf ("1 으로 쿼리 기능 반환, 2\n" 으로 직원 번호 쿼리 계속);

Scanf("%d ",& ampt);

스위치 (t)

{?

사건? 1:검색 (); 깨뜨리다

사건? 2:? 깨뜨리다

기본값: break

}

}

무효화? 검색 _ 이설 ()

{

샤일? 이설 [30];

Int? I, t;

Int? M = 로드 ();

Printf ("찾으시는 학력을 입력해 주세요: \ n");

Scanf("%s ",이설);

For(I = 0;; 나 & ltm;; I++)

If(strcmp(em[i]. 이설, 이설) ==0)

{

Printf(" \ n 레코드 발견: \ n ");

Printf(" \ n 직원 번호 \ tName \ tSex \ 생년월일 \ t 학력 \ t 나이 \ t 주소 \ t 전화 \ n ");

Printf ("\ n% d \ t% s \ t% s \ t% s \ t% s \ t% d \ t% s \ t% s \ n") Num, em[i] 입니다. 이름, em[i]. 성, em[i]. Bir, em[i] 입니다. 이설, em[i]. 임금, em[i]. 주소, em[i]. 전화); -응?

}

If(i==m)?

Printf(" \ n 죄송합니다. 이 사람을 찾지 못했습니다. \ n ");

Printf ("\ n");

Printf ("1 으로 쿼리 기능 반환, 2\n" 으로 학력 조회 계속);

Scanf("%d ",& ampt);

스위치 (t)

{?

사건? 1:검색 (); 깨뜨리다

사건? 2: 깨진;

위약? : break

}

}

무효화? Search_tel ()

{

샤일? 전화 [20];

Int? 나? T;

Int? M = 로드 ();

Printf ("찾으려는 전화 번호 입력: \ n");

Scanf("%ld ",& 전화);

For(I = 0;; 나 & ltm;; I++)

If(strcmp(em[i].tel, tel)==0)

{?

Printf(" \ n 이 사람을 찾았습니다. 기록은 다음과 같습니다. \ n ");

Printf(" \ n 직원 번호 \ tName \ tSex \ 생년월일 \ t 학력 \ t 나이 \ t 주소 \ t 전화 \ n ");

Printf ("\ n% d \ t% s \ t% s \ t% s \ t% s \ t% d \ t% s \ t% s \ n") Num, em[i] 입니다. 이름, em[i]. 성, em[i]. Bir, em[i] 입니다. 이설, em[i]. 임금, em[i]. 주소, em[i]. 전화); -응?

깨뜨리다

}

If(i==m)?

Printf(" \ n 죄송합니다. 이 사람을 찾지 못했습니다. \ n ");

Printf ("\ n");

Printf ("1 으로 조회 기능 반환, 2\n" 을 눌러 전화 번호 조회를 계속합니다.)

Scanf("%d ",& ampt);

스위치 (t)

{?

사건? 1:검색 (); 깨뜨리다

사건? 2: 깨진;

위약? : break

}

}

무효화? 수정 ()/* 수정 함수 */

{

Int? Num

샤일? 이름 [10];

샤일? 성 [4]; -응?

샤일? Bir [20];

샤일? 이설 [30];

Int? 임금;

샤일? Addr [30];

샤일? 전화 [20];

Int? B, c, I, n, t, flag?

Int? M = 로드 (); -응? /* 가져온 파일의 정보 */

Printf("\n? 원래 직원 정보: \ n”);;

표시 (); -응? /*? 찾아보기 함수 호출 */

Printf ("\ n");

Printf ("수정할 직원 이름 입력: \ n");

Scanf("%s ",이름);

For(flag= 1, I = 0;; 깃발 & amp& amp 나 & ltm;; I++)

{

If(strcmp(em[i].name, name)==0)

{

Printf(" \ n 이 사람이 찾았습니다. 원본 레코드는 다음과 같습니다. \ n ");

Printf(" \ n 직원 번호 \ tName \ tSex \ 생년월일 \ t 학력 \ t 나이 \ t 주소 \ t 전화 \ n ");

Printf ("\ n% d \ t% s \ t% s \ t% s \ t% s \ t% d \ t% s \ t% s \ n") Num, em[i] 입니다. 이름, em[i]. 성, em[i]. Bir, em[i] 입니다. 이설, em[i]. 임금, em[i]. 주소, em[i]. 전화); -응?

Printf(" \ n 이 사람의 정보를 수정하시겠습니까? 1? 을 눌러 섹션을 인쇄할 수도 있습니다 -응? 0\n ") 을 눌러 수정하지 않습니다.

Scanf("%d ",& ampn);

(n== 1) 인 경우

{

Printf(" \ n 수정해야 할 옵션 \ n? 1. 직원 번호? 2. 이름? 3. 성별? 4. 생년월일? 5. 학력? 6. 임금? 7. 주소? 8. 전화 \ n "); -응?

Printf ("수정할 일련 번호 입력: \ n"); -응?

Scanf("%d ",& ampc); -응?

If(c & gt;; 8 | | c< 1)?

Printf(" \ n 선택 오류입니다. 다시 선택하십시오! \ n "); -응?

}

Flag = 0;;

}

}

If(flag== 1)

Printf(" \ n 죄송합니다. 이 사람이 없습니다! \ n "); -응?

뭐해?

{

스위치 (c)? /* 첫 번째 직원을 찾았을 때 for 문 뒤에 1 을 추가했기 때문에 I- 1 사람 */

{?

사건? 1:printf ("직원 번호 변경:?" );

Scanf("%d ",& ampnum);

Em[i- 1]. Num = num

깨뜨리다 -응?

사건? 2:printf ("이름이 다음으로 변경됨:?" );

Scanf("%s ",이름);

Strcpy(em[i- 1]). 이름, 이름); -응?

깨뜨리다 -응?

사건? 3:printf ("성별을 다음으로 변경:? 클릭합니다 );

Scanf("%s ",성);

Strcpy(em[i- 1]). 성, 성);

깨뜨리다 -응?

사건? 4:printf ("생년월일을 다음으로 변경:?" " );

Scanf("%s ",Bir);

Strcpy(em[i- 1]). Bir, Bir);

깨뜨리다 -응?

사건? 5:printf ("학력 변경:? 클릭합니다 );

Scanf("%s ",이설);

Strcpy(em[i- 1]). 이설, 이설); -응?

깨뜨리다 -응?

사건? 6:printf ("임금은 다음으로 바뀜?" " );

Scanf("%d ",& 급여);

깨뜨리다 -응?

사건? 7:printf ("주소 변경:?" );

Scanf("%s ",addr);

Strcpy(em[i- 1]). Addr, addr);

깨뜨리다 -응?

사건? 8:printf ("전화는 다음으로 바뀜?" " );

Scanf("%s ",전화);

Strcpy(em[i- 1]). 전화, 전화);

깨뜨리다 -응?

}?

Printf ("\ n");

Printf(" \ n 정보를 수정하시겠습니까? \n? 무슨 일이야? 1? 을 눌러 섹션을 인쇄할 수도 있습니다 -응? 아니요, 수정해 드릴까요? 2:? \ n "); -응?

Scanf("%d ",& ampb);

}?

While (b = = 2);

Printf(" \ n 수정된 모든 직원 정보 찾아보기: \ n ");

Printf ("\ n");

저장 (m);

표시 ();

Printf(" \ n 1 계속 수정, 0\n "을 눌러 수정 중지);

Scanf("%d ",& ampt);

스위치 (t)

{

사건? 1:modify (); 깨뜨리다

사건? 0: 연결 끊기 :

위약? : break

}

}

copyright 2024회사기업대전