基本情報技術者試験の過去問と解説
[TOP] [午前分野別] [午後分野別] [キーワード索引] [令和元年秋午前] [令和元年秋午後]

平成19年 秋期 基本情報技術者 午後 問05
問05   プログラム設計に関する記述

プログラム設計に関する次の記述を読んで,設問1〜3に答えよ。

 Z社は Web を使った通信販売システムによって,会員に商品を販売している。会員は, Z社の提供する通信販売システムを利用して商品を購入する。今回,Z社では, 会員ごとの購入実績を用いて,購入の可能性が高いと判定された商品を表示する関連商品表示プログラムを 開発した。

〔通信販売システムの概要〕
(1) 通信販売システムはZ社の会員だけが利用でき,会員は一意の会員 ID をもつ。

(2) 通信販売対象の商品は商品表に登録されている。商品表のレコード様式を図1に示す。

 商品表
 商品コード    商品名   商品カテゴリ   登録日時    商品価格  

  注 下線はキー項目を表す。
     図1 商品表のレコード様式

(3) 会員は次の手順で,商品の購入操作を行う。

 @ 通信販売システムに会員 ID とパスワードを入力し,ログインする。
 A 購入を希望する商品を検索する。
 B 購入する商品を指定し,購入数量を入力する。商品価格と購入数量の乗算が行われ, 購入金額に加えられる。購入する商品がほかにもある場合は,Aに戻る。
 C 購入金額を確認し,支払方法を入力する。このときの日時が購入日時として記録される。
 D ログアウトする。

(4) 会員が支払方法を入力したとき,商品の購入が成立し,その際に一意な購入番号を 割り当てる。購入番号をキーとして,購入日時,会員 ID 及び購入金額を,購入表に登録する。 また,会員が購入した商品は,商品ごとに購入番号と商品コードをキー項目として購入明細表に登録する。

 なお,1回のログインで同一商品を複数回に分けて指定したときには,その商品の 購入数量を合計し,1件のレコードとして購入明細表に登録する。購入表と購入明細表の レコード様式を図2に示す。

購入表
 購入番号   購入日時    会員 ID    購入金額
    購入明細表
 購入番号   商品コード    購入数量  

  注 下線はキー項目を表す。

     図2 購入表と購入明細表のレコード様式

〔関連商品表示プログラムの概要〕

(1) 新規登録商品の表示機能
 会員がログインしたとき,その会員 ID で最近購入した商品と同一商品カテゴリの 商品の情報を,商品表から最大 10 件表示する機能である。ただし,表示する商品の情報は, その会員の最も新しい購入日時以降に商品表に登録されたものだけとする。

@ 最新購入実績の抽出
 ログイン時に入力された会員 ID を用いて,購入表と購入明細表からその会員の最も 新しい購入の実績をすべて取り出す。

A 商品カテゴリの抽出
 @で取り出した購入の実績のレコードと商品表のレコードを,商品コードを キーとして突き合わせ,一致したときに商品表から商品カテゴリを取り出す。

B 登録商品の抽出
 Aで取り出した商品カテゴリのすべてと,商品表の商品カテゴリを突き合わせ, 等しい商品カテゴリをもつ商品表のレコードをすべて取り出す。

C 新規登録商品の表示
 Bの結果を基に,その会員の最も新しい購入日時以降に商品表に登録された 商品のうち,登録日時が新しいものから最大 10 件の情報を表示する。

(2) 検索した商品に関連する商品の表示機能
 会員がある商品を検索したとき,その商品を既に購入した他会員が同時に購入した商品の情報を, 最大 10 件表示する機能である。ただし,表示する商品の情報はその会員が まだ購入していない商品だけとする。

@ 購入番号の抽出
 検索した商品の商品コードを用いて,購入明細表からその商品コードをもつすべての レコードの購入番号を取り出す。その購入番号とログイン時に入力された会員 ID を用いて, 購入表を検索し,他会員の購入番号だけを取り出す。

A 同時購入商品の抽出
 @で取り出した他会員の購入番号ごとに購入明細表を検索し,その購入番号を もつレコードをすべて取り出す。

B 検索した商品の削除
 Aで取り出したレコードの商品コードと,会員が検索した商品の商品コードを 突き合わせ,検索した商品の商品コードをもつレコードをすべて取り除く。

C関連商品の抽出
 Bで残ったレコードの商品コードのすべてと商品表のレコードを,商品コードを キーとして突き合わせ,一致したレコードを商品表から取り出す。

D 購入済商品の削除
 Cの結果を基に,その会員が既に購入した商品の商品コードをもつレコードをすべて取り除く。

E 関連商品の表示
 Dの結果を基に,登録日時が新しいものから最大 10 件の商品の情報を取り出し表示する。


図3 新規登録商品の表示機能

図4 検索した商品に関連する商品の表示機能

設問1 図3中の中間表 A 及び中間表 B で保持する項目のうち,“商品カテゴリの抽出”, "登録商品の抽出"で必要とする項目の組合せとして正しい答えを,解答群の中から選べ。

解答群

   中間表 A   中間表 B  
 ア   会員 ID   商品カテゴリ  
 イ   会員 ID   商品名  
 ウ   商品コード   商品価格  
 エ   商品コード   商品カテゴリ  
 オ   商品コード   商品名  
解答 ←クリックすると正解が表示されます

基本情報技術者試験


設問2 図3中の"最新購入実績の抽出"に関する次の説明中の に入れる正しい答えを,解答群の中から選べ。

 ログイン時に入力された会員 ID を用いて,購入表からその会員の を1件取り出す。 取り出したレコードの購入番号をもつレコードを購入明細表からすべて取り出す。 取り出した結果を中間表 A のレコード様式に編集し,中間表 A に出力する。 購入表に該当するレコードが存在しない場合は,何も出力しない。

解答群

ア 最も新しい購入日時をもつレコード
イ 最も多い購入数量をもつレコード
ウ 最も大きい購入金額をもつレコード
エ 最も小さい購入金額をもつレコード
オ 最も古い購入日時をもつレコード
解答 a ←クリックすると正解が表示されます

基本情報技術者試験


設問3 図4中の"購入済商品の削除"に関する次の説明中の に入れる正しい答えを, 解答群の中から選べ。

 中間表 G から読み込んだレコードの商品コードを用いて, を検索し, 等しい商品コードをもつ をすべて取り出す。 ごとに を検索し,ログインのときに入力した会員 ID を もつレコードが一つでもあれば,商品は既に購入済みと判定し,取り除く。

b,d に関する解答群

ア 購入表       イ 購入明細表       ウ 商品表

c に関する解答群

ア 会員 ID        イ 購入番号       ウ 商品コード
解答 b ←クリックすると正解が表示されます

解答 c ←クリックすると正解が表示されます

解答 d ←クリックすると正解が表示されます


[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]