next up previous contents index
: 名前空間とフィールドの追加 : Visual Studio.NETでWindowsアプリケーションを作成する : ソースコードの追加   目次   索引

プライベートメソッドのコード

#region 問題の獲得
private void getQuestion()
{
#region 問題文のデータを取得
// 問題の数を取得
StreamReader sr = new StreamReader("c:$ \yen$Program Files$ \yen$yokota lab$ \yen$ENGLEASY$ \yen$EnglishEasyFillBlank.csv");
string text = sr.ReadToEnd();
// textに改行記号をつけない
text = text.Replace('$ \yen$r',' ');
sr.Close();
string[] stext = text.Split(''$ \yen$n');
rowNumber = int.Parse(stext[0].ToString());
// 探索回数
searchQuestionCount++;
// 問題の中から一問ランダムに抽出
Random r = new Random();
questionNumber = r.Next(2,rowNumber+1);
// 同一問題かチェック
if(sameQuestionNumber(questionNumber) == true)
{
text = stext[questionNumber];
// textが" "で囲まれている場合. つまり,文中にカンマが含まれている場合.
// "When I was busy, I did not go to school.", answer,
if(text.IndexOf('"') >= 0)
{
int ind = text.IndexOf('"');
text = text.Substring(ind+1);
int end = text.IndexOf('"');
question = text.Substring(ind,end);
stext = text.Substring(end+1).Split(',');
selctAnswer[0] = stext[1];
selctAnswer[1] = stext[2];
selctAnswer[2] = stext[3];
selctAnswer[3] = stext[4];
// 改行文字をスペースで置き換えたので,スペースを削除する
stext[5] = stext[5].Replace(" ","");
selctAnswer[4] = stext[5];
}
else
{
stext = text.Split(',');
question = stext[0];
selctAnswer[0] = stext[1];
selctAnswer[1] = stext[2];
selctAnswer[2] = stext[3];
selctAnswer[3] = stext[4];
stext[5] = stext[5].Replace(" ","");
selctAnswer[4] = stext[5];
}
}
else
{
if(searchQuestionCount $ <$ rowNumber)
{
getQuestion();
}
else
{
}
}
#endregion
// lblOutQuesitonへの書き込み
lblOutQuestion.Text = question;
lblAnswer1.Text = selctAnswer[0];
lblAnswer2.Text = selctAnswer[1];
lblAnswer3.Text = selctAnswer[2];
lblAnswer4.Text = selctAnswer[3];
// 問題数を1増やす
questionCount++;
}
#endregion

#region 同一の問題かチェック
private bool sameQuestionNumber(int questionNumber)
{
foreach(int qnum in sameQuestion)
{
if(questionNumber == qnum)
{
return false;
}
}
sameQuestion.Add(questionNumber);
return true;
}
#endregion

#region ラジオボタン
private bool radioButtonChecked()
{
if(radioButton1.Checked == false && radioButton2.Checked == false
&& radioButton3.Checked == false && radioButton4.Checked == false)
{
return false;
}
else
{
return true;
}
}
#endregion

#region 正誤判定
private void correctAnswer()
{
if(radioButton1.Checked == true && selctAnswer[4] == "(a)" $ \Vert$
radioButton2.Checked == true && selctAnswer[4] == "(b)" $ \Vert$
radioButton3.Checked == true && selctAnswer[4] == "(c)"$ \Vert$
radioButton4.Checked == true && selctAnswer[4] == "(d)")
{
MessageBox.Show("正解です");
correctAnsCount++;
radioButton1.Checked = false;
radioButton2.Checked = false;
radioButton3.Checked = false;
radioButton4.Checked = false;
getQuestion();
}
else
{
wrongAnsCount++;
MessageBox.Show("不正解です");
radioButton1.Checked = false;
radioButton2.Checked = false;
radioButton3.Checked = false;
radioButton4.Checked = false;
}
}
#endregion

#region 結果の表示
private void questionResult()
{
questionCount = correctAnsCount + wrongAnsCount;
MessageBox.Show("あなたの成績は" + questionCount + "回挑戦中" + correctAnsCount + "問の正解でした");
}
#endregion

#endregion


next up previous contents index
: 名前空間とフィールドの追加 : Visual Studio.NETでWindowsアプリケーションを作成する : ソースコードの追加   目次   索引
Administrator 平成19年2月23日