📄 简易图书管理系统.cpp
字号:
cout<<endl;
}
}while(f.tellg()!=posEnd);
if(flag==0)
{
cout<<"查无此书!"<<endl;
cout<<endl;
continue;
}
break;
}
case 4://组合查询
{
cout<<"请键入操作选择:"<<endl;
cout<<"1:按图书名称+作者信息查询"<<endl;
cout<<"2:按图书名称+出版社名称查询"<<endl;
cout<<"3:按作者信息+出版社名称查询"<<endl;
cout<<"4:按图书名称+作者信息查询+出版社名称查询"<<endl;
cout<<"0:退出\n";
cin>>choice;
switch(choice)
{ case 1://按图书名称+作者信息查询
{ f.seekg(0,ios::beg);
cout<<"请输入要查找的图书名称:";
cin>>bName;
cout<<"请输入要查找的作者名称:";
cin>>writerName;
do
{ flag=1;
f.read((char*)&book,sizeof(bookData));
if(strcmp(book.bookName,bName)==0
&&(strcmp(book.writerName1,writerName)==0
||strcmp(book.writerName2,writerName)==0
||strcmp(book.writerName3,writerName)==0))
{ cout<<"图书编号:"<<book.TP<<endl;
cout<<"图书名称:"<<book.bookName<<endl;
cout<<"作者编号:"<<book.writerNumber1<<endl;
cout<<"作者姓名:"<<book.writerName1<<endl;
cout<<" :"<<book.writerNumber2<<endl;
cout<<" :"<<book.writerName2<<endl;
cout<<" :"<<book.writerNumber3<<endl;
cout<<" :"<<book.writerName3<<endl;
cout<<"出版社编号:"<<book.publishNumber<<endl;
cout<<"出版社名称:"<<book.publish<<endl;
cout<<"库存量:"<<book.balance<<endl;
cout<<"剩余量:"<<book.balanceleave<<endl;
cout<<endl;
}
}while(f.tellg()!=posEnd);
if(flag==0)
{cout<<"查无此书!"<<endl;
cout<<endl;
continue;
}
break;
}
case 2://按图书名称+出版社名称查询
{
f.seekg(0,ios::beg);
cout<<"请输入要查找的图书名称:";
cin>>bName;
cout<<"请输入要查找的出版社名称:";
cin>>bpublish;
do
{f.read((char*)&book,sizeof(bookData));
if( strcmp(book.bookName,bName)==0
&&strcmp(book.publish,bpublish)==0)
{ flag=1;
cout<<"图书编号:"<<book.TP<<endl;
cout<<"图书名称:"<<book.bookName<<endl;
cout<<"作者编号:"<<book.writerNumber1<<endl;
cout<<"作者姓名:"<<book.writerName1<<endl;
cout<<" :"<<book.writerNumber2<<endl;
cout<<" :"<<book.writerName2<<endl;
cout<<" :"<<book.writerNumber3<<endl;
cout<<" :"<<book.writerName3<<endl;
cout<<"出版社编号:"<<book.publishNumber<<endl;
cout<<"出版社名称:"<<book.publish<<endl;
cout<<"库存量:"<<book.balance<<endl;
cout<<"剩余量:"<<book.balanceleave<<endl;
cout<<endl;
}
}while( strcmp(book.bookName,bName)!=0
&&strcmp(book.publish,bpublish)!=0
&&f.tellg()!=posEnd);
if(flag==0)
{cout<<"查无此书!"<<endl;
cout<<endl;
continue;
}
break;
}
case 3://按作者信息+出版社名称查询
{ f.seekg(0,ios::beg);
cout<<"请输入要查找的出版社名称:";
cin>>bpublish;
cout<<"请输入要查找的作者名称:";
cin>>writerName;
do
{ f.read((char*)&book,sizeof(bookData));
if(strcmp(book.publish,bpublish)==0
&&(strcmp(book.writerName1,writerName)==0
||strcmp(book.writerName2,writerName)==0
||strcmp(book.writerName3,writerName)==0))
{
flag=1;
cout<<"图书编号:"<<book.TP<<endl;
cout<<"图书名称:"<<book.bookName<<endl;
cout<<"作者编号:"<<book.writerNumber1<<endl;
cout<<"作者姓名:"<<book.writerName1<<endl;
cout<<" :"<<book.writerNumber2<<endl;
cout<<" :"<<book.writerName2<<endl;
cout<<" :"<<book.writerNumber3<<endl;
cout<<" :"<<book.writerName3<<endl;
cout<<"出版社编号:"<<book.publishNumber<<endl;
cout<<"出版社名称:"<<book.publish<<endl;
cout<<"库存量:"<<book.balance<<endl;
cout<<"剩余量:"<<book.balanceleave<<endl;
cout<<endl;
}
}while(f.tellg()!=posEnd);
if(flag==0)
{cout<<"查无此书!"<<endl;
cout<<endl;
continue;
}
break;
}
case 4://按图书名称+作者信息查询+出版社名称查询
{
f.seekg(0,ios::beg);
cout<<"请输入要查找的图书名称:";
cin>>bName;
cout<<"请输入要查找的出版社名称:";
cin>>bpublish;
cout<<"请输入要查找的作者名称:";
cin>>writerName;
do
{f.read((char*)&book,sizeof(bookData));
if(strcmp(book.publish,bpublish)==0
&&strcmp(book.bookName,bName)!=0
&&(strcmp(book.writerName1,writerName)==0
||strcmp(book.writerName2,writerName)==0
||strcmp(book.writerName3,writerName)==0))
{ flag=1;
cout<<"图书编号:"<<book.TP<<endl;
cout<<"图书名称:"<<book.bookName<<endl;
cout<<"作者编号:"<<book.writerNumber1<<endl;
cout<<"作者姓名:"<<book.writerName1<<endl;
cout<<" :"<<book.writerNumber2<<endl;
cout<<" :"<<book.writerName2<<endl;
cout<<" :"<<book.writerNumber3<<endl;
cout<<" :"<<book.writerName3<<endl;
cout<<"出版社编号:"<<book.publishNumber<<endl;
cout<<"出版社名称:"<<book.publish<<endl;
cout<<"库存量:"<<book.balance<<endl;
cout<<"剩余量:"<<book.balanceleave<<endl;
cout<<endl;
}
}while(f.tellg()!=posEnd);
if(flag==0)
{cout<<"查无此书!"<<endl;
cout<<endl;
continue;
}
break;
}
}
break;
}
case 5://浏览图书信息
{
{
bookData *c;
bookData books;
int m,i;
f.close();
f.open("bookFile.dat",ios::binary|ios::in|ios::out);
if(!f)
{
cerr<<"error!";
abort();
}
f.seekg(0,ios::end);
long posEnd=f.tellg();
m=posEnd/sizeof(bookData);
c=new bookData[m];
f.seekg(0,ios::beg);
i=0;
while (f.tellp()!=posEnd)
{
f.read((char *)&c[i],sizeof(bookData));
i++;
}
int work;
for(int pass=1;pass<m;pass++)
{
work=1;
for(i=pass;i>0;i--)
{
if(c[i].TP>c[i-1].TP)
{
books=c[i];
c[i]=c[i-1];
c[i-1]=books;
work=0;
}
}
if(work) break;
}
i=m-1;
do
{
cout<<"图书编号:"<<c[i].TP<<endl;
cout<<"图书名称:"<<c[i].bookName<<endl;
cout<<"作者编号:"<<c[i].writerNumber1<<endl;
cout<<"作者姓名:"<<c[i].writerName1<<endl;
cout<<" :"<<c[i].writerNumber2<<endl;
cout<<" :"<<c[i].writerName2<<endl;
cout<<" :"<<c[i].writerNumber3<<endl;
cout<<" :"<<c[i].writerName3<<endl;
cout<<"出版社编号:"<<c[i].publishNumber<<endl;
cout<<"出版社名称:"<<c[i].publish<<endl;
cout<<"库存量:"<<c[i].balance<<endl;
cout<<"剩余量:"<<c[i].balanceleave<<endl;
cout<<endl;
i--;
}while (i>=0);
break;
}
}
case 6://用户编号查询
{
f4.seekg(0,ios::beg);
cout<<"用户编号";
cin>>key;
do
{
f4.read((char*)&people,sizeof(userInfo));
if(people.userNumber==key)
{
flag=1;
cout<<"用户编号:"<<people.userNumber<<" 借出书籍"<<people.bbookName<<endl;
cout<<"数量"<<people.balance<<"本 "<<"借书日期"<<people.bDate<<"期限:一个月"<<endl;
cout<<endl;
}
}while(f4.tellg()!=posEnd2);
if(flag==0)
{
cout<<"用户编号输入错误\n";
cout<<endl;
continue;
}
break;
}
case 7://浏览用户信息
{
userInfo *c;
userInfo user;
int m,i;
f4.close();
f4.open("userbookFile.dat",ios::binary|ios::in|ios::out);
if(!f4)
{
cerr<<"error!";
abort();
}
f4.seekg(0,ios::end);
long posEnd2=f4.tellg();
m=posEnd2/sizeof(userInfo);
c=new userInfo[m];
f4.seekg(0,ios::beg);
i=0;
while (f4.tellp()!=posEnd2)
{
f4.read((char *)&c[i],sizeof(userInfo));
i++;
}
int work;
for(int pass=1;pass<m;pass++)
{
work=1;
for(i=pass;i>0;i--)
{
if(c[i].userNumber>c[i-1].userNumber)
{
user=c[i];
c[i]=c[i-1];
c[i-1]=user;
work=0;
}
}
if(work) break;
}
i=m-1;
do
{
cout<<"用户编号:"<<c[i].userNumber<<" 借出书籍"<<c[i].bbookName<<endl;
cout<<"数量"<<c[i].balance<<"本 "<<"借书日期"<<c[i].bDate<<"期限:一个月"<<endl;
cout<<endl;
i--;
}while (i>=0);
break;
}
case 0:return;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -