实训报告 图书馆管理系统

时间:2024.4.8

20##年第二阶段课程设计成果报告

实训项目:      程序设计技术课程设计         

学号:         姓名:        专业:          

实训日期:20##年6月 27 日至20##年7月8日

指导教师:         实训成绩:           

江西财经大学信息管理学院


一、  问题概述

通过我们所学到的C语言基础知识,编写一个程序实现图书馆管理信息系统。并通过这次实训,提高我们对C语言在实际应用的了解。主要实现的功能有对图书信息的处理、查找图书、借书、还书和统计等。利用计算机,让读者和图书馆管理人员都得到便利。

二、  系统目标

通过C语言程序设计编写代码,实现对图书馆的信息处理。主要功能为:添加图书、删除图书、修改图书信息、在显示屏上显示图书信息、将图书信息显示在txt文档中、按图书编号查找图书、按图书名查找图书、按图书作者查找图书、借书、还书、统计超期图书数量、统计按期归还率等。

三、  设计的过程及步骤

1、需求分析

随着计算机的不断普及,各个领域在不同程度上都利用计算机使工作更加高效的运作,当然图书馆也不例外!运用计算机管理图书馆的信息,能更加高效便捷的完成图书馆的工作,不管是对读者还是图书馆管理者都是非常有用的!

图书馆的图书信息非常庞大,人工的操作费时又费力。计算机的出现成功的解决了这一问题。图书馆管理人员只要将图书信息输入计算机中,并通过图书馆管理系统进行有效的操作,让计算机帮助我们完成更多的工作。

2、设计文件结构

图书信息文件(book.red),主要存储图书的信息。

图书借还信息文件(sircula.red),主要存储读者借书和还书的信息。

索引是直接对图书信息文件盒图书借还信息文件进行操作,实现索引的功能。

3、设计系统功能图

(根据需求分析结果和文件结构,应用结构化分析与设计技术设计功能结构图,如下图所示)

    

   

4、函数设计

    ( 详细分析每一个子模块的子功能,定义主要的子函数原型,并对每一个函数的功能加以说明)

void chabook();        //按图书编号查找书

void scan();           //输入图书图书信息

void readrec();        //在显示屏显示图书所有信息

void readtxt ();       //打印报表,生成txt文档显示所有图书信息

void addbook();        //增加图书

void deletebook();     //删除图书

void change();         //修改图书信息

void chabookm();       //按图书名查找图书

void chabookw();       //按图书作者查找图书

void chabookl();       //按图书类型查找图书

void borrowbook();     //借书

void backbook();       //还书

void chaoqi();         //统计超期的图书数量

void anqi();           //统计按期归还率

四、  实训成果

主要的操作界面如下:

1、系统主界面:

2、查找图书界面:

3、图书信息处理界面:

4、借书还书和统计:

5、成功查找图书:

6、在显示屏上输出图书信息:

7、将图书信息打印成txt文档:

8、借书:

9、成功借书:

10、还书:

11、统计超期图书册数:

五、  实训心得与体会

在这短短的十天中,第一天完全不知道怎么开始,不知道一个比较完整的程序应该要包含什么要素。在老师和同学的帮助下才把一行行的代码写了出来。

在我们编写程序的过程中,把我们平时所学的知识都运用到了!使我们对平时所学的知识得到了进一步的巩固,这是一次很好的锻炼。分组可以让我们遇到不懂的问题的时候能够互相帮助,有利于我们学会团结合作,相互学习。

在编程的过程中,经常会因为一个小小的问题需要调试很久,有的问题是技术问题,这是我们的能力所限制的,但是有的问题是因为不细心,没有良好的编程习惯所导致的问题!所以在学习编程的过程中,不仅要学会怎么编程,更需要养成良好的编程习惯!在调试的过程中要细心和耐心的查找错误!

虽然大部分的功能都实现了,但是还是不能运用到实际当中,因为这个程序还不是很完善,不是一个非常健壮的程序,只有按正确的步骤才能完成操作!对于不熟悉此系统的人,就很难操作,但是我们的要求是为了在实际中使用!功能也不是很全面,还有待提高!

当最后终于把大部分功能都实现的时候,我们每一个人都很高兴!刚开始听说要编写这么大的一个程序的时候,觉得这是不可思议的,我们怎么能写出来呢!但是经过将近十天的努力,我们还是做到了!

通过十天左右的实训,我们的收获很多,要想成功的编写一个程序,我们需要学习的东西还有很多。只有不断增加我们的知识,我们才能不断的提高!

六、  附录

(程序源代码:程序要求符合格式规范。为了便于阅读和理解,要求加上适当的注释说明。)#include <stdio.h>

