📄 library.cpp
字号:
cout<<"3-修改读者信息"<<endl;
cout<<"4-读者信息查询"<<endl;
cout<<"5-显示本馆读者列表"<<endl;
cout<<"0-退出读者管理系统"<<endl;
cout<<endl<<"请输入你的选择: "<<flush;
choice=checkChoice(0,5);
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<<"请输入新增读者类型(1-学生 2-教师): "<<flush;
lim=checkChoice(1,2);
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()>2) cout<<"操作失败!不能删除管理员!"<<endl;
else if (reader[searchReader(num)].getBorrowedNum()!=0) cout<<"操作失败!此人尚借书未还!"<<endl;
else
{
reader[searchReader(num)].deleteReader();
cout<<"删除操作成功!";
}
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()>2) cout<<"操作失败!不能修改管理员!"<<endl;
else
{
cout<<"请输入新的姓名: "; cin>>na;
cout<<"请输入新的密码: "<<flush;
strcpy(psw,password());
cout<<"请确认新的密码: "<<flush;
strcpy(confirmPsw,password());
if (!strcmp(psw,confirmPsw))
{
cout<<"请输入新的读者类型(1-学生 2-教师): "<<flush;
choice=checkChoice(1,2);
cout<<"修改读者成功!";
reader[searchReader(num)].setReader(num,na,psw,lim);
}
else cout<<"操作失败,两次输入的密码不符!"<<endl;
}
break;
case 4:
cout<<"请输入要查询的读者卡号: "; cin>>num;
if (searchReader(num)==-1) cout<<"操作失败!该卡号不存在!"<<endl;
else
{
cout<<endl<<setiosflags(ios::left)<<setw(10)<<"卡号"<<setw(15)<<"姓名"<<setw(15)<<"权限"<<setw(15)<<"借书本数"<<endl;
reader[searchReader(num)].print();
}
break;
case 5:
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()<3 && reader[i].getLimit()>0)
{
reader[i].print();
j++;
}
cout<<"本馆共有"<<j<<"位读者"<<endl;
default: break;
}
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////
void readerInformation(long num) //读者信息查询
{
int i;
cout<<endl<<"※※※※※※※※※※※※※※¤ 读者信息查询 ¤※※※※※※※※※※※※※※"<<endl;
cout<<endl<<setiosflags(ios::left)<<setw(10)<<"卡号"<<setw(15)<<"姓名"<<setw(15)<<"权限"<<setw(15)<<"借书本数"<<endl;
reader[searchReader(temp_CardNumber)].print();
if (reader[searchReader(temp_CardNumber)].borrowed_Num)
{
cout<<endl<<"你借了以下"<<reader[searchReader(temp_CardNumber)].borrowed_Num<<"本书: "<<endl<<flush;
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].status>=2 && num==book[i].lend_Reader) book[i].print(num);
}
else cout<<endl<<"你没有借过图书!"<<endl<<flush;
for (i=0; i<book_Number; i++)
if (book[i].status==3 && num==book[i].book_Reader) book[i].print(num);
cout<<endl;
system("pause");
}
///////////////////////////////////////////////////////////////////////////////////////////////////
int login() //用户登录函数
{
char temp_Psw[PSW_LENGTH];
while (1)
{
cout<<endl<<"请输入你的卡号: "; cin>>temp_CardNumber;
if (searchReader(temp_CardNumber)==-1)
{
cout<<"该卡号不存在!"<<endl<<endl;
system("pause");
return 1;
}
else break;
}
cout<<"请输入你的密码: "<<flush;
strcpy(temp_Psw,password());
if (reader[searchReader(temp_CardNumber)].checkPassword(temp_Psw))
{
cout<<"密码错误,请重试!"<<endl<<endl;
system("pause");
return 1;
}
else return 0;
}
///////////////////////////////////////////////////////////////////////////////////////////////////
void advise()
{
system("cls");
char name[20];
char contract[40];
char advise[200];
cout<<endl<<"※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※"<<endl;
cout<<"※ ※"<<endl;
cout<<"※ 留 言 ※"<<endl;
cout<<"※ ※"<<endl;
cout<<"※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※"<<endl;
cout<<endl<<"添加留言"<<endl;
cout<<"---------------------------------------"<<endl;
cout<<"您的大名:"; cin>>name;
cout<<endl;
cout<<"您的联系方式:"; cin>>contract;
cout<<endl;
cout<<"您的宝贵建议:"; cin>>advise;
cout<<endl;
cout<<"---------------------------------------"<<endl;
ofstream fout("advise.txt",ios::ate,2); //开始写入文件information
fout.setf(ios::left);
if(!fout)
{
cout<<"无法打开文件,错误!"<<endl;
}
fout<<setw(20)<<name<<setw(40)<<contract<<setw(200)<<advise<<endl;
fout.close();
cout<<"谢谢大虾"<<name<<"的留言,我会努力的^_^"<<endl;
cout<<endl;
system("pause");
}
///////////////////////////////////////////////////////////////////////////////////////////////////
void show(int lim) //界面显示函数
{
int choice=1;
switch (lim)
{
case 1:
case 2: while (choice)
{
system("cls"); cout<<endl;
cout<<"※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※"<<endl;
cout<<"※ ※"<<endl;
cout<<"※ 欢迎登录图书管理系统 (普通师生) ※"<<endl;
cout<<"※ ※"<<endl;
cout<<"※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※"<<endl;
cout<<endl;
cout<<"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: searchBookSystem(); break;
case 2: bookOperate(temp_CardNumber); break;
case 3: readerInformation(temp_CardNumber); break;
case 4: changePassword(); break;
}
}
break;
case 3: while (choice)
{
system("cls"); cout<<endl;
cout<<"※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※"<<endl;
cout<<"※ ※"<<endl;
cout<<"※ 欢迎登录图书管理系统 (图书管理员) ※"<<endl;
cout<<"※ ※"<<endl;
cout<<"※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※"<<endl;
cout<<endl;
cout<<"1-图书管理"<<endl;
cout<<"2-图书查询"<<endl;
cout<<"3-流通管理"<<endl;
cout<<"4-读者信息"<<endl;
cout<<"5-密码修改"<<endl;
cout<<"0-注销登录"<<endl;
cout<<endl<<"请输入你的选择: "<<flush;
choice=checkChoice(0,5);
switch (choice)
{
case 1: bookArrangement(); break;
case 2: searchBookSystem(); break;
case 3: bookOperate(temp_CardNumber); break;
case 4: readerInformation(temp_CardNumber); break;
case 5: changePassword(); break;
}
}
break;
case 4: while (choice)
{
system("cls"); cout<<endl;
cout<<"※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※"<<endl;
cout<<"※ ※"<<endl;
cout<<"※ 欢迎登录图书管理系统 (读者管理员) ※"<<endl;
cout<<"※ ※"<<endl;
cout<<"※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※"<<endl;
cout<<endl;
cout<<"1-读者管理"<<endl;
cout<<"2-图书查询"<<endl;
cout<<"3-流通管理"<<endl;
cout<<"4-读者信息"<<endl;
cout<<"5-密码修改"<<endl;
cout<<"0-注销登录"<<endl;
cout<<endl<<"请输入你的选择: "<<flush;
choice=checkChoice(0,5);
switch (choice)
{
case 1: readerArrangement(); break;
case 2: searchBookSystem(); break;
case 3: bookOperate(temp_CardNumber); break;
case 4: readerInformation(temp_CardNumber); break;
case 5: changePassword(); break;
}
}
break;
case 5: while (choice)
{
system("cls"); cout<<endl;
cout<<"※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※"<<endl;
cout<<"※ ※"<<endl;
cout<<"※ 欢迎登录图书管理系统 (系统管理员) ※"<<endl;
cout<<"※ ※"<<endl;
cout<<"※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※"<<endl;
cout<<endl;
cout<<"1-权限管理"<<endl;
cout<<"2-图书管理"<<endl;
cout<<"3-读者管理"<<endl;
cout<<"4-图书查询"<<endl;
cout<<"5-流通管理"<<endl;
cout<<"6-读者信息"<<endl;
cout<<"7-密码修改"<<endl;
cout<<"0-注销登录"<<endl;
cout<<endl<<"请输入你的选择: "<<flush;
choice=checkChoice(0,7);
switch (choice)
{
case 1: limitArrangement(); break;
case 2: bookArrangement(); break;
case 3: readerArrangement(); break;
case 4: searchBookSystem(); break;
case 5: bookOperate(temp_CardNumber); break;
case 6: readerInformation(temp_CardNumber); break;
case 7: changePassword(); break;
}
}
break;
default: break;
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////
void main() //主函数
{
ireader>>reader_Number;
ibook>>book_Number;
for (int i=0; i<reader_Number; i++) ireader>>reader[i];
for (i=0; i<book_Number; i++) ibook>>book[i];
int choice=1;
while (choice)
{
system("cls"); cout<<endl;
cout<<"※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※"<<endl;
cout<<"※ ※"<<endl;
cout<<"※ 欢迎使用图书管理系统 ※"<<endl;
cout<<"※ ※"<<endl;
cout<<"※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※"<<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:
if (login()) break;
show(reader[searchReader(temp_CardNumber)].getLimit());
break;
case 2:
searchBookSystem();
break;
case 3:
advise();
break;
default:
break;
}
}
ofstream clearreader("reader.txt",ios::trunc); //清空原文本
clearreader.close();
int k=0; //逻辑删除转变为物理删除
for (i=0; i<reader_Number; i++)
if (reader[i].getLimit()==0) k++;
oreader.seekp(0);
oreader<<reader_Number-k<<endl;
ofstream clearbook("book.txt",ios::trunc);
clearbook.close();
k=0;
for (i=0; i<book_Number; i++)
if (book[i].getStatus()==0) k++;
obook.seekp(0);
obook<<book_Number-k<<endl;
for (i=0; i<reader_Number; i++)
if (reader[i].getLimit()!=0) oreader<<reader[i];
for (i=0; i<book_Number; i++)
if (book[i].getStatus!=0) obook<<book[i];
cout<<"\n\n\n\n\n\n\n\n\n"<<" ★本系统由冰麒麟制作★"<<endl;
cout<<" ☆谢谢使用☆"<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -