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

📄 function.cpp

📁 我自己用C语言做的图书管理系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
                           fclose(fp); 
                           fp=fopen("book.txt","r"); 
                           fp2=fopen("bookl.txt","w"); 
                              for(i=0;fread(&book[i],sizeof(struct book_type),1,fp)!=0;i++) 
							  { 
                                  if(strcmp(book[i].name,student[n].lendbook)==0) 
								  { 
                                      book[i].amount--; 
                                      fwrite(&book[i],sizeof(struct book_type),1,fp2); 
                                      continue; 
								  } 
                          fwrite(&book[i],sizeof(struct book_type),1,fp2); 
							  } 
               fclose(fp); 
               fclose(fp2); 
               fp=fopen("book.txt","w"); 
              fp2=fopen("bookl.txt","r"); 
                  for(i=0;fread(&book[i],sizeof(struct book_type),1,fp2)!=0;i++) 
				  { 
                       fwrite(&book[i],sizeof(struct book_type),1,fp); 
				  } 
             fclose(fp); 
             fclose(fp2); 
             fopen("bookl.txt","w"); 
             fclose(fp2); 
             printf("借书完毕,按任意键返回\n"); 
             getch();
			  return 0;
      
					} 
			  } 
       printf("不存在这样的书,任意键返回\n"); 
       fclose(fp); 
       getchar();
        getchar();
		 return 0;
 
		   } 
		} 
  printf("你的卡号不存在,请申请新卡,按任意键返回\n"); 
  fclose(fp); 
  getch(); 
   return 0;
 }
 


 /*  int lendcount()    //借书统计
{ 
     FILE *fp; 
     int i,n=0;
	 
     fp=fopen("record.txt","r"); 
	  if((fp=fopen("book.txt","rb"))==NULL) 
	 {
		 printf("\n\n*****暂时还没有任何信息,按回车键进入主菜单选择基本信息的录入!*****\n"); 
         return 0; 
	 } 
        for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++) 
		{   int num=0;
		//	printf("请输入你要查询的卡号:\n(按0结束查询)\n");
		 //   scanf("%d",&num);
	//	  if(num==student[i].carnum)
	
		  
			printf("卡号:%3d 借出的书籍:%s \n",student[i].carnum,student[i].lendbook); 
		    PRINT1; 
            PRINT2; 
            PRINT3;
            n=n+1; 
		
		   printf("目前您共借有%d本书,应归还的日期为借书后的20天内·····\n",n);   
		 if (num==0)
			//  break;
			printf("查询结束·····················\n");
		 getchar();
		 getchar();
		 return 0;
		 
		} 
    fclose(fp); 
    
    printf("按任意键\n"); 
    getchar(); 
	getchar();
	 return 1;
	
} */



void lendcount()    //借书统计
{ 
     FILE *fp; 
     int i,n=0; 
     fp=fopen("record.txt","r"); 
        for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++) 
		{ 
            printf("卡号:%d 借出的书籍:%s \n",student[i].carnum,student[i].lendbook); 
		//	 PRINT1; 
       //    PRINT2; 
      //     PRINT3;
           n=n+1; 
		} 
    fclose(fp); 
    printf("目前共有%d本书借出\n",n); 
    printf("按任意键\n"); 
    getchar(); 
	getchar();
} 






 int carcount()//学生卡号统计
 {   
	 FILE *fp;
	 int n=0,i=0;
	 fp=fopen("car.txt","r"); /*读取卡号记录*/
       if((fp=fopen("car.txt","rb"))==NULL) 
	   {
		 printf("\n\n*****暂时还没有任何信息,按回车键进入上机菜单选择卡号注册信息的录入!*****\n"); 
         return 0; 
	   } 
	   else{
	 PRINT4;
	 for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++) /*for循环判断卡号是否存在*/
	 {   
		 
		 printf("%4d%15s%15d\n",car[i].carnum,car[i].studentname,car[i].studentclass);
		 n=n+1;
	 }
	 fclose(fp);
	 printf("目前共有%d个学生已经注册本图书管理系统\n",n);
	 printf("···························\n");
     printf("按回车键退出·······\n"); 
	 getchar();
	 getchar();
	 return 1;
	   }
 }

/*   carcount() 
{ 
FILE *fp; 
int i,n=0; 
fp=fopen("car.txt","r"); 
for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++) 
{ 
printf("第%d张卡<卡号:%d 姓名:%s 班级:%d>\n",i+1,car[i].carnum,car[i].studentname,car[i].studentclass); 
n=n+1; 
} 
fclose(fp); 
printf("目前共有%d本书\n",n); 
printf("按任意键\n"); 
getch(); 
}  */


  void bookshow()
   {
      FILE *fp;
	 int n=0,i=0;
	  fp=fopen("book.txt","r");
	    PRINT1;
	    PRINT2;
	  for(i=0;fread(&book[i],sizeof(struct book_type),1,fp)!=0;i++)
	  {
	    
          
            PRINT3;
	  }
	  fclose(fp);
	  getchar();
	getchar();
   }



void addcar() //申请新的学生借书卡卡号
{
	
    FILE *fp; 
    int i=0; 
     fp=fopen("car.txt","a+"); 
     printf("请你输入卡号\n"); 
      scanf("%d",&car[i].carnum);
	 
     printf("请你输入学生姓名\n"); 
       scanf("%s",car[i].studentname); 
     printf("请你输入班级\n"); 
       scanf("%d",&car[i].studentclass); 
    fwrite(&car[i],sizeof(struct car),1,fp); 
   fclose(fp);
     printf("输入完毕,任意键返回\n"); 
   getchar(); 
} 

