디시인사이드 갤러리

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

갤러리 본문 영역

도서관리프로그램.exe

warota(221.150) 2011.10.07 00:37:20
조회 141 추천 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/14 - -
AD 휴대폰 액세서리 SALE 운영자 25/07/15 - -
413247 일본에 테러가 없는 가장 명확한 이유 [1] 이웃집힘법사갤로그로 이동합니다. 14.03.18 232 0
413246 보노보스 스피커 사서 노래 틀엇는데 [3] asdf(211.205) 14.03.18 180 0
413245 c언어가 먼저냐 알고리즘이 먼저냐 [8] ㅇㅎㅀ(123.248) 14.03.18 1242 0
413244 C언어 새내기 입니다 ㅠㅠ 도와주세요! [14] 연연(203.241) 14.03.18 271 0
413243 형들 함수 전달인자 기초적인거 좀 알려조 !! ㅠㅠ [8] 엑윽(180.71) 14.03.18 85 0
413242 프로그래밍 공부하는데 책 추천 팁 유동move개구리(210.117) 14.03.18 100 0
413240 미국도 마블링 소고기 버린다는데;;; 허세갑(59.23) 14.03.18 78 0
413239 근데 허세갑님은 뭐하시는분이시길래?? [8] 고등어조림(211.116) 14.03.18 121 0
413238 다시 한번 말하지만 저는 안동대가 아닙니다. 허세갑(59.23) 14.03.18 59 0
413237 형들 나 c언어 첨배울라하는데 조언좀 [7] asdgs(39.119) 14.03.18 140 0
413236 ㅇㅇ; 허세갑(59.23) 14.03.18 75 0
413235 여기서 북대 리트머스 쓰는사람? [1] 리트머스냐(210.117) 14.03.18 80 0
413232 육식의 반란 마블링의 음모 -한국방송대상, 전주MBC 유룡 허세갑(59.23) 14.03.18 74 0
413231 부탁드려요 허세갑니잉~~ ㅁㄴㅇ(211.116) 14.03.18 38 0
413228 허세갑님 일단 컴파일은 되는데 결과값이 f 102 가안나오네요?? [3] ㅁㄴㅇ(211.116) 14.03.18 84 0
413227 수고가 많어 형들 ^^ 하나만 가르쳐줘 ^^(119.64) 14.03.18 49 0
413226 컴파일은 되는데 오답이라고 뜨네 프로그램이 원하는게아닌가?? [3] ㄴㅇㅁㄴㅇ(211.116) 14.03.18 138 0
413225 다음부터는 공부하고 나서 키보드를 두드리렴 ^^ [6] 허세갑(59.23) 14.03.18 156 0
413224 오류코드좀 긁어주세여 asdasd(211.116) 14.03.18 59 0
413223 자바스크립트에서 window.onresize 이거 안되는거임? [1] 마루(119.195) 14.03.18 70 0
413222 백왕님의 실력을 검증해보겠습니다 [4] 에어로홍갤로그로 이동합니다. 14.03.18 101 0
413221 이거아님?? [5] ㅁㄴㅇㅁㄴ(211.116) 14.03.18 79 0
413220 C++ 많이 중요한가요? [3] ㅇㅇㅇㅂ(221.141) 14.03.18 241 0
413219 이건 문제자체가 완전다른데?? [5] ㅁㄴㅇㄴㅁ(211.116) 14.03.18 105 0
413217 이거맞난요?? [2] ㅁㄴㅇㅁㄴㅇ(211.116) 14.03.18 72 0
413214 무통라섹 이득보며 알아보자 ㅇㅇ(211.56) 14.03.18 75 0
413213 ㅅㅂ 이건 존나 어렵다 진짜 하는 새끼 인정해줌 [6] ㄴㅁㅇㅁㄴ(211.116) 14.03.18 156 0
413212 아이폰6? 아이폰(58.225) 14.03.18 48 0
413211 음... C언어 기본만 완벽히 익히고 나면 [5] 허세갑(59.23) 14.03.18 179 0
413210 컴파일이 안된댯ㅂ ㅅㅂ [5] ㅇㅁㄴㅇ(211.116) 14.03.18 94 0
413209 와이파이 이러면 있어보이나요? [1] 요미코번역인(61.37) 14.03.18 174 0
413208 키 exefile의 값 이름을 가져오지 못했습니다. 그 키에 대한 액세 ㅇㄴㅁㄹㄴㅁㅇㄹ(115.22) 14.03.18 147 0
413206 C언어 vs C## vs 자바 vs C+ vs VBA ㅇㅇ(117.55) 14.03.18 104 0
413203 아나 컴파일러도 안 깔았니? ㅋㅋㅋㅋㅋㅋ [1] 허세갑(59.23) 14.03.18 97 0
413202 .com, .net, .kr 빼고 가장 반감이 덜한 도메인은? [8] 도메인거지(135.23) 14.03.18 130 0
413200 C언어 시작했는데 해설지가 없네요 [1] ㅇㅇ(183.97) 14.03.18 616 0
413199 하하하 드디어 완성된듯하다 나의 프로그래밍 [9] ㅁㄴㅇㅁㄴ(211.116) 14.03.18 157 0
413197 형들 c언어 다보는데 며칠걸림 [1] ㅇㅇ(58.237) 14.03.18 106 0
413196 컴공놈들이 착각하는ㆍ거 [4] 오월신금갤로그로 이동합니다. 14.03.18 194 0
413194 솔직히 더이상 틀린게 없는거 같다 [12] ㅁㄴㅇㅁㄴ(211.116) 14.03.18 193 0
413193 안드로이드 액티비호출때문에 인텐트 쓰는데, 갤플5.8에서되고놋3안됨... [1] 안드질문(182.216) 14.03.18 94 0
413192 이직할때 연봉협상은 전 직장영향 많이 받나여 [3] 풀개미&#039;ㅅ&#.갤로그로 이동합니다. 14.03.18 214 0
413191 그럼 일케해애되낭 [5] ㅁㄴㅇㄴㅁ(211.116) 14.03.18 93 0
413190 삼성소프트웨어멤버십땜시그러는데 안드기종마다 인텐트호출 되는경우있고 안되는 급맨(182.216) 14.03.18 90 0
413188 c언어 기초생인데 이거 오류코드좀 집어줘라 [6] ㅁㄴㅇㄴㅁㅇ(211.116) 14.03.18 128 0
413186 컴공 졸업하고 9급이 되어서 기웃거림 [5] 따뜻하다갤로그로 이동합니다. 14.03.18 437 0
413185 프린트 함수까지. [4] Ary갤로그로 이동합니다. 14.03.18 127 0
413184 형들 빅오 간단한거 좀 알려조 [3] (180.71) 14.03.18 214 0
413182 흥분제파는곳 추천순위 전진(61.252) 14.03.18 91 0
413181 자바 이 오류 왜 생기는건가요? [3] Ary갤로그로 이동합니다. 14.03.18 84 0
뉴스 ‘에스콰이어’ 이진욱, “윤석훈, 차가워 보이지만 분명한 이유 있다” 디시트렌드 07.17
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2