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

上传人:b****5 文档编号:5686261 上传时间:2022-12-31 格式:DOCX 页数:18 大小:30.67KB
下载 相关 举报
图书馆管理系统C++代码.docx_第1页
第1页 / 共18页
图书馆管理系统C++代码.docx_第2页
第2页 / 共18页
图书馆管理系统C++代码.docx_第3页
第3页 / 共18页
图书馆管理系统C++代码.docx_第4页
第4页 / 共18页
图书馆管理系统C++代码.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

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

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

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

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

 

//tushuguanli.cpp:

Definestheentrypointfortheconsoleapplication.

#inelude

#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=O;i<=top;i++)

{

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

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

}

file.close();

}

图书

bookbk;

intno;

charbname[20];

cout<<"请输入书号:

";

cin»no;

cout<

";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<<"书号:

"<

书的名称

"<

"<

returni;

}

return-1;

voideditbooks()//

{

intcur;

cur=findbooks();

if(cur==-1)

{cout<<"没有这本书"<

return;

}

cout<<"书号:

"<

cout<<"请修改数据:

"<

";cin>>btarray[cur].name;

return;

}

编辑图书

书的名称

voiddelbooks()//

{

intcur;

cur=findbooks();

if(cur==-1)

{

return;

}

if(btarray[cur].b_flag==2)//

断图书是否借出

{

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

return;

删除图书

删除时判

"<

btarray[cur].b_del=2;return;

 

图书

{

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,"

"<

}

}return;

}

}

5

classbook

{public:

intno;charname[20];

intb_flag;

intb_del;

public:

book(){}voidsetno(intn)

{

no=n;

intgetno()

{

returnno;//

}

voidsetname(charna[])

{strcpy(name,na);//

cout<<"书号

图书状态

"<

:

"<

在架");

借出");

书的名称

//

//

图书编号

图书名称

返回图书编号值

字符串复制

}

char*getname()

{

returnname;//返回图书名称

}

voidborbook()

 

{b_flag=2;II借书标志

}

voiddelbook()

{

b_del=2;II删除标志

}

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

{

setno(no);

setname(na);b_flag=1;b_del=1;

}

}

5

II读者类

classreader

{

public:

intno;

charname[20];

intr_del;II1存在,2删除

intr_bor;II1借过书,2没有借书

bookbrbook;

public:

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

{

no=id;

strcpy(name,na);r_del=1;

}

voidsetbrbook(bookbt)II设置借书标记

{

brbook=bt;

}

bookgetbrbook()

{

returnbrbook;II返回借书信息

}

};

II读者数据库类

class「database

{

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=O;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<

";

cin»rname;

cout<

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<<"学号:

"<

"<

returni;

}

}

return-1;

}

者信息

intcur;

cur=findreaders();

if(cur==-1)

{cout<<"没有该学生"<

}

cout<<"请修改数据:

"<

cout<

";

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<<"学号:

"<

"<

}return;

}

voidbookjiemain()

护子菜单

{

coutvv"|

|"vvendl;

coutvv"|

图书维护

「vvendl;

coutvv"|

(1)

|"vvendl;

coutvv"|

|"vvendl;

coutvv"|

|"vvendl;

coutvv"|

|"vvendl;

coutvv"|

|"vvendl;

coutvv"|

返回上一层

|"vven

coutvv"卜

一-|"vvendl;

voidreaderjiemian()//

者维护子菜单

{

cout<<"||"<

cout<<"|读者维护「<

cout<<"|(6)返回上一层「<

cout<<"||"<

}

mainjiemian()

void

II主界面

cout

cout<<"*

图书管理系统*"<

coutvv"*

coutvv"*

(1)

*"vvendl;

借书

*"vvendl;

 

cout<<"*

*"<

cout<<"*

(2)

还书

*"<

cout<<"*

*"<

cout<<"*

(3)

图书管理

*"<

cout<<"*

*"<

cout<<"*

(4)

用户管理

*"<

cout<<"*

*"<

cout<<"*

(0)

退出

*"<

cout<<"

************************************************

"<

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;

case2:

bd.editbooks();

break;

case3:

bd.delbooks();

break;

case4:

bd.findbooks();

break;

case'5':

bd.listbooks();

break;

case'6':

break;

default:

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

}

}while(in!

='6');return;

}

voidreadersmange()

{

charin;

rdatabasebd;

do{

readerjiemian();

cin>>in;

switch(in)

{

case'1':

bd.addreaders();

break;

case'2':

bd.editreaders();

break;

case3:

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;

case2:

borrowtoreturn(in);break;

case3:

booksmange();

break;

case4:

readersmange();break;

case'O':

"<

break;

default:

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

}

}while(in!

='0');

return0;

}

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

当前位置:首页 > 高等教育 > 工学

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

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