void delcar() //删除学生卡号
{ 
    FILE *fp,*fp2; 
    int i; 
    int carnum; 
    char choice; 
    fp=fopen("car.txt","r"); 
    fp2=fopen("bookl.txt","w"); 
    printf("请输入你要删除的卡号\n"); 
     printf("如果你输入的卡号存在,系统自动删除该信息!如果不存在,系统不做任何改动\n"); 
    scanf("%d",&carnum); 
       for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++) 
	   { 
          if(car[i].carnum!=carnum) 
		  { 
             fwrite(&car[i],sizeof(struct car),1,fp2); 
		  } 
	   } 
    fclose(fp); 
    fclose(fp2); 
      printf("是否真的要删除该卡?删除后该书籍的所有信息将无法恢复《Y/N》\n"); 
        scanf("%s",&choice); 
            if(choice=='y'||choice=='Y') 
			{ 
               fp=fopen("car.txt","w"); 
               fp2=fopen("bookl.txt","r"); 
                    for(i=0;fread(&car[i],sizeof(struct car),1,fp2)!=0;i++) 
					{ 
                        fwrite(&car[i],sizeof(struct car),1,fp); 
					} 
        fclose(fp); 
        fclose(fp2); 
        fp2=fopen("bookl.txt","w"); 
        fclose(fp2); 
         printf("按任意键返回\n"); 
        getchar(); 

			} 
            else 
			{ 
               printf("按任意键返回\n"); 
               getchar(); 
 
			} 
} 


huanbook() /*还书函数*/ 
{ 
FILE *fp,*fp2; /*定义两个文件指针,fp2用于修改数据时设立临时文件用,防止数据遭破坏*/ 
int i,n; 
int carnum; 
char lendbook[10]; 
printf("请你输入你的卡号\n"); 
scanf("%d",&carnum); 
fp=fopen("car.txt","r"); /*读取卡号记录*/ 
   for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++) /*for循环判断卡号是否存在*/ 
   { 
      if(car[i].carnum==carnum) /*卡号存在,进入下一循环*/ 
      { 
       n=i; 
       fclose(fp); 
       printf("请输入你要还的书的名字\n"); 
       scanf("%s",lendbook); 
       fp=fopen("record.txt","r"); 
          for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++) /*判断是否借阅了输入的书*/ 
		  { 
            if(strcmp(student[i].lendbook,lendbook)==0) /*借阅了该书,进入下一循环,否则出错显示*/ 
                 { 
                    fclose(fp); 
                    fp=fopen("record.txt","r"); 
                    fp2=fopen("bookl.txt","w"); 
                    for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++) 
                      { 
                        if(strcmp(student[i].lendbook,lendbook)==0) 
                          { 
                           continue; /*删除还掉的书的借书记录*/ 
                           } 
                        fwrite(&student[i],sizeof(struct student),1,fp2); /*写入原来没还的书的记录*/ 
                       } 
                        fclose(fp); 
                        fclose(fp2); 
                        fp=fopen("record.txt","w"); 
                        fp2=fopen("bookl.txt","r"); 
                         for(i=0;fread(&student[i],sizeof(struct student),1,fp2)!=0;i++) 
                         { 
                           fwrite(&student[i],sizeof(struct student),1,fp); /*将借书记录信息写回*/ 
                          } 
                       fclose(fp); 
                       fclose(fp2); 
                        fopen("bookl.txt","w"); /*清临时文件的记录*/ 
                        fclose(fp2); 
                      fp=fopen("book.txt","r"); 
                      fp2=fopen("bookl.txt","w"); 
                          for(i=0;fread(&book[i],sizeof(struct book_type),1,fp)!=0;i++) /*将书的记录写入临时文件,防止因为修改信息破坏以前的记录*/ 
						  { 
                              if(strcmp(book[i].name,lendbook)==0) 
							  { 
                                  book[i].amount=book[i].amount++; 
                                  fwrite(&book[i],sizeof(struct book_type),1,fp2); /*将还的书的原来状态设为无人借阅的*/ 
                                  continue; 
							  } 
                             fwrite(&book[i],sizeof(struct book_type),1,fp2); 
						  } 
                    fclose(fp); 
                    fclose(fp2); 
                    fp=fopen("book.txt","w"); 
                    fp2=fopen("bookl.txt","r"); 
                       for(i=0;fread(&book[i],sizeof(struct book_type),1,fp2)!=0;i++) 
					   { 
                            fwrite(&book[i],sizeof(struct book_type),1,fp); /*将临时文件写回*/ 
					   } 
                   fclose(fp); 
                   fclose(fp2); 
                   fopen("bookl.txt","w"); /*清临时文件*/ 
                   fclose(fp2); 
                   printf("还书完毕,按任意键返回\n"); 
                   getch(); 
                   return 0; 
			} 
		  } 
   printf("你没有借这样的书,不要耍我,任意键返回\n"); /*出错提示*/ 
   fclose(fp); 
   getch(); 
     return 0; 

	  } 
   } 
 printf("系统没这样的卡,和管理员联系,按任意键返回\n"); /*出错提示*/ 
 fclose(fp); 
 getchar();
 getchar;
} 

⌨️ 快捷键说明

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