栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++图书管理查询系统

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++图书管理查询系统

头文件内容:

book.h

#ifndef _book_h
#define _book_h
#include
using namespace std;
class Book//图书类
{
public:
	Book(){}
	char getBname();//获得书名
	char getWname();//获得作者名字
	char getPname();//获得出版社名字
	long getPdate();//获得出版日期
	int getEdition();//获得出版版次
	float getPrice();//获得价格
	int getnote();//获得删除标志
	int getnumber();//获得图书编号
	long long getInumber();//获得ISBN编号
	void setinformation(long long m,char a[],char b[],char c[],long x, float y,int z);//设置书名
	void delbook();//删除图书
	void addbook(int n,long long m,char a[],char b[],char c[],long x, float y,int z);//添加图书
	int borrowbook();//借书操作
	void bookout();//设置上架标志
	void retbook();//还书操作
	void list();//输出图书
private:
	int note;//删除标志(0:已删,1:未删)
	int number;//图书编号
	char Bname[10];//书名
	int onshelf;//上架标志(1:在架,可借。0:已借出。)
	long long ISBN;//ISBN编号
	char Wname[10];//作者名字
	char Pname[10];//出版社名字
	long Pdate;//出版日期
	int Edition;//出版版次
	float Price;//定价


};
#endif

bdatabase.h

#ifndef _bdatabase_h
#define _bdatabase_h
#include"book.h"
#include
using namespace std;
const int Maxb=100;//最大图书数量

class BDatabase//图书类库
{
public:
	BDatabase();
	void clear();//全部删除
	int addbook(int n,long long m,char a[],char b[],char c[],long x, float y,int z);//添加图书
	Book *query(int bookid);//查找图书
	void list();//输出图书信息
	void bookdate();//图书库维护
	~BDatabase();//析构函数,写文件
private:
	int top;//图书记录指针
	Book book[Maxb];//图书记录
};
#endif

reader.h

#ifndef _reader_h
#define _reader_h
#include
using namespace std;
const int Maxbor=5;//最大借阅量
class Reader//读者类
{
public:
	Reader() {}
	char getname();//获得姓名
	int getnote();//获得删除标志
	int getnumber();//获得读者编号
	int getage();//获得年龄
	bool getsex();//获得性别
	char getaddress();//获得读者地址
	void setinformation(int m,char c[],char a[],char b[]);//设置姓名
	void delbook();//设置删除标记
	void addreader(int n,int m,char c[],char a[],char b[]);//添加读者
	void borrowbook(int bookid);//借书操作
	int retbook(int bookid);//还书操作
	void list();//输出读者信息
private:
	int note;//删除标志(0:已删, 1:未删)
	int number;//读者编号
	char name[10];//读者姓名
	int borbook[Maxbor];//所借图书
	int age;//读者年龄
	char sex[10];//读者性别
	char ad[20];//读者地址
};
#endif

rdatabase.h

#ifndef _rdatabase_h_
#define _rdatabase_h_
#include"reader.h"
#include
using namespace std;
const int Maxr=100;//最大读者数
class RDatabase//读者类
{
public:
	RDatabase();//构造函数初始化,读文件
	void clear();//删除所有读者信息
	int addreader(int n,int m,char c[],char a[],char b[]);//添加读者记录时,先确定
                                   //他是否已经存在。
	Reader *query(int readerid);//按编号查找
	void list();//输出所有读者信息
	void readerdata();//读者库维护
	~RDatabase();//析构函数,写文件
private:
	int top;//读者记录指针
	Reader read[Maxr];//读者记录
};
#endif

源文件内容:

book.cpp

#include
#include"book.h"
#include
#include
using namespace std;

char Book::getBname()
{ 
	return Bname[10];
}
char Book::getWname()
{ 
	return Wname[10]; 
}
char Book::getPname()
{
	return Pname[10];
}
int Book::getnote()
{ 
	return note;
}
int Book::getnumber()
{
	return number;
}
long long Book::getInumber()
{
	return ISBN;
}
long Book::getPdate()
{
	return Pdate;
}
int Book::getEdition()
{
	return Edition;
}
float Book::getPrice()
{
	return Price;
}
void Book::setinformation(long long m,char a[],char b[],char c[],long x, float y,int z)
{ 
	strcpy(Bname,a);
	strcpy(Wname,b);
	strcpy(Pname,c);
	ISBN=m;
	Pdate=x;
	Price=y;
	Edition=z;
}
void Book::addbook(int n,long long m,char a[],char b[],char c[],long x, float y,int z)
{
	note=1;
	number=n;
	ISBN=m;
	strcpy(Bname,a);
	strcpy(Wname,b);
	strcpy(Pname,c);
	Pdate=x;
	Edition=z;
	Price=y;
	onshelf=1;
}
void Book::delbook()
{ 
	note=0;
}
int Book::borrowbook()
{ 
	onshelf=0;
	return onshelf;
 }
void Book::bookout()
{
	onshelf=0;
}
void Book::retbook()
{ 
	onshelf=1; 
}
void Book::list()
{ 
	if(note==1)
	{
	cout< 

bdatabase.cpp

//#include"stdafx.h"
#include
#include
#include
#include"bdatabase.h"
using namespace std;

BDatabase::BDatabase()
{
	Book s;
	top=-1;
	fstream file;//打开文件
	file.open("book.dat", ios::in|ios::binary);
	while(1)
	{
		file.read((char*)&s, sizeof(s));
		if(!file)
			break;
		top++;
		book[top]=s;
	}
	file.close();//关闭文件
}
void BDatabase::clear()
{ 
	top=-1;
}

Book *BDatabase::query(int bookid)
{
	ifstream f("book.dat");
	for(int i=0; i<=top; i++)
		if(book[i].getnumber()==bookid&&book[i].getnote()==1)
			return &book[i];
		return NULL;
	f.close();
}

int BDatabase::addbook(int n,long long m,char a[],char b[],char c[],long x, float y,int z)
{
	Book *p=query(n);
	if(p==NULL)
	{
		top++;
		book[top].addbook(n,m,a,b,c,x,y,z);
		return 1;
	}
	return 0;
}

void BDatabase::list()
{
	for(int i=0; i<=top; i++)
		book[i].list();
}

BDatabase::~BDatabase()
{
	fstream file;
	file.open("book.dat", ios::app|ios::binary);
	for(int i=0; i<=top; i++)
		if(book[i].getnote()==0)
			file.write((char*)&book[i],sizeof(book[i]));
		file.close();
}

void BDatabase::bookdate()
{
   int choice=1;
   char bookname[20]="0";
   char writername[20]="0";
   char Pname[20]="0";
   long Pdate=0;
   int Edition=0;
   float Price=0;
   long long Inumber=0;
   int bookid=0;
   Book *b;
   while(choice!=0)
   {
    cout<<"图书维护:  "<>choice;
    cout<<"-------------------------------------------------"<>bookid;
			f1<<"输入图书编号:  "<>Pdate;
			 f1<<"输入出版日期:  "<>Edition;
			 f1<<"输入版次:  "<>Price;
			 f1<<"输入价格:  "<>Inumber;
			 f1<<"输入INBS编号:  "<>bookid;
			cin.get();
			b=query(bookid);
			if(b==NULL)
			{
			cout<<"该图书不存在!"<>Pdate;
		cout<<"输入新的版次:  ";
		cin>>Edition;
		cout<<"输入新的价格:  ";
		cin>>Price;
		cout<<"输入新的INBS编号:  ";
		cin>>Inumber;
		b->setinformation(Inumber,bookname,writername,Pname,Pdate, Price,Edition);
		};break;
	case 3:
		{
			cout<<"输入图书编号:  ";
			cin>>bookid;
           	b=query(bookid);
			if(b==NULL)
			{
			cout<<"该图书不存在! "<delbook();
			cout<<"该书籍已删除!"<>bookid;
			b=query(bookid);
			if(b==0)
			{
				cout<<"该图书不存在!"<list();
		f.close();
		};break;
	case 5: 
		{   
			cout< 

reader.cpp

#include
//#include"stdafx.h"
#include"reader.h"
//extern int Maxbor=5;
#include
using namespace std;

char Reader::getname()
{
	return name[10];
}
int Reader::getnote()
{
	return note;
}
int Reader::getnumber()
{
	return number; 
}
int Reader::getage()
{
	return age;
}
bool Reader::getsex()
{
	return sex;
}
char Reader::getaddress()
{
	return ad[20];
}
void Reader::setinformation(int m,char c[],char a[],char b[])
{ 
	strcpy_s(name, a);
	strcpy_s(ad, b);
	strcpy_s(sex, c);
	m=age;
}
void Reader::addreader(int n,int m,char c[],char a[],char b[])
{
	note=1;
	number=n;
	age=m;
	strcpy_s(sex, c);
	strcpy_s(name, a);
	strcpy_s(ad,b);
	for(int i=0; i 

rdatabase.cpp

//#include"stdafx.h"
#include
#include
#include
using namespace std;
#include"rdatabase.h"


RDatabase::RDatabase()
{
	Reader s;
	top=-1;
	ifstream file;
	file.open("reader.dat", ios::app|ios::binary);

	while(1)
	{
	file.read((char*)&s,sizeof(s));
	if(!file) break;
	top++;
	read[top]=s;
	}
 file.close();
}
void RDatabase::clear()
{ 
	top=-1;
}
Reader *RDatabase::query(int readerid)
{
	for(int i=0; i<=top; i++)
		if(read[i].getnumber()==readerid&&read[i].getnote()==1)
			return &read[i];
		return NULL;
}

int RDatabase::addreader(int n,int m,char c[],char a[],char b[])
{
	Reader *p=query(n);
	if(p==NULL)
	{
		top++;
		read[top].addreader(n,m,c,a,b);
		return 1;
	}
	return 0;
}

void RDatabase::list()
{
	for(int i=0; i<=top; i++)
		read[i].list();
}

RDatabase::~RDatabase()
{
	fstream file;
	file.open("reader.dat",ios::app|ios::binary);
	for(int i=0; i<=top; i++)
		if(read[i].getnote()==0)
			file.write((char*)&read[i], sizeof(read[i]));
		file.close();
}

void RDatabase::readerdata()
{
	int choice=1;
	char readername[20];
	int readerid;
	int age;
	char sex[10];
	char ad[20];
	Reader *r;
	while(choice!=0)
	{
		cout<<"读者维护:"<>choice;
		cout<<"---------------------------------------------------------"<>readerid;
				f2<<"输入读者编号:  "<>readername;
				f2<<"输入读者姓名:  "<>age;
				f2<<"输入读者年龄:  "<>sex;
				f2<<"输入读者性别:  "<>ad;
				f2<<"输入读者地址:  "<>readerid;
				cin.get();
				r=query(readerid);
				if(r==NULL)
				{
				cout<<"该读者不存在!"<>age;
				cout<<"输入新的读者性别:  ";
				cin>>sex;
				cout<<"输入新的读者地址: ";
				cin>>ad;
				r->setinformation(age,sex,readername,ad);
			};break;
		case 3:
			{
				cout<<"输入读者编号:";
				cin>>readerid;
				r=query(readerid);
				if(r==NULL)
				{
					cout<<"该读者不存在!"<delbook();
				cout<<"该读者已删除!"<>readerid;
			r=query(readerid);
			if(r==NULL)
			{
				cout<<"该读者不存在!"<list();
			cout< 

library.cpp

#include"reader.h"
#include"rdatabase.h"
#include"book.h"
#include"bdatabase.h"
#include
#include
#include
using namespace std;
#define FILEPATH01 "password.dat" 
#define LEN 20
#define TRYNUM 3
int main(int argc, char *argv[])
{
	int choice=1, bookid, readerid;
//	char text[LEN];
//	char passwd[LEN];
	RDatabase ReaderDB;
	BDatabase BookDB;
	Reader *r;
	Book *b;
//LoginSucceed: 
	cout<<"--------------------------------------------------------------------------------"<>choice;
		switch(choice)
		{
		case 1:
			{
				cout<<"输入借书读者编号:";
				cin>>readerid;
				cout<<"输入图书编号:";
				cin>>bookid;
				r=ReaderDB.query(readerid);
				if(r==NULL)
				{
					cout<<"该读者不存在,不能借书!"<borrowbook()==0)
				{
					cout<<"该图书已借出,不能借书!"<borrowbook(b->getnumber());
				b->bookout();
				cout<<"借书成功!"<>readerid;
				cout<<"输入图书编号:";
				cin>>bookid;
				r=ReaderDB.query(readerid);
				if(r==NULL)
				{
					cout<<"该读者不存在,不能还书!"<retbook();
			   r->retbook(b->getnumber());
			   cout<<"还书成功!"< 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/928438.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号