디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

도서관리프로그램.exe

warota(221.150) 2011.10.07 00:37:20
조회 136 추천 0 댓글 1





 

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define BOOK_COUNT 100
#define NAME_NEN 20
#define AUTHOR_LNE 15

typedef struct book
{
 char name[NAME_NEN];
 char author[AUTHOR_LNE];
 int price;
 int cnt;
}BOOK;

typedef int INT;

int index=0;

void input(BOOK *p);
void output(BOOK *p);
void sort(BOOK *p);
void search(BOOK *p);
void fix(BOOK *p);
void del(BOOK *p);
void Save(BOOK *p);
void Open(BOOK *p);

 

 

int main()
{
 BOOK b[BOOK_COUNT]={0};
 int choice;
 
 while(1) 
 {
  printf(
   "\\n\\n\\t\\t** 도서관리 프로그램 **\\n\\n"
   "1.도서정보 입력\\n"
   "2.도서정보 출력\\n"
   "3.도서정보 정렬\\n"
   "4.도서정보 수정\\n"
   "5.도서정보 검색\\n"
   "6.도서정보 삭제\\n"
   "7.저         장\\n"
   "8.불 러   오 기\\n"
   "0.프로그램 종료\\n"
   "선택 : [ ]\\b\\b"
   );
  scanf("%d",&choice);
  
  switch(choice)
  {
  case 1: input(b); break;
  case 2: output(b); break;
  case 3: sort(b); break;
  case 4: fix(b); break;  
  case 5: search(b); break;
  case 6: del(b); break;
  case 7: Save(b); break;
  case 8: Open(b); break;
  case 0: 
   printf("\\n\\n\\t\\t프로그램을 종료합니다\\n");
   return 0;
  default :
   printf("잘못된 입력입니다\\a\\a\\n");
   continue;//  반복문의 선두로 이동
  }
 }
 return 0;
}

void input(BOOK *p)
{
 if(index==BOOK_COUNT)
 {
  printf("\\n\\n\\t\\t더이상 저장할수가 없습니다.");
  return;//함수 종료
 }

 printf("\\n\\n\\t\\t** 도서정보 입력 **\\n\\n");
 //for(i=0;i<BOOK_COUNT;i++)
 //{
 printf("\\n[%d번째 입력]\\n",index+1);
 printf("도서명 : ");
 fflush(stdin);
 gets((p+index)->name);
 printf("작가명 : ");
 fflush(stdin);
 gets((p+index)->author);
 printf("가  격 : ");
 scanf("%d",&(p+index)->price);
 printf("수  량 : ");
 scanf("%d",&(p+index)->cnt);
 
 
 ++index;
 }
}

 

 

 

void output(BOOK *p)
{
 int i; 
 printf("\\n\\n\\t\\t** 도서정보 출력 **\\n\\n");
 printf("==============================================================\\n");
 printf("%5s %-20s %-15s %6s %6s\\n","번호","도서명","작  가","가  격","수  량");
 
 for(i=0;i<index;i++)
 {
  printf("%05d %-20s %-15s %6d %6d\\n",i+1,(p+i)->name,(p+i)->author,(p+i)->price,(p+i)->cnt);
  
 }
}

 

 

void sort(BOOK *p)
{
 int i,j;
 for(i=0;i<index-1;i++)      //정렬대상
 {
  for(j=i+1;j<index;j++)  //비교대상
  {
   //if(p[i].name>p[j].name)  // 주소비교  //정렬>비교
   if(strcmp(p[i].name,p[j].name) > 0)
   {
    BOOK temp;
    temp=p[i];
    p[i]=p[j];
    p[j]=temp;
    /*값 교 환*/
   }
  }
 }
 printf("정렬이 완료되었습니다.\\n");
 output(p);

}

 

 

void search(BOOK *p)
{
 char book_name[NAME_NEN];
 int i; 
 
 printf("검색할 도서명을 입력하세요 : ");
 fflush(stdin);
 gets(book_name);
 
 for(i=0;i<index;i++)
 {
  if(strcmp(book_name,(p+i)->name)==0)
  {
   printf("\\n\\n\\t\\t** 검색 도서정보 출력 **\\n\\n");
   printf("==============================================================\\n");
   printf("%5s %-20s %-15s %6s %6s\\n","번호","도서명","작  가","가  격","수  량");
   printf("%05d %-20s %-15s %6d %6d\\n",i+1,(p+i)->name,(p+i)->author,(p+i)->price,(p+i)->cnt);
  }
  
 }
 
 
}

