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

【課題5-03】ランチメニュー ver 1.0

プロジェクトタイプC# WPFアプリケーション
プロジェクト名Prac_5_03
ソリューション名PET5
ターゲットフレームワーク.NET 6.0 (長期的なサポート)

※ 「WPFアプリ(.NET Framework)」ではないので注意せよ!

_に示すような,ランチメニューの選択とその小計を計算するアプリを作成せよ.

画面イメージ
注意
  • GUI部品の名前やラベルの文言は必ず守ること(そうしないと採点ができないため).

このGUIアプリは_に示す部品を備える.

画面項目表
名前種別機能初期値/文言備考
button1ボタン「会計」ボタン会計メッセージボックス表示ボタン.
クリックしたとき「メニュー」で選ばれている商品と,「サイドメニュー」で選ばれている商品の合計金額を以下のフォーマットでlabel1に表示する(「」は不要).

小計:合計金額

合計金額は選択した「メニュー」,「サイドメニュー」の合計金額である(消費税などは考慮しない).
groupBox1グループボックス部品の配置メニューラジオボタンradioButton1~4を配置するためのグループボックス.
radioButton1ラジオボタンメニューの選択チェックオン / 牛丼(300円)メニューを切り替えるためのラジオボタン - その1.button1の備考も参照せよ.
radioButton2ラジオボタンメニューの選択チェックオフ / 親子丼(350円)メニューを切り替えるためのラジオボタン - その2.button1の備考も参照せよ.
radioButton3ラジオボタンメニューの選択チェックオフ / カツ丼(400円)メニューを切り替えるためのラジオボタン - その3.button1の備考も参照せよ.
radioButton4ラジオボタンメニューの選択チェックオフ / カレー(500円)メニューを切り替えるためのラジオボタン - その4.button1の備考も参照せよ.
groupBox2グループボックス部品の配置サイドメニューラジオボタンradioButton5~8を配置するためのグループボックス.
radioButton5ラジオボタンサイドメニューの選択チェックオン / みそ汁(50円)サイドメニューを切り替えるためのラジオボタン - その1.button1の備考も参照せよ.
radioButton6ラジオボタンサイドメニューの選択チェックオフ / サラダ(100円)サイドメニューを切り替えるためのラジオボタン - その2.button1の備考も参照せよ.
radioButton7ラジオボタンサイドメニューの選択チェックオフ / おしんこ(30円)サイドメニューを切り替えるためのラジオボタン - その3.button1の備考も参照せよ.
radioButton8ラジオボタンサイドメニューの選択チェックオフ / 豚汁(120円)サイドメニューを切り替えるためのラジオボタン - その4.button1の備考も参照せよ.
label1ラベル計算結果の表示小計:---円計算結果を表示するためのラベル.button1の備考も参照せよ.

【プロパティの指定】
FontSizeプロパティに24を指定すること
(名前なし)ウィンドウ(メインウィンドウ)-プロジェクト作成時に自動作成されるメインウィンドウ.

【プロパティの指定】
・サイズは幅400×高さ300とする.

正しく実装できた場合,実行結果は_に示すような挙動となる12

実行結果

ヒント

チェック処理の判定の簡易化
  • ラジオボタンごとに「チェックされているかどうか」を調べる処理を書くのは煩雑となるので,以下のような配列を作り繰り返し文を使って どれがチェックされているか をチェックすることで簡潔に処理を記述できる.
    • メニューのための配列(RadioButton[]型,radioButton1~4を入れておく)
    • サイドメニューのための配列(RadioButton[]型,radioButton5~8を入れておく)
チェック処理の判定の簡易化 : 閉じる
.Tagプロパティ
  • WPFのほとんどのGUI部品には.Tagプロパティが存在する.このプロパティには任意のデータを保存することができる.
    • GUI部品の.Tagプロパティに,対応する価格を書き込んでおくと合計金額の算出処理が少し楽になる.
    • Tagプロパティの型はobject型(≒なんでも代入できる)である点に注意する必要がある.
    • XAML上でこのプロパティに値を設定すると,プロパティの値としてstring型の値が設定される.
    • したがって,コードビハインドの処理でその値を取り出すにはTagプロパティの値を string型にキャストする必要がある
.Tagプロパティ : 閉じる

  1. Apple社の都合により,iPhone,iPadなどのデバイスでは動画の再生はできません(Apple社はスマートフォン/タブレット製品で,意図的?にVPxやAV1コーデックのサポートを遅らせているため.参考1参考2). ↩︎

  2. Microsoft Edge で動画を閲覧するためには,AV1 Extensionをインストールする必要があります. ↩︎

Last updated on 2023-11-09
Published on 2023-11-09

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