📄 manager.cpp
字号:
#include "Manager.h"
#include "items.h"
int Manager::select_Unreturn(string &date,Chaxun & se)//未归还书本查询
{
MYSQL_RES * point;
int bb[2]={14,14};
string aa="select items.book_name as '书名', concat(concat(loans.ISBN,'-'),char(ascii(FLOOR(loans.number/10)))) as '书号' from items,loans where items.ISBN=loans.ISBN and loans.return_time <= '";
aa=aa+date+"' and (loans.number-FLOOR(loans.number/10)*10)=1;";
point=se.Demand(aa.c_str());
way->Show_data(point,bb);
aa="insert into manager_do values ( '"+Manager_id+"','"+way->Now_time()+"','管理员查询未归还书本成功!');";
//cout<<aa<<endl;
way->Show_judge(se.Run(aa.c_str()));
return 0;
}
int Manager::select_Unreturn_now(Chaxun & se)//超期未还查询
{
select_Unreturn(way->Now(),se);
return 0;
}
int Manager::item_Chang(Chaxun & se)//修改图书信息
{
Items item;
cout<<"**************************************"<<endl;
cout<<"* 请输入你要修改的图书的ISBN号 *"<<endl;
cout<<"*------------------------------------*"<<endl;
string isbn;
cin>>isbn;
item.Get_item_news(isbn,se);
item.Change_item_news();
item.Delete_item(isbn,se);
item.Input_item(se);
isbn="insert into manager_do values ( '"+Manager_id+"','"+way->Now_time()+"','管理员修改图书"+isbn+"信息成功!');";
way->Show_judge(se.Run(isbn.c_str()));
cout<<"**************************************"<<endl;
return 0;
}
int Manager::select_Library_one(Chaxun & se)//查询图书信息
{
cout<<"**************************************"<<endl;
cout<<"* 请输入你要查询的图书的书名 *"<<endl;
cout<<"*------------------------------------*"<<endl;
string name;
cin>>name;
MYSQL_RES * point;
int bb[7]={14,14,5,14,12,4,4};
string aa="select book_name as '书名',ISBN,writer as '作者',publish as '出版社',publish_time as '出版日期', price as '价格',maxbook-number as '可借量' from items where book_name= '";
aa=aa+name+"';";
point=se.Demand(aa.c_str());
way->Show_data(point,bb);
aa="insert into manager_do values ( '"+Manager_id+"','"+way->Now_time()+"','管理员查询图书《"+name+"》信息成功!');";
way->Show_judge(se.Run(aa.c_str()));
return 0;
}
int Manager::select_Library_all(Chaxun & se)//图书馆书籍总查询
{
MYSQL_RES * point;
int bb[7]={14,14,5,14,12,4,4};
string aa="select book_name as '书名',ISBN,writer as '作者',publish as '出版社',publish_time as '出版日期', price as '价格',maxbook-number as '可借量' from items";
point=se.Demand(aa.c_str());
way->Show_data(point,bb);
aa="insert into manager_do values ( '"+Manager_id+"','"+way->Now_time()+"','管理员查询图书馆所有图书信息成功!');";
way->Show_judge(se.Run(aa.c_str()));
return 0;
}
int Manager::return_Book(Chaxun & se)//还书操作
{
cout<<"**************************************"<<endl;
cout<<"* 请输入书本编号 *"<<endl;
cout<<"*------------------------------------*"<<endl;
string id,id1;
cin>>id;
id1="select Read_id from loans where concat(concat(ISBN,'-'),char(ascii(FLOOR(number/10))))='"+id+"' and (number-FLOOR(number/10)*10)=1;";
id="update loans set number = (FLOOR(number/10)*10 + 2) where concat(concat(ISBN,'-'),char(ascii(FLOOR(number/10))))='"+id+"' and (number-FLOOR(number/10)*10)=1;";
int i=se.Run(id.c_str());
way->Show_judge(i);
se.Demand_str(id1.c_str());
string id2(se.data);
delete se.data;
//cout<<id2<<endl;
int ii=id2.find('|',0);
id1=id2.substr(0,ii);
//cout<<id1<<endl;
id1="update reader set number = (number - 1) where read_id='"+id1+"';";
ii=se.Run(id1.c_str());
way->Show_judge(ii);
id1="insert into manager_do values ( '"+Manager_id+"','"+way->Now_time()+"','管理员为读者"+id1+"还书成功!');";
way->Show_judge(se.Run(id1.c_str()));
return 0;
}
int Manager::lend_Book(Chaxun & se)//借书操作
{
cout<<"**************************************"<<endl;
cout<<"* 请输入借书学生学号及图书编号 *"<<endl;
cout<<"*------------------------------------*"<<endl;
string id,book_id,id1,id2;
cin>>id>>book_id;
id2=book_id;
int i=book_id.rfind('-',book_id.length());
id1="update reader set number = number + 1 where read_id = '"+id+"';";
way->Show_judge(se.Run(id1.c_str()));
id1="select read_type from reader where read_id= '"+id+"';";
se.Demand_str(id1.c_str());
string aaa(se.data);
delete se.data;
aaa.erase(aaa.find('|',0));
int j=atoi(aaa.c_str());
id1=id2;
id1.erase(i);
id2.erase(0,i+1);
id1="insert into loans values ( '"+Manager_id+"','"+id+"','"+way->Now()+"','"+id1+"','"+id2+"1"+"','"+way->Now(0,1,0)+"');";
way->Show_judge(se.Run(id1.c_str()));
id1="insert into manager_do values ( '"+Manager_id+"','"+way->Now_time()+"','"+id+"借书"+book_id+"成功!');";
way->Show_judge(se.Run(id1.c_str()));
cout<<"借阅成功!"<<endl;
return 0;
}
int Manager::pwd_Chang(Chaxun & se)//更改密码操作
{
string pwd1,pwd2;
cout<<"**************************************"<<endl;
cout<<"* 请输入你的新密码 *"<<endl;
cin>>pwd1;
cout<<"* 请再次确认密码 *"<<endl;
cin>>pwd2;
if(pwd1==pwd2)
{
pwd1="update manager set manager_pwd = '" + pwd1 +"' where manage_id= '"+Manager_id+"';";
way->Show_judge(se.Run(pwd1.c_str()));
pwd1="input into manager_do values ( '"+Manager_id+"','"+pwd1+"','"+way->Now_time()+"','将密码改为:"+pwd1+"成功!');";
way->Show_judge(se.Run(pwd1.c_str()));
}
else
pwd_Chang(se);
return 0;
}
int Manager::report_Lost(Chaxun & se)//图书挂失
{
cout<<"**************************************"<<endl;
cout<<"* 请输入图书编号 *"<<endl;
cout<<"*------------------------------------*"<<endl;
string id,id1;
cin>>id;
id1=id;
id="update loans set number= (FLOOR(number/10)*10 + 3) where concat(concat(ISBN,'-'),char(ascii(FLOOR(number/10))))='"+id+"' and (number-FLOOR(number/10)*10)=1;";
way->Show_judge(se.Run(id.c_str()));
id="input into manager_do values ( '"+Manager_id+"','"+way->Now_time()+"','完成图书:"+id1+"挂失成功!');";
way->Show_judge(se.Run(id.c_str()));
return 0;
}
int Manager::return_Lost(Chaxun & se)//挂失图书归还
{
cout<<"**************************************"<<endl;
cout<<"* 请输入图书编号 *"<<endl;
cout<<"*------------------------------------*"<<endl;
string id,id1,id2;
cin>>id;
id2=id;
id1="select Read_id from loans where concat(concat(ISBN,'-'),char(ascii(FLOOR(number/10))))='"+id+"' and (number-FLOOR(number/10)*10)=1;";
id="update loans set number= (FLOOR(number/10)*10 + 2) where concat(concat(ISBN,'-'),char(ascii(FLOOR(number/10))))='"+id+"' and floor(number - floor(number/10)*10)=3;";
//cout<<id<<endl;
way->Show_judge(se.Run(id.c_str()));
se.Demand_str(id1.c_str());
string id3(se.data);
delete se.data;
int ii=id3.find('|',0);
id1=id3.substr(0,ii);
id1="update reader set number = (number - 1) where read_id='"+id1+"';";
se.Run(id1.c_str());
id="insert into manager_do values ( '"+Manager_id+"','"+way->Now_time()+"','完成图书:"+id2+"挂失成功!');";
way->Show_judge(se.Run(id.c_str()));
return 0;
}
int Manager::process_reserva_Book(Chaxun & se)//处理读者预约
{
string id="select reader_id as '读者ID',book_name as '书名' from reserve where state=0;";
MYSQL_RES *point;
point=se.Demand(id.c_str());
id="";
long j = mysql_num_fields(point);
MYSQL_ROW row;
while( row = mysql_fetch_row(point))
{
for(int l=0 ; l< j;l++)
{
if(row[l]==NULL || !strlen(row[l]))
cout<<"NULL";
else
{
if(l==0)
{
cout<<"*------------------------------------*"<<endl;
cout<<"读者:";
cout<<std::setw(14)<<row[l]<<" ";
}
else if(l==1)
{
cout<<"预约图书《"<<row[l]<<"》-是否同意?"<<endl;
cout<<"1.同意 2.不同意"<<endl;
int i;
cin>>i;
if(i==2)
{
id=id+string(row[0])+"|"+string(row[1])+"@";
id="insert into manager_do values ( '"+Manager_id+"','"+way->Now_time()+"','完成对读者:"+row[0]+"对图书《"+row[1]+"》的预约批准操作!');";
way->Show_judge(se.Run(id.c_str()));
}
else
{
id="insert into manager_do values ( '"+Manager_id+"','"+way->Now_time()+"','完成对读者:"+row[0]+"对图书《"+row[1]+"》的预约未批准操作!');";
way->Show_judge(se.Run(id.c_str()));
}
}
}
}
}
int k=0;
while(k!=id.length())
{
int m,n;
string str1,str2;
n=id.find('@',k);
string aa=id.substr(k,n-j);
m=aa.find('|',k);
str1=aa.substr(k,m-k);
str2=aa.substr(m+1,n-m);
k=n+1;
str1="update reserve set state = 1,manager_id = '"+Manager_id+"' where reader_id = '"+str1+"' and book_name = '"+str2+"' and state = 0;";
se.Run(str1.c_str());
str1="update reserve set state = 2,manager_id = '"+Manager_id+"' where state = 0;";
se.Run(str1.c_str());
}
return 0;
}
int SuManager::Add_Member(int i,Chaxun & se)//增加管理员 增加图书 增加学生
{
if(i==1)
{
cout<<"**************************************"<<endl;
cout<<"* 请输入管理员信息 *"<<endl;
cout<<"* 用户名 密码 姓名 职务:*"<<endl;
string id,pwd,name,position;
cin>>id>>pwd>>name>>position;
id="insert into manager values ( '"+id+"','"+pwd+"','"+name+"','"+position+"');";
way->Show_judge(se.Run(id.c_str()));
}
else if(i==2)
{
cout<<"**************************************"<<endl;
cout<<"* 请输入图书信息 *"<<endl;
cout<<"* ISBN 书名 作者 出版社 出版时间*"<<endl;
cout<<"* 价格 图书总数 *"<<endl;
string isbn,name,writer,pub,pub_tim;
float pri;
int num;
cin>>isbn>>name>>writer>>pub>>pub_tim>>pri>>num;
isbn="insert into items values ( '"+isbn+"','"+name+"','"+writer+"','"+pub+"','"+pub_tim+"','"+way->ftos(pri)+"','"+way->itos(num)+"','0');";
way->Show_judge(se.Run(isbn.c_str()));
}
else
{
cout<<"**************************************"<<endl;
cout<<"* 请输入读者信息 *"<<endl;
cout<<"* ID 密码 名字 类型 *"<<endl;
cout<<"* 类型(1.本科生 2.博士生 3.研究生)*"<<endl;
string id,pwd,name;
int typ;
cin>>id>>pwd>>name>>typ;
if(typ==1)
id="insert into reader values ( '"+id+"','"+pwd+"','"+name+"','1','10','0');";
if(typ==2)
id="insert into reader values ( '"+id+"','"+pwd+"','"+name+"','2','20','0');";
if(typ==3)
id="insert into reader values ( '"+id+"','"+pwd+"','"+name+"','3','30','0');";
way->Show_judge(se.Run(id.c_str()));
}
return 0;
}
int SuManager::Del_Member(int i,Chaxun & se)//去除管理员 修改图书 去除学生
{
string id;
if(i==1)
{
cout<<"**************************************"<<endl;
cout<<"* 请输入管理员编号 *"<<endl;
cin>>id;
id="delete from manager where manage_id = ( '"+id+"');";
}
if(i==2)
{
cout<<"**************************************"<<endl;
cout<<"* 请输入图书ISBN编号 *"<<endl;
cin>>id;
id="delete from items where ISBN= ( '"+id+"');";
}
if(i==3)
{
cout<<"**************************************"<<endl;
cout<<"* 请输入学生编号 *"<<endl;
cin>>id;
id="delete from reader where read_id = ( '"+id+"');";
}
way->Show_judge(se.Run(id.c_str()));
return 0;
}
int SuManager::Show_News(int i,Chaxun & se)//显示所有学生信息 显示所有管理员信息 显示所有图书信息 管理员操作查询 借还书记录总查询
{
string str;
MYSQL_RES * point;
if(i==1)
{
cout<<"**************************************"<<endl;
cout<<"* 所有学生信息为: *"<<endl;
int bb[6]={10,6,6,8,10,4};
str="select read_id as '读者编号',read_pwd as '密码',read_name as '姓名',read_type as '读者类型',lend_max as '最大借书量',number as '现借书量' from reader;";
point=se.Demand(str.c_str());
cout<<"读者类型说明: 1:本科生 2:研究生 3:博士生"<<endl;
way->Show_data(point,bb);
}
if(i==2)
{
cout<<"**************************************"<<endl;
cout<<"* 所有管理员信息为: *"<<endl;
int bb[4]={10,6,6,8};
str="select manage_id as '管理员编号',manage_pwd as '密码',manage_name as '姓名',manage_position as '职务' from manager;";
point=se.Demand(str.c_str());
way->Show_data(point,bb);
}
if(i==3)
{
cout<<"**************************************"<<endl;
cout<<"* 所有图书信息为: *"<<endl;
int bb[8]={15,15,6,15,12,4,4,4};
str="select ISBN ,book_name as '书名',writer as '作者',publish as '出版社',publish_time as '出版时间',price as '价格',maxbook as '总数',number as '已借出' from items;";
point=se.Demand(str.c_str());
way->Show_data(point,bb);
}
if(i==4)
{
cout<<"**************************************"<<endl;
cout<<"* 所有管理员操作信息为: *"<<endl;
int bb[3]={8,20,100};
str="select manager_id as '管理员编号',time as '时间',things as '事件' from manager_do;";
point=se.Demand(str.c_str());
way->Show_data(point,bb);
}
if(i==5)
{
cout<<"**************************************"<<endl;
cout<<"* 所有借还书记录信息为: *"<<endl;
int bb[6]={10,10,12,14,4,12};
str="select manage_id as '管理员编号',read_id as '读者编号',lend_time as '借书时间',concat(concat(ISBN,'-'),char(ascii(FLOOR(number/10)))) as '书号',(number-FLOOR(number/10)*10) as '状态',return_time as '还书时间' from loans;";
point=se.Demand(str.c_str());
cout<<"状态值说明: 1:已借未还 2:已还 3:已挂失 4:已丢失 5.已赔款"<<endl;
way->Show_data(point,bb);
}
if(i==6)
{
cout<<"**************************************"<<endl;
cout<<"* 所有预约图书信息为: *"<<endl;
int bb[5]={10,15,20,10,4};
str="select reader_id as '读者编号',book_name as '书名',time as '预约时间',manager_id as '管理员编号',state as '状态' from reserve;";
point=se.Demand(str.c_str());
cout<<"状态值说明: 0:未处理 1:已批准 2:未批准"<<endl;
way->Show_data(point,bb);
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -