?? 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 '價(jià)格',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 '價(jià)格',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<<"* 請輸入借書學(xué)生學(xué)號及圖書編號 *"<<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<<"* 請?jiān)俅未_認(rèn)密碼 *"<<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)//處理讀者預(yù)約
{
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<<"預(yù)約圖書《"<<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]+"》的預(yù)約批準(zhǔn)操作!');";
way->Show_judge(se.Run(id.c_str()));
}
else
{
id="insert into manager_do values ( '"+Manager_id+"','"+way->Now_time()+"','完成對讀者:"+row[0]+"對圖書《"+row[1]+"》的預(yù)約未批準(zhǔn)操作!');";
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)//增加管理員 增加圖書 增加學(xué)生
{
if(i==1)
{
cout<<"**************************************"<<endl;
cout<<"* 請輸入管理員信息 *"<<endl;
cout<<"* 用戶名 密碼 姓名 職務(wù):*"<<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 書名 作者 出版社 出版時(shí)間*"<<endl;
cout<<"* 價(jià)格 圖書總數(shù) *"<<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)//去除管理員 修改圖書 去除學(xué)生
{
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<<"* 請輸入學(xué)生編號 *"<<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)//顯示所有學(xué)生信息 顯示所有管理員信息 顯示所有圖書信息 管理員操作查詢 借還書記錄總查詢
{
string str;
MYSQL_RES * point;
if(i==1)
{
cout<<"**************************************"<<endl;
cout<<"* 所有學(xué)生信息為: *"<<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 '現(xiàn)借書量' 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 '職務(wù)' 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 '出版時(shí)間',price as '價(jià)格',maxbook as '總數(shù)',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 '時(shí)間',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 '借書時(shí)間',concat(concat(ISBN,'-'),char(ascii(FLOOR(number/10)))) as '書號',(number-FLOOR(number/10)*10) as '狀態(tài)',return_time as '還書時(shí)間' from loans;";
point=se.Demand(str.c_str());
cout<<"狀態(tài)值說明: 1:已借未還 2:已還 3:已掛失 4:已丟失 5.已賠款"<<endl;
way->Show_data(point,bb);
}
if(i==6)
{
cout<<"**************************************"<<endl;
cout<<"* 所有預(yù)約圖書信息為: *"<<endl;
int bb[5]={10,15,20,10,4};
str="select reader_id as '讀者編號',book_name as '書名',time as '預(yù)約時(shí)間',manager_id as '管理員編號',state as '狀態(tài)' from reserve;";
point=se.Demand(str.c_str());
cout<<"狀態(tài)值說明: 0:未處理 1:已批準(zhǔn) 2:未批準(zhǔn)"<<endl;
way->Show_data(point,bb);
}
return 0;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -