#include<iostream>
#include<string>
#include<vector>
#include<fstream>
#include<iomanip>
using namespace std;
int sno = 1000;
class Book
{
private:
int bno;//编号
char bookname[10];//书名
char authorname[10];//作者名
int classnum;//分类号
char publishadd[10];//出版单位
double price;//价格
bool state;//状态
//////////////出版时间为定义
public:
Book() {}
void getdata()
{
cout<<"书名:"<<" "<<"作者名:"<<" "<<"分类号:"
<<" "<<"出版单位:"<<" "<<"价格:"<<" "<<endl;//状态不需要输入,出版时间未输入
cin>>bookname>>authorname>>classnum>>publishadd>>price;
}
int getbno()
{
return bno;
}
string getbookname()
{
return bookname;
}
string getauthorname()
{
return authorname;
}
int getclassnum()
{
return classnum;
}
string getpublishadd()
{
return publishadd;
}
double getprice()
{
return price;
}
void setbno(int s)
{
bno=s;
}
void setbookname(char s[])
{
strcpy(bookname,s);
}
void setauthorname(char s[])
{
strcpy(authorname,s);
}
void setclassnum(int a)
{
classnum=a;
}
void setpublishadd(char a[])
{
strcpy(publishadd,a);
}
void setprice(int a)
{
price=a;
}
void printbook()
{
cout<<"编号: 书名: 作者名: 分类号: 出版单位: 价格: "<<endl;
cout<<bno<<setw(10)<<bookname<<setw(10)<<authorname<<setw(10)<<classnum
<<setw(10)<<publishadd<<setw(10)<<price<<endl;
}
};
/**/class bookManager
{
private:
vector<Book> a;
public:
void loadfile();//加载文件
void writefile();//保存文件
void addbook();//增加图书信息
void update();//修改图书信息
void deletebook();//删除图书信息
void searchbybookname();//按图书名查询
void searchbyauthorname();//按作者名查询
void display();//查询图书所有信息
};
void bookManager::loadfile()//加载文件
{
ifstream input("book.txt");
if (!input)
{
cout<<"文件打开失败!!!"<<endl;
return ;
}
Book s;
int classnum;
char bookname[10],authorname[10],publishadd[10];
double price;
/*input>>bookname>>authorname>>classnum>>publishadd>>price;//输入书名作者名等属性
s.setbno(++sno);
s.setbookname(bookname);
s.setauthorname(authorname);
s.setclassnum(classnum);
s.setpublishadd(publishadd);
s.setprice(price);*/
while(input)
{
a.push_back(s);
input>>bookname>>authorname>>classnum>>publishadd>>price;//输入书名作者名等属性
s.setbno(++sno);
s.setbookname(bookname);
s.setauthorname(authorname);
s.setclassnum(classnum);
s.setpublishadd(publishadd);
s.setprice(price);
};
input.close( );
}
void bookManager::writefile()//保存文件
{
int i;
ofstream file("book.txt");
for(i=0;i<a.size();i++)
file<<a[i].getbno()<<"\t"<<a[i].getbookname()<<"\t"<<a[i].getauthorname()<<"\t"<<a[i].getclassnum()
<<"\t"<<a[i].getpublishadd()<<"\t"<<a[i].getprice()<<endl;
file.close();
}
void bookManager::addbook()//添加图书信息
{
Book book;
book.setbno(++sno);
book.getdata();
a.push_back(book);
}
void bookManager::update()//修改图书信息
{ //根据图书的编号修改
char bookname[10],authorname[10],publishadd[10];
int classnum,num,choice;
double price;
cout<<"请输入你需要修改的图书编号\n";
cin>>num;
for(int i=0;i<a.size();i++)
{
if(a[i].getbno()==num)
{
cout<<"请输入你的选择\n";
cout<<"1.修改图书的书名2.修改图书的作者名3.修改图书的分类号"<<endl;
cout<<"4.修改图书的出版单位5.修改图书价格"<<endl;
cin>>choice;
switch(choice)
{
case 1:cin>>bookname;
a[i].setbookname(bookname);
break;
case 2:cin>>authorname;
a[i].setauthorname(authorname);
break;
case 3:cin>>classnum;
a[i].setclassnum(classnum);
break;
case 4:cin>>publishadd;
a[i].setpublishadd(publishadd);
break;
case 5:cin>>price;
a[i].setprice(price);
default : break;
}
}
}
}
void bookManager::deletebook()//删除图书信息
{
int i,bno;
cout<<"请输入需要删除的图书编号:\n";
cin>>bno;
for(i=0;i<a.size();i++)
{
if(a[i].getbno()==bno)
a.erase(a.begin()+i);
}
}
void bookManager::display()//打印图书信息
{
int i;
cout<<"编号: 书名: 作者名: 分类号: 出版单位: 价格: "<<endl;
for(i=0;i<a.size();i++)
{
cout<<a[i].getbno()<<setw(10)<<a[i].getbookname()<<setw(10)<<a[i].getauthorname()<<setw(10)
<<a[i].getclassnum()<<setw(10)<<a[i].getpublishadd()<<setw(10)<<a[i].getprice()<<endl;
}
}
void bookManager::searchbybookname()//根据书名查询
{
char bookname[10];
cout<<"请输入要查询的图书名\n";
cin>>bookname;
for(int i=0;i<a.size();i++)
{
if(a[i].getbookname()==bookname)
{
a[i].printbook();
//display();
}
}
}
void bookManager::searchbyauthorname()//根据作者名查询
{
char authorname[10];
cout<<"请输入要查询的作者名\n";
cin>>authorname;
for(int i=0;i<a.size();i++)
{
if(a[i].getauthorname()==authorname)
{
a[i].printbook();
//display();
}
}
}
void menu1()
{
cout<<"\n";
cout<<"\t******************************************************************\t"<<endl;
cout<<"\t*****************************图书管理*****************************\t"<<endl;
cout<<"\t1.加载图书信息 2.保存图书信息 3.添加图书信息\t"<<endl;
cout<<"\t4.修改图书信息 5.删除图书信息 6.书名查询信息\t"<<endl;
cout<<"\t7.作者名查询信息 8.查询图书信息 0.退出\t"<<endl;
cout<<"\t******************************************************************\t"<<endl;
cout<<"\t******************************************************************\t"<<endl;
}
void main()
{
bookManager bm;
int c;
while(1){
menu1();
cout<<"请输入你的选择\n";
cin>>c;
switch(c)
{
case 1:bm.loadfile();
break;
case 2:bm.writefile();
break;
case 3:bm.addbook();
break;
case 4:bm.update();
break;
case 5:bm.deletebook();
break;
case 6:bm.searchbybookname();
break;
case 7:bm.searchbyauthorname();
break;
case 8:bm.display();
break;
case 0:exit(1);
}
}
}
有没有大佬救救孩子,为啥我加载数据之后,不能成功的查询,查询的结果没有?????