亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? reader.h

?? 小型圖書管理系統
?? H
字號:
#include "Book.h"

const int MRN=104;
static int RN=1;//靜態讀者編號
const int MBor=5;//每次最大借閱量
const int MDes=5;//最多預定圖書數目


class Book;

class Reader
{
private:
	//讀者存儲結構
	Book B;
	int bAdd;//臨時保存讀者選定圖書的物理地址
	int eb;//記錄書庫是否為空
	int rNum[MRN];
	char rName[MRN][20];
	int brNum[MRN][MBor]; //當前借閱圖書編號,初始值為-1
	int deNum[MRN][MDes]; //記錄當前預借圖書書號 初始值為-1
	int rtop;
	int Irtop;

	//讀者用戶名索引結構,便于讀者快速登陸
	char IrName[MRN][20];
	int IrAdd[MRN];
public:
	Reader();//讀者構造函數(讀取書庫與讀者文件)
	~Reader();
	int IsEmpty();
	int CheckR(int bnum,int rn);//還書核實返回-1錯誤 返回i可以還書 返回-2該讀者還未借書
    int CheckD(int bnum,int rn);//取消預借核實返回-1錯誤 返回i可以取消 返回-2該讀者還未預借
	void ReadReader();//讀取讀者信息

//********************************管理員對讀者操作函數**********************************
	void CleanReader();  //清空讀者信息

//***********************************讀者自身操作函數***********************************

	void ViewReader(int num);//讀者查看自身信息(這里num為主函數中記錄的讀者物理地址)
	int AddReader(char rname[]);//添加讀者(讀者注冊)返回新建讀者編
	int Login(char rname[]);   //讀者登陸函數,返回值為讀者編號
	
//************************************讀者對圖書操作函數*********************************
    int BorBooks(int rn);//借書函數
	int DestineBooks(int rn);//預借圖書
	int ReturnBooks(int bnum,int rn);//還書函數
	int DesRBooks(int bnum,int rn);//取消預借
	//圖書檢索函數
	int FindName(char bname[]);  //書名 
	int FindWriter(char bwriter[]);//作者
};

////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////Reader.cpp



Reader::Reader()
{
	int i;
	//初始化
	rtop =-1;
	Irtop =-1;
	bAdd=-1;
	for(i=0; i<MRN; i++)
	{
		rNum[i]=-1;
		rName[i][0]='\0';
		IrAdd[i]=-1; 
		IrName[i][0] ='\0';
		for(int j=0; j<MBor; j++)
		{
			brNum[i][j] =-1;
			deNum[i][j] =-1;
		}
	}
}


void Reader::ReadReader()
{
	int i,j,k;
	B.ReadBook();//調用讀取圖書文件函數


	//讀者結構讀取
	i=0;
	ifstream rfile("Reader.txt",ios::in);
	rfile >>rtop >>RN;
	while(!rfile.eof())
	{
		rfile >>rNum[i] >>rName[i] ;
		for(j=0; j<MBor; j++)
			rfile >>brNum[i][j];
		i++;
	}
	rfile.close();
	
	//讀者索引讀取
	
	ifstream irfile("IndexReader.txt",ios::in);
	while(!irfile.eof())
	{
		irfile >>k;
		irfile >>IrName[k];
		irfile >>IrAdd[k];
		
	}
	irfile.close();
}

//檢查空
int Reader::IsEmpty()
{
	if(rtop!=-1) 
		return 1;
	else 
		return 0;
}



int Reader::CheckR(int bnum,int rn)
{
	int temp=0;//記錄當前讀者所借圖書數量
	for(int i=0;i<MBor;i++)
	{
		if(brNum[rn][i]!=-1)
			temp++;
	}
	if(temp!=0)
	{
		for(int i=0; i<MBor; i++)
		{
			if(brNum[rn][i] ==bnum)
			{
				return i;
			}
		}
		return -1;
	}
	else return -2;
}


int Reader::CheckD(int bnum,int rn)
{
	int temp=0;//記錄當前讀者所借圖書數量
	for(int i=0;i<MDes;i++)
	{
		if(deNum[rn][i]!=-1)
			temp++;
	}
	if(temp!=0)
	{
		for(int i=0; i<MDes; i++)
		{
			if(deNum[rn][i] ==bnum)
			{
				return i;
			}
		}
		return -1;
	}
	else return -2;
}


Reader::~Reader()
{
	int i,j;
	//讀者結構保存
	ofstream rfout("Reader.txt",ios::out);
	rfout <<rtop <<" " <<RN <<" ";
	for ( i=0; i<=rtop; i++)
	{
		rfout <<rNum[i] <<" "
			<<rName[i] <<" ";
		for(j=0; j<MBor; j++)
			rfout <<brNum[i][j] <<" ";
	}
	rfout.close();
	
	//讀者索引保存
	ofstream irfout("IndexReader.txt",ios::out);
	for ( i=0; i<MRN; i++)
	{
		if(IrName[i][0]!='\0')
		{
			irfout <<i <<" "
				<<IrName[i] <<" "
				<<IrAdd[i] <<" ";
		}
	}
	irfout.close();
	B.~Book();
}

//*************************************************************************管理員操作函數

//清空讀者信息
void Reader::CleanReader()
{
	RN=1;
	rtop =-1;
	Irtop =-1;
	for(int i=0; i<MRN; i++)
	{
		IrAdd[i]=-1; 
		IrName[i][0] ='\0';
		for(int j=0; j<MBor; j++)
		{
			brNum[i][j] =-1;
		}
	}
}



//************************************************************************讀者自身操作函數


//讀者查看自身信息
void Reader::ViewReader(int num)
{
	int j;
	if(rNum[num]!=-1)
	{
		cout<<"編號:"<<rNum[num]<<"\t"
			<<"用戶名:"<<rName[num]<<"\t"<<endl;
		cout<<"以下為您已借閱的圖書信息~~~\n"
			<<"序號"<<"\t"
			<<"書名"<<"\t\t"
			<<"作者"<<"\t\t"
			<<"剩余量"<<"\t"
			<<"總量"<<endl;
		cout<<"-------------------------------------------------------------------"<<endl;
		for( j=0;j<MBor;j++)
		{
			if(brNum[num][j]!=-1)       //讀者借書編號初始值為-1	
				B.ViewOne(brNum[num][j]);
		}
		cout<<endl;
		cout<<"********************************************************************"<<endl;
		cout<<endl;
		cout<<"以下為您已預借的圖書信息~~~\n"
			<<"序號"<<"\t"
			<<"書名"<<"\t"
			<<"作者"<<"\t"
			<<"剩余量"<<"\t"
			<<"總量"<<endl;
		cout<<"-------------------------------------------------------------------"<<endl;
		for( j=0;j<MDes;j++)
		{
			if(deNum[num][j]!=-1)       //讀者借書編號初始值為-1	
				B.ViewOne(deNum[num][j]);
		}
	}
	else
		cout<<"不存在指定編號的讀者信息"<<endl;
}


//讀者登陸函數
int Reader::Login(char rname[]) //-1無該讀者 其他_為該讀者編號
{
	int h=4*(rname[0] -'a');
	while(IrName[h][0]!= '\0')
	{
		if(strcmp(IrName[h],rname) ==0)
		{
			return IrAdd[h];
		}
		h++;
		if(h>103) h=h-104;
	}
	return -1;
}

//讀者注冊
int Reader::AddReader(char rname[])
{
	rtop++;
	strcpy(rName[rtop],rname);
	//系統分配讀者號
	rNum[rtop] =RN++;
	
	//建立讀者姓名散列
	int h=B.H(rname);
	while(IrName[h][0]!='\0')
	{
		h++;
		if(h>103) h=h-104;
	}
	strcpy(IrName[h],rname);
	IrAdd[h] =rtop;
	return rNum[rtop];
}


//***********************************************************************讀者檢索圖書函數

int Reader::FindName(char bname[])//返回-1則不進行其他操作,其他為要進行操作的圖書物理地址
{
	eb=B.IsEmpty();
	if(eb==1)
	{
		B.FiEmpty();
		bAdd=B.FindName(bname,1);
		return bAdd;
	}
	else
	{
		cout<<"書庫為空"<<endl;
		return -1;
	}
}


int Reader::FindWriter(char bwriter[])//返回-1則不進行其他操作,其他為要進行操作的圖書物理地址
{
	eb=B.IsEmpty();
	if(eb==1)
	{
		B.FiEmpty();
		bAdd=B.FindWriter(bwriter,1);
		return bAdd;
	}
	else
	{
		cout<<"書庫為空"<<endl;
		return -1;
	}
}


//*********************************************************************************借還書操作

//借書
int Reader::BorBooks(int rn) //返回1為借閱成功  0為借閱量滿  -1為此類書無庫存
{
	int temp;
	for(int j=0; j<MBor; j++)
	{
		if(brNum[rn][j]==-1)
		{
			temp=B.BorBook(bAdd);
			if(temp!=0)
			{
				brNum[rn][j]=temp; //讀者rn 借書編號添加
				return 1;
			}
			else
				return -1;
		}
	}
	return 0;
}

//預借
int Reader::DestineBooks(int rn) //返回1為預借閱成功  0為預借閱量滿  -1為此類書無庫存
{
	int temp;
	for(int j=0; j<MDes; j++)
	{
		if(deNum[rn][j]==-1)
		{
			temp=B.DesBook(bAdd);
			if(temp!=0)
			{
				deNum[rn][j]=temp; //讀者rn 借書編號添加
				return 1;
			}
			else
				return -1;
		}
	}
	return 0;
}


//還書
int Reader::ReturnBooks(int bnum,int rn)//返回-1操作錯誤  -2當前借書量為空,返回1還書成功
{
	int n=CheckR(bnum,rn);
	if(n==-1)
		return -1;
	else if(n==-2) 
		return -2;
	else
	{
		brNum[rn][n]=-1;
		B.ReturnBook(bnum);
		return 1;
	}
}

//取消預定
int Reader::DesRBooks(int bnum,int rn)//返回-1操作錯誤  -2當前預借量為空,取消成功1
{
	int n=CheckD(bnum,rn);
	if(n==-1)
		return -1;
	else if(n==-2) 
		return -2;
	else
	{
		deNum[rn][n]=-1;
		B.ReturnBook(bnum);
		return 1;
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产色综合久久久蜜香臀| 久久国产婷婷国产香蕉| 国产精品丝袜黑色高跟| 久久久国产午夜精品| 欧美—级在线免费片| 中文字幕人成不卡一区| 亚洲视频一二三| 亚洲国产日韩a在线播放| 奇米色777欧美一区二区| 蜜臂av日日欢夜夜爽一区| 国产精品自产自拍| 在线亚洲高清视频| 欧美变态凌虐bdsm| 欧美国产禁国产网站cc| 一区二区三区 在线观看视频| 亚洲成人在线网站| 国产91丝袜在线播放0| 欧美主播一区二区三区美女| 久久综合资源网| 一区二区三区四区乱视频| 国模一区二区三区白浆| 91麻豆免费视频| www日韩大片| 日韩电影在线一区| 99这里只有精品| 久久人人97超碰com| 天堂午夜影视日韩欧美一区二区| 成人午夜视频福利| 久久久.com| 国产精品中文字幕日韩精品| 欧美亚洲高清一区| 亚洲视频一区二区免费在线观看| 国产精品综合网| 精品国产乱码久久久久久牛牛 | 日韩高清欧美激情| 不卡的av在线播放| 亚洲国产高清aⅴ视频| 国产老肥熟一区二区三区| 337p日本欧洲亚洲大胆色噜噜| 亚洲国产精品麻豆| 欧美性生活久久| 亚洲综合一二区| 欧美亚洲日本一区| 日本成人在线视频网站| 欧美本精品男人aⅴ天堂| 秋霞国产午夜精品免费视频 | 亚洲6080在线| 欧美精品久久久久久久久老牛影院 | 国产午夜亚洲精品理论片色戒| 秋霞电影一区二区| 久久综合中文字幕| av电影天堂一区二区在线观看| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 成人深夜在线观看| 亚洲h动漫在线| 久久精品亚洲精品国产欧美kt∨| 成人av动漫在线| 亚洲综合久久久久| xf在线a精品一区二区视频网站| 国产不卡视频一区| 全部av―极品视觉盛宴亚洲| 国产精品无人区| 91精品国产综合久久久久久漫画 | 亚洲制服丝袜在线| 成人丝袜高跟foot| 丝袜美腿亚洲一区二区图片| 久久久夜色精品亚洲| 欧美色精品在线视频| 国产河南妇女毛片精品久久久| 亚洲影视资源网| 国产精品电影院| 国产视频一区在线播放| 欧美日韩国产不卡| 日本精品一级二级| 成人av集中营| 成人动漫在线一区| 国产精品夜夜爽| 日韩成人一级片| 日本大胆欧美人术艺术动态| 亚洲一区二区三区自拍| 亚洲一区二区在线视频| 一区二区三区精密机械公司| 国产精品不卡在线| 中文字幕日本乱码精品影院| 国产精品久久久久永久免费观看 | 99久久免费视频.com| 国产黄色91视频| 丁香五精品蜜臀久久久久99网站| 久久电影网电视剧免费观看| 美女网站视频久久| 精品在线观看免费| 国产成人亚洲综合a∨婷婷| 国产福利一区二区三区视频在线 | 中文在线资源观看网站视频免费不卡| 精品国产成人系列| 国产精品三级视频| 亚洲精品视频一区| 婷婷六月综合亚洲| 精品一区二区成人精品| av资源站一区| 欧美日本在线播放| 久久久久国产免费免费 | 欧美日韩中文另类| 欧美sm美女调教| 一区二区三区资源| 精品一区二区影视| 91免费观看视频在线| 精品视频一区二区三区免费| 91精品国产入口| 一区二区三区中文字幕| 国产精品99久久不卡二区| 欧美又粗又大又爽| 国产亚洲欧美日韩俺去了| 午夜伦欧美伦电影理论片| 国产精品一二二区| 精品女同一区二区| 一区二区三区蜜桃网| 高清不卡一区二区| 宅男在线国产精品| 亚洲精品成人少妇| 成人中文字幕合集| 久久久久99精品一区| 另类成人小视频在线| 制服丝袜激情欧洲亚洲| 一区二区三区.www| 一本大道综合伊人精品热热| 中文字幕精品综合| 国内精品伊人久久久久av影院| 欧美精品v日韩精品v韩国精品v| 亚洲美腿欧美偷拍| 在线观看日韩av先锋影音电影院| 中文字幕一区二区5566日韩| 春色校园综合激情亚洲| 欧美国产精品一区二区三区| 成人免费观看av| 中文字幕佐山爱一区二区免费| 一本大道久久a久久综合| **欧美大码日韩| 欧美日韩国产免费一区二区| 欧美日韩在线观看一区二区| 日韩一区二区免费在线电影| 蜜桃精品视频在线| 欧美xxx久久| 99精品热视频| 亚洲综合一区二区精品导航| 日韩欧美国产麻豆| av亚洲精华国产精华精| 亚洲成人av一区二区| 欧美精品一二三区| 成人短视频下载| 日韩1区2区3区| 国产精品全国免费观看高清 | 中文字幕一区二区在线播放| 日本高清无吗v一区| 国产一区二区免费看| 亚洲综合成人在线| 久久美女高清视频| 欧美在线观看一区二区| 风间由美中文字幕在线看视频国产欧美| 国产精品久久久久久亚洲毛片| 欧美一区二区免费视频| 波多野结衣中文字幕一区| 人人狠狠综合久久亚洲| 一区二区在线观看不卡| 久久久精品国产99久久精品芒果| 欧洲精品视频在线观看| 成人综合在线网站| 国产乱码精品一区二区三区忘忧草| 亚洲欧美另类在线| 国产精品视频免费| 国产日韩欧美激情| 久久美女高清视频| 国产欧美精品国产国产专区| 日韩三级av在线播放| 欧美一二三四在线| 日韩片之四级片| 久久久久久99精品| 久久久久久久久久久99999| 久久综合色8888| 久久精品一区八戒影视| 国产精品久久久久婷婷二区次| 欧美极品美女视频| 亚洲日本va午夜在线电影| 亚洲精品国产高清久久伦理二区 | 99国产精品99久久久久久| 99久久99久久久精品齐齐| 欧美中文字幕一区二区三区亚洲| 在线一区二区三区四区五区| 欧美精品久久天天躁| 精品国产区一区| 成人免费在线视频| 亚洲精品国产精品乱码不99| 五月天视频一区| 成人午夜av影视| 欧美喷水一区二区| 久久久久国产免费免费| 午夜激情久久久| 成人h动漫精品一区二| 69久久夜色精品国产69蝌蚪网| 久久九九影视网|