速攻!WEBプログラム養成講座

アキオ技術記録とそれを活かしてみなさまのスキルアップを目指します

 クラスの作り方、考え方基本

次の仕様でクラスを作成し、main関数で動作させてみましょう。

自動車クラス
クラス名:MyCar
メンバー変数private
・名前
・車幅
・車長
・車高
・走行距離

メンバー関数  public
・MyCarのコンストラクタ(メンバー変数の初期値をセットする)
・走行関数(走行距離を加算)
・車のスペック(メンバー変数の値)を表示する関数

・その他 もし、必要なメンバー変数、メンバー関数があれば
追加しなさい。
main関数の動作

1.車の初期情報を入力する。

2.車のスペック情報(メンバー変数の値)を表示する。

3.走行距離を繰り返し入力できるようにする。

例:「走りますか[0...NO/1...YES]」

yesの場合
「何キロ :?」 (何キロ走るか走行距離を入力できるようにする)

入力された数値を
走行距離に加算してゆく

「今までの走行距離は、合計で  です。」(走行距離の合計を画面に表示する)

noの場合
繰り返しを終了しプログラムを終了する。

如何でしょうか。少し自分でノートやメモに書いてみましょう。

以下、模範解答です。明確な答えはありませんので、あくまでも、

クラスを組み立てるまでのイメージです。どうぞ、みなさん好みの車を作ってみてください。

#include <iostream>
#include <string>
using namespace std;

class MyCar {
private:
	string name;
	int haba;
	int naga;
	int taka;
	int p; //距離
public:
	MyCar(string n,int i,int i2,int i3,int k);
	void setname(string n);
	void setspec(int i,int i2,int i3);
	void set_p(int k);
	int  get_p();
	void add(int k);
	void disp();
	void disp_p();
};
//-----------------------------------------
MyCar::MyCar(string n,int i,int i2,int i3,int k)
{
	name = n;
	p = k;
	if (i < 0) haba = 0; else haba = i;
	if (i2 < 0) naga = 0; else naga = i2;
	if (i3 < 0) taka = 0; else taka = i3;
	if (k < 0) p = 0; else p = k;
	
}
//----------------------------------------------
void MyCar::setname(string n)
{
	name = n;
}
//-------------------------------------------
void MyCar::setspec(int i,int i2,int i3)
{
	if (i < 0) haba = 0; else haba = i;
	if (i2 < 0) naga = 0; else naga = i2;
	if (i3 < 0) taka = 0; else taka = i3;
}
//---------------------------------------------
void MyCar::set_p(int k)
{
	if (k < 0) p = 0; else p = k;
}
//-----------------------------------
void MyCar::add(int k){
	p = p + k;
}
//----------------------------------------
int MyCar::get_p()
{
	return p;
}
//-------------------------------------
void MyCar::disp()
{
	cout << "名前=" << name << '\n';
	cout << "車幅=" << haba << '\n';
	cout << "車長=" << naga << '\n';
	cout << "車高=" << taka << '\n';
	cout << "距離=" << p << '\n';
	cout << '\n';
}
void MyCar::disp_p()
{
	cout << "距離=" << p << '\n';
}
//----------------------------------------------------
int main()
{
	MyCar dt("ひかり", 100, 200, 150, 2000);
	dt.disp();
	int k;
	char y;
//-----------------------------------------------------
	while(true){
		cout << "現在の走行距離は " << dt.get_p() << "です" << '\n';
		cout << "走行距離を入力してください。 \n";
		cin >> k;
		
		cout << "まだ走りますか(Y or N)" << '\n';
		cin >> y;
		if(y == 'y'){
			dt.add(k);
		}
		cout << dt.get_p() << "←こんなに走ってますけど" << '\n';
		cout << "ほんとにはしります??\n";
		cin >> y;
		if(y != 'y'){
			break;
		}
	}
	
	return 0;
}