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

上传人:b****8 文档编号:10043379 上传时间:2023-02-08 格式:DOCX 页数:17 大小:166.33KB
下载 相关 举报
C++图书馆管理系统.docx_第1页
第1页 / 共17页
C++图书馆管理系统.docx_第2页
第2页 / 共17页
C++图书馆管理系统.docx_第3页
第3页 / 共17页
C++图书馆管理系统.docx_第4页
第4页 / 共17页
C++图书馆管理系统.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

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

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

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

C++图书馆管理系统

图书馆管理系统

//图书管理系统

#include

#include〈iomanip〉

#include〈string〉

#include〈fstream〉

usingnamespacestd;

constintMaxb=10000;//最多的图书

classBook//图书类

inttag;//删除标记1:

已删0:

未删

intno;//图书编号

charname[20];//书名

charauthor[10];//作者名

charno2[10];//输入分类号

chardan[20];//输入出版单位

chartime[20];//出版时间

intprice;//价格

public:

Book(){}

char*getname(){returnname;}//获取姓名

intgetno(){returnno;}//获取图书编号

intgettag(){returntag;}//获取删除标记

char*getauthor(){returnauthor;}//获取作者名

char*getno2(){returnno2;}//获取分类号

char*getdan(){returndan;}//获取出版单位

char*gettime(){returntime;}//获取出版时间

chargetprice(){returnprice;}//获取图书价格

voidsetname(charna[])//设置书名

strcpy(name,na);

voidsetauthor(charau[])//设置作者名

{

strcpy(author,au);

}

voidsetno2(charn[])//设置分类号

strcpy(no2,n);

}

voidsetdan(chard[])//设置出版单位

{

strcpy(dan,d);

}

voidsettime(chart[])//设置出版时间

strcpy(time,t);

}

voiddelbook(){tag=1;}//删除图书

voidaddbook(intn,char*na,char*au,char*n2,char*da,char*ti,intpr)//增加图书

{

tag=0;

no=n;

price=pr;

strcpy(name,na);

strcpy(author,au);

strcpy(no2,n2);

strcpy(dan,da);

strcpy(time,ti);

voiddisp()//输出图书

{

cout<

〈〈setw(10)<

}

};

classBDatabase//图书库类

inttop;//图书记录指针

Bookbook[Maxb];//图书记录

public:

BDatabase()//构造函数,将book.txt读到book[]中

Bookb;

top=-1;

fstreamfile(”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,char*au,char*n2,char*da,char*ti,intpr)//增加图书

Book*p=query(n);

if(p==NULL)

top++;

book[top].addbook(n,na,au,n2,da,ti,pr);

return1;

return0;

}

Book*query(intbookid)//查找图书

{

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

if(book[i]。

getno()==bookid&&

book[i].gettag()==0)

return&book[i];

returnNULL;

}

Book*query2(intbookid,char*name)//按书名查找图书

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

if(strcmp(book[i].getname(),name)==0)

{bookid=book[i]。

getno();

return&book[i];

}

returnNULL;

}

Book*query3(intbookid,char*author)//按作者查找图书

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

if(strcmp(book[i].getauthor(),author)==0)

{bookid=book[i]。

getno();

return&book[i];

}

returnNULL;

voidbookdata();//图书库维护

voiddisp()

cout<〈setw(10)〈〈”图书编号"〈

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

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

book[i].disp();

}

~BDatabase()//析构函数,将book[]写入book.txt文件中

{

fstreamfile(”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()

{

intchoice=1;

intchoice2=1;

intchoice3=1;

intchoice4=1;

charbname[40];

charbauthor[10];

charbno2[20];

charbdan[20];

charbtime[20];

intbprice;

intbookid;

Book*b;

while(choice!

=0)

{cout<〈endl<〈endl;

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

cout<<”*1添加信息*”〈〈endl;

cout〈<”*2修改信息*”〈

cout〈<”*3删除信息*"<〈endl;

cout〈〈”*4信息查询*"<〈endl;

cout〈〈”*5显示信息*”<

cout〈〈"*6全部删除*”<

cout〈〈"*0退出*"〈

cout<<"************"〈〈endl<

cout〈

";

cin>>choice;

//如果输入的编号在菜单里不存在的情况———在for循环内部如果出现这样的错的时候

while(choice!

=1&&choice!

=2&&choice!

=3&&choice!

=4&&choice!

=5&&choice!

=6&&choice!

=0){

cout<

cout〈<”请选择您需要的操作:

”;

cin〉>choice;

switch(choice)

{

case1:

cout〈<"输入图书编号:

”;

cin>〉bookid;

cout〈〈”输入图书书名:

”;

cin>>bname;

cout〈〈"输入作者名:

";

cin〉〉bauthor;

cout〈〈”输入分类号:

";

cin>>bno2;

cout〈〈"输入出版单位:

";

cin>〉bdan;

cout〈〈”输入出版时间:

”;

cin〉>btime;

cout<<”输入价格:

";

cin〉〉bprice;

addbook(bookid,bname,bauthor,bno2,bdan,btime,bprice);

cout<<"图书编号"<

cin>〉choice4;

if(choice4==9)

choice=1;

elsechoice=5;

break;

case2:

cout<〈"输入图书编号:

”;

cin>〉bookid;

b=query(bookid);

if(b==NULL)

{

cout〈〈”该图书不存在”〈〈endl;

break;

}

cout<

cout〈<”************”〈

cout〈〈"*1书名*”<

cout<〈"*2作者*"〈〈endl;

cout<〈"*3分类号*"<

cout<〈"*4出版单位*”〈〈endl;

cout<<”*5出版时间*"〈〈endl;

cout〈<"*0退出系统*”〈〈endl;

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

cout〈〈”请输入要更改的:

1书名2作者名3分类号4出版单位5出版时间0退出”;

cin>>choice2;

switch(choice2)

{

case1:

cout<<"输入新的书名:

”;//修改图书名

cin>〉bname;

b->setname(bname);

break;

case2:

cout<<”输入新的作者名:

”;//修改图书作者

cin>〉bauthor;

b->setauthor(bauthor);

break;

case3:

cout〈<”输入新的分类号:

”;//修改图书的分类号

cin〉>bno2;

b->setno2(bno2);

break;

case4:

cout<<”输入新的出版单位:

";//修改图书出版单位

cin>>bdan;

b->setdan(bdan);

break;

case5:

cout〈〈"输入新的出版时间:

”;

cin>〉btime;

b—〉settime(btime);//修改出版时间

break;

break;

case3:

cout〈〈"输入图书编号:

";

cin〉>bookid;

b=query(bookid);

if(b==NULL)

cout<〈”该图书不存在"〈

break;

b-〉delbook();

break;

case4:

cout〈<"查找方式:

”<

";

cin〉〉choice3;

switch(choice3)

{

case1:

{cout〈<"输入图书编号:

”;//按图书编号查询

cin>〉bookid;

b=query(bookid);

if(b==NULL)

{

cout<〈”该图书不存在"<〈endl;

break;

}

b->disp();

break;

case2:

cout<<”请输入图书名:

”;

cin>〉bname;

b=query2(bookid,bname);

if(b==NULL)

cout〈<”该图书不存在啊!

”<

break;

b—〉disp();

break;

case3:

{

cout〈〈”请输入作者名:

”;

cin>>bauthor;

b=query3(bookid,bauthor);

if(b==NULL)

{

cout〈<”该作者不存在!

"〈〈endl;

break;

b—〉disp();

break;

}

break;

case5:

disp();

break;

case6:

clear();

break;

}

cout〈

欢迎下次继续使用☆★"<

};

voidmain()

BDatabaseBookDB;

Book*b;

intnb;

cout〈〈endl〈〈endl;

cout<〈"★☆☆★☆☆★☆☆★☆☆★☆☆★☆☆★"<〈endl;

cout〈〈”☆☆"〈〈endl;

cout〈<”☆☆"〈

cout〈<”★欢迎使用图书馆信息管理系统★”〈

cout〈〈”☆☆"〈

cout〈〈”☆☆"<〈endl;

cout<〈”★☆☆★☆☆★☆☆★☆☆★☆☆★☆☆★"〈〈endl;

}

cout〈

";

cin>>nb;

while(nb!

=1)

{cout<〈endl<〈"**您的输入有误**"<〈'\a'<

cout<〈endl〈〈"输入1进入菜单:

”;

cin〉>nb;

}

if(nb==1)

BookDB.bookdata();

}

运行结果:

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

当前位置:首页 > 经管营销 > 生产经营管理

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

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