⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main3.c

📁 图书馆管理模板。包括图书管理
💻 C
📖 第 1 页 / 共 4 页
字号:
#include<stdio.h>
#include<stdlib.h> 
#include<string.h>
struct book             //定义书的结构体 
{
	int  booknum;
	char bookname[10];
	char bookcreat[10];
	char writer[10];
	int lendture;          
};
struct reader        //定义读书卡的结构体 
{
    int cardnum;
    char readername[10];
    int classes;     
};
struct card              //定义读书卡的结构体 
{   
    struct reader one;
    int booknum;
    int lenddate;
};
struct librarian           /*图书管理员类型*/
{
  int librnnum;
  char librnname[15];
  int librnage;
  char librnsex[10];
}librarian [50];

void addbook( );   
void delbook( );
void modbook( );
void countbook(); 
void findbook(); 
void lendbook();
void returnbook();
void countbookin(); 
void addcard();
void delcard();
void modcard();
void countcard();
void addpeople();
void delpeople();
void modpeople( ) ;
void countpeople(); 

main()
{
    int choosenum,choosenum1,choosenum2,choosenum3,choosenum4;        //定义各模块的选择操作号   
    int cycle,cyclebook,cyclereader,cyclelibrarian,cyclecard;         //定义各模块的循环变量 
    int n,i;
    cycle=1;cyclebook=1;cyclereader=1;cyclelibrarian=1;cyclecard=1;   
    while(cycle!=-1)
    {
       printf("*****欢迎进入图书管理系统!*****\n请选择您所要进入的模块:\n");
       printf("       1.书库管理模块   \n");
       printf("       2.借阅管理模块   \n");
       printf("       3.读者管理模块   \n");
       printf("       4.馆员管理模块   \n");
       scanf("%d",&choosenum);
       switch(choosenum)                                              
       {
          case 1:printf("*****欢迎进入书库管理模块!*****\n");
                   while(cyclebook!=-1)
                   {
                        printf("请选择您要进行的操作:\n");
                        printf("       1.新增图书   \n");
                        printf("       2.删除图书   \n");
                        printf("       3.修改图书   \n");
                        printf("       4.统计图书   \n");
                        scanf("%d",&choosenum1);
                        switch(choosenum1)
                        {
                            case 1:printf("开始新增图书!\n");
                                   printf("请输入您要怎加的书的数目:\n");
                                   scanf("%d",&n); 
                                   getchar();
                                   for(i=0;i<n;i++)
                                     addbook();
                                   printf("新增图书完毕!");
                                   getch();
                                   cyclebook=-1;break;
                            case 2:printf("开始删除图书!\n");
                                   delbook( );
                                   cyclebook=-1;break;
                            case 3:printf("开始修改图书!\n");
                                   modbook( ); 
                                   printf("修改图书完成!");
                                   getch();
                                   cyclebook=-1;break;
                            case 4:printf("开始统计图书!\n");
                                   countbook();
                                  printf("统计图书完毕!");
                                  getch();
                                  cyclebook=-1;break;
                            default:printf("输入错误!请重试...\n");
                                    cyclebook=1;break;
                        }
                    }
                   cycle=-1;break ;
           case 2:printf("*****欢迎进入借阅管理模块!*****\n");
                   while(cyclereader!=-1)
                    {
                        printf("请选择您要进行的操作:\n");
                        printf("       1.查找所需图书   \n");
                        printf("       2.登记借阅图书   \n");
                        printf("       3.登记归还图书   \n");
                        printf("       4.统计在馆图书   \n");
                        scanf("%d",&choosenum2);
                        switch(choosenum2)
                       {
                            case 1:printf("开始查找图书!\n");
                                   findbook();
                                   printf("查找完毕!");
                                   getch();
                                   cyclereader=-1;break;
                            case 2:printf("开始登记外借图书!\n");
                                   lendbook();
                                   printf("登记借书完毕!");
                                   getch();
                                   cyclereader=-1;break;
                            case 3:printf("开始登记归还图书!\n");
                                    returnbook();
                                    printf("登记还书完毕!");
                                    getch();
                                    cyclereader=-1;break;
                            case 4:printf("开始统计在馆图书!\n");
                                    countbookin();
                                    printf("统计完毕!");
                                    getch();
                                   cyclereader=-1;break;
                            default: printf("输入错误!请重试...\n");
                                     cyclereader=1;break;
                       }
                   }
                  cycle=-1;break;
           case 3:printf("*****欢迎进入读者管理模块!*****\n");
                  while(cyclecard!=-1)
                  {
                        printf("请选择您要进行的操作:\n");
                        printf("       1.办理读书卡   \n");
                        printf("       2.取消图书卡   \n");
                        printf("       3.修改图书卡   \n");
                        printf("       4.统计图书卡   \n");
                        scanf("%d",&choosenum3);
                        switch(choosenum3)
                        {
                             case 1:printf("开始办理读书卡!\n");
                                    addcard();
                                    printf("办理完成!");
                                    getch();
                                    cyclecard=-1;break;
                             case 2:printf("开始取消读书卡!\n");
                                    delcard(); 
                                    printf("取消完成!");
                                    getch();
                                    cyclecard=-1;break;
                             case 3:printf("开始修改图书卡!\n");
                                    modcard();
                                    cyclecard=-1;break;
                             case 4:printf("开始统计图书卡!\n");
                                    countcard();
                                    printf("统计完成!");
                                    getch();
                                    cyclecard=-1;break;
                             default:printf("输入错误!请重试...\n");
                                     cyclecard=1;break;
                         }
                     }
                  cycle=-1;break;
           case 4:printf("*****欢迎进入馆员管理模块!*****\n");
                   while(cyclelibrarian!=-1)
                   {
                        printf("请选择您要进行的操作:\n");
                        printf("       1.新增馆员信息   \n");
                        printf("       2.删除馆员信息   \n");
                        printf("       3.修改馆员信息   \n");
                        printf("       4.统计馆员   \n");
                        scanf("%d",&choosenum4);
                        switch(choosenum4)
                        {
                             case 1:printf("开始新增馆员信息!\n");
                                    addpeople();
                                    cyclelibrarian=-1;break;
                             case 2:printf("开始删除馆员信息!\n");
                                       delpeople();
                                    cyclelibrarian=-1;break;
                             case 3:printf("开始修改馆员信息!\n");
                                      modpeople();
                                    cyclelibrarian=-1;break;
                             case 4:printf("开始统计在职馆员!\n");
                                      countpeople();
                                        printf("统计完成!");
                                        getch();
                                    cyclelibrarian=-1;break;
                             default:printf("输入错误!请重试...\n");
                                     cyclelibrarian=1;break;
                      }
                    }
                  cycle=-1;break;
           default:printf("输入错误!请重试...\n");
                   cycle=1;break;
       }
      }
}

//书库模块函数 
void addbook( )                    /*增加图书*/
{  
	struct book newbook={0,"     ","     ","     ",0};    //加入的新书
	struct book oldbook;                                 //书库中的书
    int record_len = sizeof(struct book);        //一条记录的长度
    FILE *fp;                                     //打开文件
    fp=fopen("book.txt","a+");                     //a+以读写方式打开一个文件  
    if(fp==NULL) 
    { 
        printf("文件不存在导致打开失败!");                   //文件打开失败
        exit(0);
    }
    else                                                //成功打开文件并进行文件输入
     {   
          printf("请输入新书的相关信息:\n");
          printf("===================================\n");
          printf("请输入新书的编号:\n");
          scanf("%d",&newbook.booknum);
		  getchar();
           while(!feof(fp))                //搜索是否有相同的书号
            {
                fscanf(fp,"%d %s %s %s %d\n",&oldbook.booknum,oldbook.bookname
		                    ,oldbook.bookcreat,oldbook.writer,&oldbook.lendture);
				if(oldbook.booknum==newbook.booknum)
				{
					printf("编号已存在!请重新输入新书的编号:\n");
					scanf("%d",&newbook.booknum);
					getchar();
					fseek(fp,0,0);
					//break;
				}                      
            }
           fseek(fp,0,0);
		   printf("请输入新书的名字:\n");
           scanf("%s",newbook.bookname);
           printf("请输入新书的出版社:\n");
           scanf("%s",newbook.bookcreat);
           printf("请输入新书的作者:\n");
           scanf("%s",newbook.writer);
           printf("请输入新书的在馆信息(1表示书在图书馆,0表示不在图书馆):\n"); //lendture 设置为1表示在馆;设置为0表示不在馆 
           scanf("%d",&newbook.lendture);
		   getchar();                                                        //对内容写进文件保存
		   fprintf(fp,"%d %s %s %s %d\n",newbook.booknum,newbook.bookname
			               ,newbook.bookcreat,newbook.writer,newbook.lendture);
		   fclose(fp);                           //关闭文件  
     }    
 } 
 
void delbook( )               //删除图书*/
{  
    char ch=' '; 
	int number;
	struct book oldbook; //书库中的书*/
    FILE *fp,*fp1;
    fp=fopen("book.txt","a+"); //打开文件myfile  
    if(fp==NULL)
	{ 
        printf("文件不存在导致打开失败!");
        exit(0);
    }
    else //3
      {   
          printf("===================================\n");
          printf("请输入要删除书的编号:\n");
          scanf("%d",&number);
          getchar();
           while(!feof(fp)) //查找这本书是否存在
           {
           	    //读出每本书的记录
                fscanf(fp,"%d %s %s %s %d\n",&oldbook.booknum,oldbook.bookname
		                        ,oldbook.bookcreat,oldbook.writer,&oldbook.lendture);
				if(oldbook.booknum!=number)//如果读出书的编号和所要找的不同就直接复制文件myfile1
				{
				   fp1=fopen("book1.txt","a+");    
                   if(fp1==NULL)
				   { 
                      printf("文件不存在导致打开失败!");
                      exit(0);
				   }
                   else
				   {   
					   fprintf(fp1,"%d %s %s %s %d\n",oldbook.booknum,oldbook.bookname
			              ,oldbook.bookcreat,oldbook.writer,oldbook.lendture);
					   fclose(fp1);
				   }
				}
                else  //2
				{
					printf(" %d %s %s %s %d\n",oldbook.booknum,oldbook.bookname
			               ,oldbook.bookcreat,oldbook.writer,oldbook.lendture);    //显示要删除的一条信息 
			        printf("您是否确定删除这本书的记录:\n");
					printf("***删除输'Y'****不删输'N'****\n");

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -