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

📄 bookdata_func.h

📁 C++课程设计的作业
💻 H
字号:
//*****************************
//任  务:C++课程设计
//题  目:图书管理系统
//作  者:040630520彭立勋
//题  号:课程设计Final
//用  途:实现BookData类的头文件
//文件名:BookData_Func.h
//最后更新日期:2007.6.10
//*****************************

#ifndef BOOKDATAFUNCDEF_H
#define BOOKDATAFUNCDEF_H

#include "BookData_Head.h"
	
/*声明FileWork类的函数*/
fstream FileWork::File;
void FileWork::OpenFile( );
void FileWork::WriteToFile( const BookData & );	
void FileWork::WriteToFile( int , const BookData & );
void FileWork::ReadFromFile( BookData & );
void FileWork::ReadFromFile( int , BookData & );	
void FileWork::WriteNUM( );	
void FileWork::CloseFile( );
float Sale::TaxRate = TRATE;//定义税率
float Sale::Total;			//销售额
float Sale::Tax;			//销售税
float Sale::SubTotal;		//总付款 

/*类函数实现部分*/
bool BookData::IsEmpty( )
{
	char *str=BookData::GetTitle();
	if( str[0] == '\0' )
		return true;
	else return false;
}

int BookData::BookMatch( bool Mode , char *Val )	//1-按Title查找,0-按ISBN查找
{
	int i;
	char str[51];
	
	for(i=1;i<=NUM;i++)
	{
		FileWork::ReadFromFile( i , *this );
		if( Mode )
			strcpy( str , BookData::GetTitle( ) );
		else 	strcpy( str , BookData::GetISBN( ) );

		if( ( strcmp( StrUpper( str ) , StrUpper( Val ) ) == 0 ) 
			&&  ( ! BookData::IsEmpty( ) ) )
			return i;
	}
	return -1;
}	

void BookData::BookInfo( )
{
	cout<<TAB<<"\t    书的资料\n"
		<<TAB<<"ISBN  号: "<<BookData::GetISBN( )
		<<TAB<<"书    名: "<<BookData::GetTitle( )
		<<TAB<<"作    者: "<<BookData::GetAuthor( )
		<<TAB<<"出 版 社: "<<BookData::GetPub( )
		<<TAB<<"进书日期: "<<BookData::GetDateAdded( )
		<<TAB<<"库 存 量: "<<BookData::GetQty( )
		<<TAB<<"批 发 价: "<<BookData::GetWholesale( )
		<<TAB<<"零 售 价: "<<BookData::GetRetail( )
		<<endl;
}

void  Sale::Cashier(  )	
{	
	Sale::Total = 0;
	do
	{
		cout<<TAB<<" 请输入要购买几种书 : ";
		cin>>Sale::Kind;
		CBUF;
	}while( ( Sale::Kind <= 0 ) || ( Sale::Kind > NUM ) );
	
	try
	{
		Sale::SoldBook = new BookSale[Sale::Kind];
		if ( Sale::SoldBook == NULL )
			throw Sale::MemoryLack();
	}
	catch( Sale::MemoryLack )
		{ cout<<TAB<<" 内存分配失败,请检查内存空间是否足够! "<<endl; }
	
	bool Mode;	//Mode为1则输入ISBN,为0则输入书名
	cout<<TAB<<" 输入方式(ISBN-0;书名-1) : ";
	cin>>Mode;
	CBUF;
	
	char Msg[2][10]={"ISBN","书名"};
	char Inf[51];
	bool Flag=true;
	int  n;
	BookData *pBookData;
	for( int i = 1 ; i <= Kind ; i++ ) 
	{
		while( Flag )
		{
			cout<<TAB<<" 请输入第 "<<i<<" 种书的 "<<Msg[Mode]<<" : ";
			cin>>Inf;
			n=Sale::SoldBook[i-1].BookMatch( Mode , Inf );
			if( n == -1 ) continue;
				else Sale::SoldBook[i-1].Local = n;
			pBookData = &Sale::SoldBook[i-1];
			FileWork::ReadFromFile( n , *pBookData );
			//cout<<pBookData->GetTitle();
			if( Sale::SoldBook[i-1].IsEmpty( ) ) Flag = true;
				else Flag = false;
			
			if( Flag ) cout<<" 对不起,没有找到您要的书,请您检查输入信息! "<<endl;
				else 
				{
					do
					{
						cout<<TAB<<" 请输入购买的数量 : ";
						cin>>Sale::SoldBook[i-1].QtySold;
						//cout<<Sale::SoldBook[i-1].QtySold;//DEBUG
						CBUF;
					}while( ( Sale::SoldBook[i-1].QtySold < 0 )
							|| ( Sale::SoldBook[i-1].QtySold > Sale::SoldBook[i-1].GetQty() ) );//如果输入的数值超出范围重新输入
					Sale::Total += ( Sale::SoldBook[i-1].GetRetail() \
									* Sale::SoldBook[i-1].QtySold );	
				}
		}
		Flag = true;
	}
	Sale::Tax = Sale::TaxRate * Sale::Total;
	Sale::SubTotal = Sale::Total + Sale::Tax;
	/*显示结算信息的模块*/
	time_t t = time( NULL );	//调用time.h的时间格式化
	tm *TIME = localtime( &t );
	CLS;
	cout<<"\n\t\t\tNUAA图书管理系统"
		<<"\n\n\t\t\t  前台销售模块\n"
		<<"\n 日期 : "
		<<TIME->tm_year+1900<<"年 "
		<<TIME->tm_mon+1<<"月 "
		<<TIME->tm_mday<<"日 "
		<<"(星期"<<TIME->tm_wday<<")\n"
		<<"\n  数量  ISBN号\t\t书名\t\t\t单价\t\t金额"
		<<endl;
	for( int i = 0 ; i < Sale::Kind ; i++ )
	{
		cout<<"\n  "<<Sale::SoldBook[i].QtySold
			<<"\t"  <<Sale::SoldBook[i].GetISBN()
			<<"\t"  <<Sale::SoldBook[i].GetTitle()
			<<"\tRMB "<<Sale::SoldBook[i].GetRetail()
			<<"\tRMB "<<Sale::SoldBook[i].GetRetail() * Sale::SoldBook[i].QtySold
			<<endl;
	    Sale::SoldBook[i].SetQty( Sale::SoldBook[i].GetQty() - Kind );//更新图书数量
	    pBookData = &Sale::SoldBook[i];
	    FileWork::WriteToFile( Sale::SoldBook[i].Local , *pBookData );
	}
}

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -