Example #1
0
		void DisplayInfo()
		{
			cout<<"借阅信息------------------------------"<<endl;
			cout<<"图书信息----------------"<<endl;
			cout<<"书名:\t\t"<<inBook.GetName()<<endl;
			cout<<"作者:\t\t"<<inBook.GetAuthor()<<endl;
			cout<<"ISBN号:\t"<<inBook.GetISBNNum()<<endl;
			cout<<"出版日期:\t"<<inBook.GetDat()<<endl;

			cout<<"读者信息-----------------"<<endl;
			cout<<"姓名:\t\t"<<inPatron.GetName()<<endl;
			cout<<"图书卡号:\t"<<inPatron.GetCardNum()<<endl;
			cout<<"借书日期:\t"<<inDate.GetYear()<<"-"<<inDate.GetMonth()<<"-"<<inDate.GetDay()<<endl;
			if(inPatron.IsOwed())
				cout<<"欠费信息:\t欠费"<<inPatron.GetOweCount()<<"元"<<endl;
			else
				cout<<"欠费信息:\t无欠费记录"<<endl;

			cout<<endl;
		}
Example #2
0
	 //归还图书
	 void ReturnBook(Book reBook,Patron rePatron)
	 {
		 bool bookExisted=false;
		 bool patronExisted=false;
		 bool transactionExisted=false;
		 int bookOrder=0;
		 int patronOrder=0;
		 int transactionOrder=0;

		 cout<<"新操作:\t归还图书"<<endl;
		 cout<<"准备就绪..."<<endl;
		 cout<<"正在进行操作..."<<endl;

		 //检查图书是否存在
		 for(int i=0;i<aBook.size();i++)
			 if(reBook.GetISBNNum()==aBook[i].GetISBNNum())
			 {
				 bookExisted=true;
				 bookOrder=i;
			 }
		 if(!bookExisted)
		 {
			 cout<<"无当前图书信息,请先录入"<<endl;
			 return;
		 }

		 //检查读者是否存在
		 for(int i=0;i<aPatron.size();i++)
			 if(rePatron.GetCardNum()==aPatron[i].GetCardNum())
			 {
				 patronExisted=true;
				 patronOrder=i;
			 }
		 if(!patronExisted)
		 {
			 cout<<"无当前读者信息,请先录入"<<endl;
			 return;
		 }

		 //判断该Transaction是否存在
		 for(int i=0;i<aTransaction.size();i++)
			 if(aTransaction[i].inBook.GetISBNNum()==reBook.GetISBNNum() && aTransaction[i].inPatron.GetCardNum()==rePatron.GetCardNum())
				{
					transactionExisted=true;
					transactionOrder=i;
				}
		if(!transactionExisted)
		{
				cout<<"借书记录中无此条记录,请仔细核对书名和读者姓名后再提交"<<endl;
				return;
		}

		 //修改图书的借出特性
		 aBook[bookOrder].ReturnIn();

		 //修改Transaction向量
		 //vector <Transaction>::iterator iter;
		 //iter=aTransaction.begin();
		 aTransaction.erase(aTransaction.begin()+transactionOrder);





		 
		 cout<<"操作完成,本次操作信息如下"<<endl;
		 cout<<"-----归还图书信息如下-----"<<endl;
		 cout<<"----还书者信息-----"<<endl;
		 cout<<"姓名:\t"<<rePatron.GetName()<<"读者证号:\t"<<rePatron.GetCardNum()<<endl;
		 cout<<"-----归还图书信息----"<<endl;
		 cout<<"书名:\t"<<reBook.GetName()<<"图书作者:\t"<<reBook.GetAuthor()<<endl;
		 
	 }
Example #3
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;			
			}
	 }