計算アプリを作ってみた。

このエントリーをはてなブックマークに追加 Check
先に書いた[PHPで勝手に数式作成-計算アプリを作ってみる]の入力フォームと、
計算結果を表示するやつを作ってみた。

先ずは、フォーム側(答えが出ているのと、ソースを覗くとformの中に正解の値が入っている点はご愛嬌w)

[CountApp.php]
<html>

<head>
<title>計算アプリを作ってみるコトハジメ</title>
</head>

<body>

<?php

/*数式の決定*/
$CountValue = rand(0,3);

/*表示する数字の決定*/
$LeftTen = rand(0,9);
$LeftOne = rand(0,9);
$RightTen = rand(0,9);
$RightOne = rand(0,9);

/*両辺の値*/
$LeftTotal = ($LeftTen * 10) + $LeftOne;
$RightTotal = ($RightTen * 10) + $RightOne;

/*計算式と回答*/
$AddTotal = $LeftTotal + $RightTotal;
$SubstractTotal = $LeftTotal - $RightTotal;
$MultiplyTotal = $LeftTotal * $RightTotal;
$DivideTotal = $LeftTotal / $RightTotal;


/*数式に応じた処理*/
switch($CountValue){

/*足し算の場合*/
case 0:

$CountDispA = '+';
$CountDispB = '<img src="/image/add.png">';
$AnsMe = $AddTotal;

break;

/*引き算の場合*/
case 1:

$CountDispA = '-';
$CountDispB = '<img src="/image/subt.png">';
$AnsMe = $SubstractTotal;

break;

/*掛け算の場合*/
case 2:

$CountDispA = '*';
$CountDispB = '<img src="/image/multi.png">';
$AnsMe = $MultiplyTotal;

break;

/*割り算の場合*/
case 3:

$CountDispA = '/';
$CountDispB = '<img src="/image/div.png">';
$AnsMe = $DivideTotal;

break;
}


/*メモ $CountDispA が記号を表示 $CountDispB が画像を表示 $AnsMe が数式の答え */



?>


<?php

/*数字の表示部分*/

echo $LeftTotal.$CountDispA.$RightTotal.'='.$AnsMe;

?>

<br/>
<p>回答を入力</p>
<!--回答入力フォームを作ってみる-->
<form method="post" action="CountAppForm.php">
<input type="text" name="AnserA">
<input type= "hidden" name="AnserB" value="<?php echo $AnsMe ?>">
<input type="submit" value="Send">
</form>


</body>


</html>


んで結果表示用のPHP
[CountAppForm.php]
<html>
<head>
<title>答え合わせ用のPHPスクリプト</title>
</head>

<body>
<p>
あなたの答えは「
<?php
/* <input type="text" name="AnserA"> の入力値。入力した答え*/
echo $_POST['AnserA'];
?>
」です!
</p>

<p>問題の答えは...「
<?php
/* <input type="text" name="AnserB"> の入力値。要は答え。*/

echo $_POST['AnserB'];

/*答え合わせ用の値の代入*/

$AnserA = $_POST['AnserA'];
$AnserB = $_POST['AnserB'];

?>
」でした!!</p>


<p>
<?php

/*実際の答え合わせ処理部分*/

$FinalAnser = $AnserA-$AnserB;

if ($FinalAnser == 0){

echo 'おめでとう!! 正解です!! ';

}else{

echo '不正解...orz';

}

?>
</p>

<p><a href="CountApp.php">次の問題へ</a></p>

<!--答え合わせの動作確認<?php echo $FinalAnser; ?>-->
</body>
</html>


ちゃんと動いた!!
文中に
$CountDispB = '<img src="/image/div.png">';<

とあるのは、画像で数式を表示したいなというので書いてますw
非常に満足!

サンプルソース無しで書いた初めてのPHPアプリだ。

------不具合追記-----
・両辺どちらかが"0"になった場合に不具合発生する。
・右辺が"0"の時の割り算に不具合発生する。

対策内容:以下の記述を/*両辺の値*/の下に追記
/*ゼロにならないように再取得処理左辺*/
while($LeftTotal==0){
$LeftTen = rand(0,9);
$LeftOne = rand(0,9);
$LeftTotal = ($LeftTen * 10) + $LeftOne;
}

/*ゼロにならないように再取得処理左辺*/
while($RightTotal==0){
$RightTen = rand(0,9);
$RightOne = rand(0,9);
$RightTotal = ($RightTen * 10) + $RightOne;

この記事のカテゴリ:PHPのお勉強

関連するタグ:作ってみた PHP



posted by alfsuzuki at 02:33 | Comment(0) | PHPのお勉強 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。