這篇可能長了一點一一a....
以下是我的程式碼↓
代碼:
#include<iostream.h>
class elevator_class //類別:電梯
{
int elevator_floor; //電梯樓層
char elevator_status[11][30];//宣告電梯狀態陣列
public:
elevator_class()//建構
{
int elevator_floor=1;//set elevator at 1f
char elevator_status[11][30]=
{
{"電梯目前在1f"}, //0
{"電梯目前在2f"}, //1
{"電梯目前在3f"}, //2
{"電梯往1f移動中"}, //3
{"電梯往2f移動中"}, //4
{"電梯往3f移動中"}, //5
{"電梯開門中"},//6
{"電梯已經開啟"}, //7
{"電梯關門中"},//8
{"電梯已經關閉"}, //9
{"電梯待命中"}//10
};
}//建構結束
void set_elevator_floor()
{
cout<<"請輸入電梯所在樓層(1~3) :";
cin>>elevator_floor;
}
};
class button_class
{
char button_list[7][20];//
char button_action[7][20];
public:
button_class()//建構
{
char button_list[7][20]=
{
{"1F"}, //0
{"2F"}, //1
{"3F"}, //2
{"開門"}, //3
{"關門"}, //4
{"往上"}, //5
{"往下"} //6
};
char button_action[7][20]=
{
{"按下1F按鈕"}, //0
{"按下2F按鈕"}, //1
{"按下3F按鈕"}, //2
{"按下開門按鈕"}, //3
{"按下關門按鈕"}, //4
{"按下往上按鈕"}, //5
{"按下往下按鈕"} //6
};
}//建構結束
};
class user_class
{
int user_floor;
int user_inout;
public:
user_class()
{
int user_floor=1;//預設使用者在1樓
int user_inout=1;//0是在電梯裡面,1是在電梯外面
}
void set_user_floor()
{
cout<<"請輸入使用者所在樓層(1~3) :";
cin>>user_floor;
}
};
void main()
{
elevator_class elevator; //宣告物件:電梯
button_class button; //宣告物件:按鈕
user_class user; //宣告物件:使用者
elevator.set_elevator_floor();//設定電梯所在樓層
user.set_user_floor(); //設定使用者所在樓層
}
=====================================================
我現在在思考另一個問題...
我計畫中的做法是:
我只要輸入電梯,使用者各在哪一樓層.
程式就會自己執行電梯移動到幾樓,電梯開門,電梯關門等等的動作.
所以我得讓電腦判斷:
如果"user_floor(使用者所在樓層)"比"elevator_floor(電梯所在樓層)""高"
它會cout電梯往上移動,電梯開門/關門等等的字串.
反之亦然...
但是user_floor與elevator_floor是分別屬於兩個物件的private.
導致我沒辦法讓她們在main裡面作比較大小耶...
1.不希望把她們設定成public.因為這樣違反information hiding原則...
也不確定設定成public以後,main是否就可以比較了.
2.不能設定成friend或者divice.
2-1.設定成friend int user_floor,friend int elevator_floor的話,
user_floor或者elevator_floor就不是那兩者class的private了.
2-2.設定成divice
user物件跟elevator物件沒辦法繼承彼此耶...
=====================================================
我的解決辦法是將private的elevator_floor與user_floor的值.
設定給main的兩個int變數.待兩者int變數做完比較以後.再告訴程式該cout哪些字串.
但是這樣似乎是繞了一大圈且吃力不討好.
還是說我這樣的做法在information hiding的原則下,是對的呢?
因為老師說過,當我們要求高度information hiding的時候.
程式執行手續會相對複雜化.
想請問兩位板友的看法^_^"