图书馆管理系统C++代码HT图书馆管理系统C++代码HT
// tushuguanli.cpp : Defines the entry point for the console application.
//
#include //字符串头文件
#include //文件头文件
#include //是指标准库中输入输出流的头文件, cout就定义在这个头文件里
using namespace std;//使用名字空间std
const int BMAX=50; //书最多个数
//图书管理模块
//图书类
class ...
图书馆管理系统C++代码HT
// tushuguanli.cpp : Defines the entry point for the console application.
//
#include //字符串头文件
#include //文件头文件
#include //是指标准库中输入输出流的头文件, cout就定义在这个头文件里
using namespace std;//使用名字空间std
const int BMAX=50; //书最多个数
//图书管理模块
//图书类
class book
{
public:
int no; //图书编号
char name[20]; //图书名称
int b_flag; //1为在架,2为借出
int b_del; //1为存在, 2为删除 public :
book(){} //构造函数
void setno(int n)
{
no=n; //图书编号取值
}
int getno()
{
return no; //返回图书编号值
}
void setname(char na[])
{
strcpy(name, na); //字符串复制
}
char* getname()
{
return name; //返回图书名称
}
void borbook()
{
b_flag=2; //借书标志
}
void delbook()
{
b_del=2; //删除标志
}
void addbook(int no,char na[]) //增加图书功能
{
setno(no);
setname(na);
b_flag=1;
b_del=1;
}
}
;
//图书数据库类
class bdatabase
{
public:
book btarray[BMAX]; //图书集合
int top;
public:
bdatabase()
{
book b;
top=-1;
fstream file("book.txt",ios::in); //打开文件
while (1)
{
file.read((char *)&b,sizeof(b));
if (!file) break;
top++;
btarray[top] = b;
}
file.close(); //关闭文件
}
~bdatabase() //析构函数, 将btarray[]写到book.txt文
件中
{
fstream file("book.txt",ios::out);
for (int i=0;i<=top;i++)
{
if (btarray[i].b_del==1)
file.write((char *)&btarray[i],sizeof(btarray[i]));
}
file.close();
}
void addbooks() //往图书数据库中加图
书
{
book bk;
int no;
char bname[20];
cout<<"请输入书号: ";
cin>>no;
cout<>bname;
cout<>no;
for(int i=0; i<=top; i++)
{
if(btarray[i].no==no && btarray[i].b_del==1)
{
return i;
}
}
return -1;
}
int findbooks() //查找图书,这个函数用于图书
维护
{
int no;
char value[6];
cout<<"请输入书号: ";
cin>>no;
for(int i=0; i<=top; i++)
{
if(btarray[i].no==no && btarray[i].b_del==1)
{
if(btarray[i].b_flag==1) strcpy(value,"在架");
if(btarray[i].b_flag==2) strcpy(value,"借出");
cout<<"书号: "<>btarray[cur].name;
return ;
}
void delbooks() //删除图书
{
int cur;
cur = findbooks();
if (cur==-1)
{
return;
}
if(btarray[cur].b_flag==2) //删除时判断图书是否借出
{
cout<<"该图书已经借出,请在归还后再删除。"<>no;
cout<>rname;
cout<>no;
for(int i=0; i<=top; i++)
{
if(rdarray[i].no==no && rdarray[i].r_del==1)
{
return i;
}
}
return -1;
}
int findreaders() //查找读者,这个函数用于读者维
护操作
{
int no;
char value[3];
cout<<"请输入学号: ";
cin>>no;
for(int i=0; i<=top; i++)
{
if(rdarray[i].no==no && rdarray[i].r_del==1)
{
if(rdarray[i].r_bor==1) strcpy(value,"借");
if(rdarray[i].r_bor==2) strcpy(value,"无");
cout<<"学号: "<>rdarray[cur].name;
return ;
}
void delreaders() //删除读者,读者如果借书要还书
后才能删除
{
int cur;
cur = findreaders();
if (cur==-1)
{
return;
}
if(rdarray[cur].r_bor==1)
{
cout<<"该用户借了图书,请还书后再删除"<>in;
switch (in)
{
case '1':
bd.addbooks();
break;
case '2':
bd.editbooks();
break;
case '3':
bd.delbooks();
break;
case '4':
bd.findbooks();
break;
case '5':
bd.listbooks();
break;
case '6':
break;
default:cout<<"输入错误,请从新输入。"<>in;
switch (in)
{
case '1':
bd.addreaders();
break;
case '2':
bd.editreaders();
break;
case '3':
bd.delreaders();
break;
case '4':
bd.findreaders();
break;
case '5':
bd.listreaders();
break;
case '6':
break;
default:cout<<"输入错误,请从新输入。"<>in;
switch (in)
{
case '1':
borrowtoreturn(in);
break;
case '2':
borrowtoreturn(in);
break;
case '3':
booksmange();
break;
case '4':
readersmange();
break;
case '0':
break;
default:cout<<"输入错误,请从新输入。"<
本文档为【图书馆管理系统C++代码HT】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。