현재 위치 - 회사기업대전 - 기업 정보 공시 - C 라이브러리 관리 소스 코드를 전문가가 작성하도록 도와주세요! ! ! !

C 라이브러리 관리 소스 코드를 전문가가 작성하도록 도와주세요! ! ! !

#includelt;

#includelt;

#includelt; includelt; stdlib.hgt;

#includelt;ctype.hgt;

#define STACK_INIT_SIZE 10

#define OK 1

# 정의 TRUE 1

#define FALSE 0

#define ERROR 0

struct Student /*빌린 책을 저장하는 데 사용되는 학생 유형 정의*/ < /p >

{

int carnum;

charlentbook[10]

}student[1000]; /*직원 유형 정의*/

{

int Employmentnum;

char Employmentname[15]

int Employment; p>

char 고용sex[2];

char 고용[10];

long int 고용

} p>

struct book /*책 유형 정의*/

{

int booknum

char bookname[10]; >

p>

char bookcreat[10];

int turefalse; /*책 대출 여부를 결정하기 위해 대출 및 반납 모듈에서 사용되는 조건*/

} book[1000];

struct car /*도서관 카드의 데이터 유형*/

{

int carnum; >char Studentname[10];

int Studentclass;

}car[100]

huanbook() /*책 반환 함수*/

{

FILE *fp, *fp2; /*두 개의 파일 포인터를 정의합니다. fp2는 데이터 수정 시 데이터 손상을 방지하기 위해 임시 파일을 설정하는 데 사용됩니다.*/

int i, n;

int carnum;

charlentbook[10]

printf("카드 번호를 입력하세요.") ;

Charlentbook[10]; p>

scanf("d", amp; carnum)

fp=fopen("car.txt", "r" ); /*카드 번호 레코드 읽기*/

for(i=0; fread(amp; car[i], sizeof(struct car), 1, fp)!=0; i ) /* for 루프는 카드 번호가 존재하는지 확인합니다*/

{

if(car[i].carnum==carnum) /*카드 번호가 존재합니다. 다음 주기에 들어갑니다* /

{

n=i

fclose(fp);

printf("반납하려는 책의 이름을 입력하세요\n")

scanf("s",lentbook)

fp=fopen("record.txt ", "r");

for(i=0; fread(amp; Student[i], sizeof(struct Student), 1, fp)!=0; i) /* 입력은 빌린 책입니다*/

{

if(strcmp(student[i].lendbook,lentbook)==0) /*책을 빌리고 다음 주기에 들어갔습니다. 그렇지 않으면 오류가 발생했습니다. Display*/

{

fclose(fp)

fp=fopen("record.txt", "r")

fp2=fopen("bookl.txt", "w");

for(i=0; fread(amp; 학생[i], sizeof(struct Student), 1 , fp)! =0;i)

{

if(strcmp(student[i].lendbook, 대출북)==0)

{

continue; /*반납된 도서의 대출 기록 삭제*/

}

fwrite(amp; Student[i], sizeof(struct Student), 1, fp2 ); /*반납되지 않은 원본 책의 기록을 작성합니다*/

}

fclose(fp)

fclose(fp2); /p >

fp=fopen("record.txt", "w")

fp2=fopen("bookl.txt", "r"); for( i=0; fread(amp; 학생[i], sizeof(struct Student), 1, fp2)!=0; i )

{

fwrite(amp; Student[ i], sizeof(struct Student), 1, fp) /*대출 기록 정보 다시 쓰기*/

}

fclose(fp);

fclose(fp2);

fopen("bookl.txt", "w") /*임시 파일 기록 지우기*/

fclose(fp2);

p>

fp=fopen("book.txt", "r")

fp2=fopen("bookl.txt", "w")

for (i=0; fread(amp; book[i], sizeof(struct book), 1, fp)!=0; i) /*이전 레코드가 삭제되지 않도록 임시 파일에 도서 레코드를 씁니다. 정보 수정으로 인해 파기됨* /

{

if(i

==n)

{

book[i].turefalse=1;

fwrite(amp; book[i], sizeof(struct book), 1, fp2); /*반납된 도서의 원래 상태를 대출 취소로 설정*/

continue

}

fwrite(amp; book[i ], sizeof(struct book), 1, fp2);

}

fclose(fp)

fclose(fp2); p> p>

fp=fopen("book.txt", "w")

fp2=fopen("bookl.txt", "r"); > for (i=0;fread(amp;book[i],sizeof(struct book),1,fp2)!=0;i)

{

fwrite(amp ;book [i], sizeof(struct book), 1, fp) /*임시 파일을 다시 쓰기*/

}

fclose(fp);

fclose(fp2);

fopen("bookl.txt", "w") /*임시 파일 지우기*/

fclose(fp2); >

printf("책 반환이 완료되었습니다. 반환하려면 아무 키나 누르세요.\n")

getch()

return 1;

}

printf("그런 책을 빌리지 않았습니다. 열쇠가 반환됩니다.\n") /*오류 메시지*/

fclose(fp );

p>

getch();

0을 반환

}