#include <stdlib.h>

#include<string.h>

void start() ;  

void  menu();  

void panduan(); 

void chabook();        //按图书编号查找书

void scan();           //输入图书图书信息

void readrec();        //在显示屏显示图书所有信息

void readtxt ();       //在txt文档显示所有图书信息

void addbook();        //添加图书信息

void chabookm();       //按图书名查找图书

void chabookw();       //按图书作者查找图书

void chabookl();       //按图书类型查找图书

void deletebook();     //删除图书

void change();         //修改图书信息

void borrowbook();     //借书

void backbook();       //还书

void chaoqi();         //统计超期的图书数量

void anqi();           //统计按期归还率

     

struct{

        long   booknum;        //图书编号

       char  bookname[100];   //图书名

       char  booktype[100];   //图书类型

       char  writer[100];     //作者

       char  publish[100];    //出版社

       int   number;          //图书总册数

       int   yushu;           //图书余数

       int   biaoji;        //标记,作为判断是否读取的数据的标志。为"1"则读取,为"0"则不读取。

} book;

struct {

         long shuhao;                //图书书号

         char lenddate[10];           //借书时间

         char backdate[10];           //还书时间

         char limitdate[10];          //应还时间

         char studnum[8];            //读者学号

         char name[20];              //读者姓名

         int  chaoqi;                //是否超期("0"表示不超期,"1"表示超期)

        int  biaoji;                //标记,作为判断是否还书的标志,为"1"则表示没有还书,为"0"表示此书已经还了并删除了记录。

} borrow;

/*========================================================================================================================*/

void main()

{    int j;

     printf("\n\n\n\n         ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅\n");

     printf("        ┇         欢迎进入图书管理信息系统               ┇\n");

     printf("        ┇                                                ┇\n");

     printf("        ┇         对图书信息进行初始化请输入  1          ┇\n");

     printf("        ┇                                                ┇\n");

     printf("        ┇         不对图书信息进行初始化请输入  0        ┇\n");

     printf("         ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅");

     printf("\n             请选择:");

     scanf ("%d",&j);

     if (j==1)

     {scan();}

     start();

     menu(); /*调用主菜单*/

}

/*===========================================================================================================================*/

void menu() /*主菜单*/

{     

    for(;;)

    {

       int a,b,c,d;

       printf("\n\n   ================================================================\n");

       printf("   |☆ 请选择所需要的操作:                                     ☆|\n");

       printf("   |☆                                                          ☆|\n");

       printf("   |☆\t        0-----退出系统                                  ☆|\n");

       printf("   |☆                                                          ☆|\n");

       printf("   |☆\t        1-----查找图书                                  ☆|\n");

       printf("   |☆                                                          ☆|\n");

       printf("   |☆\t        2-----对图书信息进行处理                        ☆|\n");

       printf("   |☆                                                          ☆|\n");

       printf("   |☆\t        3-----借书还书和统计                            ☆|\n");

       printf("   ================================================================\n");

       printf("\n              请选择:");

       printf("\t");

       scanf("%d",&a);

       if(a==0)

       {  

          system("cls");

          printf("\n\n\n\n\n\n       ☆☆☆☆--------欢迎下次使用本系统!!!!--------☆☆☆☆\n\n\n\n\n\n");

           getchar();

           exit(0);

       }

       if(a==1)

       {

          system("cls");

           printf("\n\n   ================================================================\n");

           printf("   |☆ 请选择所需要的操作:                                     ☆|\n");

           printf("   |☆                                                          ☆|\n");

           printf("   |☆\t          0-----退出系统                                ☆|\n");

           printf("   |☆                                                          ☆|\n");

           printf("   |☆\t          1-----按图书编号查找书籍                      ☆|\n");

           printf("   |☆                                                          ☆|\n");

           printf("   |☆\t          2-----按图书名查找图书                        ☆|\n");

           printf("   |☆                                                          ☆|\n");

           printf("   |☆\t          3-----按图书作者查                            ☆|\n");

           printf("   ================================================================\n");

           printf("\n              请选择:");

           printf("\t");

          scanf("%d",&b);

          switch(b) /*功能选择*/

          {  case 0:

              system("cls");

             printf("\n\n\n\n\n\n       ☆☆☆☆--------欢迎下次使用本系统!!!!--------☆☆☆☆\n\n\n\n\n\n");

              getchar();

              exit(0);

              case 1: chabook();   panduan(); continue;

              case 2: chabookm();   panduan(); continue;

              case 3: chabookw();    panduan(); continue;

              default:printf("\n错误!");

              exit(0);

          }

       }

       if (a==2)

       {

           system("cls");

            printf("\n\n   ================================================================\n");

            printf("   |☆ 请选择所需要的操作:                                     ☆|\n");

            printf("   |☆                                                          ☆|\n");

            printf("   |☆\t          0-----退出系统                                ☆|\n");

            printf("   |☆                                                          ☆|\n");

            printf("   |☆\t          1-----添加图书                                ☆|\n");

            printf("   |☆                                                          ☆|\n");

            printf("   |☆\t          2-----删除图书记录                            ☆|\n");

            printf("   |☆                                                          ☆|\n");

            printf("   |☆\t          3-----修改图书信息                            ☆|\n");

            printf("   |☆                                                          ☆|\n");

            printf("   |☆\t          4-----在显示屏输出图书的信息                  ☆|\n");

            printf("   |☆                                                          ☆|\n");

            printf("   |☆\t          5-----将图书信息输出在txt文件中               ☆|\n");

            printf("   ================================================================\n");

            printf("\n              请选择:");

            printf("\t");

           scanf("%d",&c);

            switch(c) /*功能选择*/

           { 

              case 0:

               system("cls");

              printf("\n\n\n\n\n\n       ☆☆☆☆--------欢迎下次使用本系统!!!!--------☆☆☆☆\n\n\n\n\n\n");

               getchar();

               exit(0);

               case 1: addbook();   panduan(); continue;

               case 2: deletebook();   panduan(); continue;

               case 3: change();    panduan(); continue;

               case 4: readrec();   panduan(); continue;

               case 5: readtxt();   panduan();  continue;

               default:printf("\n错误!");

               exit(0);

           }

       }

       if(a==3)

       {

           system("cls");

           printf("\n\n   ================================================================\n");

           printf("   |☆ 请选择所需要的操作:                                     ☆|\n");

           printf("   |☆                                                          ☆|\n");

           printf("   |☆\t          0-----退出系统                                ☆|\n");

           printf("   |☆                                                          ☆|\n");

           printf("   |☆\t          1-----借书                                    ☆|\n");

           printf("   |☆                                                          ☆|\n");

           printf("   |☆\t          2-----还书                                    ☆|\n");

           printf("   |☆                                                          ☆|\n");

           printf("   |☆\t          3-----统计超期图书数量                        ☆|\n");

           printf("   |☆                                                          ☆|\n");

           printf("   |☆\t          4-----统计按期归还率                          ☆|\n");

           printf("   ================================================================\n");

           printf("\n              请选择:");

           printf("\t");

          scanf("%d",&d);

           switch(d) /*功能选择*/

          {  case 0:

              system("cls");

             printf("\n\n\n\n\n\n       ☆☆☆☆--------欢迎下次使用本系统!!!!--------☆☆☆☆\n\n\n\n\n\n");

              getchar();

              exit(0);

              case 1: borrowbook();   panduan();  continue;

             case 2: backbook();   panduan();  continue;

             case 3: chaoqi();   panduan();  continue;

             case 4:anqi();        panduan();  continue;

              default:printf("\n错误!");

              exit(0);

          }

       }

      if(a<0||a>3)

      {

        printf("\n错误!请重新输入:");

        exit(0);

      }

    }

}

/*=========================================================================================================*/

void start()//系统首页

{

     system("cls");

     printf("\n\n\n\n                      欢迎使用图书管理系统\n");

     printf("\n\n\n\n                    按  enter  键 进 入 系 统 ...");

     getchar();

     system("cls");

}

void panduan()

{  

     char  ch;

     for(;;)

     {

         printf("是否继续进行操作(y/n):");

         scanf("%c",&ch);

         if(ch=='n')

        { 

            system("cls");

           printf("\n\n\n\n\n\n       ☆☆☆☆--------欢迎下次使用本系统!!!!--------☆☆☆☆\n\n\n\n\n\n");

           getchar();

           exit(0);

        }

        if (ch=='y')

        {  

            system("cls");

            break;

        }

     }

}

/*===============================================================================================================*/             

void scan()    //输入图书信息  

