디시인사이드 갤러리

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

갤러리 본문 영역

도서관리프로그램.exe

warota(221.150) 2011.10.07 00:37:20
조회 143 추천 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 - -
공지 프로그래밍 갤러리 이용 안내 [88] 운영자 20.09.28 45745 65
2874437 요즘 mz들한테 기적이라고 불리는 거 jpg. ㅇㅇㅇㅇ(49.254) 08:45 8 0
2874436 태연 ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 08:33 5 0
2874435 하루 한 번 헤르미온느 찬양 헤르 미온느갤로그로 이동합니다. 08:31 8 0
2874434 학점 3.4 ADHD좌 어디갔음? 프갤러(223.194) 08:06 12 0
2874428 PC, 스마트폰, 일정작성 영어로 전부 하면 도움되나요? 질문왕(211.198) 07:11 9 0
2874411 일본 관세 15프로 맞자고 지옥으로 갔노 [2] ㅆㅇㅆ찡갤로그로 이동합니다. 06:37 36 1
2874403 또 전쟁의 불씨가 옮겨붙는구나 [1] 아스카영원히사랑해갤로그로 이동합니다. 06:23 24 0
2874393 관세협상 잘 안되도 한국은 손해볼게 없음 [6] 야옹아저씨갤로그로 이동합니다. 06:03 42 6
2874376 ❤✨☀⭐⛩⚡☘♥+나님 시작합니당♥+☘⚡⛩⭐☀✨❤ ♥팬티스타킹냥덩♥갤로그로 이동합니다. 05:30 15 0
2874348 음기 충전 발명도둑잡기(118.216) 04:38 18 0
2874347 [단독]자신의 아내를..국힘 당직자 성착취 의혹 발명도둑잡기(118.216) 04:37 18 0
2874324 에이다프루트 라즈베리파이 피코 맥 에뮬레이터 하드웨어 발명도둑잡기(118.216) 03:46 11 0
2874306 10년대 초반, 서구권 드라마에서 묘사된 우리나라 모습들 발명도둑잡기(118.216) 02:47 17 0
2874304 영화 <S라인>이 인기래서 생각나는 예전 글 발명도둑잡기(118.216) 02:36 17 0
2874298 [단독] '롤스로이스 사건' 반전…수사 경찰 간부 억대 향응 발명도둑잡기(118.216) 02:17 25 0
2874292 한때는 일본군이었던 조선인들에게 발명도둑잡기(118.216) 02:06 21 0
2874290 후배에게 약점 잡히면 생기는 일 발명도둑잡기(118.216) 02:00 23 0
2874287 1억4천만뷰 대박난 디즈니 한국 표절 딱 걸렸네 발명도둑잡기(118.216) 01:56 21 0
2874285 남의 소설 통째 배껴 '문학상 5관왕'…피해 알리자 당선 취소 발명도둑잡기(118.216) 01:50 15 0
2874283 정수민 - Wandering Star :: 내 여자친구는 상남자 발명도둑잡기(118.216) 01:39 20 0
2874282 국내은행, 예대금리차 사상 최고 수준…금융소비자 부담 폭증 발명도둑잡기(118.216) 01:31 18 0
2874280 LG AI연구원, 퓨리오사AI·프렌들리AI와 함께 '엑사원 4.0 생태계 발명도둑잡기(118.216) 01:18 15 0
2874277 팔로군진행곡 발명도둑잡기(118.216) 01:00 20 0
2874275 중국인민해방군진행곡 발명도둑잡기(118.216) 00:55 15 0
2874272 "손톱뜯는 소리때문에 힘든데 이거 어케 말해야함?" 글 보니 드는 생각 발명도둑잡기(118.216) 00:49 21 0
2874271 손톱뜯는 소리때문에 힘든데 이거 어케 말해야함? ㅇㅇ(61.247) 00:35 30 0
2874270 코코 OST Remember Me 영어 스페인어 cover 발명도둑잡기(118.216) 00:28 13 0
2874269 아스카영원히가 왜 자칭 외국인노동자인가요? [5] 발명도둑잡기(118.216) 00:06 39 0
2874268 핸드폰 교체 주기는 얼마나 해야 할까 [2] 아스카영원히사랑해갤로그로 이동합니다. 00:00 57 0
2874267 공수처 검찰청 경찰청 국제수사 과학수사 포랜식수사 기무사 국정원 존재이유 뒷통수한방(1.213) 07.24 23 0
2874266 오싹했어 [7] 개멍청한유라갤로그로 이동합니다. 07.24 61 0
2874265 이분야는 대체 언제까지공부해야됌 [2] 프갤러(211.235) 07.24 56 0
2874264 오늘 퇴근 후 한 일: [2] 아스카영원히사랑해갤로그로 이동합니다. 07.24 75 0
2874263 JayM-바람에 쓰는 편지 [1] 발명도둑잡기(118.216) 07.24 21 0
2874262 야야야야야야 기분좋다!!!!!!! [6] 개멍청한유라갤로그로 이동합니다. 07.24 67 0
2874260 아스카영원히사랑해=넥도리아=배구공 [5] ㅇㅇ(118.235) 07.24 37 0
2874257 똥 때문에 물 7백 톤 버린 영주 수영장 발명도둑잡기(118.216) 07.24 16 0
2874251 프로그래밍 문외한 질문 [2] 프갤러(1.232) 07.24 42 0
2874247 modern c 보는데 [4] 프갤러(49.167) 07.24 45 0
2874246 사실 ㅆㅇㅆ는 AI임 [4] 프갤러(61.79) 07.24 60 0
2874245 실시간베스트 106.101 글 보니 드는 생각 [1] 발명도둑잡기(118.216) 07.24 37 0
2874242 시설관리보다 대우 낮은 개발자.. 프갤러(211.235) 07.24 35 0
2874241 사용자의 부정적인 피드백이 가장 [1] 어린이노무현갤로그로 이동합니다. 07.24 33 0
2874240 IVE 아이브 'Be Alright' [1] 발명도둑잡기(118.216) 07.24 23 0
2874238 나님 주무시기전 소통합니당⭐+ 질문 받음 [8] ♥팬티스타킹냥덩♥갤로그로 이동합니다. 07.24 48 0
2874237 궁예의 첫 번째 레슨 "에티켓" 발명도둑잡기(118.216) 07.24 16 0
2874236 야구의신 대.승.엽 ♥팬티스타킹냥덩♥갤로그로 이동합니다. 07.24 20 0
2874235 나 중국블로그에 쓰는중임 글고 [4] ㅆㅇㅆ찡갤로그로 이동합니다. 07.24 52 0
2874234 나는조현병이야 나는내향적이야 [2] 손발이시립디다갤로그로 이동합니다. 07.24 33 0
뉴스 이펙스, 정규 3집 ‘소화(韶華) 3장 : 낭만 청춘’ 앨범 프리뷰 공개! 디시트렌드 07.24
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2