- 締切済み
ランダム表示~レベル2~
問題番号と問題文章が書かれたファイルから、ランダムに問題文章を取り出してきて表示させる。それから、どの問題文章を取り出したかわかるように、ランダムに表示された問題文章の問題番号も取得し、保存しておく。いつでもその問題番号は閲覧可能。あくまで、表示させるのは問題文章のみ。 (問題番号と問題文章が書かれたファイルの内容については自由) 以前、ランダム表示というタイトル名で質問させてもらいました。今回、ちょっとややこしいことになっています。苦戦していますので、どうか回答お願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- ngsvx
- ベストアンサー率49% (157/315)
次のような構造をとったらいいと思います。 A.問題を管理するクラス このクラスは、問題番号を渡すと問題文が取得できます。 問題番号を指定されたときに、問題文をその都度 ファイルから読み込むのか、予め全問題を読み込んでおき、 渡すだけにするのかは実装に依存します。 B.問題セットクラス 問題番号と回答で1レコードを形成できるように クラスを定義します。 回答は「未回答」という状態も用意した方が いいでしょう。 C.問題セット郡クラス 複数の問題セットを1つに管理するためのコンテナクラス。 ArrayListなどでも間に合うかもしれません。 D.問題セット郡生成クラス 指定した数の問題セットで構成する問題セット郡を 生成する。 このとき、全ての問題セットの回答は「未回答」 状態。 E.問題セット郡とファイルを変換するクラス 問題セット郡をファイルから読んだり、ファイルに 書き込んだりします。 問題セット郡をファイルにしたときのファイルレイアウトは、 このクラスだけが知っています。 操作方法 1.Dのクラスで問題セット郡を生成 2.問題セット郡と問題管理クラスから問題文を表示 3.回答が入力されたら、対象とたる問題セットの回答へセット 4.回答が終わったら、Eのクラスで問題セット郡を保存。 このヒントで作れないようなら、学習し直すか、 もっと実力を付けてから挑戦するべきだと思います。 少なくても、このようなサイトで全てを教えることは不可能です。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
>問題番号も取得し、保存しておく。いつでもその問題番号は閲覧可能。あくまで、表示させるのは問題文章のみ。 ・問題番号を保存しておくのは、メモリでしょうか、それともファイルなんでしょうか? ファイルの場合、2回目以降の起動で、追加されますか、上書ですか? 保存のタイミングは逐次ですか、プログラム終了時ですか? ファイルに表示済み番号が保存されていることと、次の問題の表示とは関係がありますか? ・問題番号の閲覧可能とは、どういうインターフェースなんでしょう。 表示が問題文章のみと言うのと矛盾すると思うのですが。 問題を表示するプログラムにとって参照可能である(同じ問題を表示しないためにとか)というような意味ですか? 《このような形式(丸投げ)の質問は多分削除されてしまいます》
- edomin
- ベストアンサー率32% (327/1003)
どこで苦戦しているのかを書きましょう。 また、「問題番号は閲覧可能」と「表示させるのは問題文章のみ」は両立しません。番号はどうやって閲覧させるつもりですか?
補足
申し訳ないです。苦戦はほぼ全体的です。 ランダム表示については少しわかったのですが、ファイルからとなるとよくわからないです…。 説明が下手ですみません。問題番号は新しいファイルに保存しておきたいんです。そうすれば、ファイルを見ればどの問題が表示されたかわかりますので。 プログラムの実行結果で問題文章のみ表示させたいんです。
補足
説明不足過ぎましたね…言われてみて、ほんと気づきました…全然わかってない奴で申し訳ないです 問題番号はファイルに保存しようと考えています。 保存は逐次です。 わかりやすいように、このシステムの用例を書きます。問題を出す側が先生、問題を解く側が生徒。 先生は事前に問題番号と問題文章をテキストファイルに用意しておきます。 生徒がプログラムを実行すると、問題文章がランダムに表示され、問題に取り掛かれます。 違う生徒も同様にランダムに問題を受け取り問題を解きます。 この時、問題番号まで表示されると、「3番の答えはナニナニ」と簡単に教えあわれるので、それを防ぐために、問題番号は表示しません。 しかし、先生側は誰にどの問題が表示されたか知る必要があるので、問題番号を別のファイルに保存されなくてはいけません。 こういうことが可能になるようにシステムを考えているんです。 ややこしいものですが、参考になるようなソースがあればありがたいです。