⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 图书馆是一个拥有许多图书并面向学生的一个机构
💻 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 + -