图书管理系统1.docx
- 文档编号:5495893
- 上传时间:2022-12-17
- 格式:DOCX
- 页数:10
- 大小:16.47KB
图书管理系统1.docx
《图书管理系统1.docx》由会员分享,可在线阅读,更多相关《图书管理系统1.docx(10页珍藏版)》请在冰豆网上搜索。
图书管理系统1
/*12.bookfunction.c源程序*/
/***bookfunction.c***/
/*添加图书*/
#include"c13_book.c"
voidBookAdd()
{
FILE*fp;
Bookconsultbook;
fp=fopen("book.txt","rb");/*读方式打开文件*/
if(fp==NULL)
fp=fopen("book.txt","wb");/*写方式打开文件*/
else/*如果有书就添加*/
{
fclose(fp);
fp=fopen("book.txt","ab");/*追加方式打开文件*/
}
ClrScr();/*清屏*/
printf("Intputnewbooknum:
");/*逐个输入新图书的资料*/
gets(consultbook.num);
gotoxy(2,4);
printf("Inputnewbookname:
");
gets(consultbook.name);
gotoxy(2,5);
printf("Pleaseinputnewbook'sprice:
");
scanf("%d%*c",&consultbook.price);
strcpy(consultbook.person,"");
consultbook.yes=1;/*表示书存在未借出*/
consultbook.next=NULL;
fwrite(&consultbook,sizeof(Book),1,fp);/*块写*/
fclose(fp);/*关闭文件*/
ClrScr();
}
/*图书查询*/
voidBookConsult()
{
FILE*fp;
Bookconsultbook;
charbookname[20];/*书名*/
intflag=0,i=0;
ClrScr();
gotoxy(2,3);
printf("Inputthebookname:
");
gets(bookname);/*输入要查询的图书名*/
fp=fopen("book.txt","rb");
if(fp==NULL)/*没找到文件*/
{
ClrScr();
gotoxy(2,3);
printf("Error!
");
fclose(fp);
return;
}
else
while(!
feof(fp))/*查询图书资料*/
{
fread(&consultbook,sizeof(Book),1,fp);
if(strcmp(consultbook.name,bookname)==0)/*如果查找到*/
{
ClrScr();
gotoxy(2,3+i*5);
printf("Thisbook%sinformationasfollow:
",consultbook.name);
gotoxy(2,4+i*5);
printf("Thisbooknumis%s",consultbook.num);
gotoxy(2,5+i*5);
printf("Thisbook'spriceis%d",consultbook.price);
gotoxy(2,6+i*5);
printf("Thisbook'sisbrowwedby%s",consultbook.person);
gotoxy(2,7+i*5);
printf("Thisbook'sstateis%d",consultbook.yes);
i++;
flag=1;/*查找数据标志*/
}
}
if(flag==0)
{
ClrScr();
gotoxy(2,3);
printf("Nofoundthisbook");
}
fclose(fp);
}
/*删除图书资料*/
voidBookDel()
{
FILE*fp;
Book*head,*p,*q;
charbookname[20];
fp=fopen("book.txt","rb");/*读方式打开文件*/
if(fp==NULL)/*没找到文件*/
{
gotoxy(2,3);
printf("Error!
");
fclose(fp);
return;
}
head=p=q=(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);
ClrScr();
printf("Inputthebookname:
");
gets(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;
}
fp=fopen("book.txt","wb");/*删除后从链表的头开始重新保存*/
while(head!
=NULL)
{
fwrite(head,sizeof(Book),1,fp);/*块写*/
head=head->next;
}
fclose(fp);
ClrScr();
}
/*借书*/
voidBookBorrow()
{
FILE*fp;
Bookconsultbook;
Memberconsultmember;
charbookname[20],membername[20];
intflag=0,mflag=0;
ClrScr();
gotoxy(2,3);
printf("Inputthemermbername:
");
gets(membername);/*输入会员名*/
if((fp=fopen("member.txt","rb"))==NULL)/*没找到文件*/
{
gotoxy(3,3);
printf("Cannotopenfile\n!
");
return;
}
else
while(!
feof(fp))/*查询会员资料*/
{
fread(&consultmember,sizeof(Member),1,fp);
if(strcmp(consultmember.name,membername)==0)
{
mflag=1;/*是会员标志*/
break;
}
}
fclose(fp);
if(mflag==0)
{
gotoxy(2,4);
printf("Younotisamember,pleasregister!
");/*不是会员不能借书*/
return;
}
gotoxy(3,5);
printf("Inputthebookname:
");
gets(bookname);/*输入图书名*/
ClrScr();
if((fp=fopen("book.txt","rb+"))==NULL)/*没找到文件*/
{
gotoxy(2,3);
printf("Cannotopenfile\n!
");
return;
}
while(!
feof(fp))/*查询图书资料*/
{
fread(&consultbook,sizeof(Book),1,fp);
if(strcmp(consultbook.name,bookname)==0)
{
if(consultbook.yes==0)/*图书已经借出的判断*/
{
gotoxy(2,3);
printf("Thisbookhasborrowed\n!
");
break;
}
else
{
consultbook.yes=0;/*作借出标志*/
strcpy(consultbook.person,membername);/*登记借书会员*/
fseek(fp,-1L*sizeof(Book),1);/*从当前位置前移一条记录指针*/
fwrite(&consultbook,sizeof(Book),1,fp);/*写记录*/
gotoxy(2,3);
printf("Borrowedsucc!
");
flag=1;/*借出书标志*/
break;
}
}
}
if(flag!
=1)
{
ClrScr();
gotoxy(2,3);
printf("Borrowedfail!
\n");/*借书失败*/
}
fclose(fp);
}
/*还书*/
voidBookReturn()
{
FILE*fp;
Bookconsultbook;
charbookname[20];
intflag=0;
ClrScr();
if((fp=fopen("book.txt","rb+"))==NULL)/*没找到文件*/
{
gotoxy(2,3);
printf("cannotopenfile\n!
");
return;
}
printf("Inputthebookname:
");
gets(bookname);/*输入图书名*/
ClrScr();
while(!
feof(fp))/*查询图书资料*/
{
fread(&consultbook,sizeof(Book),1,fp);
if(strcmp(consultbook.name,bookname)==0)
{
if(consultbook.yes==0)/*图书已经借出的判断*/
{
consultbook.yes=1;/*作图书未借书标志,表示已还书*/
strcpy(consultbook.person,"");
fseek(fp,-1L*sizeof(Book),1);
fwrite(&consultbook,sizeof(Book),1,fp);
gotoxy(2,3);
printf("Returnbooksucc!
");
flag=1;
break;
}
}
}
if(flag!
=1)
printf("Returnfail!
\n");
fclose(fp);
}
/*清除屏幕*/
voidClrScr()
{
inti,j;
puttext(2,3,78,23,c);/*刚开始已经用gettext把蓝色的一块地方保存下来,现在再还原*/
gotoxy(2,3);
}
/*会员注册*/
voidMemberAdd()
{
FILE*fp;
Memberconsultmember;
fp=fopen("member.txt","rb");
if(fp==NULL)/*如果没会员就新建*/
fp=fopen("member.txt","wb");
else/*如果有会员就添加*/
{
fclose(fp);
fp=fopen("member.txt","ab");/*追加方式打开*/
}
ClrScr();
gotoxy(2,3);
printf("Intputnewmembername:
");/*逐个输入会员的资料*/
gets(consultmember.name);
gotoxy(2,4);
printf("Inputmembersex:
");
gets(consultmember.sex);
gotoxy(2,5);
printf("Pleaseinputmemberage:
");
scanf("%d%*c",&consultmember.age);
fwrite(&consultmember,sizeof(Member),1,fp);/*写入记录*/
fclose(fp);
ClrScr();
}
/*查询会员*/
voidMemberConsult()
{
FILE*fp;
Memberconsultmember;
charmembername[20];
intflag=0;
ClrScr();
gotoxy(2,3);
printf("Inputthemembername:
");/*输入要查询的会员名*/
gets(membername);
fp=fopen("member.txt","rb");
if(fp==NULL)/*没找到文件*/
{
ClrScr();
gotoxy(2,3);
printf("Error!
");
fclose(fp);
return;
}
while(!
feof(fp))/*查询会员资料*/
{
fread(&consultmember,sizeof(Member),1,fp);
if(strcmp(consultmember.name,membername)==0)/*比较*/
{
ClrScr();
gotoxy(2,3);
printf("Thismember%sinformationasfollow:
",consultmember.name);
gotoxy(2,4);
printf("Thismember'sexis%s",consultmember.sex);
gotoxy(2,5);
printf("Thismember'sageis%d",consultmember.age);
flag=1;
break;
}
}
if(flag==0)
{
ClrScr();
gotoxy(2,3);
printf("Nofoundthismember!
");
}
fclose(fp);
}
/*删除会员资料*/
voidMemberDel()
{
FILE*fp;
Member*head,*p,*q;
charmembername[20];
fp=fopen("member.txt","rb");
if(fp==NULL)/*没找到文件*/
{
gotoxy(2,3);
printf("Error!
");
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);
ClrScr();
printf("Inputthemembername:
");/*输入会员名*/
gets(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;
}
fp=fopen("member.txt","wb");/*删除后重新保存*/
while(head!
=NULL)
{
fwrite(head,sizeof(Member),1,fp);/*块写*/
head=head->next;
}
fclose(fp);
ClrScr();
}
/*查询会员所借的图书*/
voidMemberBook()
{
FILE*fp;
Bookconsultbook;
Memberconsultmember;
charbookname[20],membername[20];
intflag=0,mflag=0,i=0;
ClrScr();
gotoxy(2,3);
printf("Inputthemermbername:
");/*输入会员名*/
gets(membername);
if((fp=fopen("member.txt","rb"))==NULL)/*没找到文件*/
{
gotoxy(3,3);
printf("Cannotopenfile\n!
");
return;
}
else
while(!
feof(fp))/*查询会员资料,确认会员*/
{
fread(&consultmember,sizeof(Member),1,fp);
if(strcmp(consultmember.name,membername)==0)
{
mflag=1;
break;
}
}
fclose(fp);
if(mflag==0)
{
gotoxy(2,4);
printf("Notthemember!
");
return;
}
ClrScr();
if((fp=fopen("book.txt","rb+"))==NULL)/*没找到文件*/
{
gotoxy(2,3);
printf("Cannotopenfile\n!
");
return;
}
while(!
feof(fp))/*查询图书资料*/
{
fread(&consultbook,sizeof(Book),1,fp);
gotoxy(2,3);
printf("Thismember%shasborrowedbookasfollow:
",membername);
gotoxy(2,4);
printf("********************************************");
if(strcmp(consultbook.person,membername)==0)/*借阅人比较*/
{
gotoxy(2,5+i*4);
printf("Booknameis%s",consultbook.name);
gotoxy(2,6+i*4);
printf("Thisbooknumis%s",consultbook.num);
gotoxy(2,7+i*4);
printf("Thisbook'spriceis%d",consultbook.price);
printf("\n");
i++;
flag=1;
}
}
if(flag!
=1)
{
ClrScr();
gotoxy(2,3);
printf("noBorrowbook!
\n");
}
else
{
gotoxy(2,i*4+6);
printf("******totalis%d*********",i);/*显示总数*/
}
fclose(fp);
}
/*帮助文件*/
voidHelp()
{
ClrScr();
DrawFrame(10,5,50,8,0,7);/*画边框*/
gotoxy(15,6);
cprintf("clickmenutoruneachfuntion");/*输出字符串*/
getch();
ClrScr();
}
/***版本信息***/
voidVer()
{
ClrScr();
DrawFrame(10,5,50,8,0,7);/*画边框*/
gotoxy(15,6);
cprintf("Ver1.0finishedbyzhuyun");/*输出字符串*/
getch();
ClrScr();
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 管理 系统