C++快速入门---函数的重载(5)

C++快速入门---函数的重载(5)

 

重载:用同样的名字再定义一个有着不同参数但有着同样用途的函数。

(注意:可以是参数个数上的不同,也可以是参数数据类型上的不同)

重载目的是为了方便对不同数据类型进行同样的处理。

 

#include <iostream>

void convertTemperature(double tempIn, char typeIn);
void convertTemperature(int tempIn, char typeIn);

int main()
{
	double tempIn;
	int tempInInt;
	char typeIn;
	
	std::cout << "请以 [xx.x C] 或 [xx.x F]的形式输入温度:";
	std::cin >> tempIn >> typeIn;
	std::cin.ignore(100, '\n');
	std::cout << "\n";
	convertTemperature(tempIn, typeIn);
	
	std::cout << "请以 [xx C] 或 [xx F]的形式输入温度:";
	std::cin >> tempInInt >> typeIn;
	std::cin.ignore(100, '\n');
	std::cout << "\n";
	convertTemperature(tempInInt, typeIn);
	
	return 0; 
}

void convertTemperature(double tempIn, char typeIn)
{
	const unsigned short ADD_SUBTRACT = 32;
	const double RATIO = 9.0 / 5.0;
	
	double tempOut;
	char typeOut;
	
	switch(typeIn)
	{
		case 'C':
		case 'c':
			tempOut = (tempIn * RATIO) + ADD_SUBTRACT;
			typeOut = 'F';
			typeIn = 'C';
			break;
		
		case 'F':
		case 'f':
			tempOut = (tempIn - ADD_SUBTRACT) / RATIO;
			typeOut = 'C';
			typeIn = 'F';
			break;
			
		default:
			typeOut = 'E';
			break;
	}
	if(typeOut != 'E')
	{
		std::cout << tempIn << typeIn << " = " << tempOut << typeOut << "\n\n";
	}
	else
	{
		std::cout << "请按照给出格式输入!" << "\n\n";
	}
	
	std::cout << "请输入任意字符结束!" << "\n";
	std::cin.get();
}

void convertTemperature(int tempIn, char typeIn)
{
	const unsigned short ADD_SUBTRACT = 32;
	const double RATIO = 9.0 / 5.0;
	
	int tempOut;
	char typeOut;
	
	switch(typeIn)
	{
		case 'C':
		case 'c':
			tempOut = (tempIn * RATIO) + ADD_SUBTRACT;
			typeOut = 'F';
			typeIn = 'C';
			break;
		
		case 'F':
		case 'f':
			tempOut = (tempIn - ADD_SUBTRACT) / RATIO;
			typeOut = 'C';
			typeIn = 'F';
			break;
			
		default:
			typeOut = 'E';
			break;
	}
	if(typeOut != 'E')
	{
		std::cout << tempIn << typeIn << " = " << tempOut << typeOut << "\n\n";
	}
	else
	{
		std::cout << "请按照给出格式输入!" << "\n\n";
	}
	
	std::cout << "请输入任意字符结束!" << "\n";
	std::cin.get();
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值