📄 library.cpp
字号:
else if (reader[searchReader(num)].getBorrowedNum()>=maxnum)
cout<<"对不起,你已经借了"<<maxnum<<"本书了!"<<endl;
else if (book[searchBook(bookNum)].lendBook(num))
{
reader[searchReader(num)].borrowNumUp();
cout<<"借书操作成功!"<<endl;
}
else cout<<"对不起,该书目前不在馆中!"<<endl;
break;
case 2:
cout<<"请输入要还的图书编号: "; cin>>bookNum;
if (searchBook(bookNum)==-1)
cout<<"对不起,该图书号不存在!"<<endl;
else if (book[searchBook(bookNum)].returnBook(num))
{
reader[searchReader(num)].borrowNumDown();
cout<<"还书操作成功!"<<endl;
}
else cout<<"对不起,你没有借过这本书!"<<endl;
break;
case 3:
if (reader[searchReader(num)].getLimit()==1)
cout<<"对不起,学生没有预定的权利!"<<endl;
else
{
cout<<"请输入要预定的图书编号: "; cin>>bookNum;
if (searchBook(bookNum)==-1)
cout<<"对不起,该图书号不存在!"<<endl;
else if (reader[searchReader(num)].getBorrowedNum()>=maxnum)
cout<<"对不起,你已经借了"<<maxnum<<"本书了!"<<endl;
else if (book[searchBook(bookNum)].bookBook(num))
{
reader[searchReader(num)].borrowNumUp();
cout<<"预定操作成功!"<<endl;
}
else cout<<"对不起,该书在馆中或已被预定!"<<endl;
}
break;
default: break;
}
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////
void searchBookSystem() //图书查询系统
{
int i,len=0,j,k;
int choice=1;
long num;
char name[40];
char author[20];
char p[40];
char isbn[20];
while (choice)
{
cout<<endl<<"※※※※※※※※※※※※※※¤ 图书查询系统 ¤※※※※※※※※※※※※※※"<<endl;
cout<<endl<<"1-按书号查询"<<endl;
cout<<"2-按书名查询(支持模糊查询)"<<endl;
cout<<"3-按作者查询(支持模糊查询)"<<endl;
cout<<"4-按ISBN号查询"<<endl;
cout<<"5-列出本馆所收藏图书"<<endl;
cout<<"0-退出图书查询系统"<<endl;
cout<<endl<<"请输入你的选择: "<<flush;
choice=checkChoice(0,5);
switch (choice)
{
case 1:
cout<<"请输入要查找的图书号:"; cin>>num;
cout<<endl;
if (searchBook(num)==-1) cout<<"对不起,该书号不存在!"<<endl;
else
{
cout<<"找到1本满足条件的书:"<<endl;
cout<<setiosflags(ios::left)<<setw(10)<<"图书编号"<<setw(25)<<"书名"<<setw(20)<<"作者"<<setw(15)<<"ISBN号"<<setw(5)<<"状态"<<endl;
book[searchBook(num)].print(0);
}
break;
case 2:
cout<<"请输入要查找的书名:"; cin>>name;
cout<<endl;
k=0;
len=strlen(name);
for (i=0; i<book_Number; i++)
{
j=0;
while (book[i].getName()[j]!='\0')
{
strcpy(p,&book[i].getName()[j]);
p[len]='\0';
if (!strcmp(p,name))
{ k++; break; }
j++;
}
}
if (!k) cout<<"对不起,没有满足条件的书目!"<<endl;
else
{
cout<<"找到"<<k<<"本满足条件的书:"<<endl;
cout<<setiosflags(ios::left)<<setw(10)<<"图书编号"<<setw(25)<<"书名"<<setw(20)<<"作者"<<setw(15)<<"ISBN号"<<setw(5)<<"状态"<<endl;
for (i=0; i<book_Number; i++)
{
j=0;
while (book[i].getName()[j]!='\0')
{
strcpy(p,&book[i].getName()[j]);
p[len]='\0';
if (!strcmp(p,name))
{
book[i].print(0);
break;
}
j++;
}
}
}
break;
case 3:
cout<<"请输入要查找的作者:"; cin>>author;
cout<<endl;
len=strlen(author);
k=0;
for (i=0; i<book_Number; i++)
{
j=0;
while (book[i].getAuthor()[j]!='\0')
{
strcpy(p,&book[i].getAuthor()[j]);
p[len]='\0';
if (!strcmp(p,author))
{ k++; break; }
j++;
}
}
if (!k) cout<<"对不起,没有满足条件的书目!"<<endl;
else
{
cout<<"找到"<<k<<"本满足条件的书:"<<endl;
cout<<setiosflags(ios::left)<<setw(10)<<"图书编号"<<setw(25)<<"书名"<<setw(20)<<"作者"<<setw(15)<<"ISBN号"<<setw(5)<<"状态"<<endl;
for (i=0; i<book_Number; i++)
{
j=0;
while (book[i].getAuthor()[j]!='\0')
{
strcpy(p,&book[i].getAuthor()[j]);
p[len]='\0';
if (!strcmp(p,author))
{
book[i].print(0);
break;
}
j++;
}
}
}
break;
case 4:
cout<<"请输入要查找的ISBN号:"; cin>>isbn;
cout<<endl;
j=0;
for (i=0; i<book_Number; i++)
{
if (!strcmp(isbn,book[i].getIsbn()))
{
cout<<"找到1本满足条件的书:"<<endl;
cout<<setiosflags(ios::left)<<setw(10)<<"图书编号"<<setw(25)<<"书名"<<setw(20)<<"作者"<<setw(15)<<"ISBN号"<<setw(5)<<"状态"<<endl;
book[i].print(0);
j++;
}
}
if (!j) cout<<"对不起,馆内无此书!"<<endl;
break;
case 5:
j=0;
for (i=0; i<book_Number; i++)
if (book[i].getStatus()!=0) j++;
cout<<"馆内共有"<<j<<"本书:"<<endl;
cout<<setiosflags(ios::left)<<setw(10)<<"图书编号"<<setw(25)<<"书名"<<setw(20)<<"作者"<<setw(15)<<"ISBN号"<<setw(5)<<"状态"<<endl;
for (i=0; i<book_Number; i++)
if (book[i].getStatus()!=0) book[i].print(0);
break;
default: break;
}
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////
void bookArrangement() //图书管理系统
{
int choice=1;
long num;
char name[40];
char author[20];
char isbn[20];
while(choice)
{
cout<<endl<<"※※※※※※※※※※※※※※¤ 图书管理系统 ¤※※※※※※※※※※※※※※"<<endl;
cout<<endl<<"1-添加新书"<<endl;
cout<<"2-删除旧书"<<endl;
cout<<"3-修改图书信息"<<endl;
cout<<"0-退出图书管理系统"<<endl;
cout<<endl<<"请输入您的选择: "<<flush;
choice=checkChoice(0,3);
switch(choice)
{
case 1:
cout<<"请输入书号: "; cin>>num;
if(searchBook(num)!=-1) cout<<"操作失败,此书号已存在!"<<endl;
else
{
cout<<"请输入书名: "; cin>>name;
cout<<"请输入作者: "; cin>>author;
cout<<"请输入ISBN号: "; cin>>isbn;
cout<<"新增图书成功!"<<endl;
book[book_Number].setBook(num,name,author,isbn);
book_Number++;
}
break;
case 2:
cout<<"请输入要删除的书号: "; cin>>num;
cout<<"确认要删除此书? (y/n): "<<flush;
if (yesno()=='n') break;
if (searchBook(num)==-1) cout<<"操作失败,没有此书号!"<<endl;
else if (book[searchBook(num)].getStatus()!=1) cout<<"对不起,此书目前不在馆中,无法删除!"<<endl;
else
{
book[searchBook(num)].deleteBook();
cout<<"删除图书成功!";
}
break;
case 3:
cout<<"请输入要修改的书号: "; cin>>num;
cout<<"确认要修改此书? (y/n): "<<flush;
if (yesno()=='n') break;
if (searchBook(num)==-1) cout<<"操作失败,没有此书号!"<<endl;
else if (book[searchBook(num)].getStatus()!=1) cout<<"对不起,此书目前不在馆中,无法修改!"<<endl;
else
{
cout<<"请输入新的书名: "; cin>>name;
cout<<"请输入新的作者: "; cin>>author;
cout<<"请输入新的ISBN号: "; cin>>isbn;
cout<<"修改图书成功!"<<endl;
book[searchBook(num)].setBook(num,name,author,isbn);
}
break;
default:break;
}
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////
void limitArrangement() //权限管理系统
{
int choice=1,i,j=0;
long num;
char na[20];
char psw[PSW_LENGTH];
char confirmPsw[PSW_LENGTH];
int lim;
while(choice)
{
cout<<endl<<"※※※※※※※※※※※※※※¤ 权限管理系统 ¤※※※※※※※※※※※※※※"<<endl;
cout<<endl<<"1-添加管理员"<<endl;
cout<<"2-删除管理员"<<endl;
cout<<"3-修改管理权限"<<endl;
cout<<"4-列出本馆管理员清单"<<endl;
cout<<"0-退出权限管理系统"<<endl;
cout<<endl<<"请输入你的选择: "<<flush;
choice=checkChoice(0,4);
switch(choice)
{
case 1:
cout<<"请输入新增管理员卡号: "; cin>>num;
if (searchReader(num)!=-1) cout<<"操作失败!该卡号已经存在!"<<endl;
else
{
cout<<"请输入新增管理员姓名: "; cin>>na;
cout<<"请输入新增管理员密码: "<<flush;
strcpy(psw,password());
cout<<"请确认新增管理员密码: "<<flush;
strcpy(confirmPsw,password());
if (!strcmp(psw,confirmPsw))
{
cout<<"请输入新增管理员权限(3-图书管理 4-读者管理 5-系统管理):"<<flush;
lim=checkChoice(3,5);
cout<<"新增管理员成功!"<<endl;
reader[reader_Number].setReader(num,na,psw,lim);
reader_Number++;
}
else cout<<"操作失败,两次输入的密码不符!"<<endl;
}
break;
case 2:
cout<<"请输入要删除的管理员卡号: "; cin>>num;
cout<<"确认要删除该管理员? (y/n): "<<flush;
if (yesno()=='n') break;
if (searchReader(num)==-1) cout<<"操作失败!该卡号不存在!"<<endl;
else if (reader[searchReader(num)].getLimit()==5) cout<<"操作失败!系统管理员不能删除!"<<endl;
else if (reader[searchReader(num)].getLimit()<3) cout<<"操作失败!此人不是管理员!"<<endl;
else if (reader[searchReader(num)].getBorrowedNum()!=0) cout<<"操作失败!此人尚借书未还!"<<endl;
else
{
reader[searchReader(num)].deleteReader();
cout<<"删除操作成功!"<<endl;
}
break;
case 3:
cout<<"读者的卡号: "; cin>>num;
cout<<"确认要转换该读者为管理员? (y/n): "<<flush;
if (yesno()=='n') break;
if (searchReader(num)==-1) cout<<"操作失败!该卡号不存在!"<<endl;
else if (reader[searchReader(num)].getLimit()==5) cout<<"操作失败!系统管理员的权限不能修改!"<<endl;
else
{
cout<<"转换成什么权限(3-图书管理 4-读者管理 5-系统管理): "<<flush;
lim=checkChoice(3,5);
reader[searchReader(num)].changeLimit(lim);
cout<<"权限转换成功!"<<endl;
}
break;
case 4:
cout<<setiosflags(ios::left)<<setw(10)<<"卡号"<<setw(15)<<"姓名"<<setw(15)<<"权限"<<setw(15)<<"借书本数"<<endl;
j=0;
for (i=0; i<reader_Number; i++)
if (reader[i].getLimit()>2)
{
reader[i].print();
j++;
}
cout<<"本馆共有"<<j<<"位管理员"<<endl;
default:break;
}
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////
void readerArrangement() //读者管理系统
{
int choice=1,i,j=0;
long num;
char na[20];
char psw[PSW_LENGTH];
char confirmPsw[PSW_LENGTH];
int lim;
while (choice)
{
cout<<endl<<"※※※※※※※※※※※※※※¤ 读者管理系统 ¤※※※※※※※※※※※※※※"<<endl;
cout<<endl<<"1-添加读者"<<endl;
cout<<"2-删除读者"<<endl;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -