プログラミング演習Ⅲ(2023)

【課題2-01】オブジェクト初期化子の使用

プロジェクトタイプC#コンソールアプリ※
プロジェクト名Prac_2_01
ソリューション名PET2
ターゲットフレームワーク.NET 6.0 (長期的なサポート)
最上位レベルのステートメントを使用しない使用しない(チェックオン)

※ 「コンソールアプリ(.NET Framework)」ではないので注意せよ!

あらかじめ定義されているクラスMoneyItemの変数を宣言し,オブジェクト初期化子を用いて初期化せよ. また各変数の内容をコンソールに表示せよ.

なお,MoneyItemクラスは「家計簿の一項目」に関する情報を表すクラスある.このクラスの定義を変更してはならない.

注意
  • この設問は「クラスを定義せよ」という設問ではない ことに注意せよ.
    • この設問はあらかじめ定義されているクラスの使用方法に関する設問である.
  • MoneyItemクラスの詳細についてはMoneyItemクラスの仕様を読むこと.
  • あらかじめ書かれているMoneyItemクラスの定義を変更してはならない.
  • この設問ではコンソール(黒画面)への表示処理を作る必要はない.

Main()メソッド内でMoneyItemクラスの変数を3つ宣言せよ(空欄1,2,3). 変数名と各プロパティの初期値については_のようにすること. この際,各プロパティの初期値をセットするのに 必ずオブジェクト初期化子を使用すること

各変数の初期値
↓変数名/→プロパティ名DateCategoryTitleMoney
xyzzy2023年8月10日
(C#での記述→new DateTime(2023, 8, 10))
食費コンビニ-1200
grault2023年8月25日
(C#での記述→new DateTime(2023, 8, 25))
収入給与200000
corge2023年9月1日
(C#での記述→new DateTime(2023, 9, 1))
通信費携帯電話-5432

プログラムの概形は_のようにすること(必ず以下をコピーしProgram.cs全体を上書きすること).

テンプレートコード
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
namespace Prac_2_01
{
    // 「家計簿の一項目」クラス(このクラスの定義には手を加えてはならない)
    class MoneyItem
    {    
        public DateTime Date     { get; set; } // 日付
        public string   Category { get; set; } // 費目
        public string   Title    { get; set; } // 詳細
        public int      Money    { get; set; } // 金額
        
    }// end of class MoneyItem

    internal class Program
    {
        static void Main(string[] args)
        {
        
            // 長いので省略

        }// end of Main()
    }// end of class Program
}// end of namespace

以下のボタンをクリックしてコードをコピーし,Main()メソッドを上書きすること.

正しく実装できた場合,実行結果は_のようになる.

日付 .... 2023-08-10
費目 .... 食費
詳細 .... コンビニ
金額 ....    -1200円

日付 .... 2023-08-25
費目 .... 収入
詳細 .... 給与
金額 ....   200000円

日付 .... 2023-09-01
費目 .... 通信費
詳細 .... 携帯電話
金額 ....    -5432円
実行結果

MoneyItemクラスの仕様(参考)

表示するにはここをクリック
名前
MoneyItem
種別
クラス
フィールド・プロパティ・インデクサの仕様
メンバ名種別アクセス修飾子備考
Dateプロパティ(※)DateTimepublicその出納項目の日付.読み書き可能.
Categoryプロパティ(※)stringpublicその出納項目の費目.読み書き可能.
Titleプロパティ(※)stringpublicその出納項目の詳細(タイトル).読み書き可能.
Moneyプロパティ(※)intpublicその出納項目の金額.読み書き可能.
  • ※: 省略記法(自動実装プロパティ)を用いてもよい.省略記法を用いない場合,対応するフィールドは自分で宣言する(名前は自由).
メソッドの仕様

MoneyItemクラスは明示的に宣言されたインスタンスメソッドを持たない.

コンストラクタの仕様

MoneyItemクラスはコンストラクタを1個持つ.

  • コンストラクタ1
    • アクセス修飾子:public
    • 引数
      • なし(デフォルトコンストラクタ)
表示するにはここをクリック : 閉じる

ヒント

なし

Last updated on 2023-11-28
Published on 2023-11-28

Powered by Hugo. Theme by TechDoc. Designed by Thingsym.