本程序源代码与功能设计部分借阅网上一些资料完成的,自己本人修改了一些细节与功能
如果你也要做这个,欢迎学习与改正。
/*
名称: 图书管理信息系统
版本: 1.0.0
日期:
作者: I我Promise
注解:本程序源代码与功能设计部分借阅网上一些资料完成的,自己本人修改了一些细节与功能
如果你也要做这个,欢迎学习与改正
*/
# include
# include
# include
typedef struct book
{
char name[10]; // 名字
char num[10]; // 编号
char writer[10]; // 作者
int date; // 出版日期
char press[10]; // 出版社
float prise; // 价格
char sort[10]; // 类别
int inven; // 库存
int loan; // 借出
}BK;
typedef struct student
{
char name[10]; // 已借学生姓名
char num[10]; // 已借学生学号
int borr; // 已借本数
}ST;
typedef struct borror
{
char Snum[10]; // 已借图书学生学号
char Bnum[10]; // 已借图书编号
}BS;
FILE *fp, *fpj, *fps; // 定义全局文件指针,方便使用
int i, xuan; // 定义两个常用的变量用于循环等
void Logan();
void Menu_filename();
int Menu_select();
void Add_Book(); //录入
void Show_Book(); //浏览
void Search_Book(); //查询
void AD_Book(); //修改与删除
void Borr_Book(); //借阅
void Retu_Book(); //归还
void BS_Book(); //借阅查询
int Contrast(char *, char *); //对比
int main(void)
{
Logan();
Menu_filename();
for (;;)
{
fp = fopen("book.txt", "rb+");
fps = fopen("student.txt", "rb+");
fpj = fopen("jieyue.txt", "rb+");
switch (Menu_select())
{
case 1:
printf("\n\t\t*^_^*图书信息添加*^_^*\n");
Add_Book();
break;
case 2:
printf("\n\t\t*^_^*图书信息浏览*^_^*\n");
Show_Book();
break;
case 3:
printf("\n\t\t*^_^*图书信息查询*^_^*\n");
Search_Book();
break;
case 4:
printf("\n\t\t*^_^*图书信息修改与删除*^_^*\n");
AD_Book();
break;
case 5:
printf("\n\t\t*^_^*图书借阅*^_^*\n");
Borr_Book();
break;
case 6:
printf("\n\t\t*^_^*图书归还查询*^_^*\n");
Retu_Book();
break;
case 7:
printf("\n\t\t*^_^*图书借阅查询*^_^*\n");
BS_Book();
break;
case 0:
printf("\n谢谢使用哦! \t\t\t\t See You Again !!\n");
printf("\n\t\t");
system("pause");
exit(0);
}
fclose(fp);
fclose(fpj);
fclose(fps);
}
system("pause");
return 0;
}
void Logan()
{
printf("\n\n\n\t\t\t 图书馆信息管理系统\n\n");
printf("\t\t 作者 : I我Promise \n\n");
printf("\t\t 成员 :\n\n");
printf("\t\t 时间1 :2016年12月20日 15:46:19 \n\n");
printf("\t\t 时间2 :2016年12月22日 15:59:00 \n\n");
printf("\t\t 时间3 :2016年12月26日 10:11:07 \n\n");
printf("\t\t 时间4 :2016年12月27日 11:21:17 \n\n");
printf("\t\t 时间5 :2016年12月27日 16:37:23 \n\n");
printf("\t\t 身份 :在校大学生一枚 \n\n");
system("pause");
}
void Menu_filename() // 新建或查找 并用txt格式的文件储存,方便打开与转移
{
system("cls");
if ((fp = fopen("book.txt", "rb+")) == NULL)
{
printf("\t\t在程序同一目录下没有找到储存图书信息的book.txt文件!\n");
printf("\t\t\t请选择 :\n\t\t\t1--手动导入(手动将文件复制到目录下)!\n\t\t\t2--创建此文件!(由系统创建) \n");
printf("请输入序号 : ");
scanf("%d", &xuan);
switch (xuan)
{
case 2:
if ((fp = fopen("book.txt", "wb+")) != NULL)
printf("创建成功!!\n\n");
break;
case 1:
printf("\t\t请把名为book.txt的文件复制到程序同一目录下\n\n");
}
}
if ((fpj = fopen("jieyue.txt", "rb+")) == NULL)
{
printf("\t\t在程序同一目录下没有找到储存图书信息的jieyue.txt文件!\n");
printf("\t\t\t请选择 :\n\t\t\t1--手动导入(手动将文件复制到目录下)!\n\t\t\t2--创建此文件!(由系统创建) \n");
printf("请输入序号 : ");
scanf("%d", &xuan);
switch (xuan)
{
case 2:
if ((fpj = fopen("jieyue.txt", "wb+")) != NULL)
printf("创建成功\n\n");
break;
case 1:
printf("\t\t请把名为jieyue.txt的文件复制到程序同一目录下\n\n");
}
}
if ((fps = fopen("student.txt", "rb+")) == NULL)
{
printf("\t\t在程序同一目录下没有找到储存图书信息的student.txt文件!\n");
printf("\t\t\t请选择 :\n\t\t\t1--手动导入(手动将文件复制到目录下)!\n\t\t\t2--创建此文件!(由系统创建) \n");
printf("请输入序号 : ");
scanf("%d", &xuan);
switch (xuan)
{
case 2:
if ((fps = fopen("student.txt", "wb+")) != NULL)
printf("创建成功\n\n");
break;
case 1:
printf("\t\t请把名为student.txt的文件复制到程序同一目录下\n\n");
}
}
}
int Menu_select(void)
{
int a;
do
{
system("cls");
printf("\n\t\t◤▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔◥\n");
printf("\t\t▏ 图书馆信息管理系统 ▕\n");
printf("\t\t◣▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁◢\n");
printf("\n");
printf("\t\t ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ \n");
printf("\t\t ▏ 1.图书录入 2.图书浏览 ▕ \n");
printf("\t\t ▏ 3.图书查询 4.图书修改与删除 ▕ \n");
printf("\t\t ▏ 5.图书借阅 6.图书归还 ▕ \n");
printf("\t\t ▏ 7.已借图书查询 0.退出系统 ▕ \n");
printf("\t\t ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ \n");
printf("\t\t\n 请您选择(0 - 7) : ");
scanf("%d", &a);
} while (a < 0 || a > 7);
system("cls");
return (a);
}
void Add_Book(void) //录入
{
BK bo, boq;
char sign = 'y';
system("cls");
while (sign != 'n' && sign != 'N')
{
fp = fopen("book.txt", "rb+"); // 在这个while中因为要多次输入,所以要重新打开与关闭
fps = fopen("student.txt", "rb+"); // 不然下面的判断编号是否重复就不能判断
fpj = fopen("jieyue.txt", "rb+");
printf("\n\t--------------图书信息添加--------------\n\n");
printf("请输入图书名(最多十个字符):");
scanf("%s", bo.name);
do // 因为编号是我系统图书唯一的标识符,所以要检查下
{
i = 1;
printf("请输入图书编号(最多十个字符):");
scanf("%s", bo.num);
fread(&boq, sizeof(BK), 1, fp);
while (!feof(fp))
{
if (strcmp(boq.num, bo.num) == 0)
{
printf("\n该编号已存在请重新输入!\n\n");
i = 0;
break;
}
fread(&boq, sizeof(BK), 1, fp);
}
rewind(fp);
} while (i == 0);
printf("请输入图书作者(最多十个字符):");
scanf("%s", bo.writer);
printf("请输入图书出版日期(例如2001年5月3日出版则输入20010503):");
scanf("%d", &bo.date);
printf("请输入图书价格:");
scanf("%f", &bo.prise);
printf("请输入图书出版社(最多十个字符):");
scanf("%s", bo.press);
printf("请输入图书类别(最多十个字符):");
scanf("%s", bo.sort);
printf("请输入图书入库数:");
scanf("%d", &bo.inven);
bo.loan = 0;
fseek(fp, 0, 2);
fwrite(&bo, sizeof(BK), 1, fp);
printf("\n 录入成功!您是否想继续添加 ( Y / N ) : ");
scanf("\t%c", &sign); // 缓存 回车符
system("cls");
fclose(fp);
fclose(fpj);
fclose(fps);
}
}
void Show_Book(void) //浏览
{
//system("cls");
BK bo;
char sign = 'y';
printf("\n\n\t书名 编号 作者 价格 出版社 类别 原始库存 借出\n");
fread(&bo, sizeof(BK), 1, fp);
while (feof(fp) == 0)
{
printf("\n\t%-10s%-10s%-10s%-10.2f%-10s%-10s%-10d%-4d\n", bo.name, bo.num, bo.writer, bo.prise, bo.press, bo.sort, bo.inven, bo.loan);
fread(&bo, sizeof(BK), 1, fp);
}
printf("\n\n浏览图书完毕!谢谢使用 !\n\n");
system("pause");
printf("\n\n\t您是否想修改记录 ( Y / N ) : ");
scanf("\t%c", &sign); //为什么要加 /t 因为/t 是用来缓存上一个回车符
if (sign != 'n' && sign != 'N')
{
AD_Book();
}
system("pause");
}
void Search_Book(void) //查询
{
char key[10];
int fan = 1;
int bian = 1; // 记录序号
BK bo;
system("cls");
system("cls");
printf("\t\n请选择查询方式:\n");
printf("\t┌───────────────────────┐\n");
printf("\t│ 1--按图书编号模糊查询 2--按图书名关键字查询 │\n");
printf("\t│ │\n");
printf("\t│ 3--按图书编号精确查询 4--按图书书名精确查询 │\n");
printf("\t└───────────────────────┘\n");
printf("请输入你要查询的方式\n");
scanf("%d", &xuan);
if (1 == xuan)
{
printf("\n请输入图书编号(例如: 164030242 可输入: 1642 !最多十个字符):");
scanf("%s", key);
printf("\n\t序号 书名 编号 作者 价格 出版社 类别 原始库存 借出\n");
fread(&bo, sizeof(BK), 1, fp);
while (!feof(fp))
{
fan = Contrast(key, bo.num); // 模糊查找函数
if (1 == fan)
{
printf("\t%-5d%-10s%-10s%-10s%-10.2f%-10s%-10s%-10d%-4d\n", bian, bo.name, bo.num, bo.writer, bo.prise, bo.press, bo.sort, bo.inven, bo.loan);
bian++;
}
fread(&bo, sizeof(BK), 1, fp);
}
}
else if (2 == xuan)
{
printf("\n请输入图书名关键字(例如: C Language 可输入: Cge ! 最多十个字符):");
scanf("%s", key);
printf("\n\t序号 书名 编号 作者 价格 出版社 类别 原始库存 借出\n");
fread(&bo, sizeof(BK), 1, fp);
while (!feof(fp))
{
fan = Contrast(key, bo.name);
if (1 == fan)
printf("\t%-5d%-10s%-10s%-10s%-10.2f%-10s%-10s%-10d%-4d\n", bian, bo.name, bo.num, bo.writer, bo.prise, bo.press, bo.sort, bo.inven, bo.loan);
fread(&bo, sizeof(BK), 1, fp);
}
}
else if (3 == xuan)
{
printf("\n请输入准确的图书编号(最多十个字符):");
scanf("%s", key);
printf("\n\t序号 书名 编号 作者 价格 出版社 类别 原始库存 借出\n");
while (!feof(fp))
{
if (strcmp(key, bo.num) == 0)
printf("\t%-5d%-10s%-10s%-10s%-10.2f%-10s%-10s%-10d%-4d\n", bian, bo.name, bo.num, bo.writer, bo.prise, bo.press, bo.sort, bo.inven, bo.loan);
fread(&bo, sizeof(BK), 1, fp);
}
}
else if (4 == xuan)
{
printf("\n请输入准确图书名(最多十个字符):");
scanf("%s", key);
printf("\n\t序号 书名 编号 作者 价格 出版社 类别 原始库存 借出\n");
while (!feof(fp))
{
if (strcmp(key, bo.name) == 0)
printf("\t%-5d%-10s%-10s%-10s%-10.2f%-10s%-10s%-10d%-4d\n", bian, bo.name, bo.num, bo.writer, bo.prise, bo.press, bo.sort, bo.inven, bo.loan);
fread(&bo, sizeof(BK), 1, fp);
}
}
else
{
printf("\n输入错误!!! 回到主菜单重新选择...\n");
system("pause");
return;
}
printf("\n 查询图书完毕! 谢谢使用...");
system("pause");
}
void AD_Book(void) //修改与删除
{
FILE *p;
char num[10], cha[10], sign = 'y';
int j = 0, x;
BK bo, boq;
BS bs;
fp = fopen("book.txt", "rb+"); // 又在这里加这个是因为在 Show 函数中,我要调用这个函数
fps = fopen("student.txt", "rb+"); // 所以我要你主函数一样 重新打开关闭
fpj = fopen("jieyue.txt", "rb+");
printf("\n删除修改图书只能通过图书编号来完成!\n是否显示所有图书来查询你要操作的图书编号(Y/N): ");
scanf("\t%c", &sign);
if (sign != 'N' && sign != 'n')
{
Show_Book();
rewind(fp);
}
printf("\n请输入你要操作的图书的编号(如果输入错误的编号,将不做任何操作):");
scanf("%s", cha);
fread(&bs, sizeof(BS), 1, fpj);
while (!feof(fpj))
{
if (strcmp(bs.Bnum, cha) == 0)fclose(fp);
fclose(fpj);
fclose(fps);
{
printf("\n这本书已有人借阅,不能删除哦!\n");
system("pause");
return;
}
fread(&bs, sizeof(BS), 1, fpj);
}
printf("\t┌─────────────┐\n");
printf("\t│ │\n");
printf("\t│ 1--删除图书 2--修改图书 │\n");
printf("\t│ │\n");
printf("\t│ 0--取消操作 返回主菜单 │\n");
printf("\t│ │\n");
printf("\t└─────────────┘\n");
printf("请选择操作类型:");
scanf("%d", &xuan);
while (xuan != 1 && xuan != 2 && xuan != 0)
{
printf("您输入错误,请重新输入序号查询!\n");
printf("请选择操作类型:");
scanf("%d", &xuan);
}
fread(&bo, sizeof(BK), 1, fp);
p = fopen("books1.txt", "wb+");
while (!feof(fp))
{
j++;
if (strcmp(bo.num, cha) == 0)
{
if (2 == xuan)
{
printf("\n\n1-书名 2-编号 3-作者 4-价格 5-出版社 6-类别 7-库存\n\n");
printf("请选择要修改的项目:");
scanf("%d", &x);
if (1 == x)
{
printf("你要把 %s 修改为:", bo.name);
scanf("%s", bo.name);
}
else if (2 == x)
{
do
{
i = 1;
printf("你要把 %s 修改为 :", bo.num);
scanf("%s", num);
rewind(fp);
fread(&boq, sizeof(BK), 1, fp);
while (!feof(fp))
{
if (strcmp(boq.num, num) == 0) // 检查编号是否重复
{
printf("\n该编号已存,在请重新输入!\n\n");
i = 0;
break;
}
fread(&boq, sizeof(BK), 1, fp);
}
} while (i == 0);
rewind(fp);
for (i = 0; i < j; i++)
{
fread(&bo, sizeof(BK), 1, fp);
strcpy(bo.num, num);
}
}
else if (3 == x)
{
printf("你要把 %s 修改为 :", bo.writer);
scanf("%s", bo.writer);
}
else if (4 == x)
{
printf("你要把 %s 修改为 :", bo.prise);
scanf("%s", bo.prise);
}
else if (5 == x)
{
printf("你要把 %s 修改为 :", bo.press);
scanf("%s", bo.press);
}
else if (6 == x)
{
printf("你要把 %s 修改为 :", bo.sort);
scanf("%s", bo.sort);
}
else if (7 == x)
{
printf("你要把 %s 修改为 :", bo.inven);
scanf("%s", bo.inven);
}
fwrite(&bo, sizeof(BK), 1, p);
}
else if (0 == xuan)
{
system("pause");
return;
}
}
else
fwrite(&bo, sizeof(BK), 1, p);
fread(&bo, sizeof(BK), 1, fp);
}
fclose(p);
fclose(fp);
p = fopen("books1.txt", "rb+");
fp = fopen("book.txt", "wb+");
fread(&bo, sizeof(BK), 1, p);
while (!feof(p)) // 将刚修改的数据 books1 复制并覆盖到 book 中
{
fwrite(&bo, sizeof(BK), 1, fp);
fread(&bo, sizeof(BK), 1, p);
}
fclose(fp);
//fclose(fp);
fclose(fpj);
fclose(fps);
printf("\n操作成功 *^_^* 回到主菜单\n");
system("pause");
}
void Borr_Book(void) //借阅
{
FILE *p;
BK bo;
ST st;
BS bs;
int j = 0;
char num[10], xnum[10];
char sign = 'y';
system("cls");
printf("\n借阅图书只能通过图书编号来完成!\n是否显示所有图书来查询你要操作的图书编号(Y/N): ");
scanf("\t%c", &sign);
if (sign != 'N' && sign != 'n')
Show_Book();
printf("\n请输入你要借阅的图书的编号:");
scanf("%s", num);
fread(&bo, sizeof(BK), 1, fp);
while (!feof(fp))
{
if (strcmp(num, bo.num) == 0)
{
j = 1;
break;
}
fread(&bo, sizeof(BK), 1, fp);
}
if (j == 0)
{
printf("\n不好意思 ,书库没有该图书哦 *^_^*\n\n");
system("pause");
return;
}
printf("\n你需要借阅的图书是:\n");
printf("\t书名 编号 作者 价格 出版社 类别 原始库存 借出\n");
printf("\t%-10s%-10s%-10s%-10.2f%-10s%-10s%-10d%-4d\n", bo.name, bo.num, bo.writer, bo.prise, bo.press, bo.sort, bo.inven, bo.loan);
if (bo.inven == bo.loan)
{
printf("\n该册图书已全部借出! 下次再来哦... *^_^*\n\n");
system("pause");
return;
}
printf("\n请输入你的学号:");
scanf("%s", xnum);
j = 0;
fread(&bs, sizeof(BS), 1, fpj);
while (!feof(fpj))
{
if ((strcmp(bs.Bnum, num) == 0) && (strcmp(bs.Snum, xnum) == 0))
{
j = 1;
break;
}
fread(&bs, sizeof(BS), 1, fpj);
}
if (j == 1)
{
printf("\n你已经借阅过该书 ! 归还了才能再借哦 *^_^* !\n\n");
system("pause");
return;
}
j = 0;
fread(&st, sizeof(ST), 1, fps);
while (!feof(fps))
{
if (strcmp(xnum, st.num) == 0)
{
j = 1;
break;
}
fread(&st, sizeof(ST), 1, fps);
}
if (j == 0)
{
printf("\n您是第一次借阅图书,为了方便管理请输入你的姓名:");
scanf("%s", st.name);
strcpy(st.num, xnum);
st.borr = 1;
fseek(fps, 0, 2);
fwrite(&st, sizeof(ST), 1, fps);
}
else
{
if (st.borr == 5) // 控制每个学生只能借五本书
{
printf("\n你已经借了5本书,不能再借 ! 请还了书才能借哦 !\n\n");
system("pause");
return;
p = fopen("jie.txt", "wb+");
rewind(fps);
fread(&st, sizeof(ST), 1, fps);
while (!feof(fps))
{
if (strcmp(xnum, st.num) == 0)
st.borr++;
fwrite(&st, sizeof(ST), 1, p);
fread(&st, sizeof(ST), 1, fps);
}
fclose(p);
fclose(fps);
p = fopen("jie.txt", "rb+");
fps = fopen("student.txt", "wb+");
fread(&st, sizeof(ST), 1, p);
while (!feof(p))
{
fwrite(&st, sizeof(ST), 1, fps);
fread(&st, sizeof(ST), 1, p);
}
}
strcpy(bs.Bnum, num);
strcpy(bs.Snum, xnum);
fseek(fpj, 0, 2);
fwrite(&bs, sizeof(BS), 1, fpj);
rewind(fp);
p = fopen("jie.txt", "wb+");
fread(&bo, sizeof(BK), 1, fp);
while (!feof(fp))
{
if (strcmp(num, bo.num) == 0)
bo.loan++;
fwrite(&bo, sizeof(BK), 1, p);
fread(&bo, sizeof(BK), 1, fp);
}
fclose(p);
fclose(fp);
p = fopen("jie.txt", "rb+");
fp = fopen("book.txt", "wb+");
fread(&bo, sizeof(BK), 1, p);
while (!feof(p))
{
fwrite(&bo, sizeof(BK), 1, fp);
fread(&bo, sizeof(BK), 1, p);
}
printf("\n\t*^_^*借阅成功!请借阅后爱护书籍哦 *^_^*\n\n");
system("pause");
}
}
void Retu_Book(void) //归还
{
FILE *p;
BK bo;
ST st;
BS bs;
int j = 0;
char snum[10], bnum[10];
i = 0;
system("cls");
printf("\n请输入你的学号:");
scanf("%s", snum);
printf("\n你借阅了以下图书 : \n");
fread(&bs, sizeof(BS), 1, fpj);
printf("\t书名 编号 作者 价格 出版社 类别 原始库存 借出\n");
while (!feof(fpj))
{
if (strcmp(bs.Snum, snum) == 0)
{
fread(&bo, sizeof(BK), 1, fp);
while (!feof(fp))
{
if (strcmp(bs.Bnum, bo.num) == 0)
{
printf("\t%-10s%-10s%-10s%-10.2f%-10s%-10s%-10d%-4d\n", bo.name, bo.num, bo.writer, bo.prise, bo.press, bo.sort, bo.inven, bo.loan);
j = 1;
}
fread(&bo, sizeof(BK), 1, fp);
}
}
fread(&bs, sizeof(BS), 1, fpj);
}
if (0 == j)
{
printf("\n *^_^* 你没有借阅任何图书! 要多借书学习哦 *^_^* \n\n");
system("pause");
return;
}
rewind(fp);
rewind(fpj);
printf("\n请输入你归还的图书的编号:");
scanf("%s", bnum);
p = fopen("jie.txt", "wb+");
fread(&bs, sizeof(BS), 1, fpj); //修改 jieyue.txt 里的数据
while (!feof(fpj))
{
if ((strcmp(bs.Bnum, bnum) == 0) && (strcmp(bs.Snum, snum) == 0))
i = 1;
else
fwrite(&bs, sizeof(BS), 1, p);
fread(&bs, sizeof(BS), 1, fpj);
}
if (0 == i)
{
printf("\n你没有借过该图书 需要借阅后才能归还哦...");
system("pause");
return;
}
fclose(p);
fclose(fpj);
p = fopen("jie.txt", "rb+");
fpj = fopen("jieyue.txt", "wb+");
fread(&bs, sizeof(BS), 1, p);
while (!feof(p))
{
fwrite(&bs, sizeof(BS), 1, fpj);
fread(&bs, sizeof(BS), 1, p);
}
fclose(p); //改变book.txt里的数据
p = fopen("jie.txt", "wb+");
fread(&bo, sizeof(BK), 1, fp);
while (!feof(fp))
{
if (strcmp(bnum, bo.num) == 0)
bo.loan--;
fwrite(&bo, sizeof(BK), 1, p);
fread(&bo, sizeof(BK), 1, fp);
}
fclose(p);
fclose(fp);
p = fopen("jie.txt", "rb+");
fp = fopen("book.txt", "wb+");
fread(&bo, sizeof(BK), 1, p);
while (!feof(p))
{
fwrite(&bo, sizeof(BK), 1, fp);
fread(&bo, sizeof(BK), 1, p);
}
fclose(p);//改变student.txt里的数
p = fopen("jie.txt", "wb+");
rewind(fps);
fread(&st, sizeof(ST), 1, fps);
while (!feof(fps))
{
if (strcmp(snum, st.num) == 0)
st.borr--;
fwrite(&st, sizeof(ST), 1, p);
fread(&st, sizeof(ST), 1, fps);
}
fclose(p);
fclose(fps);
p = fopen("jie.txt", "rb+");
fps = fopen("student.txt", "wb+");
fread(&st, sizeof(ST), 1, p);
while (!feof(p))
{
fwrite(&st, sizeof(ST), 1, fps);
fread(&st, sizeof(ST), 1, p);
}
printf("\n归还成功 多来借书哦... *^_^*");
system("pause");
}
void BS_Book(void) //借阅查询
{
char num[10];
BK bo;
BS bs;
printf("\n请输入你的学号:");
scanf("%s", num);
printf("\n您借阅了以下图书:\n\n");
printf("\t书名 编号 作者 价格 出版社 类别 原始库存 借出\n");
fread(&bs, sizeof(BS), 1, fpj);
while (!feof(fpj))
{
if (strcmp(bs.Snum, num) == 0)
{
fread(&bo, sizeof(BK),1, fp);
while (!feof(fp))
{
if (strcmp(bs.Bnum, bo.num) == 0)
{
printf("\t%-10s%-10s%-10s%-10.2f%-10s%-10s%-10d%-4d\n", bo.name, bo.num, bo.writer, bo.prise, bo.press, bo.sort, bo.inven, bo.loan);
}
fread(&bo, sizeof(BK), 1, fp);
}
}
fread(&bs, sizeof(BS), 1, fpj);
}
printf("\n查询完毕... !\n\n");
system("pause");
}
int Contrast(char *p, char *p1) //对比
{
int bao = 0, fan = 1;
for (i = 0; i<(int)strlen(p1); i++)
{
if (p[0] == p1[i])
{
bao = i;
break;
}
}
if ((int)strlen(p)>(int)strlen(p1) - bao + 1)
return 0;
else
for (i = 0; i<(int)strlen(p); i++)
{
if (p[i] != p1[bao + i])
fan = 0;
}
return fan;
}