C++课程设计图书馆管理系统.docx

上传人:b****6 文档编号:3730148 上传时间:2022-11-25 格式:DOCX 页数:21 大小:18.87KB
下载 相关 举报
C++课程设计图书馆管理系统.docx_第1页
第1页 / 共21页
C++课程设计图书馆管理系统.docx_第2页
第2页 / 共21页
C++课程设计图书馆管理系统.docx_第3页
第3页 / 共21页
C++课程设计图书馆管理系统.docx_第4页
第4页 / 共21页
C++课程设计图书馆管理系统.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

C++课程设计图书馆管理系统.docx

《C++课程设计图书馆管理系统.docx》由会员分享,可在线阅读,更多相关《C++课程设计图书馆管理系统.docx(21页珍藏版)》请在冰豆网上搜索。

C++课程设计图书馆管理系统.docx

C++课程设计图书馆管理系统

//图书室管理系统

#include

#include

#include

usingnamespacestd;

constintMax_book=3000;//可保存图书数量的上限

constintMax_reader=1000;//可保存读者数量的上限

constintMax_bor_book=2;//读者借阅图书本数上限

classBook//图书类

{

private:

intID;//登录号

intnum;//设置书目编号

intflag;//设置删除标记

intonshelf;//判断图书是否再架

charbname[50];//设置图书书名

charw_name[10];//设置作者姓名

public:

Book(){}

intgetID(){returnID;}//获取登录号

intgetnum(){returnnum;}//获取图书编号

intgetflag(){returnflag;}//获取删除标记

char*getbname(){returnbname;}//获取图书书名

char*getw_name(){returnw_name;}//获取作者姓名

voidsetbname(charna[]){strcpy(bname,na);}//设置书名

voidsetwname(charna[]){strcpy(w_name,na);}//设置作者名字

voidAddbook(intID,intn,char*na,char*wname);//新增图书

intborrowbook();//借阅图书

voidretbook();//归还图书

voiddelbook(){flag=1;}//删除图书信息

voidshow();//输出图书信息

};

voidBook:

:

Addbook(intID,intn,char*na,char*wname)//新增图书信息

{

flag=0;

ID=ID;

num=n;

strcpy(bname,na);

strcpy(w_name,wname);

onshelf=1;

}

intBook:

:

borrowbook()//借阅图书

{

if(onshelf==1)

{

onshelf=0;

return1;

}

return0;

}

voidBook:

:

retbook()//归还图书

{

onshelf=1;

}

voidBook:

:

show()//输出图书详细信息

{

cout<<"图书状态:

"<<(onshelf==1?

"在架可借":

"本馆借出")<<""<<"作者姓名:

"<

"<<"《"<

cout<<"图书编号:

"<

}

classBookdata//图书数据类

{

private:

intbook_total;//图书总共数目

Bookbook[Max_book];//图书记录数组

public:

Bookdata();

intAddbook(intID,intn,char*na,char*wname);//新增图书

Book*search_ID(intID)//按登录号查找图书

{

for(inti=0;i<=book_total;i++)

if(book[i].getID()==ID&&book[i].getflag()==0)

{

return&book[i];

}

returnNULL;}

Book*search_bnum(intbook_num)//按图书编号查找图书

{

for(inti=0;i<=book_total;i++)

if(book[i].getnum()==book_num&&book[i].getflag()==0)

{

return&book[i];

}

returnNULL;

}

Book*search_bname(charbname[50])//按图书书名查找图书

{

for(inti=0;i<=book_total;i++)

if(strcmp(book[i].getbname(),bname)==0&&book[i].getflag()==0)

{

return&book[i];

}

returnNULL;

}

Book*search_wname(charwname[50])//按作者姓名查找图书

{

for(inti=0;i<=book_total;i++)

if(strcmp(book[i].getw_name(),wname)==0&&book[i].getflag()==0)

{

return&book[i];

}

returnNULL;

}//图书数据管理

voidbookdata();//图书数据管理

voidshow();//输出书籍信息

~Bookdata()//析构函数

{

fstreamfile("book.txt",ios:

:

out);

for(inti=0;i<=book_total;i++)

if(book[i].getflag()==0)

file.write((char*)&book[i],sizeof(book[i]));

file.close();

}

};

Bookdata:

:

Bookdata()//构造函数

