簡単な算数ドリルの作り方

ということです!笑

ドリルは駆け出したばかりの時にも作りましたが、今見返すと。。。いっぱい書いてる。コード!?笑

僕も成長したんだなと改めて思いました。

では本題へ!まずは。

出来上がり確認

【index.php】
<?
echo "<p>出題数選択</p>";
echo "<form method='post' action='index.php'>";
echo "<select name='num'>";
for($i=1; $i<=20; $i++){ //出題数の設定
echo "<option>{$i}</option>";
}
echo "</select>";
echo "<input type='submit' value='送信'>";
echo "</form>";

$num = $_POST['num'];

//出題数を送信しなければ、以下は非表示
if(empty($num)){
die();
}

$ar_num = range(1,100); //数字範囲
$ar_num2 = range(1,100); //数字範囲
shuffle($ar_num); //シャッフル
shuffle($ar_num2); //シャッフル
echo "<hr><form method='post' action='add.php'>";
//for文で受け取った出題数を限度にして設定
for ($i = 1 ; $i <= $num ; $i++){
	echo "問{$i}<br>";
	echo "{$ar_num[$i]}+{$ar_num2[$i]}=<input type='number' name='ans{$i}'><input type='hidden' name='a{$i}' value='{$ar_num[$i]}'><input type='hidden' name='b{$i}' value='{$ar_num2[$i]}'><br><hr>";
	$count++;
}
echo "<input type='hidden' name='mondai' value='{$count}'>";
echo "<input type='submit' value='回答する'></form>";
//formで送る時に出題の数字も送信します
?>

【add.php】
<?
//問題と回答の受取
$mondai = $_POST['mondai'];
for($i=1; $i<=$mondai; $i++){
	$a[$i] = $_POST["a{$i}"];
	$b[$i] = $_POST["b{$i}"];
	$ans[$i] = $_POST["ans{$i}"];
	$c[$i]  = $a[$i] + $b[$i];

	echo "問{$i}<br>{$a[$i]} + {$b[$i]} = <br>あなたの答え → {$ans[$i]}<br>解答 → {$c[$i]}<br>";

	//正解不正解分岐
	if($ans[$i] == $c[$i]){
	echo "正解!<hr>";
	$seikai++;
	} else {
	echo "不正解。。。<hr>";
	}
}

//採点 100点を基準に出題数でわり、正解数で掛けます。floorは小数カット
$manten = 100;
$tensu = floor($manten / $mondai * $seikai);
echo "あなたの成績は..<br>{$tensu}点 です!<hr>";
?>

こんな感じになります!

要所要所にはコメントアウトを入れておりますが、何か質問などがありましたら、お気軽にご連絡下さい!!

ではまた!

簡単な算数ドリルの作り方
トップへ戻る