【課題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~)