• 締切済み

四択のクイズを作っているのですが・・・(泣)

現在私はVB2005で四択のクイズ形式のプログラムを作成しています。 目標は「300問の問題を作成しそのなかからランダムに100問を出題し全問回答を終えたらその結果を表示する」というものを作ることです。 ですが製作するにあたって300問という量の問題を単純に配列に格納して出題・・・という流れではプログラム自体がとても不恰好でどうすればいいのかわからなくなってしまいました。 データベースを使えばいいのか?とか他に方法があるのかな?と試行錯誤の状態です。 もしいいアイデアをお持ちの方がいましたらぜひアドバイスのほうよろしくお願いします。

みんなの回答

  • mdp36
  • ベストアンサー率72% (26/36)
回答No.5

No.2です。 デザイナ設定部分がほとんどなのですが、起動・終了時に保存と読み込みを行うサンプルです。 ・まず「プロジェクト」メニューの「新しい項目の追加」でデータセット(DataSet1)を作ります。 ・DataSet1.xsdを開いて、データテーブル(DataTable1)を追加します。 ・DataTable1にお好きな列を追加します。この例だと問題文、選択肢1~4、正解が最低限でしょうか。 ・登録用のフォーム(Form1)にDataGridViewを貼り付けます。 ・DataGridViewを選択したときに右上にアイコンが出るはずですので、そこをクリックして「データソースの選択」からDataTable1を探して選びます。 ・すると、DataGridViewの表示が変わり、フォームの下に「DataSet1」と「DataTable1BindingSource」が追加されるはずです。 ・Form1のコードに以下のコードを貼り付けてみてください。 Public Class Form1 Private Const filePath As String = "D:\sample.xml" Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing DataTable1BindingSource.EndEdit() Dim xmlDoc As New Xml.XmlDataDocument(DataSet1) xmlDoc.Save(filePath) End Sub Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If IO.File.Exists(filePath) Then DataSet1.ReadXml(filePath) End If End Sub End Class 出題するプログラムのほうでは、DataSet1.DataTable1(n).問題文の要領で問題にアクセスできます。

ryousuke33
質問者

補足

返信が遅れ申し訳ありません。 コードを書いていただき本当にありがとうございますm(_ _)m 現在コードを参考にして出題のプログラムを作成しているのですが「300問の中から100問出題するとき同じ問題を出題しないようにする」ことと「ランダムに出題する」という段になりまた悩んでしまっています。 何度も頼って申し訳ありませんが知恵をお貸しいただけたらと思います。 よろしくお願いしますm(_ _)m

  • mako_tyo
  • ベストアンサー率37% (61/161)
回答No.4

私は、VBは書けないのでソースを出すことは出来ないのですが、、、  参考に どうぞ  http://dobon.net/vb/ テキストの読み込みからいろいろサンプルが載ってます。 これを組み合わせれば、クイズは完成すると思いますよ。 あと、問題集は、No3さんのような独自形式のテキストよりもiniなど定められた形式を使うほうが後々楽になりますよ。

ryousuke33
質問者

補足

御回答ありがとうございます。 当方なりにiniファイルについて調べたのですがこれをどうやってVBとどう結びつけて使えばいいのかイマイチ理解できませんでした。 もしアドバイスをいただけたら大助かりなのですが・・・、よろしくお願いします。

  • talosoft
  • ベストアンサー率26% (6/23)
回答No.3

リッチテキストとして問題ファイルをしたのように作ってやるのが簡単だとおもいます。 3+5,8,5,2,9 プログラムでは一つの要素に対して構造体を作りList等に格納すれば楽です。

  • mdp36
  • ベストアンサー率72% (26/36)
回答No.2

No.1さんの言うとおり外部ファイルを使うのがよいでしょう。 特に、データセットのReadXmlメソッドを使うのが手軽だと思います。 これなら登録画面と書き込み、読み込み合わせて10行以内で実現できますよ。

ryousuke33
質問者

補足

みなさん回答どうもありがとうございます。 データセットやReadxmlメソッドについて調べてみて理論はなんとなくわかったのですが、当方VBは初心者でコードを書くと段になるとどうにも太刀打ちできなくなってしまいます。 恐縮なのですが例を示していただけたらもう大助かりなのですが・・・ どうかよろしくお願いしますm(_ _)m

  • mako_tyo
  • ベストアンサー率37% (61/161)
回答No.1

問題をプログラム内に格納するのではなく、プログラム起動時などに外部から取り入れるようにすればいいと思います。 iniファイルとかに問題を書いて読み込むのが手っ取り早いかと思います。 これであれは、問題を自由に変更できましす、問題を変えるためだけにビルドする必要もなくなりますよ。

