第六周 RW 4

原创 2012年03月28日 18:13:22
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生 
* All rights reserved.
* 文件名称:                              
* 作    者:   李兆庆                          
* 完成日期:   2012      年   3    月    27    日
* 版 本 号:          

* 对任务及求解方法的描述部分
* 输入描述:   
* 问题描述:   设计平面坐标点类,计算两点间的距离,到原点的距离以及关于x轴,y轴,原点对称的点.
* 程序输出: 
* 程序头部的注释结束
*/

#include < iostream >

#include < cmath >

using namespace std;
 
enum SymmetricStyle { axisx, axisy, point };//分别表示按x轴, y轴, 原点对称

class CPoint

{

private:

	double x;  // 横坐标

	double y;  // 纵坐标

public:

	CPoint ( double xx=0 , double yy=0  ) ;

	double Distance ( CPoint p ) const;   // 两点之间的距离(一点是当前点,另一点为参数p)

	void input ( );  //以x,y 形式输入坐标点

	void output ( ); //以(x,y) 形式输出坐标点

};

class CTriangle

{

public:

	CTriangle ( CPoint &X, CPoint &Y, CPoint &Z ) : A ( X ), B ( Y ), C ( Z ) {} //给出三点的构造函数

	void setTriangle ( CPoint &X, CPoint &Y, CPoint &Z);

	double perimeter ( void ) ;                                                  //计算三角形的周长

	double area ( void ) ;                                                       //计算并返回三角形的面积

	bool isRightTriangle ( );                                                    //是否为直角三角形

	bool isIsoscelesTriangle ( );                                                //是否为等腰三角形

private:

	CPoint  A , B , C ;                                                          //三顶点

};

CPoint :: CPoint ( double xx, double yy )
  
{  
    x = xx;
	
    y = yy;
	
}  

// 两点之间的距离(一点是当前点,另一点为参数p)

double CPoint :: Distance ( CPoint p ) const
   
{

	return sqrt ( ( x - p.x ) * ( x - p.x ) + ( y - p.y ) * ( y - p.y ) );

}

//以x,y 形式输入坐标点

void CPoint :: input ( )

{

	char ch ;

	while ( 1 )
	{
		cin >> x >> ch >> y;

		if ( ch != ',' )
		{

			cout << " 你输入的格式错误 " << endl;

		}

		else

		{

			break;

		}

	}

}

void CPoint::output ( )//以(x,y) 形式输出坐标点

{

	cout << x <<',' << y << endl;
	
}
void CTriangle::setTriangle(CPoint &X,CPoint &Y,CPoint &Z)  
{  
    A=X;  
    B=Y;  
    C=Z;
}

//计算三角形的周长

double CTriangle :: perimeter ( void )

{

	double a = A.Distance ( C ),

		b = B.Distance ( C ),

		c = A.Distance ( B );

	return  ( a + b + c );

}

//计算并返回三角形的面积

double CTriangle :: area ( void )

{
	double a =  A . Distance ( C ),

		b = B . Distance ( C ) ,

		c = A . Distance ( B ) ,

		s = ( a + b +  c ) / 2 ;

	return sqrt ( s * ( s - a ) * ( s - b ) * ( s - c ) );

}

 //是否为直角三角形

bool CTriangle :: isRightTriangle ( ) 

{
	double a = A . Distance ( C ),

		b = B . Distance ( C ) ,

		c = A . Distance ( B ) ;

	if ( ( abs ( a * a - b * b - c * c ) < 1e-6 ) || ( abs ( b * b - a * a - c * c ) < 1e-6 ) || ( abs ( c * c -b * b - a * a ) < 1e-6 ) )

	{
		return true;
	}
	else 
	{
		return false;
	}

}

//是否为等要三角形

bool CTriangle :: isIsoscelesTriangle ( ) 

{
		double a = A . Distance ( C ),

		b = B . Distance ( C ),

		c = A . Distance ( B );

		if ( ( abs ( a * a - b * b - c * c ) < 1e-6 ) || ( abs ( b * b - a * a - c * c ) < 1e-6 ) || ( abs ( c * c -b * b - a * a ) < 1e-6 ) )

		{
			return true;
		}
		else
		{
			return false;
		
		}

}

 
void main (void )

{

	CTriangle Tri1 ( CPoint ( 0 , 0 ) , CPoint ( 0 , 2 ) , CPoint ( 2 , 0 ) );

	cout << "该三角形的周长为:" << Tri1 . perimeter ( ) << " ,面积为:" << Tri1 . area ( ) << endl; 

	cout << "该三角形" << ( Tri1 . isRightTriangle ( ) ? "是" : "不是" ) << "直角三角形" << endl;

	cout << "该三角形" << ( Tri1 . isIsoscelesTriangle ( ) ?"是":"不是") << "等腰三角形" << endl;

	system ( " pause " );

}

      还是得看书啊,有些代码实现还是对我来说困难挺大的!多读,多写代码····

Coursera—machine learning(Andrew Ng)第六周编程作业

linearRegCostFunction.m function [J, grad] = linearRegCostFunction(X, y, theta, lambda) %LINEARREGC...
  • ccblogger
  • ccblogger
  • 2017年11月24日 15:33
  • 362

coursera机器学习课程第六周——课程笔记

本周的内容主要分为两部分,第一部分:主要内容是偏差、方差以及学习曲线相关的诊断方法,为改善机器学习算法的决策提供依据;第二部分:主要内容是机器学习算法的错误分析以及数值评估标准:准确率(交叉验证集的误...
  • ccblogger
  • ccblogger
  • 2017年11月27日 17:47
  • 166

coursera Machine Learning 第六周 测验quiz1答案解析 Advice for Applying Machine Learning

1.选择B 解析:通过看学习曲线,结合课上所讲就是高方差的表现。 2.选择BC 解析:题意是做图片分类,结果对测试集效果不好,但是能很好地符合训练集,如何才能改善算法。明显是过拟合的结果,即高方差...
  • sinat_39805237
  • sinat_39805237
  • 2017年12月12日 20:43
  • 121

machine-learning第六周 上机作业

1、如何评估算法好坏:高偏差与高方差的问题; 2、当某个集合中,一个类别远小于另一个类别的时候(如患癌),如何评估在面对偏斜类(Skewed classes)的算法好坏:查准率和召回率; 3、如何选择...
  • dialoal
  • dialoal
  • 2016年02月02日 16:21
  • 1329

NG机器学习第六周:关于模型的调优选择

评判一个模型:    回归:  J(Θ) 的大小,越小越好 逻辑回归分类:  用错误率 err( hΘ(x)-y)来衡量。 选择模型: 分别用几次方程拟合比较合适,  把数据集分为:   训练集, 交...
  • u012374510
  • u012374510
  • 2017年03月19日 14:32
  • 282

Coursera吴恩达机器学习课程 总结笔记及作业代码——第6周有关机器学习的小建议

1.1 Deciding what to try next当你调试你的学习算法时,当面对测试集你的算法效果不佳时,你会怎么做呢? 获得更多的训练样本? 尝试更少的特征? 尝试获取附加的特征? 尝试增加...
  • qq_27008079
  • qq_27008079
  • 2017年05月21日 15:58
  • 4516

【数据结构】第三周研讨题

一、研讨题目: 1.单链表经典应用之一元多项式加法、乘法等运算 2.一元多项式加法、乘法等运算在顺序结构上的实现 3.静态链表的概念和部分实现 二、内容整理: 1.单链表经典应用之一元多项式...
  • u011507007
  • u011507007
  • 2014年06月04日 22:10
  • 593

Coursera机器学习-第六周-Advice for Applying Machine Learning

Evaluating a Learning Algorithm Desciding What to Try Next Evaluating a Hypothesis Model...
  • dingchenxixi
  • dingchenxixi
  • 2016年06月01日 07:58
  • 2012

6w4:第六周程序填空题1(虚函数与派生)

6w4:第六周程序填空题1 总时间限制: 1000ms 内存限制: 65536kB 描述 下面程序的输出结果是: A::Fun C::Do 请填空: #include usi...
  • zzygt
  • zzygt
  • 2016年08月05日 23:41
  • 484

coursera 机器学习第六周

本周的内容主要分为两部分,第一部分:主要内容是偏差、方差以及学习曲线相关的诊断方法,为改善机器学习算法的决策提供依据;第二部分:主要内容是机器学习算法的错误分析以及数值评估标准:准确率(交叉验证集的误...
  • qq_23960265
  • qq_23960265
  • 2017年12月05日 13:47
  • 81
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第六周 RW 4
举报原因:
原因补充:

(最多只允许输入30个字)