通过使用文件实现对数据的操作。其中文件的写和读分别放在构造和析构函数实现。
#include<iostream>//bookbase.h
#include<cstdio>
#include<cstring>
#include<string>
#include<fstream>
using namespace std;
class bookbase
{
public:
int number,sum;
string name;
};
#include<iostream>//book.h
#include<cstdio>
#include<cstring>
#include<string>
#include<fstream>
#include"bookbase.h"
#include"windows.h"
using namespace std;
class book:public bookbase
{
public:
bookbase bk[10000];
book()
{
sum=1;
ifstream file;
file.open("data.txt",ios::in|ios::binary);
while(file)
{
file>>bk[sum].number>>bk[sum].name;
cout<<bk[sum].number<<" "<<bk[sum].name<<endl;
sum++;
}
file.close();
}
void show();
void add();
void ask();
void change();
int Query(int );
~book();
};
int book::Query(int nu)
{
for(int i=1; i<sum; i++)
{
if(nu==bk[i].number)
{
return i;
}
}
return 0;
}
void book::add()
{
cout<<"请输入新添加图书的编号: ";
cin>>bk[sum].number;
cout<<"请输入新添加图书的名称: ";
cin>>bk[sum].name;
int p=book::Query(bk[sum].number);
if(p)
{
cout<<"您输入的图书在图书库中已经存在!\n"<<endl;
}
else
{
cout<<"请核对新加图书的信息: \n"<<endl;
cout<<"图书编号: "<<bk[sum].number<<endl;
cout<<"图书名称: "<<bk[sum++].name<<endl;
cout<<"\n"<<endl;
}
}
void book::ask()
{
cout<<"目前图书库共有图书"<<sum-1<<"本\n"<<endl;
for(int i=1;i<sum;i++)
{
cout<<"图书"<<i<<"编号为: "<<bk[i].number<<"名称为: "<<bk[i].name<<endl;
}
cout<<endl;
}
void book::change()
{
int nu;
cout<<"请输入您要修改的图书编号: "<<endl;
cin>>nu;
int bj=0;
for(int i=1;i<sum;i++)
{
if(nu==bk[i].number)
{
bj=1;
cout<<"请输入新的图书编号: ";cin>>bk[i].number;
cout<<"请输入新的图书名称: ";cin>>bk[i].name;
break;
}
}
if(!bj)
{
cout<<"没有您所要查询的图书!"<<endl;
}
}
book::~book()
{
ofstream file;
file.open( "data.txt",ios::out|ios::binary);
for(int i=1;i<sum;i++)
{
file<<bk[i].number<<" "<<bk[i].name<<endl;
}
file.close();
}
void book::show()
{
int n;
while(1)
{
system("color 3f");
cout<<"1.新增"<<endl;
cout<<"2.修改"<<endl;
cout<<"3.删除"<<endl;
cout<<"4.查询"<<endl;
cout<<"0.退出"<<endl;
cout<<"\n请输入您的选择:"<<endl;
cin>>n;
switch(n)
{
case 1:
book::add();
break;
case 2:
book::change();
break;
//case 3:
// break;
case 4:
book::ask();
break;
default:
return ;
}
}
}
#include<iostream>
#include<cstdio>//project.cpp
#include<cstring>
#include<string>
#include"book.h"
using namespace std;
int main()
{
book bo;
bo.show();
return 0;
}