디시인사이드 갤러리

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

갤러리 본문 영역

도서관리프로그램.exe

warota(221.150) 2011.10.07 00:37:20
조회 144 추천 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 - -
279886 형들 진지한 질문좀. 534F444D61737465갤로그로 이동합니다. 11.10.11 31 0
279885 기술사자격증 따면 여기저기서 일 막 같이하자고함? ^0^갤로그로 이동합니다. 11.10.11 84 0
279883 돈 있으면 아이x윌 그런 데 보다는 비트가 훨씬 낫긴 나은듯 [1] ^0^갤로그로 이동합니다. 11.10.11 84 0
279882 잡스를 애도하는 30가지 방법 [5] Dawnwalkre갤로그로 이동합니다. 11.10.11 95 0
279881 어게인횽 힘내 534F444D61737465갤로그로 이동합니다. 11.10.11 32 0
279879 지잡 4년은 삼성sds 같은 대기업si회사 들어가기 어렵지? [5] ^0^갤로그로 이동합니다. 11.10.11 264 0
279878 학원에 별 병신같은 전임강사가 있다 [7] ^0^갤로그로 이동합니다. 11.10.11 135 0
279877 형들 진지한 질문좀 빠른답변요망 [11] 늅늅(165.132) 11.10.11 103 0
279876 대기업si가면 다른 계열사처럼 돈 많이 죠? [1] ^0^갤로그로 이동합니다. 11.10.11 85 0
279875 프로그래밍 질문하나만 해결해줭 [2] 질문줌ㅋㅋ(166.104) 11.10.11 47 0
279874 프로그래밍 학교보다 학원가서 배우는게 나음? [1] 1(118.220) 11.10.11 105 0
279873 형들 이중 for문을 재귀함수만으로 고치려고하는데... [1] 플밍꼬꼼하(114.71) 11.10.11 66 0
279872 저도퇴근함다 [2] 三didas갤로그로 이동합니다. 11.10.11 63 0
279871 출퇴근 시간 [4] 3(116.42) 11.10.11 80 0
279870 JSP 책보는데 3년 전 책 봐도 되나? [4] Kanon갤로그로 이동합니다. 11.10.11 113 0
279869 서버개발자분들 이게 가능한지좀 봐주세요 [12] ㅇㅇㅇ(118.131) 11.10.11 162 0
279868 오늘알게된 놀라운 사실 [4] 어떡해갤로그로 이동합니다. 11.10.11 164 0
279867 공인중계사는 이제 과포화 아니냐?? [8] 거칠게갤로그로 이동합니다. 11.10.11 303 0
279866 횽님들 제가 스탑와치(?)를 만들려고 하는데요 [5] 캐초보(118.219) 11.10.11 99 0
279865 횽들 C# 질문좀요 ㅠ [2] 아리햏갤로그로 이동합니다. 11.10.11 51 0
279863 저먼저 퇴근합니다 [8] ㅁㄴㅇ(210.178) 11.10.11 90 0
279862 대기업 SI 짬 낮은 애들이 죽어라 하는 이유가.. [8] 꼬꼬월드갤로그로 이동합니다. 11.10.11 304 0
279861 이런ㅋㅋ 생물학(125.248) 11.10.11 40 0
279858 대기업 SI가면 레얼 월화수목금금금이더라 [7] 꼬꼬월드갤로그로 이동합니다. 11.10.11 196 0
279857 codeigniter 최고네 주젠(1.230) 11.10.11 52 0
279856 25일날 안랩 컨퍼런스 가는데 오는 사람 엄냐? [4] 스콜이후(180.70) 11.10.11 75 0
279854 진짜 차라리 대놓고 과제 셔틀을 하라고 해라. 빡치는 이야기 [11] 메리프갤로그로 이동합니다. 11.10.11 260 0
279853 시간 많이 걸리는건 아무도 안가르쳐주고 안도와준다.. 꼬꼬월드갤로그로 이동합니다. 11.10.11 88 0
279852 매크로 함수 쓰면 편한 한가지 경우 [1] 534F444D61737465갤로그로 이동합니다. 11.10.11 69 0
279851 광운대 출신 SI에도 많더라... [9] 꼬꼬월드갤로그로 이동합니다. 11.10.11 274 0
279850 스레드 동기화와 객체지향을 같이 생각하면 성능이 안습 [1] 534F444D61737465갤로그로 이동합니다. 11.10.11 65 0
279849 교수님마저 3분간 혼란에 빠트린 좀 묘한 문제 [2] 메리프갤로그로 이동합니다. 11.10.11 110 0
279848 예상은 했지만 아무도 안도와주시는듯ㅠ [3] 파라고나갤로그로 이동합니다. 11.10.11 73 0
279847 코딩하다 잠오면 뭐함? [4] zxc(210.178) 11.10.11 130 0
279845 디씨도배기 원리가 뭥미? [1] 534F444D61737465갤로그로 이동합니다. 11.10.11 282 0
279843 이클립스 404에러 해결방법좀요 ㅠㅠ ㅇㅇ(113.130) 11.10.11 94 0
279842 자바 실행파일 jar과 exe의 차이/?? [4] abbey road갤로그로 이동합니다. 11.10.11 105 0
279841 SODMaster님이 시불라미님의 데이터 테러에 당하셨습니다 [2] 534F444D61737465갤로그로 이동합니다. 11.10.11 66 0
279839 형님들 여기 요청글 쳐올리면 맞아죽나여? 간단한건데 [10] 파라고나갤로그로 이동합니다. 11.10.11 129 0
279838 잠깨려고 아이스 마끼아또 휘핑 얹은거 먹었는데 [1] 534F444D61737465갤로그로 이동합니다. 11.10.11 71 0
279837 sizeof연산자는 컴파일 타임에 타입의 크기를 계산하는 걸로 알았는데 [2] 비밀의계곡갤로그로 이동합니다. 11.10.11 64 0
279836 1부터 N 까지의 짝수의합 [27] 도와주세요(115.91) 11.10.11 191 0
279835 c언어 printf와 scanf.for 문을 이용하여 내이름 입력하면.. [13] 공대녀(59.11) 11.10.11 141 0
279834 3주만에 자바, jsp, html, 오라클 끝내는 것이 가능해? [6] 죽것다..(58.72) 11.10.11 157 0
279833 느그들도 와우해라 (뒤조심) [5] 시불라미갤로그로 이동합니다. 11.10.11 132 0
279830 객체 생성할때 class *객체명=new class(); [3] 곰곰곰(121.188) 11.10.11 67 0
279829 자바 컴파일 관련 질문 좀 할께 ㅍㅌ갤로그로 이동합니다. 11.10.11 53 0
279828 형들 대학 추천점. [20] 곧새내기(1.242) 11.10.11 219 0
279827 엑셀 매크로 처음 써봤다.. 꼬꼬월드갤로그로 이동합니다. 11.10.11 55 0
279826 Min Max 알고리즘 짜본횽 있냐 [10] McHello갤로그로 이동합니다. 11.10.11 201 0
뉴스 김형석 X 이창섭, ‘사계’ 프로젝트-‘그 자리에, 그 시간에’ 오늘(27일) 발매! 디시트렌드 07.28
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2