C++小白学习笔记——代码案例(1)

1、利用重载函数area(),分别求三角形、矩形、圆形和梯形面积

#include<iostream>
#include<math.h>
#include<iomanip>

using namespace std;
bool pd(double a,double b,double c);
void area(double a,double b,double c);
void area(double l,double k);
void area(double r);
void area(double a,double b,double c,double d);
  
//三角形成立判断 
bool pd(double a,double b,double c)
{
	if(a>0&&b>0&&c>0)
	{
		if((a+b)<=c&&(a+c)<=b&&(a+c)<=b)	
			return 0;
		else 
			return 1;
	}
	else 
		return 0;
}
//三角形面积计算 
void area(double a,double b,double c)
{
	double l=(a+b+c)/2.0;
	double s=sqrt(l*(l-a)*(l-b)*(l-c));
	cout<<"三角形的面积为: "<<fixed<<setprecision(2)<<s<<endl;//<<fixed<<setprecision(2)起到保留小数点两位作用 
}
//矩形面积计算 
void area(double l,double k)
{
	double s=l*k;
	cout<<"矩形的面积为:"<<fixed<<setprecision(2)<<s<<endl; 
}
//圆形面积计算 
void area(double r)
{
	const double pi=3.14;
	double s=pi*r*r;
	cout<<"圆形的面积为:"<<fixed<<setprecision(2)<<s<<endl; 
}
//梯形面积计算 
void area(double a,double b,double c,double d)
{
	//梯形拆分成三角形和平行四边形计算 
	double l=(a+abs(d-b)+c)/2.0; 
	double s=sqrt(l*(l-a)*(l-abs(d-b))*(l-c));
	s += b*(s/abs(d-b));
	cout<<"梯形的面积为"<<fixed<<setprecision(2)<<s<<endl;
} 

int main()
{
	double a,b,c,d,l,k,r,r1,r2,h;
	int n;
	while(1)//死循环 
	{
		cout<<"请选择你要计算的图形:"<<endl;
		cout<<"1-三角形"<<endl;
		cout<<"2-矩形"<<endl;
		cout<<"3-圆形"<<endl;
		cout<<"4-梯形"<<endl;
		cout<<"请选择"<<endl;
		cin>>n;
		if(n>=5)
			break;
		else
		{
			switch(n)
			{
				case 1:
					cout<<"请输入三角形的三边:"<<endl;
					cin>>a>>b>>c;
					if(pd(a,b,c))
						area(a,b,c);
					else
						cout<<"错误不能构成三角形:"<<endl; 
					break;
				case 2:
					cout<<"请输入矩形的两边:"<<endl;
					cin>>l>>k;
					area(l,k);
					break; 
				case 3:
					cout<<"请输入圆形的半径:"<<endl;
					cin>>r;
					area(r);
					break;
				case 4:
				    cout<<"请输入梯形的四边(先输入两边,再输入两底):"<<endl;	
				    cin>>a>>b>>c>>d;
					area(a,b,c,d);
					break; 
			}
		} 
	} 
	return 0;
}

C++ 中的格式控制符(输出流操纵算子),在头文件 iomanip 中定义的

使用:cout<<"三角形的面积为: "<<fixed<<setprecision(2)<<s<<endl;
fixed以普通小数形式输出浮点数
scientific以科学计数法形式输出浮点数
setbase(b)设置输出整数时的进制,b=8、10 或 16
setw(w)指定输出宽度为 w 个字符,或输人字符串时读入 w 个字符
setprecision(n)设置浮点数的精度为 n。配合fixed或scientific使用,n 是小数点后位数;否则,n是有效位数

输出流操纵算子详讲(点我)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值