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

📄 1111111111111111111111111.txt

📁 和量度暗无天日是非曲直蝇理工科 量度 量度
💻 TXT
📖 第 1 页 / 共 2 页
字号:
#include<stdio.h> 
#include<string.h> 
#include<conio.h> 
#include<stdlib.h> 
#include<ctype.h> 
#define STACK_INIT_SIZE 10 
#define OK 1 
#define TRUE 1 
#define FALSE 0 
#define ERROR 0 
struct student /*定义学生类型,用于存放借出的书籍*/ 
{ 
int carnum; 
char lendbook[20]; 
char studentname;
char studentsex;
int studentage;
}student[100000];  
struct book /*定义书的类型*/ 
{ 
int booknum; 
char bookname[20]; 
char bookcreat[10]; 
int turefalse; /*用于借书和还书模块判断一本书是否借出的条件*/ 
}book[1000000]; 



huanbook() /*还书函数*/ 
{ 
FILE *fp,*fp2; /*定义两个文件指针,fp2用于修改数据时设立临时文件用,防止数据遭破坏*/ 
int i,n; 
int carnum; 
char lendbook[20]; 
printf("请你输入你的卡号\n"); 
carnum=getchar(); 
fp=fopen("student.txt","r"); /*读取卡号记录*/ 
for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++) /*for循环判断卡号是否存在*/ 
{ 
if(student[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),1,fp)!=0;i++) /*将书的记录写入临时文件,防止因为修改信息破坏以前的记录*/ 
{ 
if(i==n) 
{ 
book[i].turefalse=1; 
fwrite(&book[i],sizeof(struct book),1,fp2); /*将还的书的原来状态设为无人借阅的*/ 
continue; 
} 
fwrite(&book[i],sizeof(struct book),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),1,fp2)!=0;i++) 
{ 
fwrite(&book[i],sizeof(struct book),1,fp); /*将临时文件写回*/ 
} 
fclose(fp); 
fclose(fp2); 
fopen("bookl.txt","w"); /*清临时文件*/ 
fclose(fp2); 
printf("还书完毕,按任意键返回\n"); 
getch(); 
return; 
} 
} 
printf("无此借书记录,任意键返回\n"); /*出错提示*/ 
fclose(fp); 
getch(); 
return; 

} 
} 
printf("无此卡,按任意键返回\n"); /*出错提示*/ 
fclose(fp); 
getch(); 
} 




inquirebook() /*查询图书*/
{ 
char ch5; 
do 
{ 
printf("---------------欢迎进入图书查询系统!--------------\n"); 
printf(" 1:<按书名查找>\n"); 
printf(" 2:<按编号查找>\n"); 
printf(" 0:<返回>\n"); 
printf("请输入0--2,其他输入非法!\n"); 
ch5=getchar(); 
switch(ch5) 
{ 
case '1':findbook1();break; 
case '2':findbook2();break; 
case '0':break; 
default:printf("无此操作\n");getch();break; 
} 
}while(ch5!='0'); 
} 





findbook1() /*按书名查找图书*/
{ 
FILE *fp; 
char bookname[10]; 
int ture,i; 
fp=fopen("book.txt","r"); 
printf("请输入你要查找的书名\n"); 
scanf("%s",bookname); 
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++) 
{ 

if(strcmp(bookname,book[i].bookname)==0) 


{ 
if(book[i].turefalse==1) 
{ 
printf("这本书的详细资料是:%d %s %s 此书现在无人借阅\n",book[i].booknum,book[i].bookname,book[i].bookcreat); 
} 
else {printf("这本书已经有人借出\n");fclose(fp);return;} 
fclose(fp); 
return; 
} 
} 
printf("没有你要查询的书籍\n"); 
fclose(fp); 
return; 
} 



findbook2() /*按编号查找图书*/
{ 
FILE *fp; 
int booknum; 
int i; 
fp=fopen("book.txt","r"); 
printf("请输入你要查找书的编号\n "); 
scanf("%d",&booknum); 
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++) 
if(strcmp(booknum,book[i].booknum)==0) 
{ 
if(book[i].turefalse==1) 
{ 
printf("这本书的详细资料是:%d %s %s 此书现在无人借阅\n",book[i].booknum,book[i].bookname,book[i].bookcreat); 
} 
else {printf("这本书已经有人借出\n");fclose(fp);return;} 
fclose(fp); 
return; 
} 
} 
printf("没有你要查询的书籍\n"); 
fclose(fp); 
return; 
} 






inquirestudent() /*查询学生*/
{ 
char ch6; 
do 
{ 
printf("---------------欢迎进入学生信息查询系统!--------------\n"); 
printf(" 1:<按卡号查找>\n"); 
printf(" 2:<按姓名查找>\n"); 
printf(" 0:<返回>\n"); 
printf("请输入0--2,其他输入非法!\n"); 
ch5=getchar(); 
switch(ch6) 
{ 
case '1':findstudent1();break; 
case '2':findstudent2();break; 
case '0':break; 
default:printf("无此操作\n");getch();break; 
} 
}while(ch6!='0'); 
} 








findstudent1() /*按卡号查找学生*/
{ 
FILE *fp; 
int carnum,i; 
fp=fopen("student.txt","r"); 
printf("请输入你要查找的卡号\n"); 
scanf("%d",&carnum); 
for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++)  
if(strcmp(studentname,student[i].studentname)==0) 
{ 
printf("该学生的详细资料是:%d %s %d \n",student[i].carnum,student[i].studentname,student[i].studentage); 
fclose(fp); 
return; 
} 
printf("没有你要查询的学生\n"); 
fclose(fp); 
return; 
} 










findstudent2() /*按姓名查找学生*/
{ 
FILE *fp; 
char studentname; 
int i; 
fp=fopen("student.txt","r"); 
printf("请输入你要查找姓名\n "); 
scanf("%s",studentname); 
for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++) 
if(strcmp(studentname,student[i].studentname)==0) 
{ 	
printf("该学生的详细资料是:%d %s %d \n",student[i].carnum,student[i].studentname,student[i].studentage);
fclose(fp); 
return; 
} 
printf("没有你要查询的学生\n"); 
fclose(fp); 
return; 
} 		







lendbook() /*借书*/
{ 
FILE *fp,*fp2; 
int i,n; 
int carnum; 
printf("请你输入你的卡号\n"); 
carnum=getchar(); 
fp=fopen("student.txt","r"); 
for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++) 
{ 
if(student[i].carnum==carnum) 
{ 
n=i; 
fclose(fp); 
printf("请输入你要借阅的书的名字:\n"); 
scanf("%s",student[n].lendbook); 
fp=fopen("book.txt","r"); 
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++) 
{ 
if(strcmp(book[i].bookname,student[n].lendbook)==0) 
{ 
if(book[i].turefalse==0) {printf("对不起,此书有人借出,请借其他书\n");fclose(fp);getch();return;} 
else 
fclose(fp); 
fp=fopen("record.txt","a+"); 
student[n].carnum=carnum; 
fwrite(&student[n],sizeof(struct student),1,fp); 
fclose(fp); 
fp=fopen("book.txt","r"); 
fp2=fopen("bookl.txt","w"); 
for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++) 
{ 
if(strcmp(book[i].bookname,student[n].lendbook)==0) 
{ 
book[i].turefalse=0; 
fwrite(&book[i],sizeof(struct book),1,fp2); 
continue; 
} 
fwrite(&book[i],sizeof(struct book),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),1,fp2)!=0;i++) 
{ 
fwrite(&book[i],sizeof(struct book),1,fp); 
} 
fclose(fp); 

⌨️ 快捷键说明

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