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

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

?? c++圖書管理系統(源碼).txt

?? c++圖書管理系統源代碼
?? TXT
字號:
//C++圖書管理系統
////////////////////////////////////////////////////////////////////////////////
#include <iostream> 
#include <iomanip> 
#include <string> 
#include <fstream>					//輸入/輸出文件流類 
using namespace std; 

const int Maxr=100;					//最多的讀者 
const int Maxb=100;					//最多的圖書 
const int Maxbor=5;					//每位讀者最多借五本書 

////////////////////////////////////////////////////////////////////////////////
//讀者類,實現對讀者的信息的描述 
class Reader
{    
private: 
	int	tag;						 	//刪除標記 1:已刪 0:未刪 
	int	no;								//讀者編號 
	char name[10]; 					  	//讀者姓名 
	int	borbook[Maxbor];				//所借圖書 
public: 
	Reader() {} 
	char *getname() {return name;}		//獲取姓名 
	int gettag() {return tag;}			//獲取刪除標記 
	int getno() {return no;}			//獲取讀者編號 
	void setname(char na[])				//設置姓名 
	{  
		strcpy(name,na); 
 	} 
	void delbook(){ tag=1; }			//設置刪除標記 1:已刪 0:未刪 
	void addreader(int n,char *na)		//增加讀者 
	{  
		tag=0; 
		no=n; 
		strcpy(name,na); 
		for(int i=0;i<Maxbor;i++) 
			borbook[i]=0; 
	} 
	void borrowbook(int bookid)			//借書操作 
	{ 
		for(int i=0;i<Maxbor;i++) 
		{  
			if (borbook[i]==0) 
			{ 
				borbook[i]=bookid; 
				return; 
			} 
		} 
	} 
	int retbook(int bookid)//還書操作 
	{  
		for(int i=0;i<Maxbor;i++) 
		{  
			if(borbook[i]==bookid) 
			{ 
				borbook[i]=0; 
				return 1; 
			} 
		} 
		return 0; 
	} 
	void disp()//讀出讀者信息 
	{  
		cout << setw(5) << no <<setw(10) << name<<"  借書編號:[ "; 
		for(int i=0;i<Maxbor;i++) 
			if(borbook[i]!=0)
			{
				if(i!=0) cout<<" | ";
				cout << borbook[i]; 
			}
		cout << " ]"<<endl; 
	} 
}; 
////////////////////////////////////////////////////////////////////////////////////// 
//讀者類庫,實現建立讀者的個人資料 
class RDatabase 
{  
private: 
	int top;			//讀者記錄指針 
	Reader read[Maxr];	//讀者記錄 
public: 
	RDatabase()			//構造函數,將reader.txt讀到read[]中 
	{ 
		Reader s; 
		top=-1; 
		fstream file("reader.txt",ios::in);		//打開一個輸入文件 
		while (1) 
		{ 
			file.read((char *)&s,sizeof(s)); 
			if (!file)break; 
			top++; 
			read[top]=s; 
		} 
		file.close();   //關閉 reader.txt 
	} 
	void clear()//刪除所有讀者信息 
	{ 
		top=-1; 
	} 
	int addreader(int n,char *na)//添加讀者時先查找是否存在,
	{ 
		Reader *p=query(n); 
		if (p==NULL) 
		{ 
			top++; 
			read[top].addreader(n,na); 
			return 1; 
		} 
		else
		{
			cout<<endl<<"讀者 "<<na<<" 已存在,請重新輸入!"<<endl;
			return 0; 
		}
	} 
	Reader *query(int readerid)//按編號查找 
	{ 
		for (int i=0;i<=top;i++) 
			if (read[i].getno()==readerid && read[i].gettag()==0) 
			{ 
				return &read[i]; 
			} 
		return NULL; 
	} 
	void disp() //輸出所有讀者信息 
	{ 
		for (int i=0;i<=top;i++) 
			read[i].disp(); 
	} 
	void readerdata();//讀者庫維護 
	~RDatabase() //析構函數,將read[]寫到reader.txt文件中 
	{ 
		fstream file("reader.txt",ios::out);	//用ios::out方式打開時文件的內容丟失。
		for (int i=0;i<=top;i++) 
			if (read[i].gettag()==0) 
				file.write((char *)&read[i],sizeof(read[i])); 
		file.close(); 
	} 
}; 
void RDatabase::readerdata() 
{ 
	char choice; 
	char rname[20]; 
	int readerid; 
	Reader *r; 
	while (choice!='0') 
	{ 
		cout <<"\n\n\t\t\t讀  者  維  護\n\t\t\t--------------\n\n\t\t\t1   新      增\n\t\t\t2   更      改\n\t\t\t3   刪      除\n\t\t\t4   查      找\n\t\t\t5   顯      示\n\t\t\t6   全      刪\n\t\t\t0   退      出"<<endl; 
		cin >> choice; 
		switch (choice) 
		{ 
		case '1': 
			cout << "輸入讀者編號: "; 
			cin >> readerid; 
			cout << "輸入讀者姓名: "; 
			cin >> rname; 
			addreader (readerid,rname); 
			break; 
		case '2': 
			cout << "輸入讀者編號: "; 
			cin >> readerid; 
			r=query(readerid); 
			if (r==NULL) 
			{ 
				cout <<endl<< " 該讀者不存在! "<<endl; 
				break; 
			} 
			cout << "輸入新的姓名: "; 
			cin >> rname; 
			r->setname(rname); 
			break; 
		case '3': 
			cout << " 輸入讀者編號: "; 
			cin >> readerid; 
			r=query(readerid); 
			if (r==NULL) 
			{ 
				cout <<endl<<" 該讀者不存在!" << endl; 
				break; 
			} 
			r->delbook(); 
			break; 
		case '4': 
			cout << "讀入讀者編號: "; 
			cin >> readerid; 
			r=query(readerid); 
			if (r==NULL) 
			{ 
				cout <<endl<<"該讀者不存在!"<< endl; 
				break; 
			} 
			r->disp(); 
			break; 
		case '5': 
			disp(); 
			break; 
		case '6': 
			clear(); 
			break; 
		default:cout<<"輸入錯誤,請從新輸入:";break;
		} 
	} 
} 
 
////////////////////////////////////////////////////////////////////////////////
//圖書類,實現對圖書的描述,圖書的編號,書名,借出,還入等 
class Book 
{ 
private: 
	int tag;						//刪除標記 1:已刪 0:未刪 
	int no;							//圖書編號 
	char name[20];					//書名 
	int onshelf;					//是否在架 1:在架 2:已借 
public: 
	Book(){} 
	char *getname() { return name; }//獲取姓名 
	int getno(){ return no; }		//獲取圖書編號 
	int gettag(){ return tag; }		//獲取刪除標記 
	void setname(char na[])			//設置書名 
	{ 
		strcpy(name,na); 
	} 
	void delbook(){ tag=1; }		//刪除圖書 
	void addbook(int n,char *na)	//增加圖書 
	{ 
		tag=0; 
		no=n; 
		strcpy(name,na); 
		onshelf=1; 
	} 
	int borrowbook()//借書操作 
	{ 
		if (onshelf==1) 
		{ 
			onshelf=0; 
			return 1; 
		} 
		return 0; 
	} 
	void retbook()//還書操作 
	{ 
		onshelf=1; 
	} 
	void disp()//輸出圖書 
	{ 
		cout << setw(6) << no << setw(18) << name << setw(10) <<(onshelf==1 ? "在架" : "已借")<<endl; 
	} 
}; 

////////////////////////////////////////////////////////////////  
//圖書庫類,實現對圖書的維護,查找,刪除等 
class BDatabase 
{ 
private: 
	int top;			//圖書記錄指針 
	Book book[Maxb];	//圖書記錄 
public: 
	BDatabase()			//構造函數,將book.txt讀到book[]中 
	{  
		Book b; 
		top=-1; 
		fstream file("book.txt",ios::in); 
		while (1) 
		{ 
			file.read((char *)&b,sizeof(b)); 
			if (!file) break; 
				top++; 
			book[top]=b; 
		} 
		file.close(); 
	} 
	void clear()//全刪 
	{ 
		top=-1; 
	} 
	int addbook(int n,char *na)//增加圖書 
	{ 
		Book *p=query(n); 
		if (NULL==p) 
		{ 
			top++; 
			book[top].addbook(n,na); 
			return 1; 
		} 
		else
		{
			cout<<endl<<"圖書 "<<na<<" 已存在,請重新輸入!"<<endl;
			return 0; 
		}
	} 
	Book *query(int bookid)//查找圖書 
	{ 
		for (int i=0;i<=top;i++) 
		if (book[i].getno()==bookid &&book[i].gettag()==0) 
		{     
			return &book[i]; 
		} 
		return NULL; 
	} 
	void bookdata();//圖書庫維護 
	void disp() 
	{ 
		for (int i=0;i<=top;i++) 
		if (book[i].gettag()==0) 
			book[i].disp(); 
	} 
	~BDatabase()//析構函數,將book[]寫到book.txt文件中 
	{ 
		fstream file("book.txt",ios::out);	//用ios::out方式打開時文件的內容丟失。
		for (int i=0;i<=top;i++) 
		if (book[i].gettag()==0) 
			file.write( (char *)&book[i],sizeof(book[i])); 
		file.close(); 
	} 
}; 
void BDatabase::bookdata() 
{ 
	char choice; 
	char bname[40]; 
	int bookid; 
	Book *b; 
	while (choice!='0') 
	{ 
		cout <<"\n\n\n\t\t\t圖  書  維  護 "<<endl; 
		cout <<"\t\t\t-------------- "<<endl<<endl; 
		cout<<"\t\t\t1   新      增\n \t\t\t2   更      改\n\t\t\t3   刪      除\n\t\t\t4   查      找\n\t\t\t5   顯      示\n\t\t\t6   全      刪\n\t\t\t0   退      出"<<endl; 
		cin >> choice; 
		switch (choice) 
		{ 
		case '1': 
			cout << "輸入圖書編號: "; 
			cin >> bookid; 
			cout << "輸入圖書書名: "; 
			cin >> bname; 
			addbook(bookid,bname); 
			break; 
		case '2': 
			cout << "輸入圖書編號: "; 
			cin >> bookid; 
			b=query(bookid); 
			if (b==NULL) 
			{ 
				cout <<endl<< " 該圖書不存在! "<<endl; 
				break; 
			} 
			cout << "輸入新的書名: "; 
			cin >> bname; 
			b->setname(bname); 
			break; 
		case '3': 
			cout <<" 讀入圖書編號: "; 
			cin >> bookid; 
			b=query(bookid); 
			if (b==NULL) 
			{ 
				cout <<endl<<" 該圖書不存在!" << endl; 
				break; 
			} 
			b->delbook(); 
			break; 
		case '4': 
			cout << " 讀入圖書編號: "; 
			cin >> bookid; 
			b=query(bookid); 
			if (b==NULL) 
			{ 
				cout <<endl<<" 該圖書不存在!"<< endl; 
				break; 
			} 
			b->disp(); 
			break; 
		case '5': 
			disp(); 
			break; 
		case '6': 
			clear(); 
			break; 
		default:cout<<"輸入錯誤,請從新輸入!"; 
		} 
   } 
} 

////////////////////////////////////////////////////////////////////////////////
//main() 函數的實現,程序的主界面的引導 
 
