?? main.cpp
字號:
#include<iostream.h>
#include<fstream.h>
#include<string.h>
#include"administrator.h"
#include"reader.h"
#include"book.h"
#include"readerhistory.h"
bool passwardcheck1( fstream , char* , char* ) ;//判斷讀者帳號密碼是否正確
bool passwardcheck2( fstream , char* , char* ) ;//判斷管理員帳號密碼是否正確
void main()
{
//以讀寫的方式建立4個數據庫
fstream iofreader( "d:\\reader.dat" , ios::binary|ios::in|ios::out ) ;
fstream iofadministrator( "d:\\administrator.dat" , ios::binary|ios::in|ios::out ) ;
fstream iofbook( "d:\\book.dat" , ios::binary|ios::in|ios::out ) ;
fstream iofhistory( "d:\\history.dat" , ios::binary|ios::in|ios::out ) ;
char codea[10] ;
char passwarda[10] ;
char codeb[10] ;
char passwardb[10] ;
reader stu ;
administrator admin ;
readerhistory history ;
int a ; // 輸入要執行的操作
cout << "------------------------------圖書館管理模擬系統2.0-----------------------------\n\n\n" ;
while(1)
{
cout << " 1.讀者進入\n\n"
<< " 2.管理員進入\n\n"
<< " 3.新用戶注冊\n\n"
<< " 4.退出該系統\n\n" ;
cout << "請輸入要執行的操作編號 : " ;
cin >> a ;
switch( a )
{
case 1 :
cout <<"請輸入帳號: " ;
cin >> codea ;
cout <<"請輸入密碼: " ;
cin >> passwarda;
if (!passwardcheck1(iofreader,codea,passwarda))//判斷密碼帳號是否正確
{
cout << "您輸入的帳號或者密碼錯誤!" << endl ;
break ;
}
stu = reader(codea) ;
int choice ;
cout <<" 1.書籍查詢\n"
<<" 2.借書\n"
<<" 3.還書\n"
<<" 4.修改信息\n"
<<" 5.查詢借閱歷史\n\n" ;
cout << "請輸入選擇: " ;
cin >> choice ;
switch( choice )
{
case 1 :
stu.checkbook(iofbook);
break ;
case 2 :
stu.borrow(iofbook);
break ;
case 3 :
stu.back(iofbook);
break ;
case 4 :
stu.changemessage(iofreader);
break ;
case 5 :
history.print();
break ;
}
break;
case 2 :
cout <<"請輸入帳號: " ;
cin >> codeb ;
cout <<"請輸入密碼: " ;
cin >> passwardb ;
if(!passwardcheck2(iofadministrator,codeb,passwardb)) //判斷密碼帳號是否正確
{
cout << "您輸入的帳號或者密碼錯誤!" << endl ;
break ;
}
int cho ;
cout <<" 1.修改讀者信息\n"
<<" 2.查詢讀者信息\n"
<<" 3.新書入庫\n\n" ;
cout << "請輸入選擇: " ;
cin >> cho ;
switch( cho )
{
case 1 :
admin.changemessage(iofreader);
break ;
case 2 :
admin.checkreader(iofreader);
break ;
case 3 :
admin.append( iofbook ) ;
break ;
}
break ;
case 3 :
int b ;
cout <<" 1.注冊管理員\n"
<<" 2.注冊讀者\n" ;
cout << "請輸入所要注冊的類別: " ;
cin >> b ;
switch( b )
{
case 1 :
administrator ad ;
ad.set();
ad.save(iofadministrator);//保存管理員注冊的信息
cout << "-------------------------恭喜你,注冊成功!現在即可登錄!--------------------------"<<endl<<endl ;
break ;
case 2 :
reader re ;
re.set() ;
re.save(iofreader);//保存讀者的注冊信息
cout << "-------------------------恭喜你,注冊成功!現在即可登錄!--------------------------"<<endl<<endl ;
break ;
}
break ;
case 4 :
return ;
}
}
cout << "-----------------------------感謝使用圖書館模擬系統!----------------------------" << endl ;
}
bool passwardcheck1( fstream f , char* a , char *b )//判斷讀者帳號密碼是否正確
{
reader one ;
f.seekg( 0, ios::end ) ; // 讀指針移到文件末尾
long posEnd = f.tellg() ; // 記錄文件尾
f.seekp( 0, ios::beg ) ; // 讀指針移到文件開始
do {
f.read((char *) & one , sizeof(one)) ;
} while ( one.getcode() != a && f.tellg() != posEnd ) ; //遍歷查找該帳號的讀者
if ( !strcmp(a,one.getcode()) )
{
if( !strcmp(b,one.getpassward()) )
return true ;
else
return false ;
}
else
{
return false ;
}
}
bool passwardcheck2( fstream f , char* a , char *b )//判斷管理員帳號密碼是否正確
{
administrator one ;
f.seekg( 0, ios::end ) ; // 讀指針移到文件末尾
long posEnd = f.tellg() ; // 記錄文件尾
f.seekp( 0, ios::beg ) ; // 讀指針移到文件開始
do {
f.read((char *) & one , sizeof(one)) ;
} while ( one.getcode() != a && f.tellg() != posEnd ) ; //遍歷查找該帳號的讀者
if ( !strcmp(a,one.getcode()) )
{
if( !strcmp(b,one.getpassward()) )
return true ;
else
return false ;
}
else
{
return false ;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -