图书馆管理系统C++代码.docx

上传人:b****1 文档编号:1691794 上传时间:2023-05-01 格式:DOCX 页数:21 大小:20.03KB
下载 相关 举报
图书馆管理系统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_第6页
第6页 / 共21页
图书馆管理系统C++代码.docx_第7页
第7页 / 共21页
图书馆管理系统C++代码.docx_第8页
第8页 / 共21页
图书馆管理系统C++代码.docx_第9页
第9页 / 共21页
图书馆管理系统C++代码.docx_第10页
第10页 / 共21页
图书馆管理系统C++代码.docx_第11页
第11页 / 共21页
图书馆管理系统C++代码.docx_第12页
第12页 / 共21页
图书馆管理系统C++代码.docx_第13页
第13页 / 共21页
图书馆管理系统C++代码.docx_第14页
第14页 / 共21页
图书馆管理系统C++代码.docx_第15页
第15页 / 共21页
图书馆管理系统C++代码.docx_第16页
第16页 / 共21页
图书馆管理系统C++代码.docx_第17页
第17页 / 共21页
图书馆管理系统C++代码.docx_第18页
第18页 / 共21页
图书馆管理系统C++代码.docx_第19页
第19页 / 共21页
图书馆管理系统C++代码.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

图书馆管理系统C++代码.docx

《图书馆管理系统C++代码.docx》由会员分享,可在线阅读,更多相关《图书馆管理系统C++代码.docx(21页珍藏版)》请在冰点文库上搜索。

图书馆管理系统C++代码.docx

图书馆管理系统C++代码

//tushuguanli。

cpp:

Definestheentrypointfortheconsoleapplication.

#include

#include

#include/

usingnamespacestd;

constintBMAX=50;

//图书数据库类

classbdatabase

public:

bookbtarray[BMAX];

inttop;

public:

bdatabase()

bookb;

top=-1;

fstreamfile(”book.txt”,ios:

in);//打开文件

while

(1)

file。

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

if(!

file)break;

top++;

btarray[top]=b;

file.close();//关闭文件

}

~bdatabase()//析构函数,将btarray[]写到book。

txt文件中

{

fstreamfile("book。

txt”,ios:

:

out);

for(inti=0;i〈=top;i++)

if(btarray[i].b_del==1)

file。

write((char*)&btarray[i],sizeof(btarray[i]));

file.close();

voidaddbooks()//往图书数据库中加图书

{

bookbk;

intno;

charbname[20];

cout〈〈”请输入书号:

";

cin〉〉no;

cout<〈endl〈<”请输入书名:

";

cin>〉bname;

cout<

bk。

b_flag=1;

bk。

addbook(no,bname);

top++;

btarray[top]=bk;

return;

}

intfindbooks(intsuffix)//查找图书,这个函数用于借书这书操作,suffix是数组下标

intno;

cout<〈”请输入书号:

";

cin>>no;

for(inti=0;i〈=top;i++)

{

if(btarray[i]。

no==no&&btarray[i].b_del==1)

returni;

}

return—1;

}

intfindbooks()//查找图书,这个函数用于图书维护

{

intno;

charvalue[6];

cout〈〈"请输入书号:

”;

cin〉>no;

for(inti=0;i〈=top;i++)

{

if(btarray[i].no==no&&btarray[i].b_del==1)

{

if(btarray[i]。

b_flag==1)strcpy(value,"在架");

if(btarray[i].b_flag==2)strcpy(value,”借出");

cout〈<"书号:

"<

no〈〈"书的名称:

”〈

"<〈value<〈endl;

returni;

}

return—1;

}

voideditbooks()//编辑图书

{

intcur;

cur=findbooks();

if(cur==—1)

{cout〈<”没有这本书”〈〈endl;

return;

}

cout〈〈”书号:

”<〈btarray[cur]。

no〈〈”书的名称:

”〈

name〈〈endl;

cout<<”请修改数据:

”〈〈endl;

cout〈

";

cin〉〉btarray[cur]。

name;

return;

voiddelbooks()//删除图书

{

intcur;

cur=findbooks();

if(cur==—1)

{

return;

}

if(btarray[cur]。

b_flag==2)//删除时判断图书是否借出

cout〈〈”该图书已经借出,请在归还后再删除。

”<〈endl;

return;

btarray[cur]。

b_del=2;

return;

}

voidlistbooks()//显示全部图书

{

charvalue[6];

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

if(btarray[i].b_del==1)

if(btarray[i].b_flag==1)strcpy(value,"在架”);

if(btarray[i]。

b_flag==2)strcpy(value,”借出”);

cout〈<"书号:

”〈〈btarray[i]。

no<〈”书的名称:

"<〈btarray[i].name<<”图书状态:

"〈〈value〈〈endl;

}

return;

}

classbook

{

public:

intno;//图书编号

charname[20];//图书名称

intb_flag;

intb_del;

public:

book(){}

voidsetno(intn)

no=n;

intgetno()

{

returnno;//返回图书编号值

}

voidsetname(charna[])

{

strcpy(name,na);//字符串复制

}

char*getname()

{

returnname;//返回图书名称

}

voidborbook()

{

b_flag=2;//借书标志

}

voiddelbook()

{

b_del=2;//删除标志

voidaddbook(intno,charna[])//增加图书功能

{

setno(no);

setname(na);

b_flag=1;

b_del=1;

;

//读者类

classreader

{

public:

intno;

charname[20];

intr_del;//1存在,2删除

intr_bor;//1借过书,2没有借书

bookbrbook;

public:

voidaddreader(intid,charna[])//增加读者

no=id;

strcpy(name,na);

r_del=1;

}

voidsetbrbook(bookbt)//设置借书标记

{

brbook=bt;

bookgetbrbook()

{

returnbrbook;//返回借书信息

}

};

//读者数据库类

classrdatabase

public:

readerrdarray[BMAX];

inttop;

public:

rdatabase()

{

readerrd;

top=—1;

fstreamfile("reader。

txt”,ios:

in);//打开文件

while

(1)

file。

read((char*)&rd,sizeof(rd));

if(!

file)break;

top++;

rdarray[top]=rd;

}

file.close();//关闭文件

}

~rdatabase()//析构函数

fstreamfile("reader。

txt”,ios:

out);

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

if(rdarray[i].r_del==1)

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

file。

close();

}

voidaddreaders()//添加读者

{

readerrd;

intno;

charrname[20];

cout〈〈"请输入学号:

";

cin〉>no;

cout〈〈endl〈<"请输入姓名:

";

cin>>rname;

cout〈〈endl;

rd。

addreader(no,rname);

rd.r_bor=2;

top++;

rdarray[top]=rd;

return;

intfindreaders(intsuffix)//查找读者,这个函数用于借书还书操作.参数suffix是数组下标

{

intno;

cout<<"请输入学号:

";

cin>〉no;

for(inti=0;i〈=top;i++)

if(rdarray[i]。

no==no&&rdarray[i].r_del==1)

{

returni;

}

return—1;

}

intfindreaders()//查找读者,这个函数用于读者维护操作

intno;

charvalue[3];

cout〈〈"请输入学号:

”;

cin>>no;

for(inti=0;i〈=top;i++)

if(rdarray[i]。

no==no&&rdarray[i].r_del==1)

if(rdarray[i].r_bor==1)strcpy(value,”借");

if(rdarray[i].r_bor==2)strcpy(value,"无”);

cout<<"学号:

"〈

”<

”<〈value<〈endl;

returni;

}

return-1;

voideditreaders()//编辑读者信息

intcur;

cur=findreaders();

if(cur==-1)

{cout<〈”没有该学生”<〈endl;

return;

}

cout<<”请修改数据:

"〈

cout<〈endl<<"姓名:

”;

cin>>rdarray[cur]。

name;

return;

voiddelreaders()//删除读者,读者如果借书要还书后才能删除

{

intcur;

cur=findreaders();

if(cur==-1)

return;

if(rdarray[cur].r_bor==1)

{

cout〈<"该用户借了图书,请还书后再删除"〈

return;

}

rdarray[cur]。

r_del=2;

return;

voidlistreaders()//显示所有读者

{

charvalue[3];

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

if(rdarray[i]。

r_del==1)

if(rdarray[i]。

r_bor==1)strcpy(value,”借");

if(rdarray[i].r_bor==2)strcpy(value,"无");

cout〈〈"学号:

"<〈rdarray[i]。

no〈〈”姓名:

”<〈rdarray[i].name<<"是否借书:

"〈〈value〈〈endl;

}

return;

}

voidbookjiemain()//图书维护子菜单

cout<〈”|—-—-———---————--—-—-—|"<

cout〈<”|图书维护|"〈

cout<<”|

(1)增加|"<〈endl;

cout<〈”|

(2)更改|”〈〈endl;

cout〈〈"|(3)删除|”<

cout〈<”|(4)查找|"<

cout<<"|(5)显示|"〈〈endl;

cout<〈”|(6)返回上一层|"<〈endl;

cout〈<”|-—-——-————-——————-—-—|”<〈endl;

}

voidreaderjiemian()//读者维护子菜单

{

cout<〈"|-—---———-—----——---—-|”〈

cout<<"|读者维护|"<

cout〈<”|

(1)增加|”<〈endl;

cout<<”|

(2)更改|”<

cout<<"|(3)删除|"<

cout<<"|(4)查找|"〈

cout<<”|(5)显示|”〈〈endl;

cout<<”|(6)返回上一层|”〈〈endl;

cout<〈"|—-————----—-—-———----|”〈〈endl;

voidmainjiemian()//主界面

{

cout〈〈"***********************************************”<〈endl;

cout<<”*图书管理系统*"<

cout<<"**”〈〈endl;

cout<<"*

(1)借书*"<

cout<〈"**”〈〈endl;

cout〈<"*

(2)还书*”<〈endl;

cout<<”**"<〈endl;

cout〈〈"*(3)图书管理*"〈〈endl;

cout<<"**"<〈endl;

cout〈〈"*(4)用户管理*"〈〈endl;

cout<<"**"<〈endl;

cout〈<”*(0)退出*”<〈endl;

cout<〈”***********************************************”〈〈endl;

voidborrowtoreturn(charbr)

//借书还书函数。

参数br用来判断是“借书”还是“还书".1为“借书”,2为“还书”

{

intrdid=0;

intbkid=0;

intrsuffix,bsuffix;

bdatabaset_bd;

rdatabaset_rd;

if(br=='1’)//借书

rsuffix=t_rd.findreaders(rdid);

bsuffix=t_bd。

findbooks(bkid);

if(rsuffix==-1||bsuffix==—1)

return;

if(t_bd。

btarray[bsuffix]。

b_flag==2)

{

cout〈〈”图书已经借出,请选择其它图书"〈

return;

}

if(t_rd。

rdarray[rsuffix].r_bor==1)

cout<〈”你已经借过图书,请先归还再借其它图书"<

return;

t_bd.btarray[bsuffix]。

b_flag=2;

t_rd.rdarray[rsuffix].r_bor=1;

t_rd。

rdarray[rsuffix]。

brbook=t_bd。

btarray[bsuffix];

return;

if(br==’2’)

{

rsuffix=t_rd。

findreaders(rdid);

bsuffix=t_bd.findbooks(bkid);

if(rsuffix==-1||bsuffix==—1)

return;

if(t_rd.rdarray[rsuffix].brbook。

no==t_bd.btarray[bsuffix]。

no)

{

t_bd。

btarray[bsuffix]。

b_flag=1;

t_rd.rdarray[rsuffix].r_bor=2;

t_rd.rdarray[rsuffix].brbook=t_bd.btarray[bsuffix];

else

cout〈<"请重新输入,读者借的图书号不正确”<

return;

}

return;

}

voidbooksmange()

{

charin;

bdatabasebd;

do{

bookjiemain();

cin〉>in;

switch(in)

{

case’1’:

bd.addbooks();

break;

case’2’:

bd。

editbooks();

break;

case’3’:

bd.delbooks();

break;

case’4':

bd。

findbooks();

break;

case’5':

bd。

listbooks();

break;

case'6':

break;

default:

cout<<”输入错误,请从新输入。

”<〈endl;;

}while(in!

=’6’);

return;

}

voidreadersmange()

{

charin;

rdatabasebd;

do{

readerjiemian();

cin>〉in;

switch(in)

case’1’:

bd.addreaders();

break;

case’2':

bd.editreaders();

break;

case'3’:

bd。

delreaders();

break;

case’4':

bd.findreaders();

break;

case'5':

bd.listreaders();

break;

case’6':

break;

default:

cout<〈”输入错误,请从新输入.”<

}while(in!

='6');

return;

intmain(intargc,char*argv[])

{charin;

do{

mainjiemian();

cin〉>in;

switch(in)

case'1’:

borrowtoreturn(in);

break;

case’2’:

borrowtoreturn(in);

break;

case’3’:

booksmange();

break;

case'4':

readersmange();

break;

case'0’:

break;

default:

cout<〈"输入错误,请从新输入。

”<

}while(in!

='0');

return0;

}

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

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

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2