printf( "시스템에 해당 카드가 없습니다. 관리자에게 문의하고 돌아가려면 아무 키나 누르십시오.\n") /*오류 메시지*/

fclose(fp); ();

}

findbook()

{

FILE *fp>

char 책 이름[ 10];

설정, i;

fp=fopen("book.txt", "r")

printf(" 찾고 있는 책 제목\n") ;

scanf("s", bookname);

for(i=0; fread(amp; book[i] , sizeof(struct book), 1, fp)! =0;i)

{

if(strcmp(bookname, book[i].bookname)==0)

{

if(book[i].turefalse==1)

{

printf("이 책의 세부정보는 다음과 같습니다: d s s 이 책은 현재 선택되어 있지 않습니다.\n돌아가려면 아무 키나 누르십시오.\n", book[i].booknum, book[i].bookname, book[i].bookcreat)

}

else {printf("이 책은 대여되었습니다\n"); fclose(fp) return 0;}

fclose( fp); /p>

return FALSE;

}

}

printf("쿼리하려는 책이 없습니다\n")

} p>

fclose(fp);

FALSE를 반환

}

findbook1()

{

p>

파일 *fp;

char bookcreat[10]

문서, i; .txt" , "r");

printf("찾고 있는 저자의 이름을 입력하세요\n");

scanf("s", bookcreat) ;

for(i=0;fread(amp;book[i],sizeof(struct book),1,fp)!=0;i)

{

if( strcmp(bookcreat,book[i].bookcreat)==0)

{

if(book[i].turefalse==1)

p>

{

printf("이 책의 세부정보는 다음과 같습니다: d s s 이 책은 현재 선택되어 있지 않습니다.\n돌아가려면 아무 키나 누르십시오.\n", book[i].booknum, book[i] .bookname, book [i].bookcreat);

}

else {printf("이 책은 대출되었습니다\n") fclose(fp);

p>

fclose(fp);

반환 FALSE

}

}

printf(" 검색할 책이 없습니다.\n");

fclose(fp);

return FALSE;

}

lendcount( )

{

파일 *fp;

int i, n=0

fp=fopen("record.txt" , "r" );

for(i=0; fread(amp; Student[i], sizeof(struct Student), 1, fp)!=0; i )

{

printf("카드 번호: d 빌려준 책: s\n", Student[i].carnum, Student[i].lendbook)

n=n 1 ;

n=n 1;

p>

}

fclose(fp)

printf("현재 * ** 대출할 책이 d 권 있습니다\n", n);

printf("아무 키나 누르세요\n");

getch()

;

n을 반환

}

chabook()

{

char ch5; >

do

{

printf("---------------도서 검색 시스템에 오신 것을 환영합니다!------ - --------\n");

printf(" 1: lt; 책 제목으로 gt 검색; \n");

printf(" 2: lt; 작성자로 검색 gt; \n");

printf(" 0: lt; return gt; \n");

printf("0-을 입력하세요. -2, 다른 입력은 허용되지 않습니다! \n");

scanf("s", amp; ch5);

switch(ch5)

{

케이스 '1': getch(); break;

케이스 '2': getch(); > case ' 0': break;

기본값: printf("해당 작업 없음\n") break; while(ch5 !='0');

반환

}

lendbook()

{

파일 *fp, *fp2;

int i, n;

int carnum

printf("카드 번호를 입력하세요." );

scanf("d", amp; carnum)

fp=fopen("car.txt", "r")

(i =0;fread(amp;car[i],sizeof(struct car),1,fp)!=0;i)

{

if(car[i ].carnum==carnum)

{

n=i;

fclose(fp) printf("입력하세요. 원하는 것 빌린 책 이름\n");

scanf("s", Student[n].lendbook);

fp=fopen("book.txt ", "r ");

for(i=0; fread(amp; book[i], sizeof(struct book), 1, fp)!=0; i )

{

if(strcmp(book[i].bookname, 학생[n].lendbook)==0)

{

if(book [i].turefalse==0) {printf("죄송합니다. 다른 책을 빌려주세요.\n"); fclose(fp) return;}

else

fclose(fp);

fp=fopen("record.txt", "a ")

학생[n]

.carnum=carnum;

fwrite(amp; 학생[n], sizeof(struct Student), 1, fp)

fclose(fp); > fp=fopen("book.txt", "r");

fp2=fopen("bookl.txt", "w")

for(i=0 ;fread(amp;book[i],sizeof(struct book),1,fp)!=0;i)

{

if(strcmp(book[i]. bookname, 학생[n].lendbook)==0)

{

book[i].turefalse=0

fwrite(amp;book[ i], sizeof(구조체 책), 1, fp2);

계속

}

fwrite(amp; book[i], sizeof(구조체) 책), 1, fp2);

}

fclose(fp)

fclose(fp2); ("book.txt", "w");

fp2=fopen("bookl.txt", "r")

for(i=0; fread(amp) ; book[i], sizeof(구조체 책), 1, fp2)!=0; i )

{

fwrite(amp; book[i], sizeof(구조체 책 ), 1, fp);

}

fclose(fp)

fclose(fp2); .txt", "w");

fclose(fp2);

printf("책을 빌린 후 반납하려면 아무 키나 누르세요\n");

getch();

return;

}

}

printf("해당 책이 없습니다. 모든 키가 반환됩니다. \n");

fclose(fp);

getch();

return;

}

}

printf("카드 번호가 없습니다. 새 카드를 신청하세요. 돌아가려면 아무 키나 누르세요.\n")

fclose(fp); /p>

getch();

}

carcount()

{

FILE *fp; >

int i, n=0;

fp=fopen("car.txt", "r")

for(i=

0; fread(amp; car[i], sizeof(struct car), 1, fp)!=0 i )

{

printf("d번째 카드 lt ; 카드 번호: d 이름: s 클래스: dgt;\n", i 1, car[i].carnum, car[i].studentname, car[i].studentclass);

n=n 1;

}

fclose(fp);

printf("현재 *** d권의 책이 있습니다\n", n); >

printf("아무 키나 누르세요\n");

getch()

}

delcar()

{

FILE *fp, *fp2;

int carnum

문자 선택;

fp=fopen("car.txt", "r")

fp2=fopen("bookl.txt", "w")

printf(" 삭제하려는 카드번호를 입력하세요\n");

printf("입력하신 카드번호가 존재하는 경우 시스템은 자동으로 해당 정보를 삭제합니다. 존재하지 않는 경우 시스템은 정보를 삭제하지 않습니다. 변경\n");

scanf("d", amp; carnum);

for(i=0; fread(amp; car[i], sizeof( struct car), 1, fp)! =0;i)

{

if(car[i].carnum!=carnum)

{

fwrite(amp ; car[i], sizeof(struct car), 1, fp2)

}

}

fclose (fp);

fclose(fp2);

printf("정말로 카드를 삭제하시겠습니까? 삭제 후에는 "Y/N" 도서의 모든 정보를 삭제할 수 없습니다. 복구됨\n");

scanf("s",amp;choice);

if(choice=='y'||choice=='Y')

{

fp=fopen("car.txt", "w")

fp2=fopen("bookl.txt", "r") ;

for(i= 0; fread(amp; car[i], sizeof(struct car), 1, fp2)!=0; i )

{

fwrite(amp; car[i] , sizeof(struct car), 1, fp)

}

fclose(fp); > fclose(fp2);

fp2=fopen("bookl.txt", "w")

fclose(fp2); 돌아가려면 아무 키나 누르십시오.\n");

getch();

return;

}

else

{

printf( "돌아가려면 아무 키나 누르세요\n")

<

p> getch();

반환

}

}

addcar()

{

파일 *fp;

int i=0;

fp=fopen("car.txt", "a "); >printf("카드 번호를 입력하세요\n");

scanf("d", amp; car[i].carnum)

printf("카드 번호를 입력하세요. 학생 이름\n");

scanf("s", car[i].studentname);

printf("반을 입력하세요\n");

scanf("d", car[i].studentclass)

fwrite(car[i], sizeof(struct car), 1, fp); fclose(fp);

printf("입력이 완료되면 모든 키가 반환됩니다.\n")

getch();

copyright 2024회사기업대전