디시인사이드 갤러리

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

갤러리 본문 영역

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

warota(221.150) 2011.09.23 23:57:34
조회 72 추천 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/28 - -
AD 휴대폰 액세서리 세일 중임! 운영자 25/07/28 - -
277208 ok, I must say this again i guess [6] lol(110.174) 11.10.01 91 0
277207 pointer to function examples [1] lol(110.174) 11.10.01 78 0
277206 진짜 떠나기전에 저번에 만들었던거 심심해서 다시올림.swf [3] lol(110.174) 11.10.01 107 0
277205 돌겠군... 왜 이렇게 쓰는거지 [27] 물어볼게많다(175.210) 11.10.01 180 0
277204 이곳을 떠나기 전에 옷벗기기 게임 한번 만들어봤음.swf [10] lol(110.174) 11.10.01 325 2
277203 도와주세요 [4] 이힝(121.177) 11.10.01 64 0
277202 리눅스 돈주고 사는건 장애나면 장애분석이나 전화만 하면 튀어 오냐? [2] 허세강갤로그로 이동합니다. 11.10.01 120 0
277198 MFC구조와 원리 예제가 이상합니다 금고래갤로그로 이동합니다. 11.10.01 48 0
277197 다음 코딩테스트 문제 보고 있는데열 [성대아싸]갤로그로 이동합니다. 11.10.01 249 0
277196 10/1 오마이갓넬갤로그로 이동합니다. 11.10.01 37 0
277195 형님들 stl [6] 으핰(211.177) 11.09.30 100 0
277194 3D공부하는 좇대딩1학년 입니다 [10] 늅늅(115.23) 11.09.30 138 0
277193 님들 과제 하다가 막혔는데 이힝(121.177) 11.09.30 48 0
277192 성대아싸횽 지금 학교 다녀여?? [3] 하하하(118.216) 11.09.30 101 0
277190 (조공有)형들 디지털논리 공부할만한 홈피나 괜찮은 블로그 없나요? [2] ㅁㄴㅇㅁㄴㅇ(116.121) 11.09.30 131 0
277189 리눅스 트윅에 램디스크 사용하는게 있는데 [23] 로하로하알로하갤로그로 이동합니다. 11.09.30 87 0
277188 네이버 검색 매우 짜증난다... [1] 물어볼게많다(175.210) 11.09.30 69 0
277186 요새 사무치게 외로운건 모냐. [3] 쵸쵸(219.251) 11.09.30 47 0
277184 컴공1학년 마치고 군입대한 군인입니다. [3] 프로그래머(121.64) 11.09.30 113 0
277183 함수앞에 &왜붙이는거 [5] 물어볼게많다(175.210) 11.09.30 102 0
277182 나같은 버스테이커 들 봐봐 [1] 좋은아버지갤로그로 이동합니다. 11.09.30 62 0
277178 실력과 성격은 반비례인가? [4] 전간디갤로그로 이동합니다. 11.09.30 117 0
277177 사실은 나도 합격했었지롱 ㅋ [1] 좋은아버지갤로그로 이동합니다. 11.09.30 92 0
277174 내말들어라. 기술 덕후질 하다가 40에 짤리고 치킨집 하고싶냐 [4] 쵸쵸(219.251) 11.09.30 137 0
277173 이거 어찌 처리해야해? [4] 三didas갤로그로 이동합니다. 11.09.30 102 0
277172 개인 블로그 정도인데 서버 램이 500메가면 구림? [2] [성대아싸]갤로그로 이동합니다. 11.09.30 105 0
277170 맥머핀형 봐봐 [4] laoshanlong갤로그로 이동합니다. 11.09.30 38 0
277169 와 슈발 이게 진짜 만들어지면 [10] 좋은아버지갤로그로 이동합니다. 11.09.30 129 0
277167 html5하니까 안좋은 기억이 [2] 막장갤신학생갤로그로 이동합니다. 11.09.30 103 0
277166 저더 개인 블로그를 제가 만들어서 서버에 돌리고 시픈데 ㅠ [8] [성대아싸]갤로그로 이동합니다. 11.09.30 142 0
277165 나뭐지 ? [4] Adelposs갤로그로 이동합니다. 11.09.30 51 0
277164 프로그래머들도 신문 봅시다. [3] 빌어먹을야옹갤로그로 이동합니다. 11.09.30 87 0
277163 sll 이거 자바로 어떻게 구현? Adelposs갤로그로 이동합니다. 11.09.30 31 0
277162 만들고 싶은 홈페이지가 있는데 [20] 좋은아버지갤로그로 이동합니다. 11.09.30 154 0
277161 내 3D궁금해하던 좋은아버지횽은 봅니다 [15] +어게인갤로그로 이동합니다. 11.09.30 125 0
277160 프랙탈 서버 열음 ㅋ, 중독임 (크롬, 오페라) [4] [성대아싸]갤로그로 이동합니다. 11.09.30 105 0
277159 계약직으로 파견나왔는데 다 여자다... [7] (122.34) 11.09.30 142 0
277158 프로그래밍은 그냥 도구일뿐이다. 깊게 파고 자시고 할게없다. [4] 쵸쵸(219.251) 11.09.30 88 0
277157 내 우분투가 아프기 시작했다.. [3] 로하로하알로하갤로그로 이동합니다. 11.09.30 67 0
277156 근데 자바 깊게 팔 필요있음? [2] 빌어먹을야옹갤로그로 이동합니다. 11.09.30 99 0
277155 아오 중괄호 ㅡㅡ ,.,.(183.100) 11.09.30 60 0
277154 C++ 가상함수에 관한건데 자문좀 구해봅니다 [10] C++배우는중(119.205) 11.09.30 83 0
277152 님들 옛날에 인터넷에서 코드쓰면 결과값나오는 사이트 머엿졍? [3] 금고래(211.236) 11.09.30 74 0
277151 런닝맨에 송지효있잖아... [3] 무지개매너갤로그로 이동합니다. 11.09.30 94 0
277150 프로그래머로 취직... [3] yoi(124.153) 11.09.30 124 0
277149 넷북에 우분투 깔아놨는데 [5] 로하로하알로하갤로그로 이동합니다. 11.09.30 71 0
277148 램디스크 용량 늘리기 전간디갤로그로 이동합니다. 11.09.30 263 0
277147 한국 IT의 미래가 암훌한 이유는 바로 니들 [5] 쵸쵸(219.251) 11.09.30 172 1
277146 하아 밑에 글 진짜 동감된다 나두 벡스코 갔다옴 [8] 일광면(119.198) 11.09.30 111 0
277145 플밍초보는 봅니다. [11] laoshanlong갤로그로 이동합니다. 11.09.30 128 0
뉴스 H.O.T. 토니안, 우울증 고백...“술과 약에 의존하며 매일 죽음을 생각했다” 디시트렌드 07.30
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2