C++3 주 프로젝트 4-장방형 기둥 류

수업 첫 페이지 주소:http://blog.csdn.net/sxhelijian/article/details/7910565,이번 주 제목 링크:http://blog.csdn.net/sxhelijian/article/details/8661031
[프로젝트 4-장 방주 류](교재 P262 제6 문제 에서 바 꾸 기)읽 은 프로그램 을 본 떠 대상 기반 프로그램 을 작성 하여 장 방주(Bulk)의 부 피 를 3 개 구하 십시오.데이터 구성원 은 길이(length),너비(width),높이(heigth),부 피 를 포함 하고 구성원 함수 로 다음 과 같은 기능 을 실현 하도록 요구 합 니 다.(1)키보드 로 3 개의 긴 기둥 의 길이,너비,높이 를 입력 합 니 다.(2)장 방주 의 부피(volume)와 표면적(areas)을 계산한다.
(3)이 세 개의 긴 기둥 의 부피 와 표면적 을 출력 한다.
작성 한 프로그램 구 조 는 다음 과 같 아야 합 니 다.
class Bulk
{//         
 //      
};
//         
int main()
{
}

구체 적 인 상황 은 여러 가지 디자인 이 있 을 수 있다.
[솔 루 션 1]이 방안 은 최소 데이터 멤버(3 개)와 멤버 함수(2 개)의 해결 방법 을 제시 합 니 다. 
#include <iostream>
using namespace std;
class Bulk
{
public:
	void get_value();
	void display();
private:
	float lengh;
	float width;
	float height;
};

void Bulk::get_value()
{ 
	cout<<"please input lengh, width,height:";
	cin>>lengh;
	cin>>width;
	cin>>height;
}

void Bulk::display()
{ 
	cout<<"The volume is: "<<lengh*width*height<<endl;
	cout<<"The surface area is: "<<2*(lengh*width+lengh*height+width*height)<<endl;
}

int main()
{
	Bulk b1,b2,b3;

	b1.get_value();
	cout<<"For bulk1: "<<endl;
	b1.display();

	b2.get_value();
	cout<<"For bulk2: "<<endl;
	b2.display();

	b3.get_value();
	cout<<"For bulk3: "<<endl;
	b3.display();
	return 0;
}

[솔 루 션 2]상대 방안 1.부피 와 표 면적 을 데이터 구성원 으로 하고 전문 적 인 구성원 함수 구 해 를 제공 합 니 다(이런 방안 을 추천 합 니 다.각 함수 의 내부 집적 성 강화) 
#include <iostream>
using namespace std;
class Bulk
{
public:
	void get_value();
	void display();
private:
	void get_volume();  //       ,             
	void get_area();
	float lengh;
	float width;
	float height;
	float volume;
	float area;
};

void Bulk::get_value()
{ 
	cout<<"please input lengh, width,height:";
	cin>>lengh;
	cin>>width;
	cin>>height;
	get_volume();  //             ,    display      ,     ,    
	get_area();
}

void Bulk::get_volume()
{
	volume=lengh*width*height;
}

void Bulk::get_area()
{
	area=2*(lengh*width+lengh*height+width*height);
}

void Bulk::display()
{ 
	//get_volume() get_area()        ,                  	
	cout<<"The volume is: "<<volume<<endl;
	cout<<"The surface area is: "<<area<<endl;
}

int main()
{
	Bulk b1,b2,b3;
	
	b1.get_value();
	cout<<"For bulk1: "<<endl;
	b1.display();
	
	b2.get_value();
	cout<<"For bulk2: "<<endl;
	b2.display();
	
	b3.get_value();
	cout<<"For bulk3: "<<endl;
	b3.display();
	return 0;
}

【솔 루 션 3】상대 방안 2,getvolume()과 getarea()는 Public 형 으로 성명 합 니 다.이때 이 두 함 수 는 main()함수 에서 b1.get 과 같은 형태 로 사용 할 수 있 습 니 다.volume()과 b1.getarea()방식 호출,입력,계산,표시 절 차 를 main()함수 에 구현 합 니 다.예 를 들 어 방안 2 의 형식 으로 호출 할 수도 있 지만 Public 의 가 치 를 나타 내지 못 한다.이런 해결 방안 의 절 차 는 독자 스스로 제시 해 주 십시오.

좋은 웹페이지 즐겨찾기