{

    int i=1;

     struct{

            long booknum;

           char  bookname[100];

           char  booktype[100];

           char  writer[100];

           char  publish[100];

           int   number;

           int   yushu;

           int   biaoji;

     } book[1000];

     FILE *fp;

     char numchr[80],ch='y';

     if((fp=fopen("book.rec","wb"))==NULL)

     {

        printf("cannot open book.rec.\n");

        exit(0);

     }

      system("cls");

    while(ch=='y'||ch=='Y')

    {

       printf("请输入图书名编号(注意:图书编号为除1000的四位数,首位不能为0 ):");

             scanf ("%ld",&book[i].booknum);

        printf("请输入图书名:");

             scanf("%s",book[i].bookname);

        printf("请输入类型:");

             scanf("%s",book[i].booktype);

        printf("请输入作者:"); 

             scanf("%s",book[i].writer);

        printf("请输入出版社:");

             scanf ("%s",book[i].publish);

        printf("请输入总册数:");

             scanf ("%d",&book[i].number);

        printf("请输入余数:");

             scanf("%d",&book[i].yushu);

        book[i].biaoji=1;

     fwrite(&book[i],sizeof(book[i]),1,fp);

     do

     {

        printf("Have another books (y/n)?");

        gets(numchr);ch=numchr[0];

     }

       while(!(ch=='y'||ch=='n'||ch=='Y'||ch=='N'));

    }

    fclose(fp);

}

/*===============================================================================================================*/

void chabook()//按书籍编号查找书籍

{    

      int i,j=1;

      FILE *fp;

      int booknum;

      system("cls");

      if ((fp=fopen("book.rec","rb"))==NULL)

      {   printf ("can not open book.tec.\n");

          exit (0);

      }

      printf ("\n\n\n        请输入图书编号:");

      scanf ("%ld",&booknum);

      for(i=1;j!=0;i++)

      { fread(&book,sizeof(book),1,fp);

        if(book.biaoji==0)   continue;

        if(booknum==book.booknum)

       {  

           printf("   查找的图书信息为:\n");

           printf("┌───┬─────┬─────┬─────┬─────┬───┬───┐\n");

            printf("│ 编号 │  图书名  │ 图书类型 │   作者   │ 出版社   │总册数│ 余数 │\n");

           printf("├───┼─────┼─────┼─────┼─────┼───┼───┤\n");

            printf ("│%6ld│%10s│%10s│%10s│%10s│%6d│%6d│\n",book.booknum,book.bookname,book.booktype,book.writer,book.publish,book.number,book.yushu);

            printf("└───┴─────┴─────┴─────┴─────┴───┴───┘\n\n");

           j=0;

       }

       if(feof(fp)!=0)

       {

           printf("\n\n\n          ☆☆☆☆---------没有找到所要查找的书籍!!--------☆☆☆☆\n\n\n\n\n");

           break;

       }

      }

     fclose(fp);

}

/*===============================================================================================================*/

void readrec ()//输出所有图书的信息

{   

     FILE *fp;

     system("cls");

     if ((fp=fopen("book.rec","rb"))==NULL)

     {   printf ("can not open book.rec.\n");

     exit(0);

     }

       printf("\n\n图书信息为:\n");

       printf("┌───┬─────┬─────┬─────┬─────┬───┬───┐\n");

       printf("│ 编号 │  图书名  │ 图书类型 │   作者   │ 出版社   │总册数│ 余数 │\n");

        

      

     while (fread(&book,sizeof(book),1,fp)==1)

     {   

          if(book.biaoji==0)   continue;

          printf("├───┼─────┼─────┼─────┼─────┼───┼───┤\n");

          printf("│%6ld│%10s│%10s│%10s│%10s│%6d│%6d│\n",book.booknum,book.bookname,book.booktype,book.writer,book.publish,book.number,book.yushu);

     }

     printf("└───┴─────┴─────┴─────┴─────┴───┴───┘\n");

     printf ("\n");

     fclose (fp);

}

/*===============================================================================================================*/

void addbook()//输入添加的图书信息/   

{       

     FILE *fp;

     char numchr[80],ch='y';

     system("cls");

     if((fp=fopen("book.rec","a"))==NULL)

     {

        printf("cannot open book.rec.\n");

        exit(0);

     }

    while(ch=='y'||ch=='Y')

    {

       printf("请输入图书名编号:");

             scanf ("%ld",&book.booknum);

        printf("请输入图书名:");

             scanf("%s",book.bookname);

        printf("请输入类型:");

             scanf("%s",book.booktype);

        printf("请输入作者:"); 

             scanf("%s",book.writer);

        printf("请输入出版社:");

             scanf ("%s",book.publish);

        printf("请输入总册数:"); 

             scanf ("%d",&book.number);

        printf("请输入余数:");

             scanf("%d",&book.yushu);

       book.biaoji=1;

             fwrite(&book,sizeof(book),1,fp);

     do

     {

        printf("Have another books (y/n)?");

        gets(numchr);ch=numchr[0];

     }

       while(!(ch=='y'||ch=='n'||ch=='Y'||ch=='N'));

    }

    fclose(fp);

}

/*===============================================================================================================*/

void chabookm()//按书名查找书籍

{   

      FILE *fp;

      char name[100];

      int  j=1;

      system("cls");

      if ((fp=fopen("book.rec","r"))==NULL)

      {   printf ("can not open book.rec.\n");

          exit (0);

      }

      printf ("请输入图书名:\n");

      scanf ("%s",name);

        while(fread(&book,sizeof(book),1,fp)==1)

        {

           if(book.biaoji==0)  

           continue;

            if(strcmp(name,book.bookname)==0)

           {

               printf("┌───┬─────┬─────┬─────┬─────┬───┬───┐\n");

                 printf("│ 编号 │  图书名  │ 图书类型 │   作者   │ 出版社   │总册数│ 余数 │\n");

                printf("├───┼─────┼─────┼─────┼─────┼───┼───┤\n");

                 printf ("│%6ld│%10s│%10s│%10s│%10s│%6d│%6d│\n",book.booknum,book.bookname,book.booktype,book.writer,book.publish,book.number,book.yushu);

                 printf("└───┴─────┴─────┴─────┴─────┴───┴───┘\n\n");

           j=0;

           }

        }

        if(j==1)

             printf("\n\n           ******没有找到所要查找的书籍!!******\n\n\n\n\n");

      fclose(fp);  

}

/*===============================================================================================================*/

void deletebook()//删除图书记录

  {

    int num,i,j=1,t;

    FILE *fp;

    system("cls");

    printf("请输入要删除图书记录的图书编号:");

    scanf("%ld",&num);

       if((fp=fopen("book.rec","r+b"))==NULL)

       {   printf("打不开 图书信息文件 !\n");

            exit(0);

        }

    for(i=1;j!=0;i++)

    {  fread(&book,sizeof(book),1,fp);

       if(book.biaoji==0)  

          continue;

       if(num==book.booknum)

       {  

          system("cls");

          printf("\n\n\n\n\n ═════════════════════════\n");

          printf("║                                                ║\n");

          printf("║           确定删除请输入   1                   ║\n");

          printf("║                                                ║\n");

          printf("║           取消删除请输入   0                   ║\n");

          printf("║                                                ║\n");

          printf(" ═════════════════════════\n");

           printf("\n           请输入:");

           scanf("%d",&t);

          if(t==1)

           {

              book.biaoji=0;

              fseek( fp,-(long)sizeof(book),1);

              fwrite(&book,sizeof(book),1,fp);

               system("cls");

              printf("\n\n\n\n          *********成功删除!!!!*********\n\n\n\n\n");

              j=0;

          }

          if(t==0)

          {  

              system("cls");

              printf("\n\n\n\n        *********图书没有删除!!返回主菜单!!********\n\n\n\n\n\n\n");

              j=0;

          }

       }

       if(feof(fp)!=0)

       {

           printf("\n\n\n\n\n\n         ********没有找到所要删除的书籍!!返回主菜单!!********\n\n\n\n\n");

           j=0;

       }

    }

    fclose(fp);

}

/*===============================================================================================================*/

void change()      //修改图书信息

{   

     int bianhao;  

     FILE *fp;

     system("cls");

     if ((fp=fopen("book.rec","r+b"))==NULL)

     {   printf ("can not open book.rec.\n");

         exit(0);

     }

     printf ("请输入所要修改的图书编号:");

     scanf("%d",&bianhao);

     for (;;)

     {   fread(&book,sizeof(book),1,fp);

         if(book.biaoji==0)   continue;

         if (bianhao==book.booknum)

        {fseek(fp,-(long)sizeof(book),1);

         printf("   请输入修改后的图书信息:\n\n\n");

         printf("   请输入图书名编号:");

             scanf ("%ld",&book.booknum);

          printf("   请输入图书名:");

             scanf("%s",book.bookname);

          printf("   请输入类型:");

             scanf("%s",book.booktype);

          printf("   请输入作者:"); 

             scanf("%s",book.writer);

          printf("   请输入出版社:");

             scanf ("%s",book.publish);

          printf("   请输入总册数:"); 

             scanf ("%d",&book.number);

          printf("   请输入余数:");

             scanf("%d",&book.yushu);

         book.biaoji=1;

          fwrite(&book ,sizeof(book ),1,fp);

         printf("\n   修改成功!\n\n");

          break;

        }

        if(feof(fp)!=0)

        {  printf("       没有找到所要修改的书籍!!   \n\n");

           break;

        }

     }

       fclose (fp);    

}

/*===============================================================================================================*/

void borrowbook()           //借书系统