関連するQ&A

  • 4択クイズの解答について悩んでいます(涙)

    現在私はVB2005で4択のクイズ形式のプログラムを作成しています。 目標は「300問の問題を作成しそのなかからランダムに100問を出題し全問回答を終えたらその結果を表示する」というものを作ることです。 データセットに問題、解答群などを格納しています。 それをフォームで表示してラジオボタンで4択のなかから正解と思うものを1つ選びボタンをクリックして次の問題へ移行する・・・というような流れのプログラムです。 今壁にぶつかっているのが「問題一つ一つの回答をどのように保持し、どのように結果表示すればいいのか」というところなのです。 当方VBは初心者でなかなか前に進めず悩んでいます。 知恵をかしてください。どうかよろしくお願いしますm(_ _)m

  • VB2005でSQL Server新規データベース作成

    VB2005からプログラムを使って、SQL Server2005のデータベースを新規に作成する方法を探しています。よくVB2005からプログラムを介して、SQLサーバーに接続する方法は見かけるのですが、新規にデータベースを作成するサンプルにお目にかかれません。 資料を見ながら「SqlCeEngine」等を使って試行錯誤しながらやってはいるものの、「定義されていない」とかエラーになってしまって・・・ VB2005もSQL Server2005もお初なのでパニック状態です。 先ずはサンプルプログラム等あれば参考にしたいのですが何方か教えて頂けないでしょうか。宜しくお願いします。

  • クイズプログラムを作りたいのですが

    ホームページに三択クイズを載せたいのですが、問題を作り、間違えたらそこで終了という形式にしたいのですが、方法がわかりません。 また、結果(正答率)等の表示を行わず、代わりに全問正解のときのみ、指定のページに飛ぶというようなプログラムは作成可能でしょうか。 拙い文章で申し訳ありません。良い方法がありましたら教えて頂きたいです。 (大衆的なブラウザで利用できるものが良いです。言語は問いません。)

  • エクセルでクイズの表示

    簡単なクイズ表示方法を探しています。 考えた方法。 エクセルをデータベース。A列に問題。B列に回答。 例えばパワーポイントの白紙画面に問題を表示。 その画面をクリックしたり、スペースキーを押すなどすると答えを表示。 終わったら次の問題へ。 という流れです。 できればエクセルデータベースの行は、ランダムで出題できると嬉しいです。 正誤の判断をPCにやらせないので、簡単にできそうな気がするのです。 なにぶんオフィス系ソフトに弱いので教えてください。

  • クイズ作成に関して。

    HPにてクイズ問題(30問程度)を載せたいのですが、 そのクイズを作成できるサイトが見つかりません。 クイズ作成に関して、 1ランダムクイズが作成できる。 2ネット上にて更新ができる。   3携帯からも解答できる。 以上の3点をみたすサイトが全く見つかりません。 検索やリンク集を見まくったのですが、 自分の実力では、 どーしても見つけることが出来ません。 そこで是非お力をおかしいただけないでしょうか? 本当に困っております。 このままでは一歩も前に進めません。 それではよろしくお願いいたします。

  • クイズの景品について

    いつも参考にさせていただいてます。 経験者の方にアドバイスを頂けると嬉しいです。 11月に披露宴を行います。 演出(?)として、下記のような流れでクイズをする予定です。 スライドショー ↓ プロフィール紹介 ↓ スライドショーとプロフィール紹介をヒントにしたクイズ を司会者の方に出題してもらう そこで質問なのですが、 ・問題数はどの程度が妥当だと思いますか?  3択の問題を考えています。 ・全問正解の方への景品は、いくつくらい用意しましたか?  列席者は80名です。 その他、注意点などございましたらアドバイスいただけると 嬉しいです。 よろしくお願いします。

  • クイズゲームのフォームについて

    こんばんは。VB初心者です。 VB6.0を用いてのクイズゲームを作成することになりました。 フォームの内容は以下のようなものです。 ・問題文(ラベルorテキストボックス) ・ヒントの動画(MCIコントロール) ・四択選択肢(オプションボタン) ・正解不正解(ピクチャボックス) ・解説(ラベルorテキストボックス) これを20問作るのですが、フォームを20個作らずに各コントロールの中身だけを変化させていきたいのですが、どのようなプログラムになるのか検討がつきません。 そこで、大まかなプログラムの流れだけでもいいので教えて欲しいです。 また、クイズ作成において参考になるHPがあれば教えて下さい。宜しくお願いします。

  • エクセル:ランダムに配置するVBAプログラム

    大学の情報の授業でVBAに関するレポートが出題され、 さっぱり分からなくて困っています。 どなたか分かる方いらっしゃいましたら、お教えください。 問題は以下の通りです。 10行10列のセル範囲に、1から100までの整数をランダムに配置するVBAプログラムを作成せよ。 ヒント:まず1から100までの数を1次元配列に格納せよ。次に、その中身をシャッフルせよ。最後に、その配列から順に10個ずつ取り出して、セル範囲に1行ごと書き出せ。 よろしくお願いします!

  • クイズ作成に関して。

    HPにてクイズ問題(30問程度)を載せたいのですが、 そのクイズを作成できるサイトが見つかりません。 クイズ作成に関して、 1ランダムクイズが作成できる。 2ネット上にて更新ができる。  (ネットにてのCGIレンタルなど) 3携帯からも解答できる。 以上の3点をみたすサイトが全く見つかりません。 検索やリンク集を見まくったのですが、 自分の実力では、 どーしても見つけることが出来ません。 そこで是非お力をおかしいただけないでしょうか? 本当に困っております。 このままでは一歩も前に進めません。 それではよろしくお願いいたします。

    • 締切済み
    • CGI
  • クイズに関する、著作権・商標登録に関して

    商用目的で、クイズサイトを作成しようと思っているのですが、出題する クイズにおいて、著作権違反等になりえる可能性はありますでしょうか? 例えば、野球が好きで、イチローに関する問題を出題していて、仮にイチローというものが、 商標登録されていた場合に、違反になりますでしょうか? よろしくお願い致します。

専門家に質問してみよう