디시인사이드 갤러리

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

갤러리 본문 영역

도서관리프로그램.exe

warota(221.150) 2011.10.07 00:37:20
조회 145 추천 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
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 반응이 재밌어서 자꾸만 놀리고 싶은 리액션 좋은 스타는? 운영자 25/07/28 - -
AD 휴대폰 액세서리 세일 중임! 운영자 25/07/28 - -
279165 야동을 신나게 받았는데~ 막장갤신학생갤로그로 이동합니다. 11.10.09 71 0
279164 횽들 나 수욜에 삼성S직군 면접인데 [7] 갤럭시(14.37) 11.10.09 465 0
279163 면접을 봤는데 [2] 3(116.42) 11.10.09 122 0
279162 ㅅㅅ 할 시간이다 [1] 전간디갤로그로 이동합니다. 11.10.09 109 0
279161 내일은 우아하게 카페가서 코딩질이나 해볼라고 하는데 [3] 1234(110.11) 11.10.09 92 0
279158 자바 고수가 되려면 [1] qd(121.130) 11.10.09 102 0
279156 여기서 실력있는 형들은 학교다니면서 실력이 느신건가요? [2] 331(223.222) 11.10.08 112 0
279155 c++ 다이아몬드 찍기 질문한 사람은 보거라. [3] ∫ 2t dt=t²+c갤로그로 이동합니다. 11.10.08 336 0
279153 오늘의 아침인사는 어디로? 전간디갤로그로 이동합니다. 11.10.08 57 0
279151 핸폰 통화도 빌려주지 마라 [2] 막장갤신학생갤로그로 이동합니다. 11.10.08 120 0
279150 표준입력으로 받은 파일명을 어떻게 열지 형들 [7] ㅊㅊㅊ(121.166) 11.10.08 66 0
279149 으악. 결국 배틀필드3 초회한정판 질렀는데.... 응가(122.202) 11.10.08 33 0
279148 영행렬의 고유벡터는 어떤것이든지 되나요?? SODMaster갤로그로 이동합니다. 11.10.08 136 0
279147 c++ , 비쥬얼 스투디오 6.0 쓰는데 단축키 하나만 질문할게요!!!! [2] ddd(210.107) 11.10.08 50 0
279146 공부가 힘들어옇ㅎ 늅늅 [1] 즐쿰갤로그로 이동합니다. 11.10.08 51 0
279144 c++ 제어문 연습문제인데 한번만 풀어주세요 [3] ddd(210.107) 11.10.08 79 0
279143 파폭어 어어어어어?!! [1] 로하로하알로하갤로그로 이동합니다. 11.10.08 60 0
279142 정말 재밌었따. [1] 로하로하알로하갤로그로 이동합니다. 11.10.08 54 0
279141 아직도 ie6 쓰는 미개인들이 존재하냐? [1] 쵸쵸(219.251) 11.10.08 82 0
279140 정말 궁금한게 있어서 물어보러 왔따 [5] DMW(125.138) 11.10.08 126 0
279139 앜ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 1바이틐ㅋㅋㅋㅋㅋ개새끼갘ㅋㅋㅋㅋㅋ 로하로하알로하갤로그로 이동합니다. 11.10.08 73 0
279138 리눅스에서 read() 리턴값이 0보다 작은경우는 뭐죠? [5] 징징이(121.137) 11.10.08 136 0
279137 으아 누가 알고리즘 좀 가르쳐줘봐ㅠㅠ [4] ㅁㄴㅇ(115.89) 11.10.08 77 0
279136 메모장으로 저장할때 용량맘대로조정하는방법아는사람 ㅇㅇ(110.11) 11.10.08 51 0
279135 횽들 파일에서 받을 떄 EOF [5] 로하로하알로하갤로그로 이동합니다. 11.10.08 68 0
279132 기억에 남는 패턴하니까 옵저버 생각난다. laoshanlong갤로그로 이동합니다. 11.10.08 52 0
279131 님들은 봅니다 찌르매미(203.229) 11.10.08 25 0
279128 신입들 뽑아다가 맨먼스잡고 파견보내는 회사 어떻게 생각? [5] (122.34) 11.10.08 280 0
279126 유군 형은 봅니다. [3] 좋은아버지갤로그로 이동합니다. 11.10.08 70 0
279125 책추천점요 [2] 메보갤로그로 이동합니다. 11.10.08 52 0
279123 팩토리얼 계산시 [2] 일광면(119.198) 11.10.08 89 0
279122 중고 알라딘 쩐다 [5] 막장갤신학생갤로그로 이동합니다. 11.10.08 115 0
279121 넷북 필요하다는 플갤러 보셈 마타버터갤로그로 이동합니다. 11.10.08 100 0
279120 횽들은 이런 자랑거리 없지? [4] 로하로하알로하갤로그로 이동합니다. 11.10.08 105 0
279119 기억에 남는 디자인 패턴 [4] [성대아싸]갤로그로 이동합니다. 11.10.08 161 0
279118 갤 시발들아 [5] 3군게이머갤로그로 이동합니다. 11.10.08 109 0
279117 개발이라는게 새로운 가치를 창출하는거지.... .3(36.38) 11.10.08 69 0
279116 정확히 말하자면, 프로그램을 만드는거 아니냐? [6] 3군게이머갤로그로 이동합니다. 11.10.08 106 0
279115 여기서 물어봐도되나요? ..컴관련과 학생분들.. [15] ㅁㄴㅇㄹ(14.41) 11.10.08 235 0
279114 간단한 프로그래밍 조차 못하는 [4] 로하로하알로하갤로그로 이동합니다. 11.10.08 117 0
279113 프로그래밍 배우면 좋은점이 뭐냐? [15] 3군게이머갤로그로 이동합니다. 11.10.08 249 0
279111 과연 내 꿈을 이룰수 있을까? [4] 쵸쵸(219.251) 11.10.08 68 0
279110 시험기간이군 三didas갤로그로 이동합니다. 11.10.08 44 0
279108 바닥부터 공부해보려고 하는데 [4] 좋은아버지갤로그로 이동합니다. 11.10.08 101 0
279107 혹시 여기 디자인 패턴에 대해 많이 공부해본 형 있어? [10] 좋은아버지갤로그로 이동합니다. 11.10.08 171 0
279105 리눅스 환경에서 stdin버퍼 어케 비움? [17] 로하로하알로하갤로그로 이동합니다. 11.10.08 168 0
279104 삼성 까는데 몰랐다니!!! 전간디갤로그로 이동합니다. 11.10.08 83 0
279103 오오오 오늘 프갤은!!! [3] 쿄스케갤로그로 이동합니다. 11.10.08 67 0
279102 종로 중고 알라진 서점 괜찬흠?? [5] 막장갤신학생갤로그로 이동합니다. 11.10.08 95 0
279101 아나 오늘 프갤 떡밥 공부좀 해야겟네 오마이갓넬갤로그로 이동합니다. 11.10.08 42 0
뉴스 임영웅, 도시 떠나 섬마을 총각 된다 디시트렌드 07.28
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2