⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 源代码.c

📁 &#8226 图书管理系统”是一种基于集中统一规划的数据库数据管理新模式
💻 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 + -