📄 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 + -