int main() 
{    
	char choice; 
	int bookid,readerid; 
	Reader *r; 
	RDatabase ReaderDB; 
	Book *b; 
	BDatabase BookDB; 
	while(choice!='0') 
	{      
		cout <<endl<<endl<<"\t\t\t圖 書 管 理 系 統"; 
		cout <<endl<<"\t\t\t-----------------\n\n"; 
		cout <<"\t\t\t1   借       書\n\n\t\t\t2   還       書 \n\n\t\t\t3   圖 書 維 護\n\n\t\t\t4   讀 者 維 護\n\n\t\t\t0   離       開"<<endl; 
		cin >> choice; 
		switch (choice) 
		{ 
		case '1': 
			cout <<"借書:\n 讀者編號: "; 
			cin >>readerid; 
			cout <<" 圖書編號: "; 
			cin >>bookid; 
			r=ReaderDB.query(readerid);//按編號查找 
			if (r==NULL) 
			{ 
				cout <<endl<<" 不存在該讀者,不能借書!"<< endl; 
				break; 
			} 
			b=BookDB.query(bookid); 
			if (b==NULL) 
			{ 
				cout <<endl<<" 不存在該圖書,不能借書!"<< endl; 
				break; 
			} 
			if (b->borrowbook()==0) 
			{ 
				cout <<endl<< " 該圖書已借出,不能借書!"<< endl; 
				break; 
			} 
			r->borrowbook(b->getno()); 
			break; 
		case '2': 
			cout<<"還書:\n 讀者編號: "; 
			cin >>readerid; 
			cout << " 圖書編號: "; 
			cin >>bookid; 
			r=ReaderDB.query(readerid); 
			if (r==NULL) 
			{ 
				cout <<endl<<" 不存在該讀者,不能還書!" << endl; 
				break; 
			} 
			b=BookDB.query(bookid); 
			if (b==NULL) 
			{ 
				cout <<endl<<" 不存在該圖書,不能還書!" <<endl; 
				break; 
			} 
			b->retbook(); 
			r->retbook(b->getno()); 
			break; 
		case '3': 
			BookDB.bookdata(); 
			break; 
		case '4': 
			ReaderDB.readerdata(); 
			break; 
		case '0': return 0;
		default:cout<<endl<<"輸入錯誤,請從新輸入!"; 
		} 
	} 
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品美女久久久久久2018| 亚洲成人精品在线观看| 色综合久久久久久久| 国内精品伊人久久久久影院对白| 亚洲成人午夜影院| 99热在这里有精品免费| 国产久卡久卡久卡久卡视频精品| 精品综合久久久久久8888| 精品一区二区免费看| 在线中文字幕一区二区| 欧美电影在线免费观看| 宅男噜噜噜66一区二区66| 日韩欧美国产一区二区三区| 在线综合视频播放| 亚洲三级在线观看| 亚洲综合免费观看高清完整版在线| 亚洲欧洲国产日韩| 亚洲va在线va天堂| 色先锋aa成人| 亚洲婷婷综合色高清在线| 国产成人综合亚洲网站| av亚洲精华国产精华精| 久久久99精品久久| 亚洲色图欧美激情| 94-欧美-setu| 日韩一区二区免费电影| 亚洲视频一区二区在线观看| 国产成人精品午夜视频免费 | 老司机免费视频一区二区| 韩国三级电影一区二区| 日韩一级二级三级| 久久爱www久久做| 欧美成人精品福利| 亚洲视频狠狠干| 一本色道a无线码一区v| 亚洲卡通动漫在线| 国内欧美视频一区二区| 国产亚洲1区2区3区| 粉嫩av亚洲一区二区图片| 欧美一区二区美女| 夜夜嗨av一区二区三区中文字幕 | 亚洲高清不卡在线观看| 国产不卡免费视频| 国产精品视频线看| 欧美性受xxxx黑人xyx| 久久精品无码一区二区三区| 国产成人在线观看| 亚洲色欲色欲www在线观看| 91久久精品国产91性色tv| 五月婷婷综合激情| 色婷婷激情久久| 天天色天天爱天天射综合| 欧美mv和日韩mv国产网站| 国产经典欧美精品| 一区二区三区欧美激情| 这里只有精品视频在线观看| 国产风韵犹存在线视精品| 亚洲视频免费在线| 欧美videofree性高清杂交| 成人高清免费在线播放| 欧美韩日一区二区三区| 国产精品91xxx| 伊人开心综合网| 在线观看一区二区视频| 成人性生交大合| 欧美videos大乳护士334| 丁香婷婷综合色啪| 亚洲第一精品在线| 久久久精品国产免大香伊| 日韩电影在线免费观看| 一本久久a久久免费精品不卡| 日韩1区2区日韩1区2区| 中文字幕高清不卡| 欧美精品免费视频| 成人妖精视频yjsp地址| 日韩精品一级中文字幕精品视频免费观看 | 亚洲成av人影院在线观看网| wwwwxxxxx欧美| 国产麻豆精品一区二区| 久久精品视频免费| 欧美日韩精品免费观看视频| 日日夜夜精品视频免费 | 精品国产伦一区二区三区免费 | 日韩丝袜美女视频| 91视频免费播放| 亚洲一区欧美一区| 国产网站一区二区| 欧美一区二区精品在线| 欧美性做爰猛烈叫床潮| 91麻豆视频网站| 懂色一区二区三区免费观看| 美女精品一区二区| 国产日韩欧美精品电影三级在线| 国产成人在线视频播放| 精品一区中文字幕| 免费欧美在线视频| 久久久久99精品一区| 制服丝袜av成人在线看| 欧美在线啊v一区| 日本大香伊一区二区三区| 成人爱爱电影网址| 成人黄色国产精品网站大全在线免费观看| 日韩国产精品91| 午夜精品视频在线观看| 亚洲尤物视频在线| 亚洲综合一区二区| 亚洲激情中文1区| 亚洲精品欧美专区| 亚洲欧洲综合另类| 日韩免费看的电影| 日韩欧美国产午夜精品| 日韩丝袜情趣美女图片| 精品国精品自拍自在线| 精品噜噜噜噜久久久久久久久试看| 欧美丰满一区二区免费视频 | 蜜桃视频一区二区| 久久精品国产精品亚洲精品| 奇米777欧美一区二区| 青青青伊人色综合久久| 久久精品国产秦先生| 国产麻豆视频精品| av不卡在线播放| 色8久久精品久久久久久蜜| 色婷婷久久久久swag精品 | 日本不卡一区二区| 免费久久99精品国产| 黄色小说综合网站| 国产91高潮流白浆在线麻豆| www.亚洲精品| 在线欧美日韩精品| 欧美一区二区三区人| 欧美精品一区二区不卡| 国产精品入口麻豆原神| 一区二区在线观看av| 丝袜亚洲另类丝袜在线| 国内精品伊人久久久久av影院| 懂色一区二区三区免费观看| 日本丶国产丶欧美色综合| 91精品福利在线一区二区三区| 精品国产sm最大网站免费看 | 国产欧美精品一区二区色综合 | 樱桃视频在线观看一区| 日韩电影免费在线观看网站| 国产一区福利在线| 99久久婷婷国产综合精品电影 | 亚洲视频小说图片| 奇米色一区二区| www.性欧美| 欧美一区二区三区成人| 国产日本欧洲亚洲| 一区二区激情视频| 激情伊人五月天久久综合| 一本一道久久a久久精品| 日韩午夜激情av| 亚洲欧美视频在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎| www.日韩大片| 精品三级av在线| 亚洲最大成人综合| 国产乱妇无码大片在线观看| 欧美亚洲国产怡红院影院| 久久精品人人爽人人爽| 亚洲成在线观看| 99精品视频在线播放观看| 精品粉嫩aⅴ一区二区三区四区| 樱花草国产18久久久久| 国产成人免费视频一区| 欧美一区二区视频在线观看| 亚洲欧洲日本在线| 国产激情一区二区三区四区 | 亚洲国产视频在线| 岛国精品在线播放| 日韩一区二区三区四区| 亚洲va欧美va国产va天堂影院| 成人国产电影网| 中文字幕国产一区| 国产精品18久久久久久久网站| 欧美高清精品3d| 午夜久久久影院| 欧美三区免费完整视频在线观看| 欧美日韩精品系列| 亚洲精品一卡二卡| 成人福利视频网站| 国产亚洲精品精华液| 麻豆一区二区三| 欧美一区二区三区四区视频| 一二三区精品视频| 色狠狠色狠狠综合| 一区二区三区美女| 91浏览器打开| 一区二区三区精品视频| 97久久超碰国产精品电影| 国产精品国产自产拍在线| 午夜精品久久久久久久久久| 日本电影欧美片| 亚洲国产精品久久人人爱蜜臀| 色天天综合色天天久久| 亚洲欧美日韩一区二区三区在线观看| 东方aⅴ免费观看久久av| 国产精品污网站|