#------------------------------------------- #GUIのプログラミング(健康診断申込システム) #------------------------------------------- #変数宣言 選択日付とは変数 性別とは変数 年齢とは変数 検査とは変数 画像URL=「https://sel.jpn.org/files/health_check.jpg」 画像URLの画像作成。 改行作成 「健康診断申込システム」のラベル作成。 改行作成 「※選択項目を選択後、確定ボタンを押してください」のラベル作成。 改行作成 改行作成 「−−−−−−−− 選択 −−−−−−−−」 のラベル作成。 # 検査日の選択 改行作成 「検査日の選択:」のラベル作成。 日付選択ボックス作成し、日付セレクトに代入。 確定ボタン=「日付確定」のボタン作成。 確定ボタンをクリックした時には   日付セレクトのテキスト取得して選択日付に代入。 ここまで。 # 性別の選択 改行作成 「性別選択:  」のラベル作成 ["選択してください","男性","女性"]のセレクトボックス作成し、性別セレクトに代入。 # 初期値の設定 性別セレクトに「選択してください」をテキスト設定。 性別確定ボタン=「性別確定」のボタン作成。 性別確定ボタンをクリックした時には   性別セレクトのテキスト取得して性別に代入。 ここまで。 # 年齢の選択 改行作成 「年齢選択:  」のラベル作成 ["選択してください","20〜34歳","35歳〜44歳","45歳以上"]のセレクトボックス作成し、年齢セレクトに代入。 #初期値の設定 年齢セレクトに「選択してください」をテキスト設定。 年齢確定ボタン=「年齢確定」のボタン作成。 年齢確定ボタンをクリックした時には   年齢セレクトのテキスト取得して年齢に代入。 ここまで。 # 任意追加項目の選択 改行作成 「任意追加項目:」のラベル作成 ["なし","眼底検診","メタボ検診","婦人科検診","脳検診"]のセレクトボックス作成し、検査セレクトに代入。 #初期値の設定 検査セレクトに「なし」をテキスト設定。 検査項目確定ボタン=「検査項目確定」のボタン作成。 検査項目確定ボタンをクリックした時には   検査セレクトのテキスト取得して検査に代入。 ここまで。 改行作成 「−−−−−−−− 選択 −−−−−−−−」 のラベル作成。 改行作成 改行作成 申込ボタン=「申込」のボタン作成。 申込ボタンをクリックした時には   # 選択されているかどうかのチェック 申込結果=選択確定確認(選択日付,性別,年齢,検査) もし、申込結果=0 ならば // 何もしない     // 改行作成     // 「選択されていない項目があります」のラベル作成 違えば     # 日付と曜日のチェック     申込結果=曜日判定処理(選択日付)     もし、申込結果=0 ならば       // 何もしない       // 改行作成       // 「日付あるいは曜日の選択が間違っています」のラベル作成     違えば           # 選択項目の関係のチェック       申込結果=選択項目判定処理(性別,年齢,検査)    もし、申込結果=0 ならば 「選択項目の組み合わせが間違っています。現在の選択項目は次のとおりです。 ・性別:{性別} ・年齢:{年齢} ・任意追加項目:{検査} 選択項目の制約は次のとおりです: ・メタボ検診と婦人科検診は、年齢が35歳以上の人のみ選択できます。 ・脳検診は、年齢が45歳以上の人のみ選択できます。 ・婦人科検診は女性のみ選択できます。」と言う       違えば、もし、申込結果=1 ならば 「申込を受け付けました! −−−−−−−−−−−− ・検査日:{選択日付} ・性別:{性別} ・年齢:{年齢} ・任意追加項目:{検査} −−−−−−−−−−−−」と言う       ここまで     ここまで   ここまで ここまで。 # 関数:選択確定確認 # 引数:arg1(日付)、arg2(性別)、arg3(年齢)、arg4(検査) # 内容:検査日、性別、年齢が選択されているかどうか確認する # 戻り値:エラーの時は0を返し、正常の場合は1を返す ●選択確定確認(arg1,arg2,arg3,arg4)   もし、arg1=NULL または arg2=NULL または arg3=NULL または arg4=NULLならば     もし、arg1=NULL ならば 「日付が選択されていません」と言う     もし、arg2=NULL ならば 「性別が選択されていません」と言う     もし、arg3=NULL ならば 「年齢が選択されていません」と言う     もし、arg4=NULL ならば 「任意追加項目が選択されていません」と言う     判定結果 = 0   違えば、もし arg2=「選択してください」 または arg3=「選択してください」 ならば     もし、arg2=「選択してください」 ならば 「性別が選択されていません」と言う     もし、arg3=「選択してください」 ならば 「年生が選択されていません」と言う     判定結果 = 0   違えば     判定結果 = 1   ここまで   判定結果を戻る。 ここまで   # 関数:曜日判定処理 # 引数:arg1(選択日付) # 内容:今日から7日間以下、31日以上かどうかチェックする。さらに、今日 # が日曜日かどうかチェックする。 # 戻り値:エラーの時は0を返し、正常の場合は1を返す ●曜日判定処理(arg1)   #選択された項目の表示 //  「選択日付:{arg1}」と言う   #エラーチェック   #(1)日付のチェック   今日を今日日付に代入 #今日日付=今日 と書いても同じ   差=今日日付と選択日付の日数差 //  「日数差:{差}」と言う   もし、差 <= 7 または 差 > 30 ならば     「今日から7日以降で30日以内の日付を選択してください」と言う     判定結果=0   違えば     #(2)曜日のチェック     選択日付の曜日を選択曜日に代入 #選択曜日=選択日付の曜日     もし、選択曜日=「日」 ならば       「日曜日は選択できません」と言う       判定結果=0     違えば       判定結果=1     ここまで   ここまで   判定結果を戻る ここまで。 # 関数:選択項目判定処理 # 引数:arg1(性別)、arg2(年齢)、arg3(検査) # 内容:仕様に関する制約を満たしているかどうか確認する # -メタボ検診と婦人科検診は、年齢が35歳以上の人のみ選択できます。 # -脳検診は、年齢が45歳以上の人のみ選択できます。 # -婦人科検診は女性のみ選択できます。 # 戻り値:エラーの時は0を返し、正常の場合は1を返す ●選択項目判定処理(arg1,arg2,arg3) // 「性別:{arg1}、年齢:{arg2}、検査項目:{arg3}」と言う   もし、arg3=「メタボ検診」 かつ (arg2=「35歳〜44歳」 または arg2=「45歳以上」) ならば   判定結果=1   違えば、もし、arg3=「婦人科検診」 かつ arg1=「女性」 かつ (arg2=「35歳〜44歳」 または arg2=「45歳以上」) ならば   判定結果=1   違えば、もし、arg3=「脳検診」 かつ arg2=「45歳以上」 ならば      判定結果=1   違えば、もし、arg3=「なし」 または arg3=「眼底検診」 ならば     判定結果=1   違えば     判定結果=0   ここまで   判定結果を戻る ここまで。