void fix(BOOK *p)
{
 char book_name[NAME_NEN];
 int i;


 printf("수정할 도서명을 입력하세요 : ");
 fflush(stdin);
 gets(book_name);
 
 for(i=0;i<index;i++)
 {
  if(strcmp(book_name,(p+i)->name)==0)
  {
   printf("\\n\\n\\t\\t** 도서정보 입력 **\\n\\n");
   
   

   printf("작가명 : ");
   fflush(stdin);
   gets((p+i)->author);
   printf("가  격 : ");
   scanf("%d",&(p+i)->price);
   printf("수  량 : ");
   scanf("%d",&(p+i)->cnt);
   printf("\\n\\n** 수정되었습니다. **\\n");
   break;
   
  }
  
 } 
}

 

 

void del(BOOK *p)
{
 char book_name[NAME_NEN];
 int i; 
 
 printf("삭제할 도서명을 입력하세요 : ");
 fflush(stdin);
 gets(book_name);
 
 for(i=0;i<index;i++)
 {
  if(strcmp(book_name,(p+i)->name)==0)
  {
  
   p[i]=p[index-1];
  
  
   printf("\\n\\n** 삭제되었습니다. **\\n");
   --index;
   break;

   
  } 
 } 
}

 

 

void Save(BOOK *p)
{
 FILE *fp=NULL;
 char i;
 
 fp=fopen("book.txt","wt");
 if(fp==NULL)
 {
  printf("file open fail!\\a\\a\\n");
  exit(0);
 }
 fprintf(fp,"%5s %-20s %-15s %6s %6s\\n","번호","도서명","작  가","가  격","수  량");
  fprintf(fp,"==============================================================\\n");

 for (i=0;i<index;i++)
 {
  fprintf(fp,"%05d %-20s %-15s %6d %6d\\n",i+1,(p+i)->name,(p+i)->author,(p+i)->price,(p+i)->cnt);
 }
 printf("\\n\\n** 저장되었습니다. **\\n");
 fclose(fp);

}

 

 

 


void Open(BOOK *p)
{
 FILE *fp=NULL;
 char ch;;
 
 fp=fopen("book.txt","rt");
 if(fp==NULL)
 {
  printf("file open fail!\\a\\a\\n");
  exit(0);
 }
 printf("\\n\\n** book.txt 불러오기 **\\n\\n\\n");
 while(1)
 {
  ch=fgetc(fp);
  
  if(ch==EOF) 
  {
   break;
  }
  
  
  printf("%c",ch);
 }
  
  
  
  fclose(fp);
  

 }



 학교 과제중에 하나였던 기억이...
 

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 힘들게 성공한 만큼 절대 논란 안 만들 것 같은 스타는? 운영자 24/06/10 - -
이슈 [디시人터뷰] 웃는 모습이 예쁜 누나, 아나운서 김나정 운영자 24/06/11 - -
291563 아까 글올렸었는데... [8] c언어?(112.146) 11.11.29 76 0
291562 안드로이드 무료교육 vs 회사 일주일 더 다니기 [4] ㄱㄱ(112.214) 11.11.29 84 0
291561 분명히 뱃속에 똥이 있는거 같긴 한데 [3] Lover♥갤로그로 이동합니다. 11.11.29 76 0
291559 프갤을 관리하시는 전하 님은 보시옵소서. [3] 좋은아버지갤로그로 이동합니다. 11.11.29 64 0
291558 아 ㅠㅠ 왜 segmentation fault가 나는거야 ㅠㅠ [5] 잉여잉간 (110.76) 11.11.29 91 0
291554 게임카테고리 풀려서 무료겜 몇개 다운받아서 해봤는뎅 시불라미갤로그로 이동합니다. 11.11.29 60 0
291553 형들 플러그인 에러가 나는데... 문어(121.169) 11.11.29 25 0
291552 프로그래밍갤횽들... [25] c언어?(112.146) 11.11.29 184 0
291551 자바하던 중 궁금한거 매우 쉬움! 도와주세융 [28] ㅎㅎ(58.127) 11.11.29 126 0
291549 zzz는 봅니다. 솔직히 보안 쉽자나.? [4] 좋은아버지갤로그로 이동합니다. 11.11.29 129 0
291548 형들 오픈소스로 프로그래밍 공부 할수있음? [8] HaCh갤로그로 이동합니다. 11.11.29 81 0
291547 형들 .lib 파일 보는법좀 알려주세요 ㅇㅇㄹ(125.149) 11.11.29 23 0
291546 형들 이게 도대체 학부생 수준의 매트랩 난이도 맞아?? [1] 또하자(222.107) 11.11.29 465 0
291545 오오 금연 하루째~~ 잘 버텼다~~!! [1] 쿄스케갤로그로 이동합니다. 11.11.29 31 0
291543 홍콩행 코딩바 [3] 김후로게이갤로그로 이동합니다. 11.11.29 85 0
291542 MAMA보는사람없음? [1] 三didas갤로그로 이동합니다. 11.11.29 33 0
291540 opengl... 미천한 뉴비에게 가르침을 주십시오ㅠㅠㅠ [2] ㅁㄴ(220.66) 11.11.29 66 0
291539 나만 그러는건가? [2] 나리링갤로그로 이동합니다. 11.11.29 56 0
291537 하아 [21] 정수정•‿•갤로그로 이동합니다. 11.11.29 200 0
291534 나 1월달에 구만둔다.. 므해?갤로그로 이동합니다. 11.11.29 81 0
291533 ㅇㅇ(14.53.202.176) <- 누구?? [2] 쿄스케갤로그로 이동합니다. 11.11.29 87 0
291530 유니코드 인코딩말인데 localhost갤로그로 이동합니다. 11.11.29 45 0
291528 자살에 용기가 왜 필요 하냐? 1(121.146) 11.11.29 76 0
291527 횽들 큰일났어 안드로이드. [14] 뇌지랄갤로그로 이동합니다. 11.11.29 167 0
291525 혼자 연구하는 c 에서 도우미 헤더파일 터보c 어떻게 깔음? 1(121.146) 11.11.29 39 0
291523 IP 추적기 같은거 만들어 본사람?? [4] 주소가 뭐니?(61.73) 11.11.29 143 0
291522 노가다21C 형님 찬양 [4] 이명박보영(61.80) 11.11.29 65 0
291521 형들 안녕 ? ㅋ [1] 좋은아버지갤로그로 이동합니다. 11.11.29 49 0
291519 머리로는 이해가되고 그게 행동으로 되지않아요 [5] 조선최고의짐꾼갤로그로 이동합니다. 11.11.29 91 0
291518 왜 회사가 파산하면 그 직원들이 피해받는거야? [3] Stan(220.244) 11.11.29 124 0
291516 외국계 회사 구직중인데 이메지네이션(211.187) 11.11.29 59 0
291515 난 칼퇴한다..야근하는 프로그래머는 보세요.. [2] 므해?갤로그로 이동합니다. 11.11.29 141 0
291513 질문하나 해도될까요 헬프미 [1] 도와주세요(211.110) 11.11.29 35 0
291511 아스횽의 입술과 고간을 훔치고 싶다. [1] Lover♥갤로그로 이동합니다. 11.11.29 43 0
291510 형들 프로그램 쌩초짜도되니까 봐주세여 [3] 잦빙핱갤로그로 이동합니다. 11.11.29 76 0
291507 짜증난다... [3] Stan(220.244) 11.11.29 66 0
291506 학원홍보류중최강봄 이건산전갤로그로 이동합니다. 11.11.29 75 0
291504 막히던 부분에서 새로운 해결점을 찾을 때 Dawnwalkre갤로그로 이동합니다. 11.11.29 41 0
291503 아스 관찰결과 [2] 싴보이갤로그로 이동합니다. 11.11.29 41 0
291502 STL컨테이너 클래스에서 사용시 질문! [6] 남대생.갤로그로 이동합니다. 11.11.29 64 0
291501 횽님들 alexa.com 여기 결과 병신임??? 시불라미갤로그로 이동합니다. 11.11.29 42 0
291499 21C노가다형님 그거 보내주시거나 링크좀 걸어주십쇼 [1] 이명박보영(61.80) 11.11.29 24 0
291498 프로그래머에게 금기사항.. [8] 므해?갤로그로 이동합니다. 11.11.29 223 0
291497 이거 왜 이런거냐 [4] ssss(210.91) 11.11.29 76 0
291496 히밤 왜 여자들 나에게 과거의 남자 이야기함? [1] 다림줄갤로그로 이동합니다. 11.11.29 94 0
291494 랩소디 써본 사람 아무도 없는겨? [5] 이명박보영(61.80) 11.11.29 48 0
291493 난 절대로 개발자랑 결혼 안할꺼다 [5] 찌뱅긔갤로그로 이동합니다. 11.11.29 166 0
291491 ㅋㅋㅋ 방금 메일이 왔는데 [1] 좋은아버지갤로그로 이동합니다. 11.11.29 64 0
291489 저녁 때 잠깐 프갤 들어와 봤더니... 분당살람갤로그로 이동합니다. 11.11.29 35 0
291487 프로그래밍 고수들이여- 하나만 물어보자 [6] 이명박보영(61.80) 11.11.29 131 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2