【課題1-08】メソッドの定義
プロジェクトタイプ | C#コンソールアプリ※ |
---|---|
プロジェクト名 | Prac_1_08 |
ソリューション名 | PET1 |
ターゲットフレームワーク | .NET 6.0 (長期的なサポート) |
※ 「コンソールアプリ(.NET Framework)」ではないので注意せよ!
【課題1-06】で定義したクラスRentalCycle
型に,返却時刻からレンタル料金を計算する
インスタンスメソッド .CalcFeeAt()
を定義せよ.
このメソッドの詳細についてはRentalCycle.CalcFeeAt()メソッドの仕様を参照すること.
注意
- 必ずRentalCycle.CalcFeeAt()メソッドの仕様を読むこと!
- この設問を解くには先に以下の設問を完了する必要がある.
- この設問ではコンソール(黒画面)への表示処理を作る必要はない.
プログラムの概形は_のようにすること(必ず以下をコピーしProgram.cs
全体を上書きすること).
|
|
以下のボタンをクリックしてコードをコピーし,Main()
メソッドを上書きすること.
正しく実装できた場合,実行結果は_のようになる.
クラスRentalCycleのチェック開始... ( 1/13) クラスの定義... OK ( 2/13) プロパティ・インデクサの数... OK ( 3/13) プロパティIdの定義... OK ( 4/13) プロパティCostPerMinuteの定義... OK ( 5/13) プロパティBorrowedの定義... OK ( 6/13) メソッドCalcFeeAt(DateTime)の定義... OK ( 7/13) コンストラクタの数... OK ( 8/13) コンストラクタ(引数: string型, int型, DateTime型)の定義... OK ( 9/13) コンストラクタ(引数: string型, int型, DateTime型)の動作... OK (10/13) CalcFeeAt(DateTime)の動作1... OK (11/13) CalcFeeAt(DateTime)の動作2... OK (12/13) CalcFeeAt(DateTime)の動作3... OK (13/13) CalcFeeAt(DateTime)の動作4... OK Congratulations! クラスの定義に関する全てのテストをパスしました.
RentalCycle.CalcFeeAt()メソッドの仕様
表示するにはここをクリック
- .
CalcFeeAt
()メソッド- アクセス修飾子:
public
- 引数
- backTime
- 型:
DateTime
- 返却時刻を表すDateTime型の値
- 型:
- backTime
- 戻り値
- 型:
int
- この
RentalCycle
クラスのインスタンスにおいて,貸出時刻と返却時刻から計算されるレンタル料金.詳細は備考を参照せよ.
- 型:
- 備考
.CalcFeeAt()
メソッドは,貸出時刻(Borrowed
プロパティ)と返却時刻(引数backTime
)から計算されるレンタル料金を計算し,計算結果を戻り値として返す.- レンタル料金は「
使用した時間(分)
×1分あたりの料金
」で計算する.使用した時間(分)
は分未満の時間,つまり 秒を計算に入れない ことに注意せよ.- 例えば貸し出した時刻が10時48分0秒で返却した時刻が11時13分33秒であれば,使用した時間は25分33秒(=25.55分)だが,利用時間として計上するのは25分となる.
- (つまり期間の計算にTimeSpan型を使用するのであれば,.TotalMinutesプロパティの値の 端数を切り捨てて 使用する必要がある,ということである).
- 以下の場合は異常ケースであるため,エラー値として
-1
を返す.- 返却時刻(引数
backTime
)が貸出時刻(Borrowed
プロパティ)よりも前の日時である.
- 返却時刻(引数
- このメソッドは
RentalCycle
クラスのpublicなインスタンスメソッドとして定義すること.
- アクセス修飾子:
表示するにはここをクリック : 閉じる
ヒント
- 実数(
double
型などの値)はint
型にキャストすることで端数を切り捨てることができる. - キャストについては以下を参照せよ.
- プログラミング演習Ⅰ(2022) 第03回講義資料
- 教科書「なるほどなっとくC#入門」,「3-5.数値の型変換」(P.93~)