📄 tushuguanli .txt
字号:
#include<iostream.h>
#include<fstream.h>
#include<string.h>
#include <iomanip.h>
#define b 0
#define N "0"
#define F -1
class Book
{
public:
char BookName[41];
char Author[21];
char shuhao[16];
char publish[20];
int nState;
Book()
{
strcpy(shuhao,N);
nState=b;
}
void getInfo()
{
cout<<"请输入书名: ";
cin>>BookName;
cout<<"请输入作者: ";
cin>>Author;
cout<<"请输入编号: ";
cin>>shuhao;
cout<<"请输入出版社: ";
cin>>publish;
}
char *getBookName()
{
return BookName;
}
char *getsAuthor()
{
return Author;
}
char *getshuhao()
{
return shuhao;
}
int setState(int state)
{
return nState=state;
}
void displayInfo()
{
cout<<setw(15);
cout<<BookName;
cout<<setw(15);
cout<<Author;
cout<<setw(15);
cout<<shuhao;
cout<<setw(15);
cout<<publish;
cout<<setw(15);
if(nState==1)
cout<< "已借出 "<<endl;
else
cout<< "在馆 "<<endl;
}
};
class User:public Book//继承Book基类
{
public:
char RClass[9];
char RName[21];
char RAge[21];
char RNom[6];
void getInfo()
{
cout<<"请输入姓名: ";
cin>>RName;
cout<<"请输入年龄: ";
cin>>RAge;
cout<<"请输入班级: ";
cin>>RClass;
cout<<"请输入学号: ";
cin>>RNom;
}
char *getsClass()
{
return RClass;
}
char *getsName()
{
return RName;
}
char *getsAge()
{
return RAge;
}
char *getsNob()
{
return RNom;
}
void displayInfo()//显示菜单
{
cout.width(17);
cout<<RName;
cout.width(21);
cout<<RAge;
cout.width(21);
cout<<RClass;
cout.width(15);
cout<<RNom<<endl;
}
};
void main()//
{
void listBook();//声明涵数
void addBook();
void modifyBook();
void listUser();
void addUser();
int choice;
cout<<" ************欢迎来到图书管理系统*************"<<endl;
while(choice!=0)
{
cout<< "\n\n\n ";
cout<< " *******************************\n ";
cout<< " ** 数据查寻 **\n ";
cout<< " *******************************\n ";
cout<< " ** 1.图书查询 **\n ";
cout<< " ** 2.图书入库 **\n ";
cout<< " ** 3.借书/还书 **\n ";
cout<< " ** 4.新增读者资料 **\n ";
cout<< " ** 5.查看所有读者 **\n ";
cout<< " ** 0.退出 **\n ";
cout<< " *******************************\n ";
cout<< " ** **\n ";
cout<< " *******************************\n ";
cout<< " 请选择(0-5): ";
cin>>choice;
switch(choice)
{
case 1:
listBook();// 列出图书菜单函数
break;
case 2:
addBook();//增加图书涵数
break;
case 3:
modifyBook();//修改图书涵数
break;
case 4:
addUser();//调用增加读者涵数
break;
case 5:
listUser();//调用列出读者涵数
break;
case 0:
return;
default:
cout<< "\n 选择错误! ";
break;
}
}
return;
}
void listBook()//定义各涵数
{
Book book;
fstream file( "E:\\library.txt ",ios::in);
if(!file)
{
cout<< "文件打开失败!!! "<<endl;
return ;
}
cout<<setw(17);
cout<<"书名: ";
cout<<setw(15);
cout<<"作者: ";
cout<<setw(15);
cout<<"书号: ";
cout<<setw(15);
cout<<"出版社: ";
cout<<setw(14);
cout<<"状态: "<<endl;
while(file.read((char *)&book,sizeof(book)))
{
book.displayInfo();
}
file.close();
return;
}
void addBook()
{
Book book;
fstream file( "E:\\library.txt ",ios::out|ios::app);
if(!file)
{
cout<<"文件打开失败!!! "<<endl;
return;
}
book.getInfo();
file.write((char *)&book,sizeof(book));
file.close();
return;
}
void modifyBook()
{
Book book;
User user;
char bname[15];char Rname[15];
int state;
bool finded=false;
cout<<"请输入你的姓名: ";
cin>>Rname;
fstream file("E:\\Nlibrary.txt",ios::in|ios::out);
while(file.read((char *)&user,sizeof(user)))
{if(strcmp(user.getsName(),Rname)==0)
{
finded=true;
cout<<"请输入要修改图书的书名: ";
cin>>bname;
fstream file( "E:\\library.txt ",ios::in|ios::out);
while(file.read((char *)&book,sizeof(book)))
{
if(strcmp(book.getBookName(),bname)==0)
{
finded=true;
cout<<"请选择图书状态: 1.借书 2.还书 "<<endl;
cin>>state;
if(state!=1&&state!=2)
cout<< "选择错误! "<<endl;
else
if(state==1)
book.setState(1);
else
book.setState(b);
file.seekp(-sizeof(book),ios::cur);
file.write((char *)&book,sizeof(book));
break;
}
}
if(!finded)
cout<<"您输入的书号有误,未能查找到相应图书"<<endl;
file.close();
}
}
file.close();
}
void listUser()
{
User user;
Book book;
fstream file( "E:\\Nlibrary.txt ",ios::in);
if(!file)
{
cout<<"文件打开失败!! "<<endl;
return;
}
cout<<setw(19);
cout<<"姓名: ";
cout<<setw(21);
cout<<"年龄: ";
cout<<setw(21);
cout<<"班级: ";
cout<<setw(15);
cout<<"学号: "<<endl;
while(file.read((char *)&user,sizeof(user)))
{
user.displayInfo();
}
file.close();
return;
}
void addUser()
{
User user;
fstream file( "E:\\Nlibrary.txt ",ios::out|ios::app);
if(!file)
{
cout<<"文件打开失败!! "<<endl;
return;
}
user.getInfo();
file.write((char *)&user,sizeof(user));
file.close();
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -