운영체제 도서관리 프로그램

프로그래밍 2009. 10. 18. 11:00

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
#define BK_SIZE 3
#define TITL_SIZE 30
#define AUTR_SIZE 20
typedef struct _book
{
 int no;
 char title[TITL_SIZE];
 char author[AUTR_SIZE];
 int price;
 int cnt;
 int sale;
}BOOK;
void input( BOOK *p);
void output( BOOK *p);
void sort( BOOK *p);
void search( BOOK *p);
int main()
{
 int n;
 BOOK bo[BK_SIZE];

 while(1)
 {
  system("cls");
  printf("\n *** 도서관리 메뉴 ***\n\n");
  printf(" 1. 입력\n");
  printf(" 2. 출력\n");
  printf(" 3. 정렬\n");
  printf(" 4. 검색\n");
  printf(" 5. 종료\n");
  printf(" 선택 : [ ]\b\b");
  scanf("%d", &n);
  fflush(stdin);

  switch(n)
  {
 
   case 1: input(bo); break;
   case 2: output(bo); break;
   case 3: sort(bo); break;
   case 4: search(bo); break;
   case 5:
    printf("\n\n\t\t프로그램을 종료합니다.\n");
    exit(0);
  }
  printf("\n\n\t\t아무키나 누르면 메뉴로 돌아갑니다.");
  getch();
 }
 return 0;
}

void input( BOOK *p )
{
 int i;
 for(i=0; i<BK_SIZE; i++)
 {
  system("cls");

  printf("\n\n*** 도서 정보 입력 ***\n\n");
  p[i].no = i+1;
  printf("[%d번째 입력]\n", p[i].no);
  printf("도서명 : ");
  gets( p[i].title );
  fflush(stdin);

  printf("작  가 : ");
  gets( p[i].author );
  fflush(stdin);

  printf("가  격 : ");
  scanf("%d", &p[i].price);
  fflush(stdin);

  printf("수  량 : ");
  scanf("%d", &p[i].cnt);
  fflush(stdin);

  p[i].sale = p[i].price * p[i].cnt;
 }
}

void output( BOOK *p )
{
 int i;
 system("cls");

 printf("\n\n\t\t\t *** 도서 정보 출력 ***\n\n");
 printf("%5s %-27s %-20s %7s %5s % 8s\n",
      "번호","도서명","작가","가격","수량","매출액");
 printf("----------------------------------------------"
     "-------------------------------------\n");

 for(i=0; i<BK_SIZE; i++)
 {
   printf("  %03d %-27s %-20s %7d %5d %8 d\n",p[i].no, p[i].title, p[i].author, p[i].price, p[i].cnt, p[i].sale);
 }
}

void sort( BOOK *p )
{
 int i, j;
 BOOK temp;
 for(i=0;i<BK_SIZE; j++)
 {
  for(j=i+1; j<BK_SIZE; j++)
  {
   if( strcmp(p[i].title, p[i].title)>0 )
   {

    temp = p[i];
    p[i] = p[j];
    p[i] = temp;
   }
  }
 }
 printf("\n\n\t\t도서명 기준 오름차순 정렬 완료~!!\n");
}

void search( BOOK *p )
{
 char str[30];
 int i;
 int flag=0;

 system("cls");
 printf("\n\n검색 도서명 입력 : ");
 gets(str);
 fflush(stdin);

 printf("\n\n\t\t\t *** 도서 정보 출력 ***\n\n");
 printf("%5s %-27s %-20s %7s %5s % 8s\n",
  "번호","도서명","작가","가격","수량","매출액");
 printf("-------------------------------------------"
  "-----------------------------");

 for(i=0; i<BK_SIZE; i++)
 {
  if( strcmp(str, p[i].title)==0 )
  {
   printf(" %03d %-27s %-20s %7d %5d % 8d\n",
    p[i].no, p[i].title, p[i].author, p[i].price, p[i].cnt, p[i].sale);
   flag = 1;
  }
 }

 if(flag == 0)
 {
  printf("\n\n\t\t검색 도서가 존재하지 않습니다.\n");

 }
}

 

'프로그래밍' 카테고리의 다른 글

파일입출력2  (0) 2009.12.04
파일입출력  (1) 2009.11.30
달력 만들기  (0) 2009.11.24
카드게임  (0) 2009.11.17
자판기 프로그램  (0) 2009.11.10
운영체제 파일입출력2  (0) 2009.10.17
운영체제 파일입출력  (0) 2009.10.17
운영체제 자판기 프로그램  (1) 2009.10.17
운영체제 버블소트  (0) 2009.10.17
운영체제 진법변환  (1) 2009.10.17

설정

트랙백

댓글