プログラム実習(問1~問10) -後期課題-
■問1
仕様:
以下の仕様のクラスを定義しなさい
クラス名:
Character
メンバ変数:
なし
メンバ関数:
なし
■問2
仕様:
以下の仕様のクラスを定義しなさい
クラス名:
Player
メンバ変数:
int型 m_Hp
int型 m_Mp
int型 m_Level
メンバ関数:
なし
■問3
仕様:
以下の仕様を実装しなさい
1.以下の仕様のクラスを定義しなさい
クラス名:
Calculator
メンバ変数:
なし
メンバ関数その1:
関数名:
Add
戻り値:
型:int
内容:二つの引数を使用した足し算の結果
引数:
int:
計算に使用する値その1
int:
計算に使用する値その2
内容:
引数その1とその2を足した値を返す
メンバ関数その2:
関数名:
Sub
戻り値:
型:int
引数:
int:
計算に使用する値その1
int:
計算に使用する値その2
内容:
引数その1からその2引いた値を返す
メンバ関数その3:
関数名:
Mul
戻り値:
型:int
引数:
int:
計算に使用する値その1
int:
計算に使用する値その2
内容:
引数その1と引数その2を掛け合わせた結果
メンバ関数その4:
関数名:
Div
戻り値:
型:float
引数:
float:
計算に使用する値その1
float:
計算に使用する値その2
内容:
引数その1を引数その2で割った結果
※0割り注意
2.main関数でCalculatorをインスタンス化しなさい
3.定義されているメンバ関数をどのような形でもいいので、
全て使用しなさい
■問4
仕様:
Calculatorクラスのメンバ関数Addを対してオーバーロードして
以下の仕様で追加しなさい
class Calculator
{
public:
int Add(int a, int b)
{
return (a + b);
}
}
オーバーロード仕様
戻り値:
float:aとbを足した合計値
引数:
float a
float b
内容:
float型の引数aとbを足した合計値を返す
■問5
仕様:
以下の仕様満たしなさい
①.クラス定義
クラス名:
Drawer
メンバ変数:
float m_PosX
float m_PosY
float m_Angle
float m_Scale
メンバ関数:
その1:
関数名:
コンストラクタ
引数:
なし
内容:
以下の値でメンバ変数を初期化する
m_PosX => 0.0f
m_PosY => 0.0f
m_Angle => 0.0f
m_Scale => 0.0f
その2:
関数名:
PrintParameter
戻り値:
なし
引数:
なし
内容:
各メンバ変数の値を出力する
(出力形式は任意)
②.クラスのインスタンス化
main関数内でDrawerをインスタンス化して
PrintParameterを呼び出しなさい
■問6
仕様:
以下の仕様を満たしなさい
①.クラス定義
以下の仕様のクラスを定義しなさい
クラス名:
Character
メンバ変数:
char m_Name[32]
int m_Hp
int m_Mp
int m_At
int m_Deff
メンバ関数:
その①.
関数内容:
デフォルトコンストラクタを定義し、
以下の値でメンバ変数を初期化する
m_Name => 名無し
m_Hp => 0
m_Mp => 0
m_At => 0
m_Deff => 0
その②.
関数名:
コンストラクタ
引数:
char * name:
m_Name初期化用
int hp:
m_Hp初期化用
int mp:
m_Mp初期化用
int at:
m_At初期化用
int deff:
m_Deff初期化用
内容:
引数の値でメンバ変数を初期化する
m_Name => name
m_Hp => hp
m_Mp => mp
m_At => at
m_Deff => deff
その③.
関数名:
PrintParameter
戻り値:
なし
引数:
なし
内容:
メンバ変数を全て出力する
(出力形式は任意)
②.インスタンス化
main関数内でインスタンス化したCharacterクラスを二つ用意し、
1つは引数なしのコンストラクタ、もう1つは引数有りのコンストラクタとします。
インスタンスに対してPrintParameterを呼び出します。
■問7
仕様:
以下の仕様を満たしなさい
①.クラス定義
以下の仕様のクラスを定義しなさい
クラス名:
Jugyoin
メンバ変数:
int m_ID
char m_Name[32]
メンバ関数:
その①.
関数名:
コンストラクタ:
引数:
char *name
内容:
①.「static int EntryID」を宣言し1で初期化する
②.m_IDをEntryIDで初期化する
③.EntryIDに1を加算する
④.nameの内容をm_Nameにコピーする
その②.
関数名:
PirntInfomation
戻り値:
なし
引数:
なし
内容:
メンバ変数の内容を出力する
(出力形式は任意)
その③.
関数名:
デストラクタ
引数:
なし
内容:
「デストラクタ」と出力する
②.Jugyoinクラスのインスタンス化
Jugyoinクラスのインスタンス「satou」「suzuki」を作成し、
PirntInfomationを呼び出しなさい。
インスタンス化の内容:
satouのコンストラクタの実引数「佐藤」
suzukiのコンストラクタの実引数「鈴木」
■問8
仕様:
以下の仕様を満たしなさい
①.クラス定義
クラス名:
Test
メンバ関数:
その①.
関数名:
コンストラクタ
引数:
なし
内容:
「コンストラクタ」と出力する
その②.
関数名:
デストラクタ
引数:
なし
内容:
「デストラクタ」と出力する
②.インスタンス化
2-1.Testクラス型のポインタ変数を宣言
Testクラス型のポインタ変数を宣言し、
動的に確保したTestクラスのメモリ領域を代入しなさい
2-2.解放
2-1の次の行で2-1で確保したメモリの解放をしなさい
■問9
仕様:
以下の仕様を満たしなさい
①.クラス定義
※メンバ変数名、メンバ関数名の隣の()はアクセス指定子
クラス名:
Character
メンバ変数:
int m_Hp (private)
int m_Mp (private)
int m_At (private)
int m_Deff (private)
メンバ関数:
その①.
関数名:
デフォルトコンストラクタ(public)
内容:
メンバ変数を全て0で初期化する
②.クラスのインスタンス化
main関数内でCharacterクラスをインスタンス化する
■問10
仕様:
以下の仕様を満たしなさい
※メンバ変数名、メンバ関数名の隣の()はアクセス指定子
①.クラス定義
その①.
クラス名:
Item
メンバ変数:
char m_Name[32] (private)
int m_Price (private)
メンバ関数:
その①.
関数名:
コンストラクタ
引数:
char *name:
m_Nameの初期値
int price:
m_Priceの初期値
その②.
関数仕様:
m_Nameのゲッター
その③.
関数仕様:
m_Priceのゲッター
②.処理実装
2-1.main関数内でItemをインスタンス化する
※引数の値は任意で設定
2-2.2-1のメンバ変数m_Name、m_Priceの値をゲッターを使用して取得し、
それを出力する
※出力形式は任意で設定