平成8年度 春期 第二種 午後 問16 [更新日]1996.06.04 問16 プログラム設計に関する次の記述を読んで,設問1〜3に答えよ。 N社では,製品在庫管理のオンラインシステムを新たに作成することになり,C君 は,このうちの出荷照会回答モジュールの作成を担当することになった。 このシステムの必要機能,構造及び入出力は,次のとおりである。 (1) 各モジュール及び各ファイルとの入出力関係の概念図は,図1のとおりである。 (2) 在庫ファイル及び入庫予定ファイルは,1製品コードに対し1レコード存在する。 各ファイルのレコード様式は,図2のとおりである。 (3) モジュール間インタフェースは,表1のとおりである。 (4) 在庫ファイルを読み,希望数以上の未引当て在庫数(在庫数−引当て済み在庫数) があれば,ステータスを“S1”とし,メッセージA,Bを空白とする。 (5) 在庫ファイルの未引当て在庫数が希望数より少ない場合,入庫予定ファイルを読 み,次の処理を行う。 �� 1. 出荷希望日当日までに在庫不足数(希望数−未引当て在庫数)以上の未引当て 入庫予定数(入庫予定数−引当て済み入庫予定数)がある場合,ステータスを “S1”とし,メッセージAには,入庫予定から引き当てる数(ここでは在庫不 足数)を転記し,メッセージBには,入庫予定日を転記する。 �� 2. 在庫不足数(希望数−未引当て在庫数)以上の未引当て入庫予定数はあるが, 入庫予定日が出荷希望日より後の場合,ステータスを“S2”とし,メッセージ Aには,入庫予定から引き当てる数(ここでは在庫不足数)を転記し,メッセー ジBには,入庫予定日を転記する。 �� 3. 在庫不足数(希望数−未引当て在庫数)以上の未引当て入庫予定数がない場合, ステータスを“S3”とし,メッセージAには,入庫予定から引き当てることが できる数(ここでは未引当て入庫予定数)を転記し,メッセージBには,入庫予 定日を転記する。 ┌────┬────┬──────┐ ┌────┬────┬────┬───────┐ │ 製品 │ │ 引当て済み │ │ 製品 │ 入庫 │ 入庫 │ 引当て済み │ │ │ 在庫数 │ │ │ │ │ │ │ │ コード │ │ 在庫数 │ │ コード │ 予定日 │ 予定数 │ 入庫予定数 │ └────┴────┴──────┘ └────┴────┴────┴───────┘ 在庫ファイルのレコード様式 入庫予定ファイルのレコード様式 図2 レコード様式 表1 モジュール間インタフェース ┌─────┬───────────────┬──────────────────┐ │連結線番号│ 上位モジュールからの入力 │ 上位モジュールへの出力 │ ├─────┼───────────────┼──────────────────┤ │ 1 │製品コード,希望数,出荷希望日│ステータス,メッセージA,メッセージB│ ├─────┼───────────────┼──────────────────┤ │ 2 │製品コード │未引当て在庫数 │ ├─────┼───────────────┼──────────────────┤ │ 3 │製品コード │[ ] ,未引当て入庫予定数 │ └─────┴───────────────┴──────────────────┘ 注 連結線番号は,図1の中の数字に対応している。 設問1 表1の中の [ ] に入れる正しい答えを,解答群の中から選ベ。 解答群 答エ ア 希望数 イ 出荷希望日 ウ ステータス エ 入庫予定日 オ メッセージA カ メッセージB 設問2 C君は,出荷照会回答モジュールの処理と条件との関連が複雑な部分に関し, 表2の決定表(デシジョンテーブル)を作成することにした。表2の中の [ ] に入れる正しい答えを,解答群の中から選ベ。 表2 C君の作成した決定表 ┌─────────────────────┬─┬─┬──────┬─┐ │在庫不足数 ≦ 0 │Y│N│ N │N│ ├─────────────────────┼─┼─┼──────┼─┤ │未引当て入庫予定数 ≧ 在庫不足数 │−│Y│ │N│ ├─────────────────────┼─┼─┤ ├─┤ │出荷希望日 < 入庫予定日 │−│N│ │−│ ├─────────────────────┼─┼─┤ ├─┤ │ステータスを"S1"にする │X│X│ │ │ ├─────────────────────┼─┼─┤ ├─┤ │ステータスを"S2"にする │ │ │ │ │ ├─────────────────────┼─┼─┤ [ b ]├─┤ │ステータスを"S3"にする │ │ │ │X│ ├─────────────────────┼─┼─┤ ├─┤ │メッセージA、Bに空白を転記する │X│ │ │ │ ├─────────────────────┼─┼─┤ ├─┤ │メッセージAに在庫不足数を転記する │ │X│ │ │ ├─────────────────────┼─┼─┤ ├─┤ │メッセージAに未引当て入庫不足数を転記する│ │ │ │X│ ├─────────────────────┼─┼─┼──────┼─┤ │ [ a ] │ │X│ X │X│ └─────────────────────┴─┴─┴──────┴─┘ 注 Y(Yes)は,対応する条件記述欄の条件が真であることを,N(No) は偽であることを,−(ハイフン)はその条件が真偽どちらでも関係の ないことを表す。 X(eXecute)は,条件がすべて満たされたとき,行動欄の対応する 処理を実行することを,空白は実行しないことを表す。 aに関する解答群 a 答エ ア ステータスを空白にする イ メッセージAに出荷希望日を転記する ウ メッセージAに未引当て在庫数を転記する エ メッセージBに入庫予定日を転記する オ メッセージBに未引当て在庫数を転記する bに関する解答群 b 答ケ 設問3 C君は,必要な機能の記述と表2をもとに,図3の出荷照会回答モジュール ┌────┐ の流れ図を作成した。図3の中の│ │に入れる正しい答えを,解答群 の中から選ベ。 └────┘ c,dに関する解答群 c 答カd 答イ ア 希望数:在庫不足数 イ 出荷希望日:入庫予定日 ウ 未引当て在庫数:希望数 エ 未引当て在庫数:在庫不足数 オ 未引当て入庫予定数:希望数 カ 未引当て入庫予定数:在庫不足数 eに関する解答群 e 答ア ア “S1”→ステータス イ “S2”→ステータス ウ “S3”→ステータス エ 在庫不足数→メッセージA オ 入庫予定日→メッセージB カ 未引当て入庫予定数→メッセージB