c++图书管理系统源代码Word文档格式.docx
《c++图书管理系统源代码Word文档格式.docx》由会员分享,可在线阅读,更多相关《c++图书管理系统源代码Word文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
Charname[20];
书名
Charauthor[10];
作者名
Charno2[10];
输入分类号
Chardan[20];
输入出版单位
Chartime[20];
出版时间
intpriCe;
//价格
intonshelf;
//是否在架1:
在架0:
已借
publiC:
Book(){}
intgetno(){returnno;
}//获取图书编号
intgettag(){returntag;
}//获取删除标记
char*getauthor(){returnauthor;
}//获取作者名
char*getno2(){returnno2;
}//
获取分类号
char*getdan(){returndan;
获取出版单位
char*gettime(){returntime;
获取出版时间
intgetprice(){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);
设置出版时间void
setprice(intp){price=p;
}
voiddelbook(){tag=1;
}//删除图书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);
onshelf=1;
intborrowbook()//借书操作
if(onshelf==1)
onshelf=0;
return1;
return0;
voidretbook(){onshelf=1;
}//还书操作
voiddisp()//输出图书
cout<
<
setw(10)<
no<
name<
setw(10)
author<
no2<
dan<
time<
price;
if(onshelf==1)cout<
"
在架"
;
elsecout<
已借出"
endl;
};
//
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)
book[top].addbook(n,na,au,n2,da,ti,pr);
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)//按书名查找图书{
if(strcmp(book[i].getname(),name)==0)
bookid=book[i].getno();
Book*query3(intbookid,char*author)//按作者查找图书{
{if(strcmp(book[i].getauthor(),author)==0)
{bookid=book[i].getno();
voidbookdata();
//图书库维护
图书编号"
图书名字"
<
图书作者"
图书分类"
出版单位"
出版时间"
vvsetw(10)vv"
价格"
setw(10)vv"
借还信息"
if(book[i].gettag()==0)
book[i].disp();
~BDatabase()//析构函数,将book[]写入book.txt文件中{
out);
if(book[i].gettag()==0)file.write((char*)&
book[i],sizeof(book[i]));
voidBDatabase:
bookdata(){
intbookid;
//图书编号
charbname[40];
//图书名
charbauthor[10];
//图书作者
charbno2[20];
//图书分类
charbdan[20];
出版单位
charbtime[20];
intbprice;
图书价格
Book*b;
intchoice=1;
intchoice2=1;
intchoice3=1;
while(choice!
=0)
\t\t\t图书信息维护\n"
\t\t\t1.
添加信息\n"
\t\t\t2.
修改信息\n"
\t\t\t3.
删除信息\n"
\t\t\t4.
信息查询\n"
\t\t\t5.
显示信息\n"
\t\t\t6.
全部删除\n"
\t\t\t0.
退出图书信息维护\n"
请选择:
J
cin>
>
choice;
switch(choice)
case1:
添加图书操作:
\n"
请输入图书编号:
cin>
bookid;
请输入书名:
bname;
请输入图书作者:
bauthor;
请输入图书分类:
bno2;
请输入出版单位:
bdan;
请是输入出版时间:
btime;
请输入图书价格:
bprice;
addbook(bookid,bname,bauthor,bno2,bdan,btime,bprice);
cout<
bookid<
添加成功\n"
break;
case2:
修改图书信息操作:
b=query(bookid);
if(b==NULL)
图书不存在,无法修改\n"
请输入要更改的:
1.书名2.作者名3.分类4.出版单位5.出版时间6.图书价
格"
choice2;
switch(choice2)
b->
setname(bname);
修改书名成功\n"
请输入作者名:
setauthor(bauthor);
修改作者名成功\n"
break;
case3:
请输入分类号:
b->
setno2(bno2);
修改分类成功\n"
case4:
setdan(bdan);
修改出版单位成功\n"
case5:
请输入出版时间:
settime(btime);
修改出版时间成功\n"
case6:
setpri