ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2022.2.27 图书管理系统3---借还书登记模块

2022-02-27 17:02:35  阅读:189  来源: 互联网

标签:27 astReader iReaderld --- iBorrow printf 借书 2022.2 iBookld


这是图书管理系统第三个模块,里面有注意的一些细节

借书登记系统中,要注意什么时候书存在,什么时候书不存在,最主要的是在借完书之后对信息保存,因为在代码中所做的工作全在数组中进行,为了以防一些情况出现,将其保存在文件中,并且每借一次书,记得图书库存量减去1,当前读者可借阅的数量减去1,这样借书程序才会完整。还书代码类似。

//借还书子菜单
void ShowBorrowReturnMenu()
{
	system("cls");
	printf("\n\n\n\n");
	printf("\t**********************欢迎进入***********************\n");
	printf("\t*********************借还书登记***********************\n");
	printf("\t**********************子菜单*************************\n");
	printf("\t*********************1.借书登记***********************\n");
	printf("\t*********************2.还书登记***********************\n");
	printf("\t*********************0.返回主菜单*********************\n");
	printf("\t******************************************************\n");
	printf("\n");
	printf("\t\t请选择(0-2)");
}

//借书
void BorrowBook()
{
	//读者是否可以借书
	system("cls");
	int iBookld, iReaderld, iBorrow, i;//iBorrow读者借了几本书
	//输入要借书的读者的编号,判断编号是否存在,如果存在,显示读者已经借阅的图书信息
	iReaderld = SearchReader();
	if (iReaderld == -1)//不存在
	{
		return;
	}
	iBorrow = astReader[iReaderld].iMax - astReader[iReaderld].iAmount;
	if (iBorrow == 0)
	{
		printf("该读者目前没有借阅任何书");
	}
	else
	{
		printf("\t该读者当前所借图书为:");
		for (i = 0; i < iBorrow; i++)
		{
			printf("%d", astReader[iReaderld].Bookld[i]);//数组里面对应的下标是存储的书籍的编号
		}
		printf("\n\n");
	}
	if (astReader[iReaderld].iAmount == 0)
	{
		printf("该读者可借阅书的数量为0,不能继续借书\n");
	}
	//图书是否可借阅
	printf("\n按任意键输入要借阅的图书信息\n");
	_getch;
	iBookld = SearchBook();
	if (iBookld == -1)
	{
		return;
	}
	if (astBook[iBookld].iAmount == 0)
	{
		printf("该图书库存量为0!图书不可借阅!\n");
		return;
	}
	//借书
	astReader[iReaderld].Bookld[iBorrow] = astBook[iBookld].iNum;
	//图书的库存-1
	astBook[iBookld].iAmount--;
	//当前读者的可借书的数量-1
	astReader[iReaderld].iAmount--;
	//操作在数组中,必须保存在文件中
	SaveBookFile(iBookld);
	SaveReaderFile(iReaderld);
	printf("借书成功!\n");
}

//还书
void ReturnBook()
{
	system("cls");
	int iBookld, iReaderld, iBorrow, i, j;//读者是否借这本书
	//1. 读者在不在系统里
	iReaderld = SearchReader();
	if (iReaderld == -1)
	{
		return;
	}
	//
	iBorrow = astReader[iReaderld].iMax - astReader[iReaderld].iAmount;
	if (iBorrow == 0)
	{
		printf("\t该读者没有借阅任何书,无需归还!\n");
		return;
	}
	else
	{
		printf("\t该读者当前所借阅的图书为:");
		for (i = 0; i < iBorrow; i++)//iBorrow是自己借了几本书
		{
			printf("%d", astReader[iReaderld].Bookld[i]);
		}
	}
	printf("按任意键输入要归还的图书信息\n");
	_getch;
	//2. 图书在不在系统里
	iBookld = SearchBook();
	if (iBookld == -1)
	{
		return;
	}
	//3. 借书列表里面有没有这本书
	for (i = 0; i < iBorrow; i++)
	{
		if (astReader[iReaderld].Bookld[i] == astBook[iBookld].iNum)
		{
			//如果借阅列表里面有这本书,才可以还书
			for (j = i; j < iBorrow - 1; j++)
			{
				astReader[iReaderld].Bookld[j] = astReader[iReaderld].Bookld[j + 1];
			}
			astReader[iReaderld].Bookld[iBorrow - 1] = 0;
			//图书库存加1
			astBook[iBookld].iAmount++;
			//读者可借书的数量
			astReader[iReaderld].iAmount++;
			break;
		}
	}
	if (i == iBorrow)
	{
		printf("该读者没有借阅这本书,无需归还!\n");
		return;
	}
	//还书
	SaveBookFile(iBookld);
	SaveReaderFile(iReaderld);
	printf("还书成功\n");
}

//借还书模块
void BorrowReturnManger()
{
	ShowBorrowReturnMenu();//借还书的子菜单
	int iltem;
	scanf("%d", &iltem);
	getchar();
	while (iltem)
	{
		switch (iltem)
		{
		case 1:
			BorrowBook();//借书
			break;
		case 2:
			ReturnBook();//还书
			break;
		default:
			printf("\t\t请输入正确的数字!\n");
		}
		printf("按任意键返回子菜单");
		_getch;
		ShowBorrowReturnMenu();//借还书的子菜单
		scanf("%d", &iltem);
		getchar();
	}
}

标签:27,astReader,iReaderld,---,iBorrow,printf,借书,2022.2,iBookld
来源: https://blog.csdn.net/weixin_58631717/article/details/123166518

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有