📄 detail.cpp
字号:
#include "shengming.h"
//******************************************//
// 显示主菜单 //
//******************************************//
void show_mainM()
{
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<<"************************************************"<<endl;
cout<<"\t\t"<<"输入选择:"<<"\n"<<"\t\t"<<"请输入1--4之间的数。"<<endl;
}
//******************************************//
// 前台销售模块 //
//******************************************//
void enter_paid()
{
Sale buy[1000];
BookData p;
int i;
float totalmoney=0.0;
float money=0.0;
int num=0;
char is[14];
int count=0;
int sumonhand;
int sum;
char ch[30];
cout<<"是否开始输入isbn号?(Y/N)";
cin>>ch;
while(strcmp(ch,"N")!=0&&strcmp(ch,"n")!=0)
{
if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0)
{
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*)&p,sizeof(BookData));
while(!infile.eof())
{
if(strcmp(is,p.getIsbn())==0)//isbn号一样//
{
count++;
cout<<"书的信息如下:"<<endl;
cout<<p;
cout<<"X********************************X"<<endl;
cout<<"请输入要购买的书的数量:";
cin>>sum;
sumonhand=p.getQty();//库存量//
while(sum>sumonhand)
{
cout<<"对不起,没有那么多的书,请重新输入。"<<endl;
cin>>sum;
}
while(sum<0)
{
cout<<"输入不正确,请重新输入。"<<endl;
cin>>sum;
}
if(sum>=0&&sum<=sumonhand)
{
buy[num].setIsbn(p.getIsbn());//读入isbn号//
buy[num].setTitle(p.getTitle());//读入书名//
buy[num].setRetail(p.getRetail());//读入零售价//
buy[num].setqtySold(sum);//读入本次购买的数量//
num++;
p.setQty((sumonhand-sum));
outfile.write((char*)&p,sizeof(BookData));//写入临时文件中//
infile.read((char*)&p,sizeof(BookData));//读入下一个//
}
}
else
{
outfile.write((char*)&p,sizeof(BookData));//写入临时文件中//
infile.read((char*)&p,sizeof(BookData));//读入下一个//
}
}
infile.close();
outfile.close();
ifstream in("linshi.txt",ios::binary);
if(in.fail())
{
cout<<"打开文件失败!"<<endl;
exit(0);
}
ofstream out("bookstore.txt",ios::binary);
if(out.fail())
{
cout<<"打开文件失败!"<<endl;
exit(0);
}
in.read((char*)&p,sizeof(BookData));
while(!in.eof())
{
if(strcmp(is,p.getIsbn())==0&&p.getQty()==0)//如果书被买完,则此书被删去//
{
in.read((char*)&p,sizeof(BookData));
}
else
{
out.write((char*)&p,sizeof(BookData));
in.read((char*)&p,sizeof(BookData));
}
}
in.close();
out.close();
if(num!=0)
cout<<"是否继续购买?(Y/N):";
else
cout<<"对不起,没有找到相应的书,是否继输入其他的isbn号?(Y/N)";
}
else
cout<<"输入不正确,请重新输入!";
cin>>ch;
}
system("cls");//购书完毕,清屏
if(num!=0)
{
cout<<"购书成功!"<<endl;
cout<<"\t\t"<<"前台购书模块"<<endl;
cout<<"数量\t书名\t\t单价\t金额"<<endl;
for(i=0;i<num;i++)
{
buy[i].caltax();//本次购买的税//
buy[i].calsubtotal();
buy[i].caltotal();//累加到应付款中,带税//
money=(buy[i].getRetail())*(buy[i].getqtySold());
totalmoney+=money;
cout<<buy[i].getqtySold()<<"\t"<<buy[i].getTitle()<<"\t\t"<<buy[i].getRetail()<<"\t"<<money<<endl;
}
cout<<">..................................................<"<<endl;
cout<<"销售合计:\t"<<totalmoney<<endl;
cout<<"零售税: \t"<<totalmoney*(Sale::gettaxRate())<<endl;
cout<<"应付总额:\t"<<Sale::gettotal()<<endl;
}
cout<<"\t\t\t"<<"谢谢光临!"<<endl;
cin.ignore();
cout<<"请按回车键..."<<endl;
cin.get();
}
//******************************************//
// 书库管理模块 //
//******************************************//
void show_con()
{
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<<"*****************************************************************"<<endl;
cout<<"\t\t"<<"输入选择"<<"\n"<<"\t\t"<<"请输入1--5之间的数。"<<endl;
}
//******************************************//
// 书库管理模块 //
//******************************************//
void enter_con()
{
show_con();
char cb[30];
cin>>cb;
while(strcmp(cb,"5")!=0)
{
system("cls");
if (strcmp(cb,"1")==0)
{
LookUpBook();
system("cls");
show_con();
}
else if(strcmp(cb,"2")==0)
{
AddBook();
system("cls");
show_con();
}
else if(strcmp(cb,"3")==0)
{
EditBook();
system("cls");
show_con();
}
else if (strcmp(cb,"4")==0)
{
DeleteBook();
system("cls");
show_con();
}
else
{
show_con();
cout<<"输入不正确,请重新输入!"<<endl;
}
cin>>cb;
}
cout<<"返回主菜单。"<<endl;
}
//******************************************//
// 书籍资料查找 //
//******************************************//
void show_LookUpBook() //显示书籍查找目录//
{
cout<<"\t\t"<<"图书管理系统"<<endl;
cout<<"\t "<<"书籍资料查找"<<endl;
cout<<"\t\t"<<"1.按isbn号查找。"<<endl;
cout<<"\t\t"<<"2.按书名或书名的部分查找。"<<endl;
cout<<"\t\t"<<"3.按作者查找。"<<endl;
cout<<"\t\t"<<"4.按出版社查找。"<<endl;
cout<<"\t\t"<<"5.返回上一级菜单。"<<endl;
cout<<"*****************************************************************"<<endl;
cout<<"\t\t"<<"输入选择"<<"\n"<<"\t\t"<<"请输入1--5之间的数。"<<endl;
}
void LookUpBook()
{
char cd[30];
char a[51];
show_LookUpBook();
cin>>cd;
while(strcmp(cd,"5")!=0)
{
if(strcmp(cd,"1")==0)
{
cout<<"请输入isbn号:";
cin>>a;
search_isbn(a);
}
else if (strcmp(cd,"2")==0)
{
cout<<"请输入书名:";
cin>>a;
search_title(a);
}
else if(strcmp(cd,"3")==0)
{
cout<<"请输入作者:";
cin>>a;
search_author(a);
}
else if(strcmp(cd,"4")==0)
{
cout<<"请输入出版社:";
cin>>a;
search_publisher(a);
}
else
{
cout<<"输入不正确,请重新输入!"<<endl;
}
cout<<"请按回车键..."<<endl;
cin.ignore();
cin.get();
system("cls");
show_LookUpBook();
cin>>cd;
}
cout<<"返回上一级菜单。"<<endl;
}
void search_isbn(char*a)
{ //按isbn号查找,找到之后显示出来//
int num=0;
BookData is;
ifstream infile("bookstore.txt",ios::binary); //书的信息在“bookstore.txt”中//
if(!infile)
{
cout<<"打开文件失败!"<<endl;
exit(0);
}
system("cls");
cout<<"搜索您要查找的书..."<<endl;
infile.read((char*)&is,sizeof(BookData));
while(!infile.eof())
{
if(strcmp(a,is.getIsbn())==0)//判断isbn号是否相同//
{
cout<<"您要查找的书信息如下:"<<endl;
cout<<is;
cout<<"X**************************************X"<<endl;
num++;
}
infile.read((char*)&is,sizeof(BookData));
}
if(num==0)
{
cout<<"对不起,没有找到您要查找的书。"<<endl;
}
infile.close();
}
void search_title(char*a)//按名字或者名字的一部分模糊查找,可能输出多本书的信息//
{
int num=0;
BookData is;
ifstream infile("bookstore.txt",ios::binary); //书的信息在“bookstore.txt”中//
infile.read((char*)&is,sizeof(BookData));
if(!infile)
{
cout<<"打开文件失败!"<<endl;
exit(0);
}
cout<<"搜索您要查找的书..."<<endl;
while(!infile.eof())
{
if(is.bookMatch(a)==1) //如果是书名的子串//
{
cout<<is;
cout<<"X**************************************X"<<endl;
num++;
}
infile.read((char*)&is,sizeof(BookData));
}
if(num==0)
{
cout<<"对不起,没有找到您要查找的书。"<<endl;
}
infile.close();
}
void search_author(char*a) //按作者查找,找到之后显示出来,找到后不要跳出来//
{
int num=0;
BookData is;
ifstream infile("bookstore.txt",ios::binary); //书的信息在“bookstore.txt”中//
infile.read((char*)&is,sizeof(BookData));
if(!infile)
{
cout<<"打开文件失败!"<<endl;
exit(0);
}
cout<<"搜索您要查找的书..."<<endl;
while(!infile.eof())
{
if(strcmp(a,is.getAuthor())==0)//判断作者是否相同//
{
cout<<is;
cout<<"X**************************************X"<<endl;
num++;
}
infile.read((char*)&is,sizeof(BookData));
}
if(num==0)
{
cout<<"对不起,没有找到您要查找的书。"<<endl;
}
infile.close();
}
void search_publisher(char*a)//按出版社查找,找到不跳出//
{
int num=0;
BookData is;
ifstream infile("bookstore.txt",ios::binary); //书的信息在“bookstore.txt”中//
infile.read((char*)&is,sizeof(BookData));
if(!infile)
{
cout<<"打开文件失败!"<<endl;
exit(0);
}
cout<<"搜索您要查找的书..."<<endl;
while(!infile.eof())
{
if(strcmp(a,is.getpublisher())==0)//判断作者是否相同//
{
cout<<is;
cout<<"X**************************************X"<<endl;
num++;
}
infile.read((char*)&is,sizeof(BookData));
}
if(num==0)
{
cout<<"对不起,没有找到您要查找的书。"<<endl;
}
infile.close();
}
//******************************************//
// 增加新书 //
//******************************************//
void AddBook()
{
char a[30];
int m=0;
cout<<"是否开始输入书的信息?(Y/N)"<<endl;
cin>>a;
char is[14];
char tit[51];
char aut[31];
char pub[31];
char yea[5];
char mon[3];
char da[3];
int qty;
float who;
float ret;
ofstream outfile("bookstore.txt",ios::binary|ios::app);//追加、二进制方式打开文件//
while(strcmp(a,"N")!=0&&strcmp(a,"n")!=0)
{
if(strcmp(a,"Y")==0||strcmp(a,"y")==0)
{
cout<<"请输入isbn号:";
cin>>is;
while(Judge(is)==0)
{
cout<<"此isbn号已经存在,请重新输入。"<<endl;
cin>>is;//判断此isbn号是否已经存在//
}
cout<<"请输入书名:";
cin.ignore();
cin.getline(tit,51,'\n');
cout<<"请输入作者:";
cin.getline(aut,31,'\n');
cout<<"请输入出版社:";
cin.getline(pub,31,'\n');
cout<<"请输入日期:(按XXXX-XX-XX方式输入)";
cin.getline(yea,5,'-');
cin.getline(mon,3,'-');
cin.getline(da,3,'\n');
cout<<"请输入要存入的数量: ";
cin>>qty;
cout<<"请输入批发价:";
cin>>who;
cout<<"请输入零售价:";
cin>>ret;
BookData newbook(tit,is,aut,pub,yea,mon,da,qty,who,ret);
outfile.write((char*)&newbook,sizeof(BookData)); //追加写入文件中//
m++;
cout<<"X********************************X"<<endl;
cout<<"是否还要加入新书?(Y/N)"<<endl;
}
else
cout<<"输入不正确,请重新输入!"<<endl;
cin>>a;
}
if(m!=0)
cout<<"增加成功!!"<<endl;
cout<<"请按回车键返回上一级菜单。"<<endl;
cin.ignore();
cin.get();
outfile.close();
}
//******************************************//
// 修改书的资料 //
//******************************************//
void show_EditBook()
{
cout<<"X********************************X"<<endl;
cout<<"请选择要修改的项(1--9)。"<<endl;
cout<<"1.修改isbn号。"<<endl;
cout<<"2.修改书名。"<<endl;
cout<<"3.修改作者。"<<endl;
cout<<"4.修改出版社。"<<endl;
cout<<"5.修改日期。"<<endl;
cout<<"6.修改库存量。"<<endl;
cout<<"7.修改批发价。"<<endl;
cout<<"8.修改零售价。"<<endl;
cout<<"9.修改结束,返回上一级菜单。"<<endl;
}
void EditBook()
{
char tit[51];
char aut[31];
char pub[31];
char yea[5];
char mon[3];
char da[3];
int qty;
float who;
float ret;
char ch[30];
char is[14];
BookData bd;
int num=0;
int count=0;
cout<<"请输入书的isbn号:";
cin>>is;
cout<<"正在查找书的信息..."<<endl;
fstream aa("bookstore.txt",ios::binary|ios::in|ios::out);//可读可写//
if(aa.fail())
{
cout<<"打开文件失败!"<<endl;
exit(0);
}
fstream bb("linshi.txt",ios::binary|ios::in|ios::out);//临时文件,可读可写//
if(bb.fail())
{
cout<<"打开文件失败!"<<endl;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -