📄 bdatabase.cpp
字号:
// bdatabase.cpp: implementation of the bdatabase class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "fstream.h"
#include "bdatabase.h"
#include <iostream.h>
bdatabase::bdatabase()
{
Book s;
top=-1;
fstream file;
file.open("book.dat",ios::in|ios::binary);
while(1)
{
file.read((char*)&s,sizeof(s));
if(!file)break;
top++;
book[top]=s;
}
file.close();
}
bdatabase::~bdatabase()
{
fstream file;
file.open("book.dat",ios::out|ios::binary);
for(int i=0;i<=top;i++)
if(book[i].getnote()==0)
file.write((char*)&book[i],sizeof(book[i]));
file.close();
}
void bdatabase::bookdata()
{
int choice=1;
char bookname[20];
int bookid;
Book *b;
while(choice!=0)
{
cout<<"图书维护:"<<endl;
cout<<"_____________________________________________________"<<endl;
cout<<"1:新增 2:更改 3:删除 4:查找 5:显示 6:全删 7:退出"<<endl;
cin>>choice;
cout<<"_____________________________________________________"<<endl;
switch(choice)
{
case 1:cout<<"输入图书编号:";
cin>>bookid;
cout<<"输入图书名:";
cin>>bookname;
addbook(bookid,bookname);
writeB();
break;
case 2:cout<<"输入图书编号:";
cin>>bookid;
b=query(bookid);
if(b ==NULL)
{cout<<"该图书不存在"<<endl;
break;}
cout<<"输入新的图书名:";
cin>>bookname;
b->setname(bookname);
writeB();
break;
case 3:cout<<"输入图书编号:";
cin>>bookid;
b=query(bookid);
if(b==NULL)
{cout<<"该图书不存在!"<<endl;break;}
cout<<"输入“0”确定删除"<<endl;
cin>>bookname;
b->setname(bookname);
writeB();
break;
case 4:
cout<<"输入图书编号:";
cin>>bookid;
b=query(bookid);
if(b==NULL)
{cout<<"该图书不存在!"<<endl;
break;}
b->list();
writeB();
break;
case 5:list();
writeB();
break;
case 6:break;
}
}
}
void bdatabase::list()
{
for(int i=0;i<=top;i++)
book[i].list();
}
void bdatabase::writeB()
{
fstream file;
file.open("book.dat",ios::out|ios::binary);
for(int i=0;i<=top;i++)
if(book[i].getnote()==0)
file.write((char*)&book[i],sizeof(book[i]));
file.close();
}
Book *bdatabase::query(int bookid)
{
for(int i=0;i<=top;i++)
{
if(book[i].getnumber()==bookid&&book[i].getnote()==0)
return &book[i];
}
return NULL;
}
int bdatabase::addbook(int n, char *na)
{
Book *p=query(n);
if(p==NULL)
{
top++;
book[top].addbook(n,na);
return 1;
}
return 0;
}
void bdatabase::clear()
{
top=-1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -