c语言编写图书检索系统,求C语言编写图书管理系统

答案:#include

#include

#include

#include

#include

using namespace std;

const   int   Maxb=10000;   //最多的图书

class   Book//图书类

{

int   tag;   //删除标记1:已删0:未删

int   number;   //ISBN书号

char   name[20];   //书名

char author[10]; //主编

char number2[10];//版次

char position[20];//出版社

char time[20];//出版年

int price;//定价

int   onshelf;   //是否在架1:在架0:已借

public:

Book()   {}

char  *getname()   {   return   name;   }   //获取姓名

int   getnumber()   {   return   number;   }     //获取ISBN书号

int   gettag()   {   return   tag;   }   //获取删除标记

char *getauthor()    {return author;}       //获取主编

char *getnumber2()       {return number2;}               //获取版次

char *getposition() {return position;}               //获取出版社

char *gettime() {return time;}             //获取出版年

char getprice() {return price;}           //获取图书定价

void   delbook()   {   tag=1;   }   //删除图书

void   addbook(int n,char *na,char *au,char *n2,char *da,char *ti,int pr)   //增加图书

{

tag=0;

number=n;

price=pr;

strcpy(name,na);

strcpy(author,au);

strcpy(number2,n2);

strcpy(position,da);

strcpy(time,ti);

onshelf=1;

}

void   disp()   //输出图书

{

cout   <

<

}

};

class   BDatabase   //图书库类

{

int   top;   //图书记录指针

Book   book[Maxb];   //图书记录

public:

BDatabase()   //构造函数,将book.txt读到book[]中

{

Book   b;

top=-1;

fstream   file("book.txt",ios::in);

while   (1)

{

file.read((char   *)&b,sizeof(b));

if   (!file)   break;

top++;

book[top]=b;

}

file.close();

}

void   clear()   //全删

{

top=-1;

}

int   addbook(int   n,char   *na,char *au, char *n2, char *da,char *ti,int pr)   //增加图书

{

Book   *p=search1(n);

if   (p==NULL)

{

top++;

book[top].addbook(n,na,au,n2,da,ti,pr);

return   1;

}

return   0;

}

Book   *search1(int   bookid)   //查找图书

{

for   (int   i=0;i<=top;i++)

if   (book[i].getnumber()==bookid   &&

book[i].gettag()==0)

return   &book[i];

return   NULL;

}

Book *search2(int bookid,char *name)          //按书名查找图书

{

for(int i=0;i<=top;i++)

if(strcmp(book[i].getname(),name)==0)

{bookid=book[i].getnumber();

return &book[i];

}

return NULL;

}

Book *search3(int bookid,char *author)          //按主编查找图书

{

for(int i=0;i<=top;i++)

if(strcmp(book[i].getauthor(),author)==0)

{bookid=book[i].getnumber();

return &book[i];

}

return NULL;

}

void   bookdata();   //图书库维护

void   disp()

{

cout<

for   (int   i=0;i<=top;i++)

if   (book[i].gettag()==0)

book[i].disp();

}

~BDatabase()   //析构函数,将book[]写入book.txt文件中

{

fstream   file("book.txt",ios::out);

for   (int   i=0;i<=top;i++)

if   (book[i].gettag()==0)

file.write((char   *)&book[i],sizeof(book[i]));

file.close();

}

};

void   BDatabase::bookdata()

{

int  choice=1;

int  choice2=1;

int  choice3=1;

int  choice4;

char bname[40];

char editor[40];

char banci[40];

char position[40];

char year[40];

int  value;

int  bookid;

Book   *b;

while   (choice!=0)

{

cout<

cout<

cout<

cout<

cout<

cout<

cout<

cout<

cout<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值