{

Bookb;

book_total=-1;

fstreamfile("book.txt",ios:

:

in);

while

(1)

{

file.read((char*)&b,sizeof(b));

if(!

file)break;

book_total++;

book[book_total]=b;

}

file.close();

}

intBookdata:

:

Addbook(intID,intn,char*na,char*wname)//新增图书

{

Book*p=search_bnum(n);

if(NULL==p)

{

book_total++;

book[book_total].Addbook(ID,n,na,wname);

return1;

}

return0;

}

voidBookdata:

:

show()

{

for(inti=0;i<=book_total;i++)

if(book[i].getflag()==0)

{

book[i].show();

cout<

}

}

voidBookdata:

:

bookdata()

{

intchoice;

charwname[10];

intID;

charbname[50];

intbook_num;

Book*b;

while(choice!

=0)

{

cout<<"\n"<<"***************************************************"<

cout<<"\n图书管理"<

cout<<"\n1新增图书信息"<

cout<<"\n2图书信息更改"<

cout<<"\n3删除图书信息"<

cout<<"\n4图书信息显示"<

cout<<"\n5搜索图书信息"<

cout<<"\n0安全退出模块"<

cout<<"\n"<<"***************************************************"<

cout<<"请输入相对有的数字:

"<

do

{

cin>>choice;

if(choice<0||choice>5)

cout<<"对不起,输入有误,请查证后再输入!

"<

else

break;

}while

(1);

switch(choice)

{

case1:

cout<<"请输入新增图书的书名:

"<

cin>>bname;

cout<<"请输入新增图书的登录号:

"<

cin>>ID;

cout<<"请输入新增图书作者姓名:

"<

cin>>wname;

cout<<"请输入新增图书的编号:

"<

cin>>book_num;

Addbook(ID,book_num,bname,wname);

break;

case2:

cout<<"请输入需要修改的图书的登录号:

"<

cin>>ID;

b=search_ID(ID);

if(b==NULL)

{

cout<<"对不起,该图书不存在!

"<

break;

}

cout<<"请输入新的书名:

"<

cin>>bname;

b->setbname(bname);

cout<<"请输入图书作者新的名字:

"<

cin>>wname;

b->setwname(wname);

break;

case3:

cout<<"请输入需要删除的图书的登录号:

"<

cin>>ID;

b=search_ID(ID);

if(b==NULL)

{

cout<<"对不起,该图书不存在!

"<

break;

}

b->delbook();

break;

case4:

show();

break;

case5:

intselection;

cout<<"按图书编号搜索->请按1"<

cout<<"按图书登录号搜索->请按2"<

cout<<"按图书书名搜索->请按3"<

cout<<"按作者姓名搜索->请按4"<

cin>>selection;

if(selection==1)

{

cout<<"请输入需要查找的图书的编号:

"<

cin>>book_num;

b=search_bnum(book_num);

if(b==NULL)

{

cout<<"对不起,该图书不存在!

"<

break;

}

b->show();

break;}

elseif(selection==2)

{

cout<<"请输入需要查找的图书的登录号:

"<

cin>>ID;

b=search_ID(ID);

if(b==NULL)

{

cout<<"对不起,该图书不存在!

"<

break;

}

b->show();

break;

}

elseif(selection==3)

{

cout<<"请输入需要查找的图书的书名:

"<

cin>>bname;

char*p=bname;

b=search_bname(bname);

if(b==NULL)

{

cout<<"对不起,该图书不存在!

"<

break;

}

b->show();

break;

}

elseif(selection==4)

{

cout<<"请输入需要查找的作者的姓名:

"<

cin>>wname;

char*q=wname;

b=search_wname(wname);

if(b==NULL)

{

cout<<"对不起,该图书不存在!

"<

b->show();

break;break;

}

}

else

cout<<"对不起,输入有误,请重新输入!

"<

}

}

}

classReader//读者类

{

private:

intnum;//读者借阅证编号

charrname[10];//读者姓名

intborbook[Max_bor_book];//读者借阅的图书

intflag;//删除标记1:

已经删除0:

还未删除

public:

Reader(){}

intgetnum(){returnnum;}//获取读者借阅证编号

intretbook(intbookid);//归还图书

char*getrname(){returnrname;}//获取读者姓名

intgetflag(){returnflag;}//获取删除标记

voidsetname(charna[]);//设置姓名

voiddelbook(){flag=1;};//设置删除标记1:

已经删除0:

还未删除

voidaddreader(intn,char*na);//增加读者

voidborrowbook(intbookid);//借阅图书

voidshow();//输出读者详细信息

};

voidReader:

:

setname(charna[])//设置姓名

{

strcpy(rname,na);

}

voidReader:

:

addreader(intn,char*na)//新增读者

{

flag=0;

num=n;

strcpy(rname,na);

for(inti=0;i

borbook[i]=0;

}

voidReader:

:

borrowbook(intbook_num)//借阅图书

{

for(inti=0;i

{

if(borbook[i]==0)

{

borbook[i]=book_num;

return;

}

}

}

intReader:

:

retbook(intbook_num)//归还图书

{

for(inti=0;i

{

if(borbook[i]==book_num)

{

borbook[i]=0;

return1;

}

}

return0;

}

voidReader:

:

show()//输出读者信息

{

cout<<"读者编号:

"<

"<

for(inti=0;i

if(borbook[i]!

=0)

cout<

}

classReaderdata//读者数据类

{

private:

intreader_total;//读者总共数目

Readerreader[Max_reader];//读者信息记录

public:

Readerdata();//构造函数

intaddreader(intn,char*na);//新增读者时先检察该读者是否已经存在

Reader*search_rnum(intreader_num)//按读者借阅证编号查找

{

for(inti=0;i<=reader_total;i++)

if(reader[i].getnum()==reader_num&&reader[i].getflag()==0)

{

return&reader[i];

}

returnNULL;

}

Reader*search_rname(charreader_name[20])//按读者姓名查找读者

{

for(inti=0;i<=reader_total;i++)

for(inti=0;i<=reader_total;i++)

if(strcmp(reader[i].getrname(),reader_name)==0&&reader[i].getflag()==0)

{

return&reader[i];

}

returnNULL;

}

voidshow();//输出所有读者详细信息

voidreaderdata();//读者数据管理

~Readerdata()//析构函数

{

fstreamfile("reader.txt",ios:

:

out);

for(inti=0;i<=reader_total;i++)

if(reader[i].getflag()==0)

file.write((char*)&reader[i],sizeof(reader[i]));

file.close();

}

};

Readerdata:

:

Readerdata()//构造函数

{

ReaderR;

reader_total=-1;

fstreamfile("reader.txt",ios:

:

in);//打开一个输入文件

while

(1)

{

file.read((char*)&R,sizeof(R));

if(!

file)break;

reader_total++;

reader[reader_total]=R;

}

file.close();

}

intReaderdata:

:

addreader(intn,char*na)//新增读者时先检察该读者是否已经存在

{

Reader*p=search_rnum(n);

if(p==NULL)

{

reader_total++;

reader[reader_total].addreader(n,na);

return1;

}

return0;

}

voidReaderdata:

:

show()//输出所有读者详细信息

{

for(inti=0;i<=reader_total;i++)

{

reader[i].show();

cout<

}

}

voidReaderdata:

:

readerdata()

{

intchoice;

charreader_name[20];

intreader_num;

Reader*r;

while(choice!

=0)

{

cout<<"\n"<<"***************************************************"<

cout<<"\n读者管理"<

cout<<"\n1新增读者信息"<

cout<<"\n2读者信息更改"<

cout<<"\n3删除读者信息"<

cout<<"\n4读者信息显示"<

cout<<"\n5搜索读者信息"<

cout<<"\n0安全退出模块"<

cout<<"\n***************************************************"<

cout<<"请输入相对有的数字:

"<

do

{

cin>>choice;

if(choice<0||choice>5)

cout<<"对不起,输入有误,请查证后再输入!

"<

else

break;

}while

(1);

switch(choice)

{

case1:

cout<<"请输入读者编号:

";

cin>>reader_num;

cout<<"请输入读者姓名:

";

cin>>reader_name;

addreader(reader_num,reader_name);

break;

case2:

cout<<"请输入读者编号:

";

cin>>reader_num;

r=search_rnum(reader_num);

if(r==NULL)

{

cout<<"对不起,该读者不存在!

"<

break;

}

cout<<"请输入新的姓名:

";

cin>>reader_name;

r->setname(reader_name);

break;

case3:

cout<<"请输入读者编号:

";

cin>>reader_num;

r=search_rnum(reader_num);

if(r=

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1