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

📄 main3.c

📁 图书馆管理模板。包括图书管理
💻 C
📖 第 1 页 / 共 4 页
字号:
                                  fprintf(fp1,"%d %s %d\n",oldcard.cardnum,oldcard.readername,oldcard.classes);
                                  fclose(fp1);
                                  printf("修改成功!");
                                  getchar();
                                }
                              if(m==2)
                                {
                                  printf("请输入新班级:\n");
                                  scanf("%d",&oldcard.classes);
                                  fprintf(fp1,"%d %s %d\n",oldcard.cardnum,oldcard.readername,oldcard.classes);
                                  fclose(fp1);
                                  printf("修改成功!");
                                  getchar();
                                 }
                              if(m==3)
                                {
                                  printf("请输入新名字:\n");
                                  scanf("%s",&oldcard.readername);
                                  printf("请输入新班级:\n");
                                  scanf("%d",&oldcard.classes);
                                  getchar();
                                  fprintf(fp1,"%d %s %d\n",oldcard.cardnum,oldcard.readername,oldcard.classes);
                                  fclose(fp1);
                                  printf("修改成功!");
                                  getchar();
                                 }
                             }//1
      	              }//2
              }//while(!feof(fp))
		    fp=fopen("readcard.txt","w"); 
	        fclose(fp);
            fp=fopen("readcard.txt","a+");    
            fp1=fopen("readcard1.txt","r+");
            while(!feof(fp1)) 
			  {   
				fscanf(fp1,"%d %s %d\n",&oldcard.cardnum,oldcard.readername,&oldcard.classes);
                fprintf(fp,"%d %s %d\n",oldcard.cardnum,oldcard.readername,oldcard.classes);
	          }
			 fclose(fp);
             fclose(fp1);
             fp1=fopen("readcard1.txt","w"); 
		     fclose(fp1);
       }//3
}

void countcard()        //统计读书卡的总量 
{  
     struct reader oldcard;
     int count;
     count=0;
     FILE *fp;
     fp=fopen("readcard.txt","r+");
     if(fp==NULL)
       {
           printf("文件不存在导致打开失败!\n");
           getch();
           exit(0);
       } 
     else
         {  
             while(!feof(fp))
	              {
	                 fscanf(fp,"%d %s %d\n",&oldcard.cardnum,oldcard.readername,&oldcard.classes);
                     if(oldcard.cardnum!=0)
                     count++;
                   }
                  printf("在馆图书数目是 %d\n",count);    
          }
     fclose(fp);
} 

//馆员管理模块 
void addpeople()    /*新增管理员记录*/
{ 
    int record_len;
    int i=0;  
    struct librarian client;
    struct librarian newclient;
    FILE *fp;
    record_len=sizeof(struct librarian);
    while(i!=1)                                     //搜索是否有相同的ID 
      {
         if((fp=fopen("administer.txt","a+"))==NULL)
               printf("File open error!\n");
        else
           {    
     	       printf("请输入新增管理员ID:  (~~输入为0时提示退出操作~~)\n");
               scanf("%d",&newclient.librnnum);
               getchar();
               if(newclient.librnnum==0)
                  {
                     printf("退出新增操作!\n");
                     getch();
                      i=1;
                      break;
                   } 
               else
                 {
                   while(!feof(fp))     
                    {
                       fscanf(fp,"%d %s %d %s\n",&client.librnnum,client.librnname,
                            &client.librnage,client.librnsex);            //读出文件内的记录     
				       if(client.librnnum==newclient.librnnum)        //判断是否有相同ID
				         {
					         printf("您刚才所输的ID已经存在,请您重新输入一个ID:\n");
					         scanf("%d",&newclient.librnnum);
				 	         fseek(fp,0,0);
				         }   
                     }
                  fseek(fp,0,0);
                  printf("请输入新增的管理员的姓名:\n");
                  scanf("%s",&newclient.librnname);
                  printf("请输入新增的管理员的性别:\n");
                  scanf("%s",&newclient.librnsex);
                  printf("请输入新增的管理员的年龄:\n");
                  scanf("%d",&newclient.librnage);
                  fprintf(fp,"%d %s %d %s\n",newclient.librnnum,newclient.librnname,newclient.librnage,newclient.librnsex);
                  fclose(fp);
                  printf("已成功加入该记录!\n");
                  }
            }
        }

}

void delpeople()        /*删除管理员记录*/
{ 
   FILE *fp; 
   int t,i,j,k,sum;
   char temp[50][81];           //定义二维数组 用于临时存放数据 
   fp = fopen("administer.txt","r");     
   if(fp == NULL)
       printf("file open error!\n");
   else
     {
       printf("请输入要删除的管理员ID:\n");
       scanf("%d",&t); 
       i = 0;
       while(fgets(temp[i++],80,fp)!=NULL);       
       fclose(fp);
       fp = fopen("administer.txt","w");             
        for(j = 0;j < i;j++)   
         {           
            sum = k = 0;
            while(temp[j][k] >= '0' && temp[j][k] <= '9')          // (temp[j][k] >= '0' && temp[j][k] <= '9')用于计算ID 
               {               
                   sum = sum*10 + temp[j][k] - '0';                //定义的为char型数组 在此把ID当成字符判断 
                   k++;
                }
            if(sum != t)                                 //用循环把数组里面的 数据放回administer 
                   fprintf(fp,"%s",temp[j]); 
          }
        printf("删除成功!\n");
        getch();
        fclose(fp);
      }     
}

