📄 function.c
字号:
/*主功能文件*/
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#include<string.h>
typedef struct booklist/*书的结构体*/
{
char num[20];
char name[20];
char publish[20];
int year;
char author[20];
int yeshu;
int price;
char person[20];
int borrow;/*0为未借出,1为已借出*/
struct booklist *next;
}book;
typedef struct memberlist/*会员结构体*/
{
char num[20];
char name[20];
char sex[10];
char phone[20];
struct memberlist *next;
}member;
/*添加图书*/
void addbook()
{
FILE *fp;
book bookadd;
int b;
fp=fopen("booklist","rb");/*测试是否有此文件*/
if(fp==NULL)
fp=fopen("booklist","wb");
else
{
fclose(fp);
fp=fopen("booklist","ab");
}
printf("请输入新书书号:");
scanf("%s",&bookadd.num);
printf("\n请输入新书名称:");
scanf("%s",&bookadd.name);
printf("\n请输入新书出版社:");
scanf("%s",&bookadd.publish);
printf("\n请输入新书出版年份:");
scanf("%d",&bookadd.year);
printf("\n请输入新书作者:");
scanf("%s",&bookadd.author);
printf("\n请输入新书页数");
scanf("%d",&bookadd.yeshu);
printf("\n请输入新书价格:");
scanf("%d",&bookadd.price);
strcpy(bookadd.person,"");
bookadd.borrow=0;
bookadd.next=NULL;
fwrite(&bookadd,sizeof(book),1,fp);
fclose(fp);
system("cls");
printf("增加成功!");
printf("1.继续增加.");
printf("2.退出.");
scanf("%d",&b);
if(b==1)
{
addbook();
}
else
exit(0);
}
/*图书查询*/
void consultbook()
{
FILE *fp;
book bookadd;
int b;
char bookname[20],author[20],num[20];
int flag=0;
system("cls");
fp=fopen("booklist","rb");
if(fp==NULL)
{
system("cls");
printf("Error!");
fclose(fp);
return;
}
printf("1.按图书名查找\n");
printf("2.按图书编号查找\n");
printf("3.按图书作者查找\n");
scanf("%d",&b);
if(b==1)
{
printf("请输入要查询的书名:");
scanf("%s",&bookname);
while(fread(&bookadd,sizeof(book),1,fp)!=(int)NULL)
{
if(strcmp(bookadd.name,bookname)==0)
{
system("cls");
flag=1;
break;
}
}
}
if(b==2)
{
printf("请输入要查询的图书编号:");
scanf("%s",&num);
while(fread(&bookadd,sizeof(book),1,fp)!=(int)NULL)
{
if(strcmp(bookadd.num,num)==0)
{
system("cls");
flag=1;
break;
}
}
}
if(b==3)
{
printf("请输入要查询的图书作者:");
scanf("%s",&author);
while(fread(&bookadd,sizeof(book),1,fp)!=(int)NULL)
{
if(strcmp(bookadd.author,author)==0)
{
system("cls");
flag=1;
break;
}
}
}
if(flag==0)
{
system("cls");
printf("未找到此书\n");
}
printf("这本书的信息如下:\n");
printf("书号:%s\n",bookadd.num);
printf("书名:%s\n",bookadd.name);
printf("价格:%d\n",bookadd.price);
printf("出版社:%s\n",bookadd.publish);
printf("出版年份:%d\n",bookadd.year);
printf("作者:%s\n",bookadd.author);
printf("是否已借出:");
if(bookadd.borrow==0)printf("否\n");
else
if(bookadd.borrow==1)
{
printf("是\n");
printf("借给了:%s\n",bookadd.person);
}
fclose(fp);
}
/*删除图书*/
void delbook()
{
FILE *fp;
book *head,*p,*q;
char bookname[20];
fp=fopen("booklist","rb");
if(fp==NULL)
{
printf("Error!\n");
fclose(fp);
return;
}
head=q=p=(book*)malloc(sizeof(book));
fread(p,sizeof(book),1,fp);
while(!feof(fp))
{
q=p;
p=(book*)malloc(sizeof(book));
fread(p,sizeof(book),1,fp);
q->next=p;
}
p->next=NULL;
fclose(fp);
system("cls");
printf("请输入图书名\n");
scanf("%s",bookname);
p=head;
while(p!=NULL)
{
if(strcmp(p->name,bookname)==0)
{
if(p==head)
head=head->next;
else
q->next=p->next;
break;
}
q=p;
p=p->next;
}
if(p=NULL)printf("未找到此书");
else
printf("删除成功!");
fp=fopen("booklist","wb");
while(head!=NULL)
{
fwrite(head,sizeof(book),1,fp);
head=head->next;
}
fclose(fp);
system("cls");
}
/*借阅图书*/
void borrowbook()
{
FILE *fp;
book bookadd,*p1;
member memberadd;
char bookname[20],membername[20];
int bflag=0,mflag=0,i=0;
system("cls");
printf("请输入会员姓名:");
scanf("%s",&membername);
if((fp=fopen("memberlist","rb"))==NULL)
{
printf("cann't open file!\n");
}
else
while(fread(&memberadd,sizeof(member),1,fp)!=(int)NULL)
{
if(strcmp(memberadd.name,membername)==0)
mflag=1;
}
fclose(fp);
if(mflag==0)
{
printf("你不是会员,请返回注册\n");
return;
}
if((fp=fopen("booklist","rb"))==NULL)
{
printf("cannot open file!\n");
}
p1=&bookadd;
while(fread(&bookadd,sizeof(book),1,fp)!=(int)NULL)
{
if(strcmp(p1->person,membername)==0)
{
i++;
p1=p1->next;
if(i==10)
{
printf("你已借阅了十本书,达到了上限,不能再借阅!\n");
break;
}
}
}
fclose(fp);
printf("请输入要借阅的图书书名\n");
scanf("%s",&bookname);
system("cls");
fp=fopen("booklist","rb+");
if((fp=fopen("booklist","rb+"))==NULL)
{
printf("cann't open file!\n");
}
while(fread(&bookadd,sizeof(book),1,fp)!=(int)NULL)
{
if(strcmp(bookadd.name,bookname)==0)
{
if(bookadd.borrow!=0)
{
printf("此书已被借阅!\n");
}
if(bookadd.borrow==0)
{
bookadd.borrow=1;
strcpy(bookadd.person,membername);
fseek(fp,-sizeof(book),1);
if(!fwrite(&bookadd,sizeof(book),1,fp))
{
printf("\nError\n");
}
printf("借阅成功!\n");
bflag=1;
}
}
if(bflag==0)
{
system("cls");
printf("借阅失败!\n");
}
fclose(fp);
}
}
/*还书*/
void returnbook()
{
FILE *fp;
book bookadd;
char bookname[20],membername[20];
member memberadd;
int flag=0,mflag=0;
system("cls");
printf("请输入会员姓名:");
scanf("%s",&membername);
if((fp=fopen("memberlist","rb"))==NULL)
{
printf("cann't open file!\n");
}
else
while(fread(&memberadd,sizeof(member),1,fp)!=(int)NULL)
{
if(strcmp(memberadd.name,membername)==0)
mflag=1;
}
fclose(fp);
if(mflag==0)
{
printf("你不是会员,请返回注册\n");
return;
}
if((fp=fopen("booklist","rb+"))==NULL)
{
printf("cann't open file!\n");
return;
}
printf("请输入要还的书名:");
scanf("%s",&bookname);
system("cls");
while(fread(&bookadd,sizeof(book),1,fp)!=(int)NULL)
{
if((strcmp(bookadd.name,bookname)==0)&&(strcmp(bookadd.person,membername)==0))
{
bookadd.borrow=0;
strcpy(bookadd.person,"");
fseek(fp,-sizeof(book),1);
fwrite(&bookadd,sizeof(book),1,fp);
printf("\n还书成功!");
flag=1;
break;
}
}
if(flag==0)
{
printf("\n还书失败!");
fclose(fp);
}
}
/*增加会员*/
void addmember()
{
member memberadd;
FILE *fp;
fp=fopen("memberlist","rb");
if(fp==NULL)
fp=fopen("memberlist","wb");
else
{
fclose(fp);
fp=fopen("memberlist","ab");
}
system("cls");
printf("请输入新会员姓名:");
scanf("%s",&memberadd.name);
printf("\n请输入新会员编号:");
scanf("%s",&memberadd.num);
printf("\n请输入新会员性别:");
scanf("%s",&memberadd.sex);
printf("\n请输入会员电话号码:");
scanf("%s",&memberadd.phone);
fwrite(&memberadd,sizeof(member),1,fp);
fclose(fp);
system("cls");
printf("注册成功!");
}
/*查询会员*/
void consultmember()
{
FILE *fp;
member memberadd;
char membername[20];
int flag=0;
system("cls");
printf("请输入会员姓名:");
scanf("%s",&membername);
fp=fopen("memberlist","rb");
if(fp==NULL)
{
system("cls");
printf("Error!\n");
fclose(fp);
return;
}
while(fread(&memberadd,sizeof(member),1,fp)!=(int)NULL)
{
if(strcmp(memberadd.name,membername)==0)
{
system("cls");
printf("此会员资料为:\n");
printf("编号:%s\n",memberadd.num);
printf("姓名:%s\n",memberadd.name);
printf("性别:%s\n",memberadd.sex);
printf("电话号码:%s\n",memberadd.phone);
flag=1;
break;
}
}
if(flag==0)
{
system("cls");
printf("未找到此会员!\n");
}
fclose(fp);
}
/*删除会员*/
void delmember()
{
FILE *fp;
member *head,*p,*q;
char membername[20];
fp=fopen("memberlist","rb");
if(fp==NULL)
{
printf("Error!\n");
fclose(fp);
return;
}
head=p=q=(member*)malloc(sizeof(member));
fread(p,sizeof(member),1,fp);
while(!feof(fp))
{
q=p;
p=(member*)malloc(sizeof(member));
fread(p,sizeof(member),1,fp);
q->next=p;
}
p->next=NULL;
fclose(fp);
system("cls");
printf("请输入要删除的会员姓名:");
scanf("%s",&membername);
p=head;
while(p!=NULL)
{
if(strcmp(p->name,membername)==0)
{
if(p==head)
head=head->next;
else
q->next=p->next;
break;
}
q=p;
p=p->next;
}
if(p==NULL)printf("未找到此会员");
else
printf("删除成功!");
fp=fopen("memberlist","wb");
while(head!=NULL)
{
fwrite(head,sizeof(member),1,fp);
head=head->next;
}
fclose(fp);
}
/*借书信息*/
void borrowinof()
{
FILE *fp;
member memberadd;
book bookadd;
char membername[20];
int bflag=0,mflag=0,i=0;
system("cls");
printf("请输入会员姓名:");
scanf("%s",&membername);
if((fp=fopen("memberlist","rb"))==NULL)
{
printf("cann't open file!\n");
return;
}
else
while(fread(&memberadd,sizeof(member),1,fp)!=(int)NULL)
{
if(strcmp(memberadd.name,membername)==0)
{
mflag=1;
break;
}
}
fclose(fp);
if(mflag==0)
{
printf("未到找此会员!\n");
return;
}
system("cls");
if((fp=fopen("booklist","rb+"))==NULL)
{
printf("cannot open file!\n");
return;
}
while(fread(&bookadd,sizeof(book),1,fp)!=(int)NULL)
{
printf("%s 借阅了以下书:\n",membername);
if(strcmp(bookadd.person,membername)==0)
{
printf("书名:%s\n",bookadd.name);
printf("书的编号:%d\n",bookadd.num);
printf("书的出版社:%s\n",bookadd.publish);
printf("书的出版年份:%d\n",bookadd.year);
printf("书的作者:%s\n",bookadd.author);
printf("书的页数:%d\n",bookadd.yeshu);
printf("书的价格:%d\n",bookadd.price);
i++;
bflag=1;
}
}
if(bflag==0)
{
printf("无已借阅的书!\n");
}
else
{
printf("一共借阅了 %d 本书",i);
}
fclose(fp);
}
/*系统版本,开发人员介绍*/
void about()
{
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -