디시인사이드 갤러리

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

갤러리 본문 영역

도서관리프로그램.exe

warota(221.150) 2011.10.07 00:37:20
조회 142 추천 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/21 - -
AD 곧 휴가!! 홈캉스, 바캉스 SALE 운영자 25/07/21 - -
276825 그런데 왜 피자야? [1] 곰곰곰(121.188) 11.09.29 53 0
276824 모바일 시장도 PC시장처럼 조립이 가능하게 해달라~!!! [1] 거칠게갤로그로 이동합니다. 11.09.29 64 0
276823 vc8.0 이거 할떄마다 추가해줘야해? [1] ㅂㅈㄷ(210.178) 11.09.29 59 0
276822 c++ 기본조차 없는 뉴비인데 학교서 수업을 들을라면 이해가 필요함 [1] 무제갤로그로 이동합니다. 11.09.29 57 0
276821 형아들 히프정렬에대해서 궁금한게 있어요... [1] bounce〃갤로그로 이동합니다. 11.09.29 59 0
276820 근데 연하는 귀찮지 않어? [18] 로하로하알로하갤로그로 이동합니다. 11.09.29 185 0
276819 API일반 함수와 프로시져함수 질문좀 할게요~ 정장갤로그로 이동합니다. 11.09.29 42 0
276818 샘숭이 로얄티를 안내고 살수 있는 법을 알려주겠다!! 거칠게갤로그로 이동합니다. 11.09.29 45 0
276817 그런데 사실 지금 마음에 드는 여자가 있어 그런데 [1] 좋은아버지갤로그로 이동합니다. 11.09.29 80 0
276816 아까 밑에 드렸던 try and catch 질문 조금 바꿔서 [1] 초보초보(130.15) 11.09.29 39 0
276815 메가트론은 착함니다.swf 가격거품갤로그로 이동합니다. 11.09.29 71 0
276814 여자들은 29살을 가장 두려워 하더라. [3] 거칠게갤로그로 이동합니다. 11.09.29 200 0
276813 내가 제일 잘 나가 [2] ㅁㄴㄻㄹ갤로그로 이동합니다. 11.09.29 90 0
276812 아무래도 이번 소개팅은.....선이 될거 같다. [3] 좋은아버지갤로그로 이동합니다. 11.09.29 70 0
276811 혁신적인 os를 만들면 전세계에 먹힐수도 있다!!! [3] 거칠게갤로그로 이동합니다. 11.09.29 68 0
276810 새로운 OS만든다는데 리눅스가 아닌 혁신적인 OS가 나올까 [1] 로하로하알로하갤로그로 이동합니다. 11.09.29 84 0
276809 나 이번에 또 소개팅 한다. [14] 좋은아버지갤로그로 이동합니다. 11.09.29 142 0
276808 생각해 보니 자체os를 만들어도 문제군화...... [3] 거칠게갤로그로 이동합니다. 11.09.29 85 0
276807 ▶◀ 폭스콘 미안 [1] .3(124.137) 11.09.29 52 0
276806 삼성이나 LG만 개발자 수집하는게 아니야.... .3(124.137) 11.09.29 93 0
276805 형들 자바초보가 질문좀 ㅠㅠ; [6] 인과갤로그로 이동합니다. 11.09.29 67 0
276804 케로로 닭 형은 봅니다. [2] 좋은아버지갤로그로 이동합니다. 11.09.29 42 0
276803 선형대수과목인데 코딩해오라는데 뭘하라는건지모르겠네.. [2] ㅁㄴㅇㄹ(120.50) 11.09.29 108 0
276802 try and catch 문 기초적인건데.... [6] 초보초보(130.15) 11.09.29 8068 0
276799 os를 만들자!! +ㅁ+ [5] 거칠게갤로그로 이동합니다. 11.09.29 126 0
276798 SW 없는 죄‥한국IT, '충성 할인' 받아야 하나 [7] 거칠게갤로그로 이동합니다. 11.09.29 121 0
276797 형들 퀵소트 피벗 위치 정하는 좋은 방법이 뭐가 있어? [1] 회색사과갤로그로 이동합니다. 11.09.29 116 0
276795 자기가 주관적으로 이뿌다고 생각하는 여자 어케해야되냐 [4] .3(124.137) 11.09.29 112 0
276794 제발 대답좀해주라..ㅠㅠ [1] 제발대답좀(14.40) 11.09.29 55 0
276793 lol 있나 [4] 지금,여기갤로그로 이동합니다. 11.09.29 113 0
276792 혹시 여기 벨로시티 쓸줄 아는 형들 있어? 좋은아버지갤로그로 이동합니다. 11.09.29 55 0
276791 배고파 미치겠다 ㅠ 멸자(130.126) 11.09.29 52 0
276787 gg.png [3] qt^갤로그로 이동합니다. 11.09.29 108 0
276785 어제 아는동생이랑 대화햇는데 [1] .3(124.137) 11.09.29 78 0
276784 앱 개발해서 마켓이나 앱스토어에 올리려면 돈 많이 들어?? [9] ㅁㄴㅇㅁㄴㅇ(220.76) 11.09.29 112 0
276783 미클이에요 [5] 미클갤로그로 이동합니다. 11.09.29 101 0
276781 이정도면 귀엽지 않냐? (아스 봅니다.) [4] blackd갤로그로 이동합니다. 11.09.29 144 0
276780 구글이 특허 쭉정이 모토롤라 인수했잖아 [4] .3(124.137) 11.09.29 87 0
276778 ~ 횽들 임의의 숫자들을 입력하면 패턴 알려주는 프로그램잇나요??~ (183.100) 11.09.29 43 0
276777 근데 공식 서비스센터 있는 미국도 애플 디스하는 내용 많던데 [1] Regi☆갤로그로 이동합니다. 11.09.29 62 0
276776 이번 애플의 2.4$ confidential 공개에 대한 언론의 관점 Deanex갤로그로 이동합니다. 11.09.29 54 0
276774 자사 운영체제 이야기 들으니까 [3] Regi☆갤로그로 이동합니다. 11.09.29 104 0
276772 ㅋㅋㅋ 형 ㅋㅋ 근데 압축파일 해놓으니깐 250mb 정도라서 하나하나 올 [3] 돌아버리겠네(112.169) 11.09.29 110 0
276770 특허전쟁을 보고 느낀 점 [2] 분당살람갤로그로 이동합니다. 11.09.29 85 0
276769 지뢰기통횽은 봅니다. [6] blackd갤로그로 이동합니다. 11.09.29 91 0
276767 승질나네... [7] .3(124.137) 11.09.29 72 0
276766 코딩용으로 젖절한 노트북 추천점 [4] Cppp갤로그로 이동합니다. 11.09.29 154 0
276765 그런데 진짜 협력 사업은 좋지 않은거 같다.... [1] 좋은아버지갤로그로 이동합니다. 11.09.29 64 0
276764 삼ㅋ성ㅋ 특ㅋ헠 [2] ,.,.(222.121) 11.09.29 116 0
276763 나도 예전부터 올리고 싶었던 짤이 있었지... [2] blackd갤로그로 이동합니다. 11.09.29 118 0
뉴스 '아이쇼핑' 강지용 돌발 행동에 충격에 빠진 원진아, 그들이 숨어야만 했던 이유는? 디시트렌드 07.21
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2