C++图书库存管理器

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include

#include

#include

#include

using namespace std;

//------------------以下是类定义:Book -----------------------------------------

class bookList;

class Book //书类

{

char bookNo[15]; //书号

char bookName[20]; //书名

int Num; //数量

public:

Book(char *bNo=NULL, char *bNa=NULL, int n=0); //构造函数,各参数均有缺省值

void Show(); //显示一本图书信息

void print(ofstream &out); //将一本图书信息写入数据文件

void setInfo(char *nop, char *nap, int n); //设置一本图书信息

void setNum(int n); //设置库存量

int getNum(); //获取库存量

friend class bookList; //将bookList类说明为友元类。

//……//根据需要添加公有函数接口…… };

Book::Book(char *bNo, char *bNa, int n)

{

if(bNo)

strcpy(bookNo, bNo);

else

bookNo[0]='\0';

if(bNa)

strcpy(bookName, bNa);

else

bookName[0]='\0';

Num=n;

}

void Book::Show()

{

cout<

}

void Book::print(ofstream &out)

{

out<

}

void Book::setInfo(char *nop, char *nap, int n)

{

strcpy(bookNo, nop);

strcpy(bookName, nap);

Num=n;

}

void Book::setNum(int n) //设置库存量

{

Num=n;

}

int Book::getNum() //获取库存量

{

return Num;

}

//-----------以下是类定义:bookList-----------------------------------------------------

class bookList //书库类

{

Book *Books; //图书线性表首指针

int curLen; //现有图书种类数

int maxLen; //图书最多种类数

public:

bookList(int Len=20); //构造函数,初始化书库

~ bookList ( ); //析构函数,释放书库空间

void appendBook(char *nop,char *nap, int n); //追加一种图书

int isIn(char *bkNo); //按书号查找图书,若存在,返回其下标;否则返回-1 Book & getBooks(int i); //返回下标为i的图书对象的引用

void deleteBook(char * bkNo); //删除指定书号的图书

void sortBooks(); //按书号关键字排成升序

void showAll( ); //显示全部图书

int curBookLen( ); //返回现有图书种类数

void setCurBookLen(int len); //设置现有图书种类数

void initBookList(); //从文件bookdata.txt中读入全部信息存入书库Books结

void readFromFile(char *filename);//从参数指定文件中读入所有的图书

void writeToFile(char *filename);//将书库中所有种类的图书写入参数指定文件中};

bookList::bookList(int Len) //构造函数,初始化书库

{

maxLen = Len;

curLen = 0;

if(Len)

Books = new Book[Len];

else

Books = NULL;

}

bookList::~ bookList ( ) //析构函数,释放书库空间

{

if(Books) delete []Books;

}

void bookList::appendBook(char *nop,char *nap, int n) //将追加一本图书

{

if(curLen==maxLen)

{

Book *newBooks;

newBooks=new Book[maxLen+20];

for(int i=0;i

{

newBooks[i]=Books[i];

}

delete [maxLen]Books;

maxLen+=20;

Books=newBooks;

}

Books[curLen++].setInfo (nop,nap,n);

}

int bookList::isIn(char *bkNo) //按书号查找图书,若存在,返回其下标;否则返回-1 {

for(int i=0;i

{

if(strcmp(Books[i].bookNo,bkNo));

else return i;

相关文档
最新文档