php实现解压缩功能
发布网友
发布时间:2022-04-06 06:23
我来回答
共1个回答
热心网友
时间:2022-04-06 07:52
/*
由于你给我的说明不太清楚,所以可能在有些地方未能合你的本意.
*/
#include "stdafx.h"//如果发生编译错误,请删除此句再试一试
#include <iostream>
using namespace std;
//类CVehicle的申明
class CVehicle
{
public:
CVehicle();//构造函数申明
CVehicle(const CVehicle &);//拷贝构造函数申明
~CVehicle();//析构函数申明
void SetCarNo(const char *);//设置车牌号的成员函数
const char * GetCarNO(void);//获取车牌号的成员函数
void SetTotalPerson(long);//设置载客数的成员函数
void SetTotalWeight(double);//设置总的重量的成员函数
long GetTotalPerson(void);//获取载客数量
double GetTotalWeight(void);//获取总的重量
bool operator == (const CVehicle &);//重载==运算符
bool operator != (const CVehicle &);//重载!=运算符
friend char * GetVehicleID(const CVehicle &);//获取车牌号的友员函数申明
private:
char * p_id;//保存车牌号的成员变量
long total_person;//保存总的载客数的成员变量
double total_weight;//保存总的载重数量的成员变量
};
//类CCar的申明
class CCar: public CVehicle
{
public:
CCar();//构造函数
~CCar();//析构函数
void SetCarriedPerson(long);//设置准载的人数
long GetCarriedPerson(void);//获取准载人数
private:
long carried_person; //保存准载人数
};
class CTruck: public CVehicle
{
public:
CTruck();
~CTruck();
void SetCarriedWeight(double);//设置准载重量
double GetCarriedWeight(void);//获取准载重量
private:
long carried_weight;//保存准载重量的成员变量
};
//类CVehicle的构造函数
CVehicle::CVehicle()
{
p_id = new char[32];//为保存车牌号的成员变量申请32字节内存
p_id[0] = 0;//初始化车牌号为空字符串
total_person = 0;//初始化总的载客数为零个
total_weight = 0;//初始化总的载重吨数为零
};
//类CVehicle的拷贝构造函数
CVehicle::CVehicle(const CVehicle & cv)
{
p_id = new char[32];//为保存车牌号的成员变量申请32字节内存
if (p_id !=NULL )
{
strcpy(p_id,cv.p_id);
total_person = cv.total_person;
total_weight = cv.total_weight;
}
};
//类CVehicle的析构函数
CVehicle::~CVehicle()
{
if (p_id != NULL)
{
delete [] p_id;//释放之前申请的内存
}
};
//设置车牌号的成员函数
void CVehicle::SetCarNo(const char * carno)
{
strcpy(p_id,carno);
};
//获取车牌号的成员函数
const char * CVehicle::GetCarNO(void)
{
return p_id;
};
//设置总的载客数的成员函数
void CVehicle::SetTotalPerson(long tp)
{
total_person = tp;
};
//设置总的载重吨数的成员函数
void CVehicle::SetTotalWeight(double tw)
{
total_weight = tw;
};
//获取总的载客数的成员函数
long CVehicle::GetTotalPerson(void)
{
return total_person;
};
//获取总的载重吨数的成员函数
double CVehicle::GetTotalWeight(void)
{
return total_weight;
};
//重载==运算符
bool CVehicle::operator == (const CVehicle & cv)
{
return (strcmp(cv.p_id,p_id) == 0);
};
//重载!=运算符
bool CVehicle::operator != (const CVehicle & cv)
{
return (strcmp(cv.p_id,p_id) != 0);
};
//类CCar的构造函数
CCar::CCar()
:CVehicle()
{
carried_person = 0;
};
//类CCar的析构函数
CCar::~CCar()
{
//do nothing
};
//类CCar的设置准载人数的成员函数
void CCar::SetCarriedPerson(long cp)
{
carried_person = cp;
SetTotalPerson(cp);
};
//类CCar的获取准载人数的成员函数
long CCar::GetCarriedPerson(void)
{
return carried_person;
};
//类CTruck的构造函数
CTruck::CTruck()
:CVehicle()
{
carried_weight = 0;
};
//类CTruck的析构函数
CTruck::~CTruck()
{
//do nothing
};
//类CTruck的设置准载重量的成员函数
void CTruck::SetCarriedWeight(double cw)
{
carried_weight = cw;
SetTotalWeight(cw);
};
//类CTruck的获取准载重量的成员函数
double CTruck::GetCarriedWeight(void)
{
return carried_weight;
};
//获取车牌号的友员函数
char * GetVehicleID(const CVehicle & cv)
{
return cv.p_id;
};
//在下面编写测试上面定义的类的代码.
//并未写完整,你可以根据你自己的需要添加测试代码.
int main(int argc, char* argv[])
{
CVehicle cv;
cv.SetCarNo("川A5168");
cv.SetTotalPerson(5);
cv.SetTotalWeight(2);
cout<<GetVehicleID(cv)<<endl;
CVehicle cv1(cv);
cout<<(cv1 == cv)<<endl;
cout<<cv1.GetCarNO()<<endl;
return 0;
};