void modpeople( )            /*修改管理员信息*/
{  
    char ch=' '; 
	int number;
	int i=0;
	struct librarian client;; 
    FILE *fp,*fp1;
    fp=fopen("administer.txt","a+");    
    if(fp==NULL)
	  { 
         printf("file open error:");
         exit(0);
      }
    else    //3
      {   
          printf("请输入要修改的管理员的ID:\n");
          scanf("%d",&number);
          getchar();
          while(!feof(fp)) 
             {    
                fscanf(fp,"%d %s %d %s\n",&client.librnnum,client.librnname,&client.librnage,client.librnsex);
				if(client.librnnum==number)
				  {
				       printf("%d %s %d %s\n",client.librnnum,client.librnname,client.librnage,client.librnsex);
                            i=1;
                  }
	          }
	        if(i==0)
              {
                        printf("您所输入的ID不存在~");
                        getchar();
                        exit(0);
              }
           fseek(fp,0,0);
          while(!feof(fp)) 
             {
                fscanf(fp,"%d %s %d %s\n",&client.librnnum,client.librnname,&client.librnage,client.librnsex);
				if(client.librnnum!=number)
				  {
				      fp1=fopen("file1.txt","a+");    
                      if(fp1==NULL)
		               { 
                          printf("file1 open error:");
                          exit(0);
				       }
                       else
				         {   
					        fprintf(fp1,"%d %s %d %s\n",client.librnnum,client.librnname,
                                  client.librnage,client.librnsex); 
					        fclose(fp1);
				         }
	    	      }
                else   //2
	    	      {
					printf("%d %s %d %s\n",client.librnnum,client.librnname,client.librnage,client.librnsex);
			        printf("您是否确定修改此管理员的记录:\n");
					printf("***修改输'Y'****不修改输'N'****\n");
					scanf("%c",&ch);
					if((ch=='Y')||(ch=='y'))
                      {    fp1=fopen("file1.txt","a+");    
                           if(fp1==NULL)
						     { 
                                printf("file1 open error:");
                                exit(0);
						     }
                           else
						     {   
                                 client.librnnum=number;
                                 printf("请输入修改后管理员的姓名:\n");
                                 scanf("%s",&client.librnname);
                                 printf("请输入修改后管理员的性别:\n");
                                 scanf("%s",&client.librnsex);
                                 printf("请输入修改后管理员的年龄:\n");
                                 scanf("%d",&client.librnage);
                                 getchar();                        
					             fprintf(fp1,"%d %s %d %s\n",client.librnnum,client.librnname,
                                          client.librnage,client.librnsex); 
							     fclose(fp1);
					          }  
					          printf("修改完成!\n");
					          getch();
				         }
			       	else   //1
		 	          {
				         fp1=fopen("file1.txt","a+");    
                         if(fp1==NULL)
                            { 
                               printf("file1 open error:");
                               exit(0);
			                 }
                         else
			                {   
	                           fprintf(fp1,"%d %s %d %s\n",client.librnnum,client.librnname,
                                    client.librnage,client.librnsex); 
					           fclose(fp1);
			                 }
					 	 
				        }//1
	               }//2
				 }//while
		        fp=fopen("administer.txt","w"); 
		        fclose(fp);
                fp=fopen("administer.txt","a+");    
                fp1=fopen("file1.txt","r+");
                while(!feof(fp1)) 
			       {   
			           	fscanf(fp1,"%d %s %d %s\n",&client.librnnum,client.librnname,
                                &client.librnage,client.librnsex);
                        fprintf(fp,"%d %s %d %s\n",client.librnnum,client.librnname,
                                client.librnage,client.librnsex);
			        }
		 	     fclose(fp);
                 fclose(fp1);
	
                 fp1=fopen("file1.txt","w"); 
		         fclose(fp1);
	 }    //3
}

void countpeople()//统计管理员信息
{
   FILE*fp;
   char w[81]; //定义数组W,用于暂时存放文件内容,方便统计 
   int lines=0;
   fp=fopen("administer.txt","r");
   if(fp==NULL)
        printf("error\n");
   else                                     //输出文件内容,并统计行数
     {
       while (fgets(w,80,fp)!=NULL)
         {
             lines=lines+1;
             printf("%s",w);
         }    
       printf("共有管理员%d\n",lines);
     }
    fclose(fp); 
}

⌨️ 快捷键说明

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