A.图书库类
定义一个BDatabase(图书库)类,实现对图书的维护,查找,删除等功能。
Class BDatabase
定义一个构造函数BDatabase(),将写入到book.txt的数据读到book[]中。
BDatabase() { Book b; top=-1;
fstream file(\ while (1) {
file.read((char *)&b,sizeof(b)); if (!file) break; top++; book[top]=b; }
file.close(); }
定义一个void类型的clear()函数,用于删除全部图书数据。
Void clear() { char i;
cout<<\确定全部删除吗?Y/N?\cin>>i;
if(i=='y'||i=='Y') top=-1; }
定义一个int addbook(int n,char *na,char *aa,char *fe,char *ca,int time,double price,int oa)函数,来增加图书。
{
Book *p=query1(n); if (NULL==p) {
top++;
book[top].addbook(n,na,aa,fe,ca,time,price,oa); return 1; } return 0; }
定义二个指针函数,用于查找图书: a.按编号查找:
Book *query1(int bookid)//按编号查找图书 {
for (int i=0;i<=top;i++)
if (book[i].getno()==bookid &&book[i].gettag()==0) {
return &book[i]; }
return NULL; }
b.按书名查找:
Book *query2(char a[])//按书名查找图书 {
Book *e; int r=0;
for(int i=0;i<=top;i++)
if(strcmp(book[i].getname(),a)==0 &&book[i].gettag()==0) { if(r==0)
cout< e=&book[i]; e->disp(); r++; } if(r==0) cout<<\找不到该书!\ return NULL; } 定义一个析构函数~BDatabase(),将book[]写到book.txt文件中。 { fstream file(\ for (int i=0;i<=top;i++) if (book[i].gettag()==0) file.write((char *)&book[i],sizeof(book[i])); file.close(); } 定义一个函数bookdata(),用于图书数据的处理,先定义一些数据成员。 char choice3; char bname[40];//书名 char auname[40];//作者名 char bfenlei[40];//分类号 char cname[40];//出版社 int time;//出版时间 double price;//价格 char ch; int choice4; int bookid; int bookod; Book *b; B.读者库类 定义一个读者库类Rdatabase,实现建立读者的个人资料。 Class Rdatabase{ 定义一个构造函数RDatabase(),将reader.txt中数据读到read[]中。 { Reader s; top=-1; fstream file(\打开一个输入文件 while (1) { file.read((char *)&s,sizeof(s)); if (!file)break; top++; read[top]=s; } file.close(); //关闭reader.txt } 定义一个void型的clear()函数,删除所有读者信息。 { char i; cout<<\确定全部删除吗?Y/N?\ cin>>i; if(i=='y'||i=='Y') top=-1; } 利用析构函数~RDatabase(),将read[]写到reader.txt文件中。 { fstream file(\ for (int i=0;i<=top;i++) if (read[i].gettag()==0) file.write((char *)&read[i],sizeof(read[i])); file.close(); } 读者信息的选择操作: cout <<\读者维护\\n\\n\\n\\t\\t 1 新增\\n\\n\\t\\t 2 更改\\n\\n\\t\\t 3 删除\\n\\n\\t\\t 4 查找\\n\\n\\t\\t 5 显示\\n\\n\\t\\t 6 全删\\n\\n\\t\\t 0 返回\ cout<<\请选择:\C.图书类 定义一个book类,实现对图书的描述,图书的编号,书名,借出,还入等功能。 Class book{ 私有成员有: int tag;//删除标记1:已删0:未删 int no;//图书编号 char name[20];//书名 char author[20];//作者 char fenlei[20];//分类号 char cbs[20];//出版社 int cbtime;//出版时间 double bookprice;//图书价格 int onshelf;//是否在架1:在架2:已借 定义了一系列的公有成员函数来实现一系列的功能。 char *getname() { return name; }//获取书名 char *getauthorname() { return author; } //获取作者名 char *getfenlei() { return fenlei; } //获取分类号 char *getcbsname() { return cbs; }//获取出版社名 int getcbtime() { return cbtime; }//获取出版时间 double getbookprice() { return bookprice; }//获取图书价格 int getno(){ return no; }//获取图书编号 int gettag(){ return tag; }//获取删除标记 D.读者类 定义一个读者类Reader,实现读者的信息描述。 Class Reader{ 私有成员有: int tag; //删除标记1:已删0:未删 int no; //读者编号 char name[20]; //读者姓名 int borbook[Maxbor];//所借图书 还设置了一些成员函数,来获取一些数据。 char *getname() {return name;} //获取姓名 int gettag() {return tag;} //获取删除标记 int getno() {return no;} //获取读者编号 E. maindesk类 定义一个maindesk类,实现程序的主界面。 Class maindesk{ 私有数据成员有: char choice5; char choice2; double xh,mm;