【課題6-03】連想配列の練習 - その2
プロジェクトタイプ | C#コンソールアプリ※ |
---|
プロジェクト名 | Prac_6_03 |
---|
ソリューション名 | PET6 |
---|
ターゲットフレームワーク | .NET 6.0 (長期的なサポート) |
---|
最上位レベルのステートメントを使用しない | 使用しない(チェックオン) |
---|
日付に対して文字列を対応付ける連想配列を作成し,後述するエントリーを追加せよ.
注意
- この設問ではコンソール(黒画面)への表示処理を作る必要はない.
_にはholyDays
という名前の,連想配列型の変数が宣言されている.
この連想配列は日付(DateTime
型)のデータに対して
その日付の祝日の名前を文字列(string
型)のデータを対応付けるものである.
この連想配列holyDays
に対して_に示すデータを登録せよ.
連想配列の内容キー | 値 |
---|
2023年11月 3日 | "文化の日" |
2023年 4月 29日 | "昭和の日" |
2023年 5月 5日 | "こどもの日" |
2023年11月23日 | "勤労感謝の日" |
2023年 5月 3日 | "憲法記念日" |
プログラムの概形は_のようにすること(必ずこのコードをコピー&ペーストして用いること).
テンプレートコード 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
| namespace Prac_6_03
{
class Program
{
static void Main(string[] args)
{
// 連想配列の宣言
Dictionary</*** 空欄1 ***/, /*** 空欄2 ***/> holyDays = /*** 空欄3 ***/;
/************************************************************/
/* */
/* 空欄4 */
/* */
/* 設問に指定されたエントリーを */
/* 連想配列の変数 holyDays に登録する. */
/* (複数行にわたる処理でよい) */
/* */
/************************************************************/
// 表示処理(変更してはならない)
foreach (var hd in holyDays)
{
Console.WriteLine($"{hd.Key:yyyy年MM月dd日} .... {hd.Value}");
}//foreach
#region チェック (ここは決して変更しないこと)
var aType = holyDays.GetType();
var gargs = aType.GetGenericArguments();
if (!(aType.IsGenericType && gargs != null && gargs.Length == 2
&& gargs[0] == typeof(DateTime) && gargs[1] == typeof(string)))
throw new Exception($"変数 {nameof(holyDays)} の型が設問に指定されているものと異なる.");
if (!(holyDays.Count == 5))
throw new Exception($"変数 {nameof(holyDays)} に登録されているエントリーの数が設問に" +
$"指定されているものと異なる(期待: 5, 検出: {holyDays.Count})");
if (!holyDays.Any(e => e.Key.Ticks == 638345664000000000 && e.Value == "文化の日"))
throw new Exception($"変数 holyDaysに「文化の日」に対応するエントリーが" +
$"存在しないか,値が設問に指定されているものと異なる.");
if (!holyDays.Any(e => e.Key.Ticks == 638183232000000000 && e.Value == "昭和の日"))
throw new Exception($"変数 holyDaysに「昭和の日」に対応するエントリーが" +
$"存在しないか,値が設問に指定されているものと異なる.");
if (!holyDays.Any(e => e.Key.Ticks == 638188416000000000 && e.Value == "こどもの日"))
throw new Exception($"変数 holyDaysに「こどもの日」に対応するエントリーが" +
$"存在しないか,値が設問に指定されているものと異なる.");
if (!holyDays.Any(e => e.Key.Ticks == 638362944000000000 && e.Value == "勤労感謝の日"))
throw new Exception($"変数 holyDaysに「勤労感謝の日」に対応するエントリーが" +
$"存在しないか,値が設問に指定されているものと異なる.");
if (!holyDays.Any(e => e.Key.Ticks == 638186688000000000 && e.Value == "憲法記念日"))
throw new Exception($"変数 holyDaysに「憲法記念日」に対応するエントリーが" +
$"存在しないか,値が設問に指定されているものと異なる.");
#endregion
}// end of Main()
}// end of class Program
}// end of namespace
|
正しく実装できた場合,実行結果は_のようになる.
2023年11月03日 .... 文化の日
2023年04月29日 .... 昭和の日
2023年05月05日 .... こどもの日
2023年11月23日 .... 勤労感謝の日
2023年05月03日 .... 憲法記念日
実行結果ヒント
なし
Last updated on 2023-11-14
Published on 2023-11-14