📄 bdatabase.cpp
字号:
#include"BDatabase.h"
#include"Reader.h"
BDatabase::BDatabase()//构造函数
{
top=-1;
fstream file;
file.open("book.txt",ios::in/*具有输入能力*/|ios::binary/*以二进制方式打开文件*/);
while(1)
{
if(!file) break;
top++;
file.read((char*)&book[top],sizeof(book[top]));
}
file.close();
top++;
}
int BDatabase::addbook(int n,char *na)// 添加图书,加前先查找
{
Book *p=query(n);// 问题,询问
if (p==NULL)
{
book[top].addbook(n,na);
top++;
return 1;
}
return 0;
}
void BDatabase::bookdata()//功能选择
{
int choice=1;
char bname[40];
int bookid;
Book *b;
while (choice!=0)
{
cout<<"图书管理:"<<endl;
cout<<"1:新增图书"<<endl;
cout<<"2:更改图书名"<<endl;
cout<<"3:删除图书"<<endl;
cout<<"4:查找图书"<<endl;
cout<<"5:显示所有图书"<<endl;
cout<<"0:退出"<<endl;
cin>>choice;
switch(choice)
{
case 1:
cout<<"输入你要新加图书编号:"<<endl;
cin>>bookid;
cout<<"输入新的图书名:"<<endl;
cin>>bname;
addbook(bookid,bname);//增加图书
break;
case 2:
cout<<"输入原图书编号:"<<endl;
cin>>bookid;
b=query(bookid);
if(b==NULL)
{
cout<<"该书不存在"<<endl;
break;
}
cout<<"输入新的书名:"<<endl;
cin>>bname;
b->setname(bname);
break;
case 3:
cout<<"输入图书编号:"<<endl;
cin>>bookid;
b=query(bookid);
if(b==NULL)
{
cout<<"该图书不存在"<<endl;
break;
}
b->delbook();
break;
case 4:
cout<<"输入图书编号:"<<endl;
cin>>bookid;
b=query(bookid);
if(b==NULL)
{
cout<<"该图书不存在"<<endl;
break;
}
b->disp();
break;
case 5:
disp();
break;
}
}
}
Book * BDatabase::query(int bookid)//查找图书
{
for(int i=0;i<top;i++)
if (book[i].getno()==bookid&&book[i].gettag()==0)
return &book[i];
return NULL;
}
void BDatabase::disp()
{
for (int i=0;i<top;i++)
if (book[i].gettag()==0)
book[i].disp();
}
BDatabase::~BDatabase()//析构函数,将book[i]写入文件
{
fstream file("book.txt",ios::out/*具有输出能力*/|ios::binary);
for (int i=0;i<top;i++)
file.write((char *)&book[i],sizeof(book[i]));
file.close();//关闭文件
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -