📄 rdatabase.cpp
字号:
// rdatabase.cpp : implementation file
//
#include "stdafx.h"
#include "iostream.h"
#include "rdatabase.h"
#include "fstream.h"
/////////////////////////////////////////////////////////////////////////////
// rdatabase
rdatabase::rdatabase()
{
Reader s;
top=-1;
ifstream file;
file.open("reader.dat",ios::in|ios::binary);
while(1)
{file.read((char*)&s,sizeof(s));
if(!file)break;
top++;
read[top]=s;
}
file.close();
}
void rdatabase::clear()
{
top=-1;
}
Reader *rdatabase::query(int readerid)
{
for(int i=0;i<=top;i++)
if(read[i].getnumber()==readerid&&read[i].getnote()==0)
return &read[i];
return NULL;
}
int rdatabase::addreader(int n,char *na)
{
Reader *p=query(n);
if(p==NULL)
{
top++;
read[top].addreader(n,na);
return 1;
}
return 0;
}
void rdatabase::list()
{
for(int i=0;i<=top;i++)
read[i].list();
}
rdatabase::~rdatabase()
{
fstream file;
file.open("reader.dat",ios::out|ios::binary);
for(int i=0;i<=top;i++)
if(read[i].getnote()==0)
file.write((char*)&read[i],sizeof(read[i]));
file.close();
}
void rdatabase::writeR()
{
fstream file;
file.open("reader.dat",ios::out|ios::binary);
for(int i=0;i<=top;i++)
if(read[i].getnote()==0)
file.write((char*)&read[i],sizeof(read[i]));
file.close();
}
void rdatabase::readerdata()
{
int choice=1;
char readername[20];
int readerid;
Reader *r;
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>>readerid;
cout<<"输入读者姓名:";
cin>>readername;
addreader(readerid,readername);
writeR();
break;
case 2:cout<<"输入读者编号:";
cin>>readerid;
r=query(readerid);
if(r==NULL)
{cout<<"该图书不存在"<<endl;
break;}
cout<<"输入新的姓名:";
cin>>readername;
r->setname(readername);
writeR();
break;
case 3:cout<<"输入读者编号:";
cin>>readerid;
r=query(readerid);
if(r==NULL)
{cout<<"该读者不存在!"<<endl;break; }
cout<<"输入“0”确定删除"<<endl;
cin>>readername;
r->setname(readername);
writeR();
break;
case 4:
cout<<"输入读者编号:";
cin>>readerid;
r=query(readerid);
if(r==NULL)
{cout<<"该读者不存在!"<<endl;
writeR();
break;}
r->list();break;
case 5:list();break;
case 6:break;
default: cout<<"输入错误!"<<endl;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -