📄 detail.cpp
字号:
exit(0);
}
aa.read((char*)&bd,sizeof(BookData));
while(!aa.eof())
{
count++;
if(strcmp(is,bd.getIsbn())==0)
{
num++;
cout<<bd;
show_EditBook();
cin>>ch;
while(strcmp(ch,"9")!=0)
{
if(strcmp(ch,"1")==0)
{
cout<<"请输入新的isbn号:";
cin>>is;
while(Judge(is)==0)
{
cout<<"此isbn号已存在,请重新输入。"<<endl;
cin>>is;
}
bd.setIsbn(is);
}
else if(strcmp(ch,"2")==0)
{
cout<<"请输入新的书名:";
cin.ignore();
cin.getline(tit,51,'\n');
bd.setTitle(tit);
}
else if(strcmp(ch,"3")==0)
{
cout<<"请输入新的作者:";
cin.getline(aut,31,'\n');
bd.setAuthor(aut);
}
else if(strcmp(ch,"4")==0)
{
cout<<"请输入新的出版社:";
cin.getline(pub,31,'\n');
bd.setPub(pub);
}
else if(strcmp(ch,"5")==0)
{
cout<<"请输入新的日期(按XXXX-XX-XX的方式):";
cin.ignore();
cin.getline(yea,5,'-');
cin.getline(mon,3,'-');
cin.getline(da,3,'\n');
bd.setDateAdded(yea,mon,da);
}
else if(strcmp(ch,"6")==0)
{
cout<<"请输入新的库存量:";
cin>>qty;
bd.setQty(qty);
}
else if(strcmp(ch,"7")==0)
{
cout<<"请输入新的批发价:";
cin>>who;
bd.setWholesale(who);
}
else if(strcmp(ch,"8")==0)
{
cout<<"请输入新的零售价:";
cin>>ret;
bd.setRetail(ret);
}
else
{
cout<<"输入不正确,请重新输入。"<<endl;
}
show_EditBook();
cin>>ch;
}
}
bb.write((char*)&bd,sizeof(BookData));//写进临时文件中//
aa.read((char*)&bd,sizeof(BookData));//读入下一个//
}
if(num==0)
cout<<"没有找到相应的书!"<<endl;
bb.close();
aa.close();
ifstream infile("linshi.txt",ios::binary|ios::in);
ofstream outfile("bookstore.txt",ios::binary|ios::out);
for(num=0;num<count;num++)
{
infile.read((char*)&bd,sizeof(BookData));
outfile.write((char*)&bd,sizeof(BookData));
}
aa.close();
bb.close();
cout<<"修改完成,请按回车键返回上一级菜单。"<<endl;
cin.ignore();
cin.get();
}
void DeleteBook()
{
BookData de;
int num=0;
char is[14];
char ch[30];
cout<<"请输入要删除的书的isbn号:";
cin>>is;
ifstream infile("bookstore.txt",ios::binary);
if(infile.fail())
{
cout<<"打开文件失败!"<<endl;
exit(0);
}
ofstream outfile("linshi.txt",ios::binary);
if(outfile.fail())
{
cout<<"打开文件失败!"<<endl;
exit(0);
}
infile.read((char*)&de,sizeof(BookData));
while(!infile.eof())
{
if(strcmp(is,de.getIsbn())==0)
{
cout<<de;
num++;
infile.read((char*)&de,sizeof(BookData));
}
else
{
outfile.write((char*)&de,sizeof(BookData));
infile.read((char*)&de,sizeof(BookData));
}
}
outfile.close();
infile.close();
if(num==0)
{
cout<<"没有找到书。"<<endl;
cout<<"请按回车键返回上一级菜单。"<<endl;
cin.ignore();
cin.get();
}
if(num!=0)
{
cout<<"确定删除?(Y/N)";
cin>>ch;
while(strcmp(ch,"y")!=0&&strcmp(ch,"Y")!=0&&strcmp(ch,"N")!=0&&strcmp(ch,"n")!=0)
{
cout<<"输入不正确,请重新输入。"<<endl;
cin>>ch;
}
if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)
{
ifstream in("linshi.txt",ios::binary);
ofstream out("bookstore.txt",ios::binary);
in.read((char*)&de,sizeof(BookData));
while(!in.eof())
{
out.write((char*)&de,sizeof(BookData));
in.read((char*)&de,sizeof(BookData));
}
in.close();
out.close();
cout<<"删除成功!!请按回车键返回上一级菜单!"<<endl;
cin.ignore();
cin.get();
}
if(strcmp(ch,"n")==0||strcmp(ch,"N")==0)
{
cout<<"请按回车键返回上一级菜单。"<<endl;
cin.ignore();
cin.get();
}
}
}
//******************************************//
// 显示报表界面 //
//******************************************//
void show_baobiao()
{
cout<<"\t\t"<<"图书管理系统"<<endl;
cout<<"\t "<<"报表模块"<<endl;
cout<<"\t\t"<<"1.书库列表"<<endl;
cout<<"\t\t"<<"2.批发价列表"<<endl;
cout<<"\t\t"<<"3.零售价列表"<<endl;
cout<<"\t\t"<<"4.按书的数量列表"<<endl;
cout<<"\t\t"<<"5.按进书日期列表"<<endl;
cout<<"\t\t"<<"6.返回主菜单"<<endl;
cout<<"*****************************************************************"<<endl;
cout<<"\t\t"<<"输入选择"<<"\n"<<"\t\t"<<"请输入1--6之间的数。"<<endl;
}
//******************************************//
// 报表界面 //
//******************************************//
void enter_baobiao()
{
show_baobiao();
char cc[30];
cin>>cc;
while(strcmp(cc,"6")!=0)
{
system("cls");
if(strcmp(cc,"1")==0)
{
cout<<"进入书库列表"<<endl;
show_list();
cout<<"请按回车键..."<<endl;
}
else if(strcmp(cc,"2")==0)
{
cout<<"进入批发价列表"<<endl;
show_who();
cout<<"请按回车键..."<<endl;
}
else if(strcmp(cc,"3")==0)
{
cout<<"进入零售价列表"<<endl;
show_retail();
cout<<"请按回车键..."<<endl;
}
else if(strcmp(cc,"4")==0)
{
cout<<"按书的数量列表"<<endl;
show_qty();
cout<<"请按回车键..."<<endl;
}
else if(strcmp(cc,"5")==0)
{
cout<<"按进书日期列表"<<endl;
show_date();
cout<<"请按回车键..."<<endl;
}
else
{
cout<<"输入不正确,请按回车键重新输入!"<<endl;
}
cin.ignore();
cin.get();
system("cls");
show_baobiao();
cin>>cc;
}
cout<<"返回主菜单。"<<endl;
}
void show_list()//按isbn号排列//
{
int sum=0;//计算有多少个对象//
BookData a[1000];
int i=0;
ifstream infile("bookstore.txt",ios::binary);
if(infile.fail())
{
cout<<"打开文件失败!"<<endl;
exit(0);
}
infile.read((char*)&a[i],sizeof(BookData));
while(!infile.eof())
{
sum++;
i++;
infile.read((char*)&a[i],sizeof(BookData));//读入数组中//
}
infile.close();
sort_Isbn(a,sum);
for(i=0;i<sum;i++)
{
cout<<a[i];
}
}
void show_who()//按批发价排列//
{
int sum=0;//计算有多少个对象//
BookData a[1000];
int i=0;
ifstream infile("bookstore.txt",ios::binary);
if(infile.fail())
{
cout<<"打开文件失败!"<<endl;
exit(0);
}
infile.read((char*)&a[i],sizeof(BookData));
while(!infile.eof())
{
sum++;
i++;
infile.read((char*)&a[i],sizeof(BookData));//读入数组中//
}
infile.close();
sort_Who(a,sum);
for(i=0;i<sum;i++)
{
cout<<a[i];
}
}
void show_retail()//按零售价排列//
{
int sum=0;//计算有多少个对象//
BookData a[1000];
int i=0;
ifstream infile("bookstore.txt",ios::binary);
if(infile.fail())
{
cout<<"打开文件失败!"<<endl;
exit(0);
}
infile.read((char*)&a[i],sizeof(BookData));
while(!infile.eof())
{
sum++;
i++;
infile.read((char*)&a[i],sizeof(BookData));//读入数组中//
}
infile.close();
sort_Retail(a,sum);
for(i=0;i<sum;i++)
{
cout<<a[i];
}
}
void show_qty()//按库存量排列//
{
int sum=0;//计算有多少个对象//
BookData a[1000];
int i=0;
ifstream infile("bookstore.txt",ios::binary);
if(infile.fail())
{
cout<<"打开文件失败!"<<endl;
exit(0);
}
infile.read((char*)&a[i],sizeof(BookData));
while(!infile.eof())
{
sum++;
i++;
infile.read((char*)&a[i],sizeof(BookData));//读入数组中//
}
infile.close();
sort_Qty(a,sum);
for(i=0;i<sum;i++)
{
cout<<a[i];
}
}
void show_date()//按日期排列//
{
int sum=0;//计算有多少个对象//
BookData a[1000];
int i=0;
ifstream infile("bookstore.txt",ios::binary);
if(infile.fail())
{
cout<<"打开文件失败!"<<endl;
exit(0);
}
infile.read((char*)&a[i],sizeof(BookData));
while(!infile.eof())
{
sum++;
i++;
infile.read((char*)&a[i],sizeof(BookData));//读入数组中//
}
infile.close();
sort_Date(a,sum);
for(i=0;i<sum;i++)
{
cout<<a[i];
}
}
void sort_Who(BookData *a,int n)
{
int i,j;
BookData temp;
for(i=0;i<n-1;i++)
for(j=i;j<n;j++)
if((a[i].getWholesale())>(a[j].getWholesale()))
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
void sort_Retail(BookData *a,int n)
{
int i,j;
BookData temp;
for(i=0;i<n-1;i++)
for(j=i;j<n;j++)
if((a[i].getRetail())>(a[j].getRetail()))
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
void sort_Qty(BookData *a,int n)
{
int i,j;
BookData temp;
for(i=0;i<n-1;i++)
for(j=i;j<n;j++)
if((a[i].getQty())>(a[j].getQty()))
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
void sort_Isbn(BookData *a,int n)
{
int i,j;
BookData temp;
for(i=0;i<n-1;i++)
for(j=i;j<n;j++)
if(strcmp(a[i].getIsbn(),a[j].getIsbn())>0)
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
void sort_Date(BookData *a,int n)
{
int i,j;
BookData temp;
for(i=0;i<n-1;i++)
for(j=i;j<n;j++)
if(compare(a[i],a[j])>0)
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
int compare(BookData a,BookData b)
{
char c[11];
char d[11];
strcpy(c,a.getyear());
strcat(c,a.getmonth());
strcat(c,a.getday());
strcpy(d,b.getyear());
strcat(d,b.getmonth());
strcat(d,b.getday());
return (strcmp(c,d));
}
//******************************************//
// 显示书的信息 //
//******************************************//
void show_book(BookData &a)
{
cout<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
cout<<"\t "<<endl;
cout<<"\t"<<"ISBN号:"<<a.getIsbn()<<endl;
cout<<"\t"<<"书 名:"<<a.getTitle()<<endl;
cout<<"\t"<<"作 者:"<<a.getAuthor()<<endl;
cout<<"\t"<<"出版社:"<<a.getpublisher()<<endl;
cout<<"\t"<<"进书日期:";
a.show_DateAdded();
cout<<"\t"<<"库存量:"<<a.getQty()<<endl;
cout<<"\t"<<"批发价:"<<a.getWholesale()<<endl;
cout<<"\t"<<"零售价:"<<a.getRetail()<<endl;
}
int Judge(char* is)//判断isbn号是否存在//
{
int num=0;
BookData b;
ifstream in("bookstore.txt",ios::binary);
if(in.fail())
{
cout<<"打开文件失败!"<<endl;
exit(0);
}
in.read((char*)&b,sizeof(BookData));
while(!in.eof())
{
if(strcmp(is,b.getIsbn())==0)
num++;
in.read((char*)&b,sizeof(BookData));
}
in.close();
if(num!=0)
return (0);//isbn号用过了//
else return(1);//没有用过//
}
ostream &operator<<(ostream &strm,BookData &a)
{
strm<<"@@@@@@@@@@@@@@@@@@@@@@@@@@@"<<endl;
strm<<"\t "<<endl;
strm<<"\t"<<"ISBN号:"<<a.getIsbn()<<endl;
strm<<"\t"<<"书 名:"<<a.getTitle()<<endl;
strm<<"\t"<<"作 者:"<<a.getAuthor()<<endl;
strm<<"\t"<<"出版社:"<<a.getpublisher()<<endl;
strm<<"\t"<<"进书日期:";
a.show_DateAdded();
strm<<"\t"<<"库存量:"<<a.getQty()<<endl;
strm<<"\t"<<"批发价:"<<a.getWholesale()<<endl;
strm<<"\t"<<"零售价:"<<a.getRetail()<<endl;
return strm;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -