1. 程式人生 > >C++第八章 類和物件(二)

C++第八章 類和物件(二)

【專案1 - 三角形類】下面設計一個三角形類,請給出各成員函式的定義

#include<iostream>
#include<cmath>
using namespace std;
class Triangle
{public:
	void Setabc(double x, double y, double z);//置三邊的值,注意要能成三角形
	void Getabc(double*x, double*y, double*z);//取三邊的值
	double Perimeter(void);//計算三角形的周長
	double Area(void);//計算並返回三角形的面積
private:
	double a,b,c; //三邊為私有成員資料
};

int main(void)
{	Triangle  Tri1;	//定義三角形類的一個例項(物件)
	Tri1.Setabc(4,5,6);	//為三邊置初值
	double x,y,z;
	Tri1.Getabc (&x,&y,&z);   //將三邊的值為x,y,z賦值
	cout<<"三條邊為:"<<x<<"  "<<y<<"  "<<z<<endl;
	cout<<"三角形的周長為:"<< Tri1.Perimeter()<<'\t'<<"面積為:"<< Tri1.Area()<<endl;
	return 0;
}
//請在下面定義Triangle類中的各個成員函式
void Triangle::Setabc(double x, double y, double z){
    a=x;b=y;c=z;
}
void Triangle::Getabc(double*x, double*y, double*z){
    (*x)=a;(*y)=b;(*z)=c;
}
double Triangle::Perimeter(void){
    return a+b+c;
}
double Triangle::Area(void){
    double p=Perimeter()/2;
    return sqrt(p*(p-a)*(p-b)*(p-c));
}
//兩個問題1.f(void)2,傳遞指標,引用、
 
