面向对象程序设计—图书管理系统设计 下载本文

void search_by_publisher(string names) //按出版社查找

void display_all() //显示全部信息 }

void read() { FILE *fp; {

for(int i=0;i

if(flag==0)

{cout<<\该出版社不存在!\ } {int flag=0;

for(int i=0;i

{if(shumu[i].get_writer()==names) { shumu[i].display ();

flag=1;} } }

if(flag==0)

{cout<<\该作者不存在!\ }

if((fp=fopen(\注意路径; rb+读写打开一个二进制文件,只允许读写数据。 {cout<<\文件打开失败\\n\

system(\

exit(0); }

void write() {

FILE *fp2;

fread(&sum,2,1,fp); //从一个文件中读数据&sum:用于接收数据的地址(指针);4:单个元素的大小,单位是for(int i=0;i

字节;1:.元素个数,每次读取个元素;fp:提供数据的文件指针

fread(&shumu[i],sizeof(shumu[i]),1,fp);}

}

if((fp2=fopen(\注意路径;wb+只写打开或新建一个二进制文件;只允许写数据。 {cout<<\文件打开失败\\n\

17

system(\

exit(0);//exit(0)表示正常退出 } }; //主函数 void main() { database Book;

//界面

while (function!= '6') {

cout<

cout<<\cout<<\欢迎使用图书管理系统\cout<<\

cout<<\ 请选择操作\\n\cout<<\创建新书信息\cout<<\修改图书信息\cout<<\显示所有图书\cout<<\按指定条件查询书目\cout<<\按书号删除书目\cout<<\char function='0'; Book.read (); int i;

fwrite(&sum,2,1,fp2); for(int i=0;i

{

fwrite(&shumu[i],sizeof(shumu[i]),1,fp2);}//sizeof计算数据(包括数组、变量、类型、结构体等)所占内存空间, fputc('EOF',fp2);//将字符ch写到文件指针fp所指向的文件的当前写指针的位置;EOF是End Of File 的缩写, fclose(fp2); }

用字节数表示。 表示“文件结束”。

cout<<\退出系统并保存修改\

cout<<\ (查询可按书号/ 作者/ 书名查询)\ cout<<\

cin>>function;

//图书书号、书名、作者、出版社、出版时间、价格信息的录入换码符'\\t',表示水平制表位(horizeontal tab),它的作用是将光标移到最接近8的倍数的位置,使得后面的输入从此开始。换句话说,让所有的数据都紧跟在制表符后面输出。

18

//换码符'\\t',表示水平制表位,它的作用是将光标移到最接近8的倍数的位置,使得后面的输入从此开始。换句话说,让所有的数据都紧跟在制表符后面输出。

newbook.display(); system(\system(\}

//定义字符串

if(function=='1')

{ string a,b,c,d,e,f; //定义字符串 cout<<\请输入书的isbn编号\cin>>a;

cout<<\请输入书名\cin>>b;

cout<<\请输入书作者名\cin>>c;

cout<<\请输入书的出版社\cin>>d;

cout<<\请输入书的出版时间\cin>>e;

cout<<\请输入书的价格\cin>>f;

book newbook(a,b,c,d,e,f); Book.add(newbook);

else if(function=='2') {string a,b,c,d,e,f; }

19

cin>>a;

cout << \请输入需要修改的图书的编号:\

cout<<\请输入书的isbn编号\cin>>a;

cout<<\请输入书名\cin>>b;

cout<<\请输入书作者名\cin>>c;

cout<<\请输入书的出版社\cin>>d;

cout<<\请输入书的出版时间\cin>>e;

cout<<\请输入书的价格\cin>>f;

book newbook(a,b,c,d,e,f); Book.rebookinfo(newbook); system(\system(\

// newbook.display();

//显示所有图书信息

else if(function=='3')

{cout<<\这是所有藏书:\

Book.display_all ();

system(\}

system(\

//按条件查询图书,输入按书号查询,输入按书名查询,输入按作者查询

else if(function=='4')

{ cout<<\请选择查询方式\ cout<<\按ISBN查询\ cout<<\按书名查询\ cout<<\按作者查询\

cout<<\按出版社查询\ char j; string search; cin>>j; if(j=='1')

{ cout<<\请输入ISBN号\ //按书号查询 cin>>search;

cout<<\以下是查询结果\

system(\

Book.search_by_isbn (search); //按书号查询图书信息函数的调用

system(\ } else if(j=='2')

{ cout<<\请输入书名\ //按书名查询 cin>>search;

cout<<\以下是查询结果\

Book.search_by_name (search); //按书名查询图书信息函数的调用

system(\

system(\ }

else if(j=='3') //按作者查询 { cout<<\请输入作者名\ cin>>search;

cout<<\以下是查询结果\

Book.search_by_writer (search); //按作者名查询图书信息函数的调用

20