void readerdeletefile() //删除读者文件上的操作
{
int i = 0;
file_reader.open("readerfile.txt", ios::out);
for (i = 0; i < r; i++)
{
file_reader.write((char*)&readerzlk[i], sizeof(readerzlk[i]));
}
file_reader.close();
}
void librarydelete() //书籍删除
{
char code[4];
int d = 0, i = 0, j = 0;
cout<<"请输入要删除的书籍编号:";
cin>>code;
for (i = 0; i < b; i++) //首先判断读者库有没有此读者
{
if (strcmp(code, library[i].getcode()) == 0)
{
d = 1;//为1则有
break;
}
}
if (d == 0)
{
cout<<"对不起,此书籍不存在."<<endl;
return;
}
d = 0, j = 0;//恢复初值,在借书库进行判断
for (j = 0; j < t; j++)
{
if (strcmp(code, rbb[j].bookcode) == 0)
{
d = 1;//为1则有书未还
break;
}
}
if (d == 1)
{
cout<<"此书未还,还后方可删除此书籍."<<endl;
return;
}
char flag;
int p = b - i;
cout<<"确认删除此书籍吗?[Y/N]";
cin>>flag;
if(flag == 'Y' || flag == 'y')
{
for (j = 0; j <= p; j++) //挪动读者数组;
{
library[i] = library[i +1];
i++;
}
b--;
cout<<"书籍删除成功"<<endl;
}
for (i = 0; i < b; i++)
{
library[i].print();
cout<<endl;
}
}
void librarydeletefile() //删除书籍文件上的操作
{
int i = 0;
file_book.open("bookfile.txt", ios::out);
for (i = 0; i < b; i++)
{
file_book.write((char*)&library[i], sizeof(library[i]));
}
file_book.close();
}
void readerWH() //读者维护
{
char flag;
while (1)
{
cout<<"1.增加读者 2.删除读者 3.查找读者 4.列出所有读者 5.退出"<<endl;
cout<<"请输入功能代码:";
cin>>flag;
switch (flag)
{
case '1':
addreader();//增加读者
break;
case '2':
readerdelete();//删除读者
break;
case '3':
readerFind();//查找读者
break;
case '4':
readerLC();//列出所有读者
break;
case '5':
return;
break;
default:
cout<<"输入错误,请重新输入:"<<endl;
}
}
}
void bookWH() //图书维护
{
char flag;
while (1)
{
cout<<"1.增加图书 2.删除图书 3.查找图书 4.列出所有图书书 5.退出"<<endl;
cout<<"请输入功能代码:";
cin>>flag;
switch (flag)
{
case '1':
addbook();//增加图书
break;
case '2':
librarydelete();//删除图书
break;
case '3':
bookFind();//查找图书
break;
case '4':
bookLC();//列出图书
break;
case '5':
return;
break;
default:
cout<<"输入错误,请重新输入:"<<endl;
}
}
}
void Printborrowbook() //查看借书情况函数
{
int i = 0;
for (i = 0; i < t; i++)
{
rbb[i].print();
cout<<endl;
}
}
void borrow()
{
char ch;
cout<<"1.凭证借书 2.查看借书情况 3.退出"<<endl;
cout<<"请输入功能代码:";
cin>>ch;
switch (ch)
{
case '1':
borrowbook();
break;
case '2':
Printborrowbook();
break;
case '3':
return;
break;
default:
cout<<"输入错误,请重新输入:"<<endl;
}
}
void replacebook() //还书模块
{
char bookcode[4];
int i = 0, d = 0;
cout<<"您要还的书籍的编号是:";
cin>>bookcode;
for (i = 0; i < t; i++)
{
if (strcmp(bookcode, rbb[i].bookcode) == 0)
{
d = 1; //逻辑判断,为1则租出,否则没有租出
break; //因为书籍编号具有唯一性,故退出循环
}
}
if (d == 0)
{
cout<<"此书尚未租出或者不存在。"<<endl;
return;
}
else
{
cout<<"此书租出情况如下:"<<endl;
rbb[i].print();
}
char flag;
cout<<"确认要还此书吗?[Y/N]";
cin>>flag;
if (flag == 'y' || flag == 'Y')
{
int p, j = 0;
p = t - i; //P为要循环的次数
for (j = 0; j <= p; j++)
{
rbb[i] = rbb[i + 1];
i++;
}
t--;
//以下为观察借书数组变化的代码
for (i = 0; i < t; i++)
{
rbb[i].print();
cout<<endl;
}
}
}
void rbbwritefile() //将借书库删除内容后的数组写入文件,以达到还书的效果,在程序结束之前调用即可
{
int i = 0;
file_rbb.open("rbb.txt", ios::out);
for (i = 0; i < t; i++)
{
file_rbb.write((char*)&rbb[i], sizeof(rbb[i]));
}
file_rbb.close();
}