面向对象程序设计|综合模拟题目

目录

题目一:会员积分(期末模拟)

题目二:金属加工(期末模拟)

题目三:加密模板(期末模拟)

题目四:加湿风扇(期末模拟)

题目五:计重转换(期末模拟)


题目一:会员积分(期末模拟)

题目描述:

某电商网站的会员分为:普通、贵宾两个级别

普通会员类Member,包含编号、姓名、积分三个属性,编号和积分是整数,姓名是字符串

操作包括构造、打印、积分累加、积分兑换,操作定义如下:

1、积分累加Add,是根据消费金额累加积分,无返回值,参数是消费金额(整数),积分根据消费金额按1比1的比例累加

2、积分兑换Exchange,是按照每100积分换1元的比例,把积分兑换成现金。参数是要兑换的积分数量,返回值是兑换的现金数量。

注意:兑换积分数量不足100的部分是不能兑换的,例如会员原有500积分,要兑换积分数量为450,则450/100=4,最终用400积分兑换4元,会员余100积分。

3、打印是输出会员信息,格式参考输出样例

贵宾会员类VIP,继承了普通会员的属性与操作,新增两个属性:累加比例(整数)、兑换比例(整数)。并且重定义了所有操作:

1、积分累加中,积分按累加比例进行累加。例如累加比例是2,消费金额100元,则累加积分=100*2=200

2、积分兑换中,按照兑换比例的数值把积分抵扣消费金额。例如兑换比例是90,会员原有500积分,要兑换积分数量为420,则420/90=4,最终用360积分兑换4元,会员余140积分。

3、打印是输出会员信息,格式参考输出样例

程序要求

1、采用继承机制实现上述会员关系

2、打印、积分累加和积分兑换都采用虚函数方式,来实现运行多态性

3、派生的构造函数必须考虑基类属性的构造。

4、必须采用以下代码框架,在提示的地方增加代码,其他地方不能修改。

上述所有类属性都不是public,用面向对象思想和C++语言实现上述要求

----参考代码----

class Member {   //普通会员类

//....代码自行编写

};

class VIP .... {  //贵宾会员类

//....代码自行编写

};

int main()

{

Member * pm; //创建一个基类对象指针

//....其他变量自行编写

//输入数据,创建普通会员对象mm

//使用指针pm执行以下操作:

//1、pm指向普通会员对象mm

//2、输入数据,通过pm执行积分累加和积分兑换

//3、通过pm调用打印方法输出

//输入数据,创建贵宾会员对象vv

//使用指针pm执行以下操作:

//1、pm指向贵宾会员对象vv

//2、输入数据,通过pm执行积分累加和积分兑换

//3、通过pm调用打印方法输出

return 0;

}

输入要求:

第一行输入普通会员的三个信息:编号、姓名、积分

第二行输入两个操作信息:消费金额、积分兑换数量,表示普通会员执行一次积分累加,一次积分兑换

第三行输入贵宾会员的五个信息:编号、姓名、积分、累加比例、兑换比例

第四行输入两个操作信息:消费金额、积分兑换数量,表示贵宾会员执行一次积分累加,一次积分兑换

输出要求:

第一行输出普通会员执行两个操作后的信息,要求调用打印方法

第二行输出贵宾会员执行两个操作后的信息,要求调用打印方法

输入样例:

1001 John 500
244 300 
8001 Jane 300 2 90
100 420

输出样例:

普通会员1001--John--444
贵宾会员8001--Jane--140

代码示例:

#include
#include
#include
#include 
#include
#include
#include
using namespace std;

class Member
{
protected:
	int id, score;
	string name;
public:
	Member() {}
	Member(int ii, string nn, int ss) :id(ii), name(nn), score(ss) {}
	virtual void Add(int nn)
	{
		score += nn;
	}
	virtual void Exchange(int ss)
	{
		score -= ss;
	}
	virtual void print()
	{
		cout << "普通会员" << id << "--" << name << "--" << score << endl;
	}
};

class VIP :public Member
{
protected:
	int addpro, expro;
public:
	VIP() {}
	VIP(int ii, string nn, int ss, int ad, int ex) :Member(ii, nn, ss), addpro(ad), expro(ex) {}
	virtual void Add(int nn)
	{
		score += addpro * nn;
	}
	virtual void Exchange(int ss)
	{
		score -= (ss / expro) * expro;
	}
	virtual void print()
	{
		cout << "贵宾会员" << id << "--" << name << "--" << score << endl;
	}
};


int main()
{
	Member* pm;//建立基类指针指向对象
	int id, sc0;
	string na0;
	cin >> id >> na0 >> sc0;
	Member mm(id, na0, sc0);
	pm = &mm;
	int cost, excount;
	cin >> cost >> excount;
	pm->Add(cost);
	pm->Exchange(excount);
	pm->print();

	int ad0, ex0;
	cin >> id >> na0 >> sc0 >> ad0 >> ex0;
	VIP vm(id, na0, sc0, ad0, ex0);
	pm = &vm;
	cin >> cost >> excount;
	pm->Add(cost);
	pm->Exchange(excount);
	pm->print();
	return 0;
}

题目没什么难的,考察了单继承和虚函数。

题目二:金属加工(期末模拟)

题目描述:

在金属加工中,金属具有硬度、重量、体积的属性(都是整数),包括四种操作:

1、合并,每两块金属可以合并成一块新的金属。新金属的重量等于原两块金属的重量之和,体积和硬度也类似计算。

2、巨化,金属通过熔炼风吹的方法会巨化,体积变大n倍,重量和硬度不变

3、硬化,在金属中加入高分子材料可以硬化金属,每提升硬度一级,重量和体积都增加10%。

4、软化,在金属中加入特殊化学溶液可以降低金属硬度,每降低硬度一级,重量和体积都减少10%

用类来描述金属,用运算符重载方式实现金属的四种操作,并定义打印函数,具体要求如下

1、用加法运算符、友元的方式实现合并

2、用乘法运算符、友元的方式实现巨化,含两个参数:金属对象、巨化倍数

3、用++运算符、成员函数、前增量的方式实现硬化

4、用--运算符、成员函数、后增量的方式实现软化

5、打印函数用来输出金属的信息,输出格式看参考样本

操作中所有属性的运算结果都只保留整数部分。

上述所有类属性都不是public,用面向对象思想和C++语言实现上述要求

输入要求:

第一行输入第一块金属的信息,包括硬度、重量、体积

第二行输入第二块金属的信息,包括硬度、重量、体积

第三行输入一个参数n,表示巨化n倍

输出要求:

第一行输出两块金属合并后的信息

第二行输出第一块金属巨化n倍的信息

第三行输出第一块金属提升硬度一级后的信息

第四行输出第二块金属降低硬度一级后的信息

输入样例:

3 3000 300
5 5000 500
2

输出样例:

硬度8--重量8000--体积800
硬度3--重量3000--体积600
硬度4--重量3300--体积330
硬度4--重量4500--体积450

代码示例:

#include
#include
#include
#include 
#include
#include
#include
using namespace std;

class Metal
{
	int rigidity, height, volume;
public:
	Metal() {}
	Metal(int rr, int hh, int vv) :rigidity(rr), height(hh), volume(vv) {}
	void Enlarge(int ee)
	{
		volume *= ee;
	}
	void print()
	{
		cout << "硬度" << rigidity << "--重量" << height << "--体积" << volume << endl;
	}
	Metal& operator ++()//前++返回引用
	{
		rigidity++;
		height *= 1.1;
		volume *= 1.1;
		return *this;
	}
	Metal operator ++(int)//后++返回临时对象
	{
		Metal temp = *this;
		rigidity++;
		height *= 1.1;
		volume *= 1.1;
		return temp;
	}
	friend Metal operator --(Metal& rhs)//前--
	{
		rhs.rigidity--;
		rhs.height *= 0.9;
		rhs.volume *= 0.9;
		return rhs;
	}
	friend Metal operator --(Metal& rhs, int)//后--
	{
		Metal temp = rhs;
		rhs.rigidity--;
		rhs.height *= 0.9;
		rhs.volume *= 0.9;
		return temp;
	}
	friend Metal operator + (Metal& r1, Metal& r2)//友元函数运算符重载
	{
		Metal temp;
		temp.rigidity = r1.rigidity + r2.rigidity;
		temp.height = r1.height + r2.height;
		temp.volume = r1.volume + r2.volume;
		return temp;
	}
};

int main()
{
	Metal m;
	int rt, ht, vl;
	cin >> rt >> ht >> vl;
	Metal m1(rt, ht, vl);
	cin >> rt >> ht >> vl;
	Metal m2(rt, ht, vl);
	int enl;
	cin >> enl;

	m = m1 + m2;
	m.print();


	Metal m0 = m1;
	m0.Enlarge(enl);
	m0.print();

	m1++;
	m1.print();

	m2--;
	m2.print();
}

本题主要考察了 ++ / -- 的运算符重载。

题目三:加密模板(期末模拟)

题目描述:

加密机制包括明文、密文、密钥。用密钥对明文进行加密后就得到密文。

在古典加密机制中,偏离值是一种常见的方法,加密过程为

1、在已知数据中找出最大值

2、用最大值减去各个数值,得到相应的偏离值

3、偏离值加上密钥就得到密文

例如明文为1 2 3 4 5,密钥是10,加密过程为:

1、找出明文的最大值是5

2、用5减去明文的各个数值,得到偏离值4 3 2 1 0

3、用偏离值加上密钥,得到密文14 13 12 11 10

定义一个函数模板,名为Max,参数包括数组和数组长度,返回值是数组中的最大值,要求支持整数、浮点数和字符三种类型。

用类模板定义一个加密类,包含四个属性:明文、密文、密钥、长度,前三个属性都是同一种类型,长度是整数。长度是指明文的长度。

类模板包含操作构造、加密、打印,说明如下:

1、加密是调用函数模板Max得到数组最大值,按照前面的方法使用最大值和密钥进行加密,得到密文

2、打印是输出密文

要求类模板支持整数、浮点数和字符三种类型。

参考代码给出了加密类界面(只支持整数类型)、主函数(支持三种数据类型),程序要求

1、根据要求编写函数模板Max

2、使用类模板方法改造加密类界面,不能增加任何属性和操作,必须在类外实现构造函数和加密方法

3、主函数不能有任何修改

上述所有类属性都不是public,用面向对象思想和C++语言实现上述要求

----参考代码----

//只支持整数类型的加密类界面

class Cryption {

int ptxt[100];//明文

int ctxt[100];//密文

int key;//密钥

int len;//长度

public:

Cryption(int tk, int tt[], int tl); //参数依次对应密钥、明文、长度

void Encrypt(); //加密

void Print() //打印,无需改造

{int i;

for (i=0; i

cout<

cout<

}

};

//支持三种类型的主函数

int main()

{int i;

int length; //长度

int ik, itxt[100];

double dk, dtxt[100];

char ck, ctxt[100];

//整数加密

cin>>ik>>length;

for (i=0; i

cin>>itxt[i];

Cryption ic(ik, itxt, length);

ic.Encrypt();

ic.Print();

//浮点数加密

cin>>dk>>length;

for (i=0; i

cin>>dtxt[i];

Cryption dc(dk, dtxt, length);

dc.Encrypt();

dc.Print();

//字符加密

cin>>ck>>length;

for (i=0; i

cin>>ctxt[i];

Cryption cc(ck, ctxt, length);

cc.Encrypt();

cc.Print();

return 0;

}

输入要求:

第一行输入整数类型的信息,包括密钥、长度、明文

第二行输入浮点数类型的信息,包括密钥、长度、明文

第三行输入字符类型的信息,包括密钥、长度、明文

输出要求:

三行分别输出三种类型的密文

输入样例:

10 5 1 2 3 4 5
11.11 4 1.1 2.2 3.3 4.4
O 3 a b c

输出样例:

14 13 12 11 10
14.41 13.31 12.21 11.11
Q P O

代码示例:

#include
#include
#include
#include 
#include
#include
#include
using namespace std;

template//函数模板 找出最大值
T Max(T arr[], int len0)
{
	T max0 = arr[0];
	for (int i = 1; i < len0; i++)
	{
		if (arr[i] > max0)
		{
			max0 = arr[i];
		}
	}
	return max0;
}

template//类模板
class Cryption
{
	T ptxt[100];//明文
	T ctxt[100];//密文
	T key;//密钥
	int len;//长度
public:
	Cryption(T tk, T tt[], int tl)
	{
		key = tk;
		len = tl;
		for (int i = 0; i < tl; i++)
		{
			ptxt[i] = tt[i];
		}
	}
	void Encrypt()//加密过程
	{
		for (int i = 0; i < len; i++)
		{
			ctxt[i] = Max(ptxt, len) - ptxt[i] + key;
		}
	}
	void Print() //打印,无需改造
	{
		int i;
		for (i = 0; i < len - 1; i++)
			cout << ctxt[i] << " ";
		cout << ctxt[i] << endl;
	}
};



//支持三种类型的主函数
int main()
{
	int i;
	int length; //长度
	int ik, itxt[100];
	double dk, dtxt[100];
	char ck, ctxt[100];
	//整数加密
	cin >> ik >> length;
	for (i = 0; i < length; i++)
		cin >> itxt[i];
	Cryption ic(ik, itxt, length);
	ic.Encrypt();
	ic.Print();
	//浮点数加密
	cin >> dk >> length;
	for (i = 0; i < length; i++)
		cin >> dtxt[i];
	Cryption dc(dk, dtxt, length);
	dc.Encrypt();
	dc.Print();
	//字符加密
	cin >> ck >> length;
	for (i = 0; i < length; i++)
		cin >> ctxt[i];
	Cryption cc(ck, ctxt, length);
	cc.Encrypt();
	cc.Print();
	return 0;
}

考察类模板和函数模板,注意细节。

题目四:加湿风扇(期末模拟)

题目描述:

已知家电有编号、功率的属性,属性都是整数,操作包括构造和打印等

电风扇继承家电的特点,新增两个属性(整数):风向和风力,其中风向为0表示定向吹风,状态为1表示旋转吹风。

电风扇包含两个新操作:风向控制和风力控制

1、风向控制含一个整数参数,无返回,把风向设置为参数值,参数为0表示定向吹风,为1表示旋转吹风。

2、风力控制含一个整数参数,无返回,把风力设置为参数值,参数表示风力级别,例如1级、2级、3级等。

加湿器继承家电的特点,新增两个属性(浮点数):实际水容量和最大水容量

新增操作是预警,无参数,返回值为整数,当实际水容量不小于最大水容量的50%,则返回1;小于50%且不小于10%则返回2,小于10%则返回3

加湿风扇继承了风扇和加湿器的特点,新增属性档位(整数)

新增操作调整档位,含一个参数,无返回值,先设置档位为参数值,再调用风向控制和风力控制来设置相关属性,包括:

1、参数为0,不做其他属性修改

2、参数为1,设置定向吹风且风力1级

3、参数为2,设置旋转吹风且风力2级

4、参数为3,设置旋转吹风且风力3级

档位只可能是0、1、2、3四个数值,其他数值忽略。

加湿风扇重载打印操作,输出格式参考样本。输出要求如下:

1、如果风向为0,则输出定向吹风,风向为1则输出旋转吹风。

2、调用预警操作,并根据返回结果1、2、3输出不同信息,分别是:水量正常、水量偏低、水量不足

程序要求

1、采用虚拟继承机制实现上述电器的关系,明确谁是虚基类、基类、派生类

2、基类和派生类的构造要考虑虚基类、基类的属性构造

上述所有类属性都不是public,用面向对象思想和C++语言实现上述要求

输入要求:

第一行输入t,表示有t个实例

第二行输入一个加湿风扇的信息,依次包括编号、功率、风向、风力、实际水容量、最大水容量 档位

第三行输入一个参数,表示调档操作的档位,然后执行调档操作。

以此类推,输入t个实例

输出要求:

对于每个实例,调用打印操作输出加湿风扇的最终状态

输入样例:

3
1001 1000 1 2 3 4 0
1
2002 2000 0 1 1 12 0
3
3003 3000 0 3 2 10 0
0

输出样例:

加湿风扇--档位1
编号1001--功率1000W
定向吹风--风力1级
实际水容量3升--水量正常
加湿风扇--档位3
编号2002--功率2000W
旋转吹风--风力3级
实际水容量1升--水量不足
加湿风扇--档位0
编号3003--功率3000W
定向吹风--风力3级
实际水容量2升--水量偏低

代码示例:

#include
#include
#include
#include 
#include
#include
#include
using namespace std;

class Appliance
{
protected:
	int id, power;
public:
	Appliance() {}
	Appliance(int ii, int pp) :id(ii), power(pp) {}
	void setApp(int ii, int dd)
	{
		id = ii;
		power = dd;
	}
	void print() {}
};

class Fan :virtual public Appliance
{
protected:
	int fandir, fanpow;
public:
	Fan() {}
	Fan(int ii, int pp, int fd, int fp) :Appliance(ii, pp), fandir(fd), fanpow(fp) {}
	void dirCntrol(int dc)
	{
		fandir = dc;
	}
	void powControl(int pc)
	{
		fanpow = pc;
	}
};

class Humidifier :virtual public Appliance
{
protected:
	float wtv_now, wtv_max;
public:
	Humidifier() {}
	Humidifier(int ii, int pp, float wn, float wm) :Appliance(ii, pp), wtv_now(wn), wtv_max(wm) {}
	int Warning()
	{
		if (wtv_now >= wtv_max * 0.5)
		{
			return 1;
		}
		else if (wtv_now < wtv_max * 0.5 && wtv_now >= wtv_max * 0.1)
		{
			return 2;
		}
		else if (wtv_now < wtv_max * 0.1)
		{
			return 3;
		}
	}
};

class HumidifierFan :public Fan, public Humidifier
{
protected:
	int position;
public:
	HumidifierFan() {}
	HumidifierFan(int ii, int pp, int fd, int fp, float wn, float wm, int ps) :Appliance(ii, pp), Fan(ii, pp, fd, fp), Humidifier(ii, pp, wn, wm), position(ps) {}
	void posChange(int sh)
	{
		position = sh;
		if (sh == 1)
		{
			this->powControl(1);
			this->dirCntrol(0);
		}
		else if (sh == 2)
		{
			this->powControl(2);
			this->dirCntrol(1);
		}
		else if (sh == 3)
		{
			this->powControl(3);
			this->dirCntrol(1);
		}
	}
	void print()
	{
		cout << "加湿风扇--档位" << position << endl;
		cout << "编号" << id << "--功率" << power << "W" << endl;
		if (fandir == 0)
		{
			cout << "定向吹风";
		}
		else if (fandir == 1)
		{
			cout << "旋转吹风";
		}
		cout << "--风力" << fanpow << "级" << endl;
		cout << "实际水容量" << wtv_now << "升--水量";
		if (this->Warning() == 1)
		{
			cout << "正常" << endl;
		}
		else if (this->Warning() == 2)
		{
			cout << "偏低" << endl;
		}
		else if (this->Warning() == 3)
		{
			cout << "不足" << endl;
		}
	}
};

int main()
{
	int t;
	cin >> t;
	while (t--)
	{
		int id0, pw0, fd0, fp0, wn0, wm0, po0, po;
		cin >> id0 >> pw0 >> fd0 >> fp0 >> wn0 >> wm0 >> po0 >> po;
		HumidifierFan hf(id0, pw0, fd0, fp0, wn0, wm0, po0);
		hf.posChange(po);
		hf.print();
	}
}

考察多重继承和虚基类。

题目五:计重转换(期末模拟)

题目描述:

目前国际计重最基本的单位是克。在古代各个国家的计重单位是不同的。

中国使用斤、两、钱来表示重量,其中1斤=10两,1两=10钱

中国计重单位与克的关系为:1斤=500克,1两=50克,1钱=5克

英国使用磅、盎司、打兰来表示重量,其中1磅=16盎司,1盎司=16打兰

英国计重单位与克的关系为:1磅=512克,1盎司=32克,1打兰=2克

以下参考代码包含了抽象类Weight,中国计重和英国计重都继承了抽象类。

中国计重类新增了斤、两、钱三个属性,并新增了一个操作:计重转换Convert。

Convert能够把输入的克数转成中国计重,例如1234克转成2斤4两6钱4克,并且把数值放入斤、两、钱、克四个属性中

英国计重类新增了磅、盎司、打兰三个属性,并新增了两个操作:

1、计重转换Convert,功能与上述类似,例如2345克转成4磅9盎司4打兰1克,并且把数值放入对应的四个属性中

2、计重等价,重载类型转换运算符,实现将英国计重类的对象转换成中国计重类的对象,例如英国计重类对象en(2磅2盎司11打兰1克)等价于(转换成)中国计重类对象cn(2斤2两2钱1克)。

程序要求如下

1、参考代码框架不能做任何修改,在要求的地方添加代码

2、主函数不能有任何修改

以上数据纯粹为题目设计,方便计算,实际换算数据是不同的。

上述所有类属性都不是public,用面向对象思想和C++语言实现上述要求

----参考代码----

class CN; //提前声明

class EN; //提前声明

class Weight{ //抽象类

protected:

char kind[20]; //计重类型

int gram; //克

public:

Weight (char tk[]="no name", int tg=0)

{ strcpy(kind, tk);

gram = tg;

}

virtual void Print(ostream & out) = 0; //输出不同类型的计重信息

};

class CN: public Weight { //中国计重

//....类定义自行编写

};

class EN: public Weight { //英国计重

//....类定义自行编写

}

//以全局函数方式重载输出运算符,代码3-5行....自行编写

//重载函数包含两个参数:ostream流对象、Weight类对象,参数可以是对象或对象引用

//重载函数必须调用参数Weight对象的Print方法

int main()//主函数

{int tw;

//创建一个中国计重类对象cn

//构造参数对应斤、两、钱、克、类型,其中克和类型是对应基类属性gram和kind

CN cn(0,0,0,0, "中国计重");

cin>>tw;

cn.Convert(tw); //把输入的克数转成中国计重

cout<

//创建英国计重类对象en

//构造参数对应磅、盎司、打兰、克、类型,其中克和类型是对应基类属性gram和kind

EN en(0,0,0,0,"英国计重");

cin>>tw;

en.Convert(tw); //把输入的克数转成英国计重

cout<

cn=en; //把英国计重转成中国计重

cout<

return 0;

}

输入要求:

第一行输入一个克数,调用中国计重转换,把克数转成中国计重

第二行输入一个克数,调用英国计重转换,把克数转成英国计重,并调用计重等价把英国计重转成中国计重

输出要求:

根据主函数运行输出

输入样例:

1234
2345

输出样例:

中国计重:2斤4两6钱4克
英国计重:4磅9盎司4打兰1克
中国计重:4斤6两9钱0克

代码示例:

#include
#include
#include
#include 
#include
#include
using namespace std;

class CN; //提前声明
class EN; //提前声明

class Weight
{ //抽象类
protected:
	char kind[20]; //计重类型
	int gram; //克
public:
	Weight(const char tk[] = "no name", int tg = 0)
	{
		strcpy(kind, tk);
		gram = tg;
	}
	virtual void Print(ostream& out) = 0; //输出不同类型的计重信息
};

class CN :virtual public Weight
{ //中国计重
protected:
	int jin, liang, qian;
public:
	CN(int jj, int ll, int qq, int gg, const char tk[]) :jin(jj), liang(ll), qian(qq), Weight(tk, gg) {}
	void Convert(int x)
	{
		gram = ((x * 2) % 10) / 2;
		qian = ((x * 2) / 10) % 10;
		liang = ((x * 2) / 100) % 10;
		jin = ((x * 2) / 1000) % 10;
	}
	virtual void Print(ostream& out)
	{
		out << "中国计重:" << jin << "斤" << liang << "两" << qian << "钱" << gram << "克" << endl;
	}
};

class EN :virtual public Weight
{ //英国计重
protected:
	int pound, ounce, dram;
public:
	EN(int pp, int oo, int dd, int gg, const char tk[]) :pound(pp), ounce(oo), dram(dd), Weight(tk, gg) {}
	void Convert(int x)
	{
		pound = x / 512;
		ounce = (x - pound * 512) / 32;
		dram = (x - pound * 512 - ounce * 32) / 2;
		gram = x % 2;
	}
	virtual void Print(ostream& out)
	{
		out << "英国计重:" << pound << "磅" << ounce << "盎司" << dram << "打兰" << gram << "克" << endl;
	}
	operator CN()
	{
		int g = pound * 512 + ounce * 32 + dram * 2 + gram;
		CN c(((g * 2) / 1000) % 10, ((g * 2) / 100) % 10, ((g * 2) / 10) % 10, ((g * 2) % 10) / 2, "中国计重");
		return c;
	}
};

ostream& operator<<(ostream& out, Weight& rhs)
{
	rhs.Print(out);
	return out;
}

int main()//主函数
{
	int tw;

	CN cn(0, 0, 0, 0, "中国计重");
	cin >> tw;
	cn.Convert(tw); //把输入的克数转成中国计重
	cout << cn;

	EN en(0, 0, 0, 0, "英国计重");
	cin >> tw;
	en.Convert(tw); //把输入的克数转成英国计重
	cout << en;
	cn = en; //把英国计重转成中国计重
	cout << cn;
	return 0;
}

你可能感兴趣的:(Simple,C++,开发语言,算法,C++)