dポイントプレゼントキャンペーン実施中!

C言語でクイズゲームを作らなければ、いけなくなりました。
一つのファイルに問題、選択肢、解答を書き、それを読み込むと言うものです。流れは、

(1)(初めてなら、スコアファイルを新規作成)⇒(2)前回のスコアファイルを読み込む⇒(3)問題ファイルを読み込む⇒(4)解答を入力させる⇒(5)答えが正解か判定し、スコアを更新⇒(6)今回のスコアを棒グラフで表示⇒(7)今回のスコアをスコアファイルに保存⇒(8)続けるか確認。続けない場合終了。続ける場合(2)にループ。
という流れです。また、スコアランキングの表示と問題ファイルを暗号化(メモ帳を開いても読めない)もしなければいけません。
期限が迫っているのに、全然分からないので、出来ればソースを教えて頂けないでしょうか・・・。もしくは、ヒントやアドバイスをお願いします。

A 回答 (3件)

> クイズのファイルが読めこめません


kuizu.txt
これよね。

見えていないんじゃないかしら?
フルパスで指定するとか
パスに追加してみるとかしてみてはどお?
    • good
    • 1

素直にできませんとサジを投げるのも一手ですよ。



私はAccess VBAで似たようなものを作りましたが。それでも先生に聞きまくって1カ月以上かかりました。
    • good
    • 0

まず、それぞれの機能でやらなければいけないことを全て箇条書きにすること。


間違いなくそれぞれの項目は今までに習ってきたこと
もしくは教科書に載っていることのはずよ。

その上で分からないことを再度質問してくれるかしら。

この回答への補足

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int knum;
int kNO;
char **kstr;
int *ans;
int get_score(void)

 FILE *fp;
 int best;
 if((fp = fopen("score.txt","r")) == NULL)
 {
  printf("初回起動ですね。\nスコアファイルを新規作成します。\n");
  best = 0;
 }
 else
 {
 fscanf(fp,"%d%d",&best,&knum);
 printf("最高点は%d問中%d問です。\n",knum,best);
 fclose(fp);
 }
}
int read_kuizu(void)
{
 int i;
 FILE *fp;
 if((fp = fopen("kuizu.txt","r")) == NULL) return(-1);
 fscanf(fp,"%d",&kNO);
 if((kstr = (char **)calloc(kNO,sizeof(char *))) == NULL) return(-1);
 if((ans = (int *)calloc(kNO,sizeof(int))) == NULL) return(-1);
 for(i = 0; i<kNO; i++)
 {
  char temp[1024];
  size_t len;
  fscanf(fp,"%s",temp);
  fscanf(fp,"%d",&ans[i]);
  len = strlen(temp);
  if((kstr[i] = (char *)malloc(len + 1)) == NULL) return(-1);
  strcpy(kstr[i],temp);
 }
 fclose(fp);
 return(0);
}
int kuizu_game(void)
{
 int i;
 int score = 0;
 for(i = 0; i<kNO; i++)
 {
  int unans;
  printf("\nクイズ%d\n", i + 1);
  printf("%s YES(0)/NO(1)\n",kstr[i]);
  do
  {
   printf("答を選んで番号を入力して下さい。=>\n");
   scanf("%d",&unans);
  }
  while(unans!=0 && unans!=1);
  if(unans == ans[i])
  {
   score++;
   printf("正解です!\n");
  }
  else
  printf("残念ながら不正解・・・\n");
  }
  return(score);
}
void result(int best,int score)
{
 printf("\n今回%d問中%d問正解でした。\n",kNO,score);
 printf("前回は%d問中%d問正解していました。\n",knum,best);
}
int main(void)
{
 int score;
 int best;
 best = get_score();
 if(read_kuizu() == -1)
 {
  printf("エラー\n");
  return(-1);
 }
 score = kuizu_game();
 result(best,score);
 if(score>best)
 {
  printf("最高点を更新!\n");
  best = score;
 }
 FILE *fp;
 fp = fopen("score.txt","w");
 fclose(fp);
 return(0);
}
とりあえずこれでコンパイルしたんですけど、クイズのファイルが読めこめません。どこが問題なんでしょうか?

補足日時:2010/08/09 12:19
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!