【專案2 - 三角形類】程式功能同項目1,main()函式如下,請定義類Triangle,其中邏輯特別簡單的set和get成員函式,可以處理為內建成員函式,直接在類內定義。
[cpp] view plaincopyprint?
  1. int main()  
  2. {   Triangle tri1;  //定義三角形類的一個例項(物件)
  3.     double x,y,z;  
  4.     cout<<"請輸入三角形的三邊:";  
  5.     cin>>x>>y>>z;  
  6.     tri1.setA(x);tri1.setB(y);tri1.setC(z); //為三邊置初值
  7.     if(tri1.isTriangle())  
  8.     {   
  9.         cout<<"三條邊為:"<<tri1.getA()<<','<<tri1.getB()<<','<<tri1.getC()<<endl;  
  10.         cout<<"三角形的周長為:"<< tri1.perimeter()<<'\t'<<"面積為:"<< tri1.area()<<endl;  
  11.     }  
  12.     else
  13.         cout<<"不能構成三角形"
    <<endl;  
  14.     system("pause");  
  15.     return 0;  

#include<iostream>
#include<cmath>
using namespace std;
class Triangle
{public:
	void setA(double);
	void setB(double);
	void setC(double);
	double getA();
	double getB();
	double getC();
	bool isTriangle();
	double Perimeter(void);//計算三角形的周長
	double Area(void);//計算並返回三角形的面積
private:
	double a,b,c; //三邊為私有成員資料
};

void Triangle::setA(double x){
    a=x;
}

void Triangle::setB(double x){
    b=x;
}

void Triangle::setC(double x){
    c=x;
}


double Triangle::getA(){return a;};
double Triangle::getB(){return b;};
double Triangle::getC(){return c;};

double Triangle::Perimeter(void){
    return a+b+c;
}

double Triangle::Area(void){
    double p=Perimeter()/2;
    return sqrt(p*(p-a)*(p-b)*(p-c));
}

bool Triangle::isTriangle(){
    if(a+b>c&&a+c>b&&b+c>a)
    return true;
    else
    return false;
}

int main()
{	Triangle tri1;	//定義三角形類的一個例項(物件)
	double x,y,z;
	cout<<"請輸入三角形的三邊:";
	cin>>x>>y>>z;
	tri1.setA(x);tri1.setB(y);tri1.setC(z);	//為三邊置初值
	if(tri1.isTriangle())
	{
		cout<<"三條邊為:"<<tri1.getA()<<','<<tri1.getB()<<','<<tri1.getC()<<endl;
		cout<<"三角形的周長為:"<< tri1.Perimeter()<<'\t'<<"面積為:"<< tri1.Area()<<endl;
	}
	else
		cout<<"不能構成三角形"<<endl;
	system("pause");
	return 0;
}



相關推薦

C++ 物件

【專案1 - 三角形類】下面設計一個三角形類,請給出各成員函式的定義 #include<iostream> #include<cmath> using namespace std; class Triangle {public: void Set

JAVA_SE 物件

九、排序1.冒泡2選擇3.插入排序:從第二個開始與前面所有已經排好序的序列進行比較,插入到對應位置              for(inti=1;i<arr.length;i++)  {  //第二個元素開始,每個元素與前面已經排好序的元素比較            

Python基礎教程3版中文版 7 物件筆記

                                  7 類和物件 1.物件魔法  1.多型  2.多型和方法   3.封裝  4.繼承 2.類  1.類是什麼 類 型別 2.建立自定義類  class Person:      def set_

Scala入門到精通——七節:物件

本節主要內容 單例物件 伴生物件與伴生類 apply方法 應用程式物件 抽象類 單例物件 在某些應用場景下,我們可能不需要建立物件,而是想直接呼叫方法,但是Scala語言並不支援靜態成員,Scala通過單例物件來解決該問題。單例物件的建立方式如下:

C++】物件

 一、this指標  關於this指標的一個精典回答:       當你進入一個房子後,       你可以看見桌子、椅子、地板等,       但是房子你是看不到全貌了。       對於一個類的例項來說,       你可以看到它的成員函式、成員變數,       但是例

C++學習筆記——物件

設計一個類就是設計一個新的型別,應該考慮: 此型別的“合法值”是什麼? 此型別應該有什麼樣的函式和操作符? 新型別的物件該如何被建立和銷燬? 如何進行物件的初始化和賦值? 物件作為函式的引數如何以值傳遞? 誰將使用此型別的物件成員? 類定義的語法形式: clas

三篇 泡沫滅火系統

技術 com .com mage 分享 技術分享 png info 分享圖片 下面的不重要 第三篇 第八章泡沫滅火系統(二)

CSAPP-異常控制流

程序 程序是一個執行中的程式的例項。系統中的每個程式都是執行在某個程序的上下文中。上下文由程式正確執行所需的狀態組成。這個狀態包括,存放在儲存器中的程式碼和資料,它的棧,通用目的暫存器內容,程式計數器,環境變數,以及開啟檔案描述符的集合。 每次使用者向外殼(

【練習題】十五--物件Think Python

別名有可能讓程式讀起來有困難,因為在一個位置做出的修改有可能導致另外一個位置發生不可預知的情況。這樣也很難去追蹤指向一個物件的所有變數。所以就可以不用別名,而用複製物件的方法。copy 模組包含了一個名叫 copy 的函式,可以複製任意物件: >>> p1 = Point()

C++物件&&實現OFFSETOF巨集&&THIS指標

一.目錄   1.物件的相關知識   2.類的定義   3.類的例項化   4.類物件模型   5.模擬實現offsetof巨集   6.this指標 二.正文 1.物件的相關知識   C語言是面向過程的,關注的是過程,分析求解問題的步驟,通過函式呼叫逐步解決問題

《瘋狂Java講義4版》-----6【面向物件命令模式、Lambda、列舉、垃圾回收、jar

命令模式 命令模式,參考下面程式碼,就能領悟到,想做出怎樣的處理,就怎麼去覆蓋介面中的抽象方法!下面程式碼中介面Command中定義一個對陣列處理的方法,但沒說怎麼處理(畢竟是抽象方法嘛),然後讓其他類來實現這個介面,順便實現這個介面的方法,他們按照何種方式實現

C++物件

1.物件的相關知識   C語言是面向過程的,關注的是過程,分析求解問題的步驟,通過函式呼叫逐步解決問題。   C++是面向物件的,關注的是物件,將一件事拆分成不同的物件,靠物件之間的互動完成。   物件:任何一個物件都應該具有兩個要素,即屬性和行為,物件是由一組屬性和行為構成的。如現實生活中的手機就是一個物

C++物件&&實現OFFSETOF巨集&&THIS指標

一.目錄   1.物件的相關知識   2.類的定義   3.類的例項化   4.類物件模型   5.模擬實現offsetof巨集   6.this指標 二.正文 1.物件的相關知識   C語言是面向過程的,關注的是過程,分析求解問題的步驟,通過函式呼叫逐步解

C++ 物件

目錄 類 類的引入 類的定義 訪問限定符 封裝 類的作用域 類的例項化 引出 C語言是面向過程的,關注的是過程,分析出求解問題的步驟,通過函式呼叫逐步解決問題。C++是基於面向物件的,關注的是物件,將一件事情拆分成不同的物件,靠物

Scala入門到精通——六節:物件

本節主要內容 1 類定義、建立物件 2 主構造器 3 輔助構造器 類定義、建立物件 //採用關鍵字class定義 class Person { //類成員必須初始化,否則會報錯 //這裡定義的是一個公有成員 var name:Strin

C++】物件4

一、類的六個預設成員函式 下面是一個Date類,但是它類中什麼成員也沒有,這就是空類。但是它雖然看起來什麼都沒有,實際上不是的,在我們什麼都不寫的情況下,它會自動生成六個預設的成員函式。如圖所示的建構函式、解構函式、拷貝建構函式、賦值過載函式、普通物件取地址函式、const物件取地址函式這六個函

C++】物件3—>> this指標

一、this指標的引入 我們在現實中,定義一個類都是根據一個需求來定義的。所以先來看一個常用的日期類 Date 。 class Date { public: void Print() { cout << _year << "-" << _month

C++】物件2

一、類的作用域 類定義了一個新的作用域,類的所有成員都在類的作用域中。在類體外定義成員,需要使用 :: 作用域解析符 指明成員屬於哪個類域。否則找不到。 class person { public: void PrintfPersonInfo(); private: char _name

C++初識:物件2

在之前的文章裡,我們出初步瞭解了,什麼是類,類如何定義,類的大小怎麼計算等 一個空類裡面什麼也沒有,但是它並非是什麼也沒有,只要是類,它就有6個預設的成員函式: 1.建構函式 2.解構函式 3.拷貝建構函式 4.賦值操作符過載 5.取地址操作符過載 6.co

初識C++: 物件1

類和物件的初步認識: 類是物件的抽象,物件是類的具體例項。因為類是抽象的,所以類不佔用記憶體,而物件是具體的,佔用儲存空間。 我們都知道,C語言時面向過程的語言,它關注的是過程中的資料與方法。 C++是面向物件的語言,它關注的是物件的屬性與功能 用一張圖來理解類和物件