c++图书管理系统完整精华排版.docx

上传人:b****8 文档编号:10058415 上传时间:2023-02-08 格式:DOCX 页数:16 大小:18.73KB
下载 相关 举报
c++图书管理系统完整精华排版.docx_第1页
第1页 / 共16页
c++图书管理系统完整精华排版.docx_第2页
第2页 / 共16页
c++图书管理系统完整精华排版.docx_第3页
第3页 / 共16页
c++图书管理系统完整精华排版.docx_第4页
第4页 / 共16页
c++图书管理系统完整精华排版.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

c++图书管理系统完整精华排版.docx

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

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)〈〈no〈

<

};

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<

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〈

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

cout〈<”*1添加信息*"〈

cout<〈"*2修改信息*”<〈endl;

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

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

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

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

cout<〈”*0退出*”〈

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

cout〈

”;

cin>>choice;

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

while(choice!

=1&&choice!

=2&&choice!

=3&&choice!

=4&&choice!

=5&&choice!

=6&&choice!

=0){

cout〈〈endl<<”**您输入的编号在菜单里不存在,请重新输入**"<〈'\a’〈〈endl〈〈endl;

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<<"图书编号"<

break;

case2:

cout〈<”输入图书编号:

”;

cin>>bookid;

b=query(bookid);

if(b==NULL)

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

break;

cout<

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

cout<〈”*1书名*”〈〈endl;

cout〈〈"*2作者*"〈

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

cout<<”*4出版单位*”<

cout<〈"*5出版时间*"〈

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

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〈〈”查找方式:

"〈〈endl〈<”1按图书编号查询2按图书名查询3按作者名查询0退出:

”;

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〈<"该图书不存在啊!

”<〈endl;

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〈〈endl〈〈”★☆谢谢您的支持!

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

};

voidmain()

{system("color2f");

cout〈〈endl;

cout〈〈endl;

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

cout〈<”请登录!

”<

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

cout〈〈endl;

cout〈〈endl;

intq=0,w=1001;

number:

inte;

cout<<"请输入账号"〈

cin〉>e;

if(q==e)

number1:

intr;

cout〈〈"请输入密码”<〈endl;

cin〉>r;

if(w==r)

{

fstreamiofile;

if(!

iofile)

{

cout<<”打开文件失败!

”〈〈endl;

system(”cls”);

BDatabaseBookDB;

Book*b;

intnb;

{

cout<〈endl<〈endl;

cout〈〈"★☆☆★☆☆★☆☆★☆☆★☆☆★☆☆★”<

cout<〈”☆☆”<〈endl;

cout〈<"☆☆”〈

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

cout<〈”☆☆"〈

cout〈<”☆☆”<〈endl;

cout〈<"★☆☆★☆☆★☆☆★☆☆★☆☆★☆☆★"<

}

cout〈〈endl<

";

cin〉>nb;

while(nb!

=1)

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

cout〈

";

cin>>nb;

}

if(nb==1)

BookDB.bookdata();

}

else

cout〈〈”*********************密码错误!

请重新输入*******************”〈

gotonumber1;}

else

cout〈<”**********************账号错误!

请重新输入*******************"〈

gotonumber;

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

当前位置:首页 > 求职职场 > 自我管理与提升

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

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