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