您现在的位置:计算机技术学习网 > 技术中心 > 编程开发 > C >

c语言课程设计_图书管理系统

来源:不详 责任编辑:栏目编辑 发表时间:2013-07-02 02:07 点击:

/* 图书管理
 这个程序我给一个朋友写的C语言课程设计的作业, 我们化院的C设计题目好象几年都没有变,所以因 该能给你作个参考。(没有涉及到C++)  这是个"图书管理系统",没有用到指针。BC应该可 以通过调试,输入数据的时候一定注意数字的范围 和字串的长度。*/

#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",&am

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • Glib实例学习(2)双链表
    • C程序员要学C++吗?
    • C++中实现Singleton的正确方法
    • 编程思维训练(一)
    • 【编程好习惯】引入中间变量使程序更易读
    • 在C++中通过模板规避潜在错误
    • 在C++中通过模板去除强制转换
    • 【编程好习惯】减少搜索头文件的目录数
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1