/*12. bookfunction.c源程序*/
/*** bookfunction.c***/
/*添加图书*/
#include "c13_book.c"
void BookAdd()
{
FILE *fp;
Book consultbook;
fp=fopen("","rb");/*读方式打开文件*/
if(fp==NULL)
fp=fopen("","wb"); /*写方式打开文件*/
else/*如果有书就添加*/
{
fclose(fp);
fp=fopen("","ab");/*追加方式打开文件*/
}
ClrScr();/*清屏*/
printf("Intput new book num: ");/*逐个输入新图书的资料*/ gets(consultbook.num);
gotoxy(2,4);
printf("Input new book name: ");
gets(consultbook.name);
gotoxy(2,5);
printf("Please input new book's price: ");
scanf("%d%*c",&consultbook.price);
strcpy(consultbook.person,"");
<=NULL;
fwrite(&consultbook,sizeof(Book),1,fp);/*块写*/
fclose(fp); /*关闭文件*/
ClrScr();
}
/*图书查询*/
void BookConsult()
{
FILE *fp;
Book consultbook;
char bookname[20]; /*书名*/
int flag=0,i=0;
ClrScr();
gotoxy(2,3);
printf("Input the book name: ");
gets(bookname); /*输入要查询的图书名*/
fp=fopen("","rb");
{
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("This book %s information as follow:",consultbook.name); gotoxy(2,4+i*5);
printf("This book num is %s",consultbook.num);
gotoxy(2,5+i*5);
printf("This book's price is %d",consultbook.price);
gotoxy(2,6+i*5);
printf("This book's is browwed by %s",consultbook.person); gotoxy(2,7+i*5);
printf("This book's state is %d",s);
i++;
flag=1; /*查数据标志*/
}
}
if(flag==0)
{
ClrScr();
gotoxy(2,3);
printf("No found this book");
}
fclose(fp);
}
/
*删除图书资料*/
void BookDel()
{
FILE *fp;
Book *head,*p,*q;
char bookname[20];
fp=fopen("","rb");/*读方式打开文件*/
{
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("Input the book name: ");
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("","wb");/*删除后从链表的头开始重新保存*/ while(head!=NULL)
{
fwrite(head,sizeof(Book),1,fp);/*块写*/
head=head->next;
}
fclose(fp);
ClrScr();
}
/*借书*/
void BookBorrow()
{
FILE *fp;
Book consultbook;
Member consultmember;
char bookname[20],membername[20];
int flag=0,mflag=0;
ClrScr();
gotoxy(2,3);
printf("Input the mermber name: ");
gets(membername); /*输入会员名*/
if((fp=fopen("","rb"))==NULL)/*没到文件*/
{
gotoxy(3,3);
printf("Cannot open file\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("You not is a member,pleas register!");/*不是会员不能借书*/ return;
}
gotoxy(3,5);
printf("Input the book name: ");
gets(bookname); /*输入图书名*/
ClrScr();
if((fp=fopen("","rb+"))==NULL)/*没到文件*/
{
gotoxy(2,3);
printf("Cannot open file\n!");
return;
}
while(!feof(fp))/*查询图书资料*/
{
fread(&consultbook,sizeof(Book),1,fp);
if(strcmp(consultbook.name,bookname)==0)
{
s==0)/*图书已经借出的判断*/
{
gotoxy(2,3);
printf("This book has borrowed\n!");
break;
}
else
{
strcpy(consultbook.person,membername);/*登记借书会员*/ fseek(fp,-1L*sizeof(Book),1);/*从当前位置前移一条记录指针*/ fwrite(&consultbook,sizeof(Book),1,fp);/*写记录*/
gotoxy(2,3);
printf("Borrowed succ!");
flag=1;/*借出书标志*/
break;
}
}
}
if(flag!=1)
{
ClrScr();
gotoxy(2,3);
printf("Borrowed fail!\n");/*借书失败*/
}c语言printf用法例子简单
fclose(fp);
}
/*还书*/
void BookReturn()
{
FILE *fp;
Book consultbook;
char bookname[20];
int flag=0;
ClrScr();
if((fp=fopen("","rb+"))==NULL)/*没到文件*/
{
gotoxy(2,3);