版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
#include<iostream>
#include<iomanip>
#include<fstream>
#include<string.h>
#defineMaxbor
100
#defineMaxr
100
#defineMaxb
100
usingnamespacestd;
classReader
{
private:
inttag;//刪除標(biāo)識(shí)1:已刪0:未刪
intno;//讀者編號(hào)
charname[10];//讀者姓名
intborbook[Maxbor];//所借圖書
public:
Reader(){}
char*getname(){returnname;}//獲取姓名
intgettag(){returntag;}//獲取刪除標(biāo)識(shí)
intgetno(){returnno;}//獲取讀者編號(hào)
voidsetname(charna[])//設(shè)置姓名
{
strcpy(name,na);}
voiddelbook(){tag=1;}//設(shè)置刪除標(biāo)識(shí)1:已刪0:未刪
voidaddreader(intn,char*na)//增長讀者
{
tag=0;
no=n;
strcpy(name,na);
for(inti=0;i<Maxbor;i++)
borbook[i]=0;
}
voidborrowbook(intbookid)//借書操作
{
for(inti=0;i<Maxbor;i++)
{
if(borbook[i]==0)
{
borbook[i]=bookid;
return;}
}}
intretbook(intbookid)//還書操作
{
for(inti=0;i<Maxbor;i++)
{
if(borbook[i]==bookid)
{
borbook[i]=0;
return1;}
}
return0;
}
voiddisp()//讀出讀者信息
{
cout<<setw(5)<<no<<setw(10)<<name<<"借書編號(hào):[";
for(inti=0;i<Maxbor;i++)
if(borbook[i]!=0)
cout<<borbook[i]<<"|";
cout<<"]"<<endl;
}
};
//讀者類庫,實(shí)現(xiàn)建立讀者旳個(gè)人資料
classRDatabase
{
private:
inttop;//讀者記錄指針
Readerread[Maxr];//讀者記錄
public:
RDatabase()//構(gòu)造函數(shù),將reader.txt讀到read[]中
{
Readers;
top=-1;
fstreamfile("E:\reader.txt",ios::in);//打開一種輸入文獻(xiàn)
while(1)
{
file.read((char*)&s,sizeof(s));
if(!file){cout<<"打開失敗"<<endl;break;}
top++;
read[top]=s;
}
file.close();//關(guān)閉reader.txt
}
voidclear()//刪除所有讀者信息
{
top=-1;
}
intaddreader(intn,char*na)//添加讀者時(shí)先查找與否存在
{
Reader*p=query(n);
if(p==NULL)
{
top++;
read[top].addreader(n,na);
return1;
}
return0;}
Reader*query(intreaderid)//按編號(hào)查找
{
for(inti=0;i<=top;i++)
if(read[i].getno()==readerid&&
read[i].gettag()==0)
{
return&read[i];
}
returnNULL;
}
voiddisp()//輸出所有讀者信息
{
for(inti=0;i<=top;i++)
read[i].disp();
}
voidreaderdata();//讀者庫維護(hù)
~RDatabase()//析構(gòu)函數(shù),將read[]寫到reader.txt文獻(xiàn)中
{
fstreamfile("E:\reader.txt",ios::out);
for(inti=0;i<=top;i++)
if(read[i].gettag()==0)
file.write((char*)&read[i],sizeof(read[i]));
file.close();}
};
voidRDatabase::readerdata()
{charchoice;
charrname[20];
intreaderid;
Reader*r;
while(choice!='0')
{
cout<<"\n\n\t\t\t讀者維護(hù)\n\n\n\t\t1新增\n\n\t\t2更改\n\n\t\t3刪除\n\n\t\t4查找\n\n\t\t5顯示\n\n\t\t6全刪\n\n\t\t0退出"<<endl;
cin>>choice;
switch(choice)
{
case'1':
cout<<"輸入讀者編號(hào):";
cin>>readerid;
cout<<"輸入讀者姓名:";
cin>>rname;
addreader(readerid,rname);
break;
case'2':
cout<<"輸入讀者編號(hào):";
cin>>readerid;
r=query(readerid);
if(r==NULL)
{
cout<<"該讀者不存在"<<endl;
break;
}
cout<<"輸入新旳姓名:";
cin>>rname;
r->setname(rname);
break;
case'3':
cout<<"輸入讀者編號(hào):";
cin>>readerid;
r=query(readerid);
if(r==NULL)
{
cout<<"該讀者不存在"<<endl;
break;
}
r->delbook();
break;
case'4':
cout<<"讀入讀者編號(hào):";
cin>>readerid;
r=query(readerid);
if(r==NULL)
{
cout<<"該讀者不存在"<<endl;
break;
}
r->disp();
break;
case'5':
disp();
break;
case'6':
clear();
break;
default:cout<<"輸入錯(cuò)誤,請(qǐng)從新輸入:";break;
}
}
}
//圖書類,實(shí)現(xiàn)對(duì)圖書旳描述,圖書旳編號(hào),書名,借出,還入等
classBook
{
private:
inttag;//刪除標(biāo)識(shí)1:已刪0:未刪
intno;//圖書編號(hào)
charname[20];//書名
intonshelf;//與否再架1:再架2:已借
public:
Book(){}
char*getname(){returnname;}//獲取姓名
intgetno(){returnno;}//獲取圖書編號(hào)
intgettag(){returntag;}//獲取刪除標(biāo)識(shí)
voidsetname(charna[])//設(shè)置書名
{
strcpy(name,na);
}
voiddelbook(){tag=1;}//刪除圖書
voidaddbook(intn,char*na)//增長圖書
{
tag=0;
no=n;
strcpy(name,na);
onshelf=1;
}
intborrowbook()//借書操作
{
if(onshelf==1)
{
onshelf=0;
return1;
}
return0;
}
voidretbook()//還書操作
{
onshelf=1;
}
voiddisp()//輸出圖書
{
cout<<setw(6)<<no<<setw(18)<<name<<setw(10)
<<(onshelf==1?"在架":"已借")<<endl;
}
};
//圖書庫類,實(shí)現(xiàn)對(duì)圖書旳維護(hù),查找,刪除等
classBDatabase
{
private:
inttop;//圖書記錄指針
Bookbook[Maxb];//圖書記錄
public:
BDatabase()//構(gòu)造函數(shù),將book.txt讀到book[]中
{
Bookb;
top=-1;
fstreamfile("E:\book.txt",ios::in);
while(1)
{
file.read((char*)&b,sizeof(b));
if(!file)break;
top++;
book[top]=b;
}
file.close();
}
voidclear()//全刪
{
top=-1;
}
intaddbook(intn,char*na)//增長圖書
{
Book*p=query(n);
if(NULL==p)
{
top++;
book[top].addbook(n,na);
return1;
}
return0;
}
Book*query(intbookid)//查找圖書
{
for(inti=0;i<=top;i++)
if(book[i].getno()==bookid&&book[i].gettag()==0)
{
return&book[i];
}
returnNULL;
}
voidbookdata();//圖書庫維護(hù)
voiddisp()
{
for(inti=0;i<=top;i++)
if(book[i].gettag()==0)
book[i].disp();
}
~BDatabase()//析構(gòu)函數(shù),將book[]寫到book.txt文獻(xiàn)中
{
fstreamfile("E:\book.txt",ios::out);
for(inti=0;i<=top;i++)
if(book[i].gettag()==0)
file.write((char*)&book[i],sizeof(book[i]));
file.close();
}
};
voidBDatabase::bookdata()
{
charchoice;
charbname[40];
intbookid;
Book*b;
while(choice!='0')
{
cout<<"\n\n\n\t\t\t圖書維護(hù)"<<endl<<endl;
cout<<"\t\t1新增\n\t\t2更改\n\t\t3刪除\n\t\t4查找\n\t\t5顯示\n\t\t6全刪\n\t\t0退出"<<endl;
cin>>choice;
switch(choice)
{
case'1':
cout<<"輸入圖書編號(hào):"<<endl;
cin>>bookid;
cout<<"輸入圖書書名:"<<endl;
cin>>bname;
addbook(bookid,bname);
break;
case'2':
cout<<"輸入圖書編號(hào):"<<endl;
cin>>bookid;
b=query(bookid);
if(b==NULL)
{
cout<<"該圖書不存在"<<endl;
break;
}
cout<<"輸入新旳書名:"<<endl;
cin>>bname;
b->setname(bname);
break;
case'3':
cout<<"讀入圖書編號(hào):"<<endl;
cin>>bookid;
b=query(bookid);
if(b==NULL)
{
cout<<"該圖書不存在"<<endl;
break;
}
b->delbook();
break;
case'4':
cout<<"讀入圖書編號(hào):"<<endl;
cin>>bookid;
b=query(bookid);
if(b==NULL)
{
cout<<"該圖書不存在"<<endl;
break;
}
b->disp();
break;
case'5':
disp();
break;
case'6':
clear();
break;
default:cout<<"輸入錯(cuò)誤,請(qǐng)從新輸入:";
}
}
}
//main()函數(shù)旳實(shí)現(xiàn),程序旳主界面旳引導(dǎo)voidmain()
{
charchoice='1';
intbookid,readerid;
RDatabaseReaderDB;
Reader*r;
BDatabaseBookDB;
Book*b;
while(choice!='0')
{
cout<<endl<<endl<<"\t\t\t圖書管理系統(tǒng)\n\n\n";
cout<<"\t\t\t1借書\n\n\t\t\t2還書\n\n\t\t\t3圖書維護(hù)\n\n\t\t\t4讀者維護(hù)\n\n\t\t\t0離開"<<endl;
cin>>choice;
switch(choice)
{
case'1':
cout<<"借書讀者編號(hào):";
cin>>readerid;
cout<<"圖書編號(hào):";
cin>>bookid;
r=ReaderDB.query(reader
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)藥行業(yè)運(yùn)輸協(xié)議模板
- 體育館裝修終止合同協(xié)議書
- 商業(yè)街區(qū)改造開發(fā)居間合同
- 水上清潔服務(wù)合同范本
- 成品油內(nèi)河運(yùn)輸協(xié)議
- 校園食堂裝修工程合同
- 教室環(huán)保石膏吊頂裝修協(xié)議
- 保健食品居間代理協(xié)議
- 路塹石方爆破施工方案
- 合同范例不需審查
- 寧騷公共政策學(xué)完整版筆記
- 走進(jìn)奧運(yùn)奧運(yùn)知識(shí)簡介
- 項(xiàng)目負(fù)責(zé)人考試題庫含答案
- 光伏發(fā)電項(xiàng)目屋面作業(yè)安全檢查表
- GB/T 7251.5-2017低壓成套開關(guān)設(shè)備和控制設(shè)備第5部分:公用電網(wǎng)電力配電成套設(shè)備
- 2023年湖南高速鐵路職業(yè)技術(shù)學(xué)院高職單招(數(shù)學(xué))試題庫含答案解析
- 中考語文非連續(xù)性文本閱讀10篇專項(xiàng)練習(xí)及答案
- 勇者斗惡龍9(DQ9)全任務(wù)攻略
- 經(jīng)顱磁刺激的基礎(chǔ)知識(shí)及臨床應(yīng)用參考教學(xué)課件
- 小學(xué)語文人教四年級(jí)上冊(cè)第四單元群文閱讀“神話故事之人物形象”PPT
- ISO 31000-2018 風(fēng)險(xiǎn)管理標(biāo)準(zhǔn)-中文版
評(píng)論
0/150
提交評(píng)論