[工学]图书管理课设模板内容摘要:

的函数 */ char* GetISBN ( ) { return ISBN。 } //获取 ISBN 数组中的内容 char* GetTitle ( ) { return BookTitle。 } //获取 BookTitle 数组中的内容 char* GetAuthor( ) { return Author。 } //获取 Aauthor 数组中的内容 char* GetPub ( ) { return Publisher。 } //获取 Publisher 数组中的内容 }。 class BookData : public TitleInfo //书的库存信息及其处理函数 { private : char DateAdded[11]。 //存储日期的格式为 YYYYMMDD int QtyOnHand。 //存放该书的库存量 float Wholesale。 //存放该书的批发格 float Retail。 //存放该书的零售格 public : /*设置类变量成员值的函数 */ void SetDateAdded ( char* Val ) { strcpy( DateAdded , Val )。 }//设置进书日期 void SetQty ( int Val ) { QtyOnHand = Val。 } //设置书的库存量 void SetWholesale ( float Val ) { Wholesale = Val。 } //设置该书批发价 void SetRetail ( float Val ) { Retail = Val。 } //设置该书零售价 void RemoveBook ( ) { SetTitle(\0)。 } //设置该书为不存在 /*获取类变量成员值的函数 */ char* GetDateAdded ( ) { return DateAdded。 } //获取 DateAdded 数组中的内容 int GetQty ( ) { return QtyOnHand。 } //获取 QtyOnHand 变量的值 float GetWholesale ( ) { return Wholesale。 } //获取 Wholesale 变量的值 float GetRetail ( ) { return Retail。 } //获取 Retail变量的值 /*功能函数 */ bool IsEmpty( )。 //如果 BookTitle 为 空返回 true,否则返回 false void BookInfo( )。 //显示书的信息 int BookMatch( bool , char * )。 //查找图书返回图书位置 }。 class BookSale : public BookData //售出单种书的信息 { public : int QtySold。 //销售数量 int Local。 //本书的数据库位置 }。 class FileWork //文件操作类 { private : static fstream File。 public : /*打开文件失败的异常类 */ class OpenFileFailed{ }。 /*文件流操作函数 */ static void OpenFile( )。 //打开数据文件 static void WriteToFile( const BookDataamp。 Val ) //将信息按顺序写入文件 { FWRITE。 } static void WriteToFile( int n , const BookDataamp。 Val ) //将 信息按指定位置写入文件 { SEEKP(n)。 FWRITE。 } static void ReadFromFile( BookDataamp。 Val ) //从文件按顺序读入信息 { FREAD。 } static void ReadFromFile( int n , BookDataamp。 Val ) //从文件指定位置读入信息 { SEEKG(n)。 FREAD。 } static void WriteNUM( ) //写入 NUM { (0,ios::beg)。 ((char *)amp。 NUM,sizeof(NUM))。 FBUF。 } static void CloseFile( ) { ( )。 } }。 class Sale //所有售出书的信息 { private : int Kind。 //卖出书的种数 static float TaxRate。 //用于存储销售税率 static float Total。 //用于计算整个当前所有销售的额 static float Tax。 //销售税 =TaxRate*销售额 static float SubTotal。 //总付款 =Total+Tax BookSale* SoldBook。 //储存卖出的书的信息 public : class MemoryLack{ }。 //内存不足的异常类 void Cashier( )。 //函数询问一笔交易要购买几种书 ,然后动态分配内存空间 friend void Pay( Saleamp。 T )。 }。 void FileWork::OpenFile( ) { try { ( PATH , ios::binary | ios::in | ios::out )。 if( ( ) ) throw FileWork::OpenFileFailed( )。 else ( (char *)amp。 NUM , sizeof( NUM ) )。 } catch( FileWork::OpenFileFailed ) { coutTAB 数据文件打开失败 ,请检查数据文件是否存在 ! endl。 } } endif //***************************** //任 务 :C++课程设计 //题 目 :图书管理系统 //作 者 :040630520 彭立勋 //题 号 :课程设计 Final //用 途 :实现 BookData 类的头文件 //文件名 : //最后更新日期 : //***************************** ifndef BOOKDATAFUNCDEF_H define BOOKDATAFUNCDEF_H include /*声明 FileWork 类的函数 */ fstream FileWork::File。 void FileWork::OpenFile( )。 void FileWork::WriteToFile( const BookData amp。 )。 void FileWork::WriteToFile( int , const BookData amp。 )。 void FileWork::ReadFromFile( BookData amp。 )。 void FileWork::ReadFromFile( int , BookData amp。 )。 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] == 39。 \039。 ) 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 ) amp。 amp。 ( ! BookData::IsEmpty( ) ) ) return i。 } return 1。 } void BookData::BookInfo( ) { coutTAB\t 书的资料 \n TABISBN 号 : 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 { coutTAB 请输入要购买几种书 :。 cinSale::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 ) { coutTAB 内存分配失败 ,请检查内存空间是否足够 ! endl。 } bool Mode。 //Mode 为 1 则输入 ISBN,为 0 则输入书名 coutTAB 输入方式 (ISBN0。 书名 1) :。 cinMode。 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 ) { coutTAB 请输入第 i 种书的 Msg[Mode] :。 cinInf。 n=Sale::SoldBook[i1].BookMatch( Mode , Inf )。 if( n == 1 ) continue。 else Sale::SoldBook[i1].Local = n。 pBookData = amp。 Sale::SoldBook[i1]。 FileWork::ReadFromFile( n , *pBookData )。 //coutpBookDataGetTitle()。 if( Sale::SoldBook[i1].IsEmpty( ) ) Flag = true。 else Flag = false。 if( Flag ) cout 对不起 ,没有找到您要的书 ,请您检查输入信息 ! endl。 else {。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。