📄 源代码.c
字号:
#include "TypeDef.h"
#include "Function.h"
#include <string.h>
#include <stdio.h>
//*****借书处理************************************
void BorrowBook(BookDbFile *bf, BnoIdxFile *bif, ReaderFile *rf, BborrowFile *bbf)
{
char rno[5];
char bno[5];
char choice;
int bookno;
printf("请输入读者号:");
scanf("%s", rno);
while(strlen(rno) != 4)
{
printf("输入读者号位数不正确,请重新输入:");
scanf("%s", rno);
}
if(ReaderFind(rf, rno) == -1)
{
printf("您输入的读者号不存在,不能借阅图书!\n");
printf("\n按任意键返回...");
choice = getchar();
if(choice == 10) //判断接收的是否为回车符
{
choice = getchar();
}
return;
}
printf("请输入书号:");
scanf("%s", bno);
while(strlen(bno) != 4)
{
printf("输入书号位数不正确,请重新输入:");
scanf("%s", bno);
}
if((bookno = BinSearch(bif, bno)) <= 0)
{
printf("无此书籍!\n");
printf("\n按任意键返回...");
choice = getchar();
if(choice == 10) //判断接收的是否为回车符
{
choice = getchar();
}
return;
}
if(bf->BookDbase[bookno].storenum - bf->BookDbase[bookno].borrownum < 0)
{
printf("该书已全部借出,暂时无法借阅!\n");
printf("\n按任意键返回...");
choice = getchar();
if(choice == 10) //判断接收的是否为回车符
{
choice = getchar();
}
return;
}
if(rf->ReadRec[ReaderFind(rf, rno)].bn2 >= rf->ReadRec[ReaderFind(rf, rno)].bn1) //当已借书数大于等于可借书数时
{
printf("您已超过借书上限,暂时无法借阅!\n");
printf("\n按任意键返回...");
choice = getchar();
if(choice == 10) //判断接收的是否为回车符
{
choice = getchar();
}
return;
}
printf("请输入借阅时间(YYYYMMDD):");
scanf("%s", bbf->Bbook[bbf->len].date1);
printf("借阅成功!");
bf->BookDbase[bookno].borrownum++;
strcpy(bbf->Bbook[bbf->len].bno, bno);
strcpy(bbf->Bbook[bbf->len].rno, rno);
strcpy( bbf->Bbook[bbf->len].date2, "#");
bbf->len ++;
rf->ReadRec[ReaderFind(rf, rno)].bn2++; //读者已借书数加1
printf("\n按任意键返回...");
choice = getchar();
if(choice == 10) //判断接收的是否为回车符
{
choice = getchar();
}
return;
}
//*************************************************
//*****还书处理************************************
void BackBook(BookDbFile *bf, BnoIdxFile *bif, ReaderFile *rf, BborrowFile *bbf)
{
char rno[5];
char bno[5];
char choice;
int i;
printf("请输入 读者号 和 书号 (用空格分开):");
scanf("%s%s", rno, bno);
for(i = 0; i < bbf->len; ++i)
{
if(strcmp(rno, bbf->Bbook[i].rno) == 0 && strcmp(bno, bbf->Bbook[i].bno) == 0)
{
printf("请输入还书日期(YYYYMMDD):");
scanf("%s", bbf->Bbook[i].date2);
bf->BookDbase[BinSearch(bif, bno)].borrownum--;
rf->ReadRec[ReaderFind(rf, rno)].bn2--; //读者已借书数减1
printf("还书成功!\n");
printf("\n按任意键返回...");
choice = getchar();
if(choice == 10) //判断接收的是否为回车符
{
choice = getchar();
}
return;
}
}
printf("没有相关借阅信息,还书请求被拒绝!\n");
printf("\n按任意键返回...");
choice = getchar();
if(choice == 10) //判断接收的是否为回车符
{
choice = getchar();
}
}
//*************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -