正文

图书馆管理系统2005-09-18 11:26:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/wojiele/4897.html

分享到:

 #include <stdio.h>
#include <stdlib.h>
#include <conio.h>

struct BOOK
 {
 int id,usr[10],total,store,days[10];
 char name[31],author[21];
 }books[100];
/*上面是结构体的定义,用于存放书籍及借书的信息。*/

void page_title(char *menu_item)
 {
 clrscr();
 printf(">>> 图 书 管 理 系 统 <<<\n\n- %s -\n\n",menu_item);
 }
/*上面是打印页眉的函数,同时通过参数menu_item,可以显示当前的状态。*/

void return_confirm(void)
 {
 printf("\n按任意键返回……\n");
 getch();
 }
/*上面是返回前请求确认的函数,以便在返回前观察结果*/

int search_book(void)
 {
 int n,i;
 printf("请输入图书序号:");
 scanf("%d",&i);
 for(n=0;n<100;n++)
  {
  if(books[n].id==i)
   {
   printf("书名:%s\n",books[n].name);
   printf("作者:%s\n",books[n].author);
   printf("存数:%d of ",books[n].store);
   printf("%d\n",books[n].total);
   return n;
   }
  }
 printf("\n输入错误或无效图书序号.\n");
 return -1;
 }
/*上面的函数是在数组中找到图书号匹配的记录,显示其信息并返
  回数组下标,如果找不到相应记录则提示错误并返回-1。*/

void book_out(void)
 {
 int n,s,l,d;
 page_title("借阅图书");
 if((n=search_book())!=-1&&books[n].store>0)
  {
  printf("请输入借书证序号:");
  scanf("%d",&s);
  printf("请输入可借天数:");
  scanf("%d",&d);
  for(l=0;l<10;l++)
   {
   if(books[n].usr[l]==0)
    {
    books[n].usr[l]=s;
    books[n].days[l]=d;
    break;
    }
   }
  books[n].store--;
  }
 if(n!=-1&&books[n].store==0) printf("此书已经全部借出.\n");
 return_confirm();
 }
/*上面是借书的函数,首先调用找书函数*/

void book_in(void)
 {
 int n,s,l;
 page_title("归还图书");
 if((n=search_book())!=-1&&books[n].store<books[n].total)
  {
  printf("借阅者图书证列表:\n");
  for(l=0;l<10;l++)
   if (books[n].usr[l]!=0)
    printf("[%d] - %d天\n",books[n].usr[l],books[n].days[l]);
  printf("请输入借书证序号:");
  scanf("%d",&s);
  for(l=0;l<10;l++)
   {
   if(books[n].usr[l]==s)
    {
    books[n].usr[l]=0;
    books[n].days[l]=0;
    break;   
    }
   }
  books[n].store++;
  }
 if(n!=-1&&books[n].store==books[n].total)
  printf("全部入藏.\n");
 return_confirm();
 }

void book_add(void)
 {
 int n;
 page_title("注册新书");
 for(n=0;n<100;n++)
  if(books[n].id==0) break;
 printf("序号:");
 scanf("%d",&books[n].id);
 printf("书名:");
 scanf("%s",&books[n].name);
 printf("作者:");
 scanf("%s",&books[n].author);
 printf("数量:");
 scanf("%d",&books[n].total);
 books[n].store=books[n].total;
 return_confirm();
 }
void book_del(void)
 {
 int n;
 page_title("注销旧书");
 if((n=search_book())!=-1) books[n].id=0;
 printf("该书已注销.\n");
 return_confirm();
 }

void main(void)
 {
menu: page_title("操作选单");
 printf("请用数字键选择操作\n\n");
 printf("1 借阅图书\n2 归还图书\n\n");
 printf("3 注册新书\n4 注销旧书\n\n");
 printf("\n0 退出\n");
 switch(getch())
  {
  case '1' : book_out();break;
  case '2' : book_in();break;
  case '3' : book_add();break;
  case '4' : book_del();break;
  case '0' : exit(0);
  }
 goto menu;
 }
{
 int n;
 page_title("");
 if((n=search_book()!=-1) books[n].id=0;
 printf("\n");
 return_confirm();
 }

void main(void)
 {
menu: page_title("");
 printf("\n\n");
 printf("1 \n\n");
 printf("3 \n\n");
 printf("\n0 \n");
 switch(getch())
  {
  case '1' : book_out();break;
  case '2' : book_in();break;
  case '3' : book_add();break;
  case '4' : book_del();break;
  case '0' : exit(0);
  }
 goto menu;
  getch();
 }

阅读(6908) | 评论(6)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册