Пример #1
0
	 //借出图书
	 void LendABookToPatron(Book existedBook,Patron existedPatron)
	 {
		 int bookOrder;
		 int patronOrder;

		 cout<<"新操作:\t借出图书"<<endl;
		 cout<<"准备就绪..."<<endl;

		 if(aBook.size()==0)
		 {
			cout<<"图书馆中没有书"<<endl<<"操作未完成"<<endl<<endl;
			return;
		 }
		 else if(aPatron.size()==0)
		 {
			  cout<<"学生信息系统为空"<<endl<<"操作未完成"<<endl<<endl;
			  return;
		 }
			
		 //检查书和读者是否存在 
		 bool bookExist=false;
		 for(int i=0;i<aBook.size();i++)
			if(existedBook.GetISBNNum()==aBook[i].GetISBNNum())//书存在 注意判断标准是ISBN因为书可能会重名
			{
				bookExist=true;
				bookOrder=i;

				//检查书是否已经借出
				if(aBook[bookOrder].GetIsOut())
				{
					cout<<"这本书已经被借出"<<endl<<"操作未完成"<<endl<<endl;
					break;
				}
				bool patronExist=false;
				for(int i=0;i<aPatron.size();i++)
					if(existedPatron.GetName()==aPatron[i].GetName())//读者信息存在
					{
						patronExist=true;
						patronOrder=i;
					
						//检查是否欠费
						if(aPatron[patronOrder].IsOwed())
						{
							cout<<"读者已欠费,请缴费后再借书"<<endl<<"操作未完成"<<endl<<endl;
							break;
						}
						else 
						{
							aBook[bookOrder].LendOut();
							Date aDate= Date();
							Transaction newTransaction;
							newTransaction.inBook=aBook[bookOrder];
							newTransaction.inPatron=aPatron[patronOrder];
							newTransaction.inDate=aDate;
							aTransaction.push_back(newTransaction);

							cout<<"正在录入借阅信息..."<<endl;
							cout<<"操作完成!"<<endl<<endl;
							newTransaction.DisplayInfo();
						}
					}
				if (!patronExist)
				{
					cout<<"系统中没有该用户,请先录入"<<endl<<"操作未完成"<<endl<<endl;
				}
			}
			if (!bookExist)
			{
				cout<<"系统中暂时没有这本书"<<endl<<"操作未完成"<<endl<<endl;			
			}
	 }