{    FILE *fp1,*fp2;

     int t;

     long  bianhao,shuhao;

     system("cls");

     if ((fp1=fopen("borrow.rec","a+b"))==NULL)

     {    printf ("can not open borrow.rec");

          exit(0);

     }

     printf("请输入书号(注意:书号为七位数,后四位为编号。):");

          scanf("%ld",&shuhao);

     if ((fp2=fopen("book.rec","r+b"))==NULL)

     {   printf("can not open book.rec");

         exit(0);

     }

     bianhao=shuhao%10000;

     for (;;)

     {  

         fread(&book,sizeof(book),1,fp2);

         if(book.biaoji==0) 

            continue;

         if (bianhao==book.booknum)

        {  

           printf ("所借书的信息为:");

           printf("\n图书编号为:");

           printf("%ld",book.booknum);

            printf("\n图书名:" );

            puts(book.bookname);

            printf("\n类型:");

            puts(book.booktype);

            printf("\n作者:");

            puts(book.writer);

            printf("\n出版社: ");

            puts(book.publish);

            printf("\n总册数 : ");

            printf("%d",book.number);

           printf("\n\n余数为:");

           printf("%d\n",book.yushu);

           printf("\n\n\n       确定------1         取消------0\n\n\n");

           printf("                 请输入:");

            scanf("%d",&t);

            if(t==1) //判断是否借书

           {

                  system("cls");

            borrow.shuhao=shuhao;

             printf("     请输入借书时间(xxxx-xx-xx):");

                  scanf("%s",borrow.lenddate);

             printf("     请输入应该还书的时间(xxxx-xx-xx):");

                  scanf("%s",borrow.limitdate);

             printf("     请输入读者学号:");

                  scanf("%s",borrow.studnum);

             printf("     请输入读者姓名:");

                 scanf("%s",borrow.name);

                borrow.chaoqi=0;

                  borrow.biaoji=1;

             fwrite(&borrow,sizeof(borrow),1,fp1);

             book.yushu=book.yushu-1;

            fseek(fp2,-(long)sizeof(book),1);

             fwrite(&book,sizeof(book),1,fp2);

             printf("\n\n       *****借书成功!*****\n\n");

            break;

           }

            if(t!=1)

           { 

               printf("\n\n\n\n\n\n\n******************返回主菜单!!!******************\n\n\n\n\n\n\n\n");

              break;

           }

        }

        if(feof(fp2)!=0)

        {

          printf ("\n\n*************书号错误,没有找到这本书,返回主菜单!!***************\n\n\n\n");

          break;

        }

     }

          fclose(fp1);

          fclose(fp2);

}

/*===============================================================================================================*/

void backbook()//还书系统

{   

     FILE *fp1,*fp2;

     long  shuhao,bianhao;

     system("cls");

     printf("请输入所要还书的书号(注意:书号为七位数,后四位为图书编号):");

     scanf("%ld",&shuhao);

     if ((fp1=fopen("borrow.rec","r+b"))==NULL)

     {

       printf ("can not open borrow.rec");

       exit(0);

     }

     for(;;)

     {

         fread(&borrow,sizeof(borrow),1,fp1);

         if(borrow.biaoji==0)  

            continue;

        if(shuhao==borrow.shuhao)

        {           

            printf("请输入还书时间(xxxx-xx-xx):");

           scanf("%s",borrow.backdate);

           borrow.biaoji=0;

           if(strcmp(borrow.backdate,borrow.limitdate)>0)

              borrow.chaoqi=1;

              else

              borrow.chaoqi=0;

           fseek(fp1,-(long)sizeof(borrow),1);          

           fwrite(&borrow,sizeof(borrow),1,fp1);

           bianhao=shuhao%10000;

           if ((fp2=fopen("book.rec","r+b"))==NULL)

           {  

               printf("can not open book.rec");

                exit(0);

           }

           for(;;)

           {  

                fread(&book,sizeof(book),1,fp2);

                if(bianhao==book.booknum)

               { 

                   book.yushu=book.yushu+1;

                     fseek(fp2,-(long)sizeof(book),1);

                     fwrite(&book,sizeof(book),1,fp2);

                     printf("\n\n\n              ***********还书成功!!!**********\n\n\n\n\n");

                   fclose(fp2);

                   break;

               }

               if(feof(fp2)!=0)

               {  

                   printf("\n\n             ****输入错误!!返回主菜单从新选择需要的操作****\n\n");

                   break;

               }        

           }         

           break;

        }

        if(feof(fp1)!=0)

        {

           printf ("\n\n***********书号错误,没有找到要还的书!!返回主菜单从新选择需要的操作!!************\n\n\n\n\n\n");

           break;

        }

     }

     fclose(fp1);

}

/*===============================================================================================================*/

void chaoqi()

{  

     FILE *fp;

     int  chao=0;

     if ((fp=fopen("borrow.rec","r"))==NULL)

     {  

        printf("can not open borrow.rec");

         exit(0);

     }

     while(fread(&borrow,sizeof(borrow),1,fp))

     {

          if(strcmp(borrow.backdate,borrow.limitdate)>0)

             chao=chao+1;

     }

     printf("\n\n\n             超期的图书册数为:%d\n\n\n\n\n",chao);

     fclose(fp);

}

/*===============================================================================================================*/

void readtxt ()//输出所有图书的信息

{   

     FILE *fp1,*fp2;

     system("cls");

     if ((fp1=fopen("book.rec","rb"))==NULL)

     {   printf ("can not open book.rec.\n");

     exit(0);

     }

     if ((fp2=fopen("biaoge.txt","w"))==NULL)

     {   printf ("can not open biaoge.txt.\n");

     exit(0);

     }

       fputs("\n\n图书信息为:\n",fp2);

       fputs("┌────┬──────┬──────┬──────┬──────┬────┬────┐",fp2);

       fputs("\n",fp2);

       fputs("│图书编号│   图书名   │  图书类型  │    作者    │   出版社   │ 总册数 │  余数  │",fp2);

       fputs("\n",fp2);    

     while (fread(&book,sizeof(book),1,fp1)==1)

     {   

          if(book.biaoji==0) 

              continue;

          fputs("├────┼──────┼──────┼──────┼──────┼────┼────┤",fp2);

           fputs("\n",fp2);

          fputs("│",fp2);

          fprintf(fp2,"%8ld",book.booknum);

          fputs("│",fp2);

          fprintf(fp2,"%12s",book.bookname);

          fputs("│",fp2);

          fprintf(fp2,"%12s",book.booktype);

          fputs("│",fp2);

          fprintf(fp2,"%12s",book.writer);

          fputs("│",fp2);

          fprintf(fp2,"%12s",book.publish);

          fputs("│",fp2);

           fprintf(fp2,"%8d",book.number);

          fputs("│",fp2);

           fprintf(fp2,"%8d",book.yushu);

          fputs("│",fp2);

          fputs("\n",fp2);

     }

     fputs("└────┴──────┴──────┴──────┴──────┴────┴────┘",fp2);

     fputs("\n",fp2);

     printf ("\n");

     printf("\n\n\n        *******成功输出!!********\n\n\n\n");

     fclose (fp1);

     fclose (fp2);

}

/*===============================================================================================================*/

void anqi()

{  

    FILE *fp;

    float  ghl;

    int  chaoqi=0,jie=0;

    system("cls");

    if ((fp=fopen("borrow.rec","r"))==NULL)

    {  

       printf("can not open borrow.rec");

        exit(0);

    }

    while(fread(&borrow,sizeof(borrow),1,fp)==1)

    {  

      if (borrow.chaoqi==1)

         chaoqi=chaoqi+1;

      jie++;

    }

    ghl=(jie-chaoqi)/jie;

    printf("\n\n\n             按期归还率为:%f\n\n",ghl);

    fclose(fp);

}

void chabookw()//按书名查找书籍

{   

      FILE *fp;

      char writer[20];

      int  j=1;

      system("cls");

      if ((fp=fopen("book.rec","r"))==NULL)

      {   printf ("can not open book.rec.\n");

          exit (0);

      }

      printf ("请输入图书名:\n");

      scanf ("%s",writer);

        while(fread(&book,sizeof(book),1,fp)==1)

        {

           if(book.biaoji==0)  

           continue;

            if(strcmp(writer,book.writer)==0)

           {

               printf("┌───┬─────┬─────┬─────┬─────┬───┬───┐\n");

                 printf("│ 编号 │  图书名  │ 图书类型 │   作者   │ 出版社   │总册数│ 余数 │\n");

                printf("├───┼─────┼─────┼─────┼─────┼───┼───┤\n");

                 printf ("│%6ld│%10s│%10s│%10s│%10s│%6d│%6d│\n",book.booknum,book.bookname,book.booktype,book.writer,book.publish,book.number,book.yushu);

                 printf("└───┴─────┴─────┴─────┴─────┴───┴───┘\n\n");

           j=0;

           }

        }

        if(j==1)

             printf("\n\n           ******没有找到所要查找的书籍!!******\n\n\n\n\n");

      fclose(fp);  

}

void chabookl()//按书名查找书籍

{   

      FILE *fp;

      char type[20];

      int  j=1;

      system("cls");

      if ((fp=fopen("book.rec","r"))==NULL)

      {   printf ("can not open book.rec.\n");

          exit (0);

      }

      printf ("请输入图书名:\n");

      scanf ("%s",type);

        while(fread(&book,sizeof(book),1,fp)==1)

        {

           if(book.biaoji==0)  

           continue;

            if(strcmp(type,book.booktype)==0)

           {

               printf("┌───┬─────┬─────┬─────┬─────┬───┬───┐\n");

                 printf("│ 编号 │  图书名  │ 图书类型 │   作者   │ 出版社   │总册数│ 余数 │\n");

                printf("├───┼─────┼─────┼─────┼─────┼───┼───┤\n");

                 printf ("│%6ld│%10s│%10s│%10s│%10s│%6d│%6d│\n",book.booknum,book.bookname,book.booktype,book.writer,book.publish,book.number,book.yushu);

                 printf("└───┴─────┴─────┴─────┴─────┴───┴───┘\n\n");

           j=0;

           }

        }

        if(j==1)

             printf("\n\n           ******没有找到所要查找的书籍!!******\n\n\n\n\n");

      fclose(fp);  

}

更多相关推荐:
图书管理系统实训报告

淮南联合大学计算机系课程实训报告书实训科目:图书管理系统专业班级:11级计算机应用技术学号:**姓名:**实训时间:20**-12-18一、课程实训目的《JAVAWeb开发》课程实训是计算机应用技术专业集中实践…

图书管理系统实训综合报告

实训项目设计报告题目xxxxx网上书店实训课程指导教师姓名专业起止日期信息系统数据库设计实训xxxxxxx学号xxxxxx计算机软件班级08计软20xx年5月1日至20xx年5月16日计算机教研室制1目录第一章...

SQLSERVER数据库管理实训_图书管理系统实训报告

SQLSERVER数据库管理实训报告课题名称图书管理系统专业信管目录文档生成后自动生成目1需求描述随着计算机技术的不断应用和提高计算机已经深入到社会生活的各个角落但如果校图书馆仍采用手工管理图书的方法不仅效率低...

图书管理系统实训报告

实训报告课程名称web应用分析与实践实训专业软件工程班级学号113061姓名04指导教师田丹成绩完成日期20xx年7月18日I摘要随着人类进入电子商务时代网上销售管理是贸易型企业经营管理中的核心环节也是该企业能...

数据库实习报告:图书管理系统

湖南通信职业技术学院数据库课程实训报告设计题目学院图书管理系统学生姓名严倩系别计算机系专业计算机管理班级计管091学号20xx020xx150指导教师邹薛标20xx年12月1日目录一概述11项目背景312课程设...

(图书管理系统)学生实验报告

学生实验报告实验课名称软件工程理论方法与实践实验项目名称图书管理系统专业名称软件工程班学级240600804号2406080426学生姓名宋辉教师姓名杜瑾年月实验日期20xx年5月14日实验室名称WM2502一...

图书管理系统课程设计实习报告 信息系统分析与设计

息系统分析设计课程设计1信与2五总结一图书管理系统规划11绪论20xx年的今天是一个信息高度发达的时代伴随着科技的进步文化的汲取人们对于图书信息的了解与掌握也达到了一定的高度尤其是学生对于知识的渴求更是与日俱增...

图书管理系统分析实验报告

学生实验报告书实验课程名称开课学院指导教师姓名学生姓名管理信息系统XX学院XXX学生专业班级XXXXXX200X200X学年第X学期

图书管理系统实验报告+源代码

图书信息管理系统课程设计图书信息管理系统设计人员林俊柱开发环境eclipse数据库sqlserver20xx说明数据库里面的用户名为sa密码为1111登录程序所用的用户名为ljz密码为0000当然也可以使用注册...

c++图书管理系统实验报告+源代码

综合实践报告1设计任务11设计目的运用所学知识完成图书馆管理系统通过实践加强对所学知识的理解和巩固12设计内容建立图书馆管理系统用户分为图书管理人员读者管理人员可以增加删除查看图书读者读者只能查看自身信息和借还...

图书管理系统实验报告

实验报告金超逸11300240035一实验题目图书销售管理系统的设计与实现二开发环境操作系统Windows7家庭普通版数据库管理软件MicrosoftSQLServer20xxSQLServerManageme...

图书管理系统实训报告正文

引言随着社会经济的迅速发展和现代科学技术的进步人类社会正逐渐走向现代化计算机事业的飞速发展使得以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期同时随着经济文化水平的显著提高人们对生活质量及工作环境的要求也...

图书管理系统实训报告(24篇)