디시인사이드 갤러리

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

갤러리 본문 영역

프갤에 숙제 물어 보는 애들을 위해 내가 했던 과제들을 올려주지.

warota(221.150) 2011.09.23 23:57:34
조회 70 추천 0 댓글 3



 

#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

원본 첨부파일 1

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 끝까지 다 본 걸 후회하게 만든 용두사미 드라마는? 운영자 25/07/07 - -
275586 내가 달팽이 배열 만들고 만다 개객끼야 [2] 로하로하알로하갤로그로 이동합니다. 11.09.24 63 0
275585 c언어 질문요~ [21] 뉴비(211.60) 11.09.24 148 0
275584 자바 프레임 출력 이거 다 나오게 할려면 어떻게 해야함? SPlCA갤로그로 이동합니다. 11.09.24 31 0
275583 나 매틀랩 도저히 못하겠다... 매틀랩(125.128) 11.09.24 68 0
275582 파이썬 하는 횽들 헬프좀 ㅠㅠㅠㅠ 1234(169.229) 11.09.24 50 0
275581 공정률 30% [10] 이문동쮸쮸바갤로그로 이동합니다. 11.09.24 203 1
275580 쭈쭈바형은 봅니다 [2] Adelposs(218.152) 11.09.24 47 0
275579 c언어 조건연산자를 이용해서 계산기 어떻게 만들어.???ㅠ./ㅠ [10] ㅇㅇ(175.124) 11.09.24 101 0
275578 DX11, ComputeShader, SpeedTree, 람다식, PPL [7] 이문동쮸쮸바갤로그로 이동합니다. 11.09.24 119 0
275577 java 야 마영전 하니? [1] Adelposs(218.152) 11.09.24 43 0
275576 나도 공부 때려치고 Adelposs(218.152) 11.09.24 39 0
275574 자바 프레임 이거 어떻게 처리해야되지? [1] SPlCA갤로그로 이동합니다. 11.09.24 43 0
275573 동적할당형은 [1] Adelposs(218.152) 11.09.24 40 0
275572 prezi 말고 다른건 없음? ㅁㄴㅇㄹ(175.195) 11.09.24 42 0
275571 대털 1,2부는 재미없다 [1] 분당살람갤로그로 이동합니다. 11.09.24 56 0
275570 어디서 에러나는지 찾아봐 [30] 동적할당갤로그로 이동합니다. 11.09.24 160 0
275569 양자택일 i++; // i+=1; [7] 로하로하알로하갤로그로 이동합니다. 11.09.24 99 0
275568 형들 매틀랩에서 nxn 정방행렬 만들려고 하는데 [2] 매틀랩(125.128) 11.09.24 97 0
275567 그럼 xhtml이나 html5 로 론칭하면 어떨까? 쵸쵸(219.251) 11.09.24 22 0
275566 형들 비주얼스투디오2010같은거 사용법 어떻게 공부해?? [2] 컴파일(180.228) 11.09.24 92 0
275565 교수가 이 숙제를 왜 낸걸까 [3] 저격甲갤로그로 이동합니다. 11.09.24 115 0
275564 취업했다. ㅋㅋㅋ [5] 천재해커(59.14) 11.09.24 142 0
275562 아래 정보처리기사 안따면 경력 반토막이라는 게 이해가 안되는게 fdsa(59.30) 11.09.24 92 0
275561 나의 돌머리를 인정한다 [3] 로하로하알로하갤로그로 이동합니다. 11.09.24 70 0
275559 신입이 형들께 질문.. [6] fdsa(59.30) 11.09.24 96 0
275557 html 이라는 패션브랜드를런칭할건데 [3] 쵸쵸(219.251) 11.09.24 61 0
275556 쇼핑몰 만들고 잇는데 [1] 꿀레(14.33) 11.09.24 51 0
275554 우리 모두 고민을 고민하지 말자! [6] 분당살람갤로그로 이동합니다. 11.09.24 74 0
275552 컴게이들아 파일 입출력 어디서 공부하면 좋을까 [5] 늅늅냄새(211.212) 11.09.24 83 0
275550 형들 [1] Adelposs갤로그로 이동합니다. 11.09.24 39 0
275548 CString사용의 좋은 예, 나쁜 예 [4] 이문동쮸쮸바갤로그로 이동합니다. 11.09.24 109 0
275547 경제적으로 아무리 어려움이 없어도 [8] 분당살람갤로그로 이동합니다. 11.09.24 81 0
275545 아 찌발 공부 안되네 [2] Adelposs갤로그로 이동합니다. 11.09.24 48 0
275544 cstring으로 구글 이미지 검색 하니까 [2] 이문동쮸쮸바갤로그로 이동합니다. 11.09.24 79 0
275543 나도 어제 죽을뻔 했다 Adelposs갤로그로 이동합니다. 11.09.24 67 0
275541 로하로하 형은 봅니다 Adelposs갤로그로 이동합니다. 11.09.24 36 0
275539 USB 자동인식하면 재부팅 되는 현상 어떻게 해야하나요? 유동닉(183.108) 11.09.24 26 0
275537 제 블로그 200번째 포스트 돌파 [6] [성대아싸]갤로그로 이동합니다. 11.09.24 88 0
275536 고급스러운 spring좀 하는쉑이좀 봐봐 [4] 쵸쵸(219.251) 11.09.24 71 0
275534 머리에 산소 공급 안되면 졸리냐? [5] 로하로하알로하갤로그로 이동합니다. 11.09.24 104 0
275533 자동차 정비센터 왔는데 [15] 외계달팽갤로그로 이동합니다. 11.09.24 125 0
275532 침묵 [3] 로하로하알로하갤로그로 이동합니다. 11.09.24 42 0
275531 C++ 클래스에서 함수쓸때 질문이요. 하양(221.159) 11.09.24 56 0
275530 니들 날아가는 잠자리가 잘못해서 달리는 버스안으로 들어오면 어케되게? [5] 쵸쵸(219.251) 11.09.24 82 0
275529 어셈 질문점 [1] SODMaster갤로그로 이동합니다. 11.09.24 55 0
275528 사이버 진짜 좆같다 [1] Adelposs갤로그로 이동합니다. 11.09.24 71 0
275525 니들 지구가 갑자기 자전을 멈추면 어떻게 되는줄이나 아냐? [15] 쵸쵸(219.251) 11.09.24 173 0
275524 웹 게시판 만들어보고 싶은데 어떤 부분을 공부해야 하나요? (조공) [5] ㅇㅅㅇ(125.129) 11.09.24 150 0
275523 윈7에서 파일이나 폴더 다른 곳으로 '이동' 시키는 방법 없어? [4] 늅늅(59.0) 11.09.24 191 0
275522 니들 내가 이래뵈도 13년차 웹개발자다. [13] 쵸쵸(219.251) 11.09.24 232 0
뉴스 '남주의 첫날밤을 가져버렸다' 서현-옥택연, 스타일부터 분위기까지 완벽 케미! 캐릭터 맞춤 전통美 의상에 시선 집중! 디시트렌드 07.07
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2