1.設計想法:
本次任務我用php實現的主要功能,預設必須有加減法。
首先,創建index.php文件,在HTML語句裡創建表單,表單內容包括,出題數目,最大最小值,及其他的一些選項。
然後,建立rubric.php文件,將表單資訊提交到此文件下,四則運算方法實作時呼叫傳遞過來的值。實作四則運算的方法和前幾次用Java時的方法差不多,將程式碼做了修改和最佳化。將題目和答案分別放入question.txt和answer.txt檔案裡,以備後用。
第三,創建submitAnswer.php、acceptAnswer.php、deleteAnswer.php🜎.答案,刪除答案和判斷答案。提交的答案放在answer1.txt文件裡,判斷答案時通過比較answer.txt和answer1.txt文件裡的內容。 2.原始程式碼
<span> 1</span> index.<span>php
</span><span> 2</span>
<span> 3</span> <!--
<span> 4</span> start <span>date</span> 2016/3/28
<span> 5</span> completion <span>date</span> 2016/4/7
<span> 6</span><span>author Jing
</span><span> 7</span><span>this program is about four arithmetic operation
</span><span> 8</span> -->
<span> 9</span>
<span> 10</span>
<span> 11</span> <meta charset="UTF-8">
<span> 12</span> <title>四則運算出題系統</title>
<span> 13</span> <script>
<span> 14</script>
function check() {
15var tt=/^(0|[1-9]d*)$/;
16if(!tt.test(form1.min.value))
17 {
18 alert('最小值輸入不合法');
19 form1.min.focus();
20returnfalse;
21 }
22if(!tt.test(form1.max.value) || (form1.max.value
41
43 44
72
"[$i]."
"[$i]."
"[$i]."
"[$i]."
"
410$d[$i]=$b[$i]."n";
411$e[$i]=$r->r1."n";
412fwrite($question,$d[$i]);
413fwrite($answer,$e[$i]);
414 }
415fclose($question);
416fclose($answer);
417 }
418419/* 兩個數的加減乘法*/420if( ') && ($div=='f'))
421 {
422$question = fopen("question.txt", "w");
423$answer= fopen("answer.txt", "w");
424for($i=0;$i$num;$i++)
425 {
426$j=0;
427$bool=true;
428$b[$i]= addSubMul($min, $max, $num1, $max,$$num1,
429while(($r->r1)//當結果為負時,重新隨機430 {
431$b[$i]= addSubMul($min, $max, $num1, $max,$$num1,
432 }
433while(($bool) && ($i!=0))//避免重複434434434434434434434434434434434434434
435while($b[$i]==$b[$j])
436 {
437$b[$i]= addSubMul($min, $max, $num1, $max,$$num1,
438while(($r->r1)//結果為負,重新出題439結果為負,再出題 {439
440$b[$i]= addSubMul($min, $max, $num1, $max,$$num1,
441 }
442$j=0;
443 }
444$j++;
445if($j==$i)
446 {
447$bool=false;
448 }
449 }
450echo "( ".($i+1)." ) ".$b[$i]."
"[$i]."
"[$i]."
"[$i]."
"[$i]."
"
451$d[$i]=$b[$i]."n";
452$e[$i]=$r->r1."n";
453fwrite($question,$d[$i]);
🎜454🎜🎜fwrite🎜(🎜$answer🎜,🎜$e🎜[🎜$i🎜🎜]);
🎜🎜455🎜🎜 }
🎜🎜456🎜🎜fclose🎜(🎜$question🎜🎜);
🎜🎜457🎜🎜fclose🎜(🎜$answer🎜🎜);
🎜🎜458🎜🎜 }459460/* 兩個數的加減除法*/461if( ') && ($div=='t'))
462 {
463$question = fopen("question.txt", "w");
464$answer= fopen("answer.txt", "w");
465for($i=0;$i$num;$i++)
466 {
467$j=0;
468$bool=true;
469$b[$i]= addSubDiv($min, $max, $num1, $max,$$num1,
470while(($r->r1)//當結果為負時,重新隨機471 {
472$b[$i]= addSubDiv($min, $max, $num1, $max,$
473 }
474while(($bool) && ($i!=0))//避免重複475
476while($b[$i]==$b[$j])
477 {
478$b[$i]= addSubDiv($min, $max, $num1, $max,$$num1,
479while(($r->r1)//結果為負,重新出題480結果為負,重出題 {480
481$b[$i]= addSubDiv($min, $max, $num1, $max,$$num1,
482 }
483$j=0;
484 }
485$j++;
486if($j==$i)
487 {
488$bool=false;
489 }
490 }
491echo "( ".($i+1)." ) ".$b[$i]."
"[$i]."
"[$i]."
"[$i]."
"[$i]."
"
492$d[$i]=$b[$i]."n";
493$e[$i]=$r->r1."n";
494fwrite($question,$d[$i]);
495fwrite($answer,$e[$i]);
496 }
497fclose($question);
498fclose($answer);
499 }
500501/* 兩個數的加減乘除法*/502if( t') && ($div=='t'))
503 {
504$question = fopen("question.txt", "w");
505$answer= fopen("answer.txt", "w");
506for($i=0;$i$num;$i++)
507 {
508$j=0;
509$bool=true;
510$b[$i]= addSubMulDiv($min, $max, $num1,
511while(($r->r1)//結果為負,重新出題512結果為負,再出題 {512結果為負,再出題 {512
513$b[$i]= addSubMulDiv($min, $max, 🎜$num1🎜, 🎜
🎜🎜514🎜🎜 }515while(($bool) && ($i!=0))//
517while($b[$i]==$b[$j])
518 {
519$b[$i]= addSubMulDiv($min, $max, $num1,
520while(($r->r1)//結果為負,重新出題521結果為負,再出題 {521
522$b[$i]= addSubMulDiv($min, $max, $num1,
523 }
524$j=0;
525 }
526$j++;
527if($j==$i)
528 {
529$bool=false;
530 }
531 }
532echo "( ".($i+1)." ) ".$b[$i]."
"[$i]."
"[$i]."
"[$i]."
"[$i]."
"
533$d[$i]=$b[$i]."n";
534$e[$i]=$r->r1."n";
535fwrite($question,$d[$i]);
536fwrite($answer,$e[$i]);
537 }
538fclose($question);
539fclose($answer);
540 }
541542/* 三個數的加減法*/543if( ') && ($div=='f'))
544 {
545$question = fopen("question.txt", "w");
546$answer= fopen("answer.txt", "w");
547for($i=0;$i$num;$i++)
548 {
549$j=0;
550$bool=true;
551$b[$i]= addSub($min, $max, $num1, $max, $num1, $
552while(($r->r1)//結果為負,重新出題553結果為負,重出題 {553
554$b[$i]= addSub($min, $max, $num1, $max, $num1, $
555 }
556while(($bool) && ($i!=0))//557557
558while($b[$i]==$b[$j])
559 {
560$b[$i]= addSub($min, $max, $num1, $max, $num1, $
561while(($r->r1)//結果為負,重新出題562結果為負,重出題 {562
563$b[$i]= addSub($min, $max, $num1, $max, $num1, $
564 }
565$j=0;
566 }
567$j++;
568if($j🎜==🎜$i🎜🎜)
🎜🎜569🎜🎜 {
🎜🎜570🎜🎜$bool🎜=🎜false🎜🎜;
🎜🎜571🎜🎜 }
🎜🎜572🎜🎜 }573echo "( ".($i+1)." ) ".$b[$i]."
"[$i]."
"[$i]."
"[$i]."
"[$i]."
"
574$d[$i]=$b[$i]."n";
575$e[$i]=$r->r1."n";
576fwrite($question,$d[$i]);
577fwrite($answer,$e[$i]);
578 }
579fclose($question);
580fclose($answer);
581 }
582583/* 三個數的加減乘法*/584if( ') && ($div=='f'))
585 {
586$question = fopen("question.txt", "w");
587$answer= fopen("answer.txt", "w");
588for($i=0;$i$num;$i++)
589 {
590$j=0;
591$bool=true;
592$b[$i]= addSubMul($min, $max, $num1, $max,$$num1,
593while(($r->r1)//結果為負,重新出題594結果為負,再出題 {594
595$b[$i]= addSubMul($min, $max, $num1, $max,$$num1,
596 }
597while(($bool) && ($i!=0))//598598598
599while($b[$i]==$b[$j])
600 {
601$b[$i]= addSubMul($min, $max, $num1, $max,$$num1,
602while(($r->r1)//結果為負,重新出題603結果為負,再出題 {603
604$b[$i]= addSubMul($min, $max, $num1, $max,$$num1,
605 }
606$j=0;
607 }
608$j++;
609if($j==$i)
610 {
611$bool=false;
612 }
613 }
614echo "( ".($i+1)." ) ".$b[$i]."
"[$i]."
"[$i]."
"[$i]."
"[$i]."
"
615$d[$i]=$b[$i]."n";
616$e[$i]=$r->r1."n";
617fwrite($question,$d[$i]);
618fwrite($answer,$e🎜[🎜$i🎜🎜]);
🎜🎜619🎜🎜 }
🎜🎜620🎜🎜fclose🎜(🎜$question🎜🎜);
🎜🎜621🎜🎜fclose🎜(🎜$answer🎜🎜);
🎜🎜622🎜🎜 }623624/* 三個數的加減除法*/625if*/625 ') && ($div=='t'))
626 {
627$question = fopen("question.txt", "w");
628$answer= fopen("answer.txt", "w");
629for($i=0;$i$num;$i++)
630 {
631$j=0;
632$bool=true;
633$b[$i]= addSubDiv($min, $max, $num1, $max,$
634while(($r->r1)//結果為負,重新出題635結果為負,再出題 {635
636$b[$i]= addSubDiv($min, $max, $num1, $max,$
637 }
638while(($bool) && ($i!=0))//639639
640while($b[$i]==$b[$j])
641 {
642$b[$i]= addSubDiv($min, $max, $num1, $max,$
643while(($r->r1)//結果為負,重新出題644結果為負,再出題 {644
645$b[$i]= addSubDiv($min, $max, $num1, $max,$$num1,
646 }
647$j=0;
648 }
649$j++;
650if($j==$i)
651 {
652$bool=false;
653 }
654 }
655echo "( ".($i+1)." ) ".$b[$i]."
"[$i]."
"[$i]."
"[$i]."
"
656$d[$i]=$b[$i]."n";
657$e[$i]=$r->r1."n";
658fwrite($question,$d[$i]);
659fwrite($answer,$e[$i]);
660 }
661fclose($question);
662fclose($answer);
663 }
664665/* 三個數的加減乘除法*/666if( t') && ($div=='t'))
667 {
668$question = fopen("question.txt", "w");
669$answer= fopen("answer.txt", "w");
670for($i=0;$i$num;$i++)
671 {
672$j=0;
673$bool=true;
674$b[$i]= addSubMulDiv($min, $max, $num1,
675while(($r->r1)//結果為負,重新出題676結果為負,重出題 {676
677$b[$i]= addSubMulDiv($min, $max, $num1,
🎜🎜678🎜🎜 }679while(($bool) && ($i!=0))//680680
681while($b[$i]==$b[$j])
682 {
683$b[$i]= addSubMulDiv($min, $max, $num1,
684while(($r->r1)//結果為負,重新出題685結果為負,再出題 {685
686$b[$i]= addSubMulDiv($min, $max, $num1,
687 }
688$j=0;
689 }
690$j++;
691if($j==$i)
692 {
693$bool=false;
694 }
695 }
696echo "( ".($i+1)." ) ".$b[$i]."
"[$i]."
"[$i]."
"[$i]."
"
697$d[$i]=$b[$i]."n";
698$e[$i]=$r->r1."n";
699fwrite($question,$d[$i]);
700fwrite($answer,$e[$i]);
701 }
702fclose($question);
703fclose($answer);
704 }
705706/* 四數的加減法*/707if( ') && ($div=='f'))
708 {
709$question = fopen("question.txt", "w");
710$answer= fopen("answer.txt", "w");
711for($i=0;$i$num;$i++)
712 {
713$j=0;
714$bool=true;
715$b[$i]= addSub($min, $max, $num1, $max, $num1, $
716while(($r->r1)//結果為負,重新出題717結果為負,重出題 {717
718$b[$i]= addSub($min, $max, $num1, $max, $num1, $
719 }
720while(($bool) && ($i!=0))//
722while($b[$i]==$b[$j])
723 {
724$b[$i]= addSub($min, $max, $num1, $max, $num1, $
725while(($r->r1)//結果為負,重新出題726結果為負,重出題 {726
727$b[$i]= addSub($min, $max, $num1, $max, $num1, $
728 }
729$j=0;
730 }
731$j++;
732if($j==$i)
🎜🎜733🎜🎜 {
🎜🎜734🎜🎜$bool🎜=🎜false🎜🎜;
🎜🎜735🎜🎜 }
🎜🎜736🎜🎜 }737echo "( ".($i+1)." ) ".$b[$i]."
"[$i]."
"[$i]."
"[$i]."
"[$i]."
"
738$d[$i]=$b[$i]."n";
739$e[$i]=$r->r1."n";
740fwrite($question,$d[$i]);
741fwrite($answer,$e[$i]);
742 }
743fclose($question);
744fclose($answer);
745 }
746747/* 四數的加減乘法*/748if( ') && ($div=='f'))
749 {
750$question = fopen("question.txt", "w");
751$answer= fopen("answer.txt", "w");
752for($i=0;$i$num;$i++)
753 {
754$j=0;
755$bool=true;
756$b[$i]= addSubMul($min, $max, $num1, $max,$$num1,
757while(($r->r1)//結果為負,重新出題758結果為負,再出題 {758
759$b[$i]= addSubMul($min, $max, $num1, $max,$$num1,
760 }
761while(($bool) && ($i!=0))//
763while($b[$i]==$b[$j])
764 {
765$b[$i]= addSubMul($min, $max, $num1, $max,$$num1,
766while(($r->r1)//結果為負,重新出題767結果為負,重出題 {767
768$b[$i]= addSubMul($min, $max, $num1, $max,$$num1,
769 }
770$j=0;
771 }
772$j++;
773if($j==$i)
774 {
775$bool=false;
776 }
777 }
778echo "( ".($i+1)." ) ".$b[$i]."
"[$i]."
"[$i]."
"[$i]."
"
779$d[$i]=$b[$i]."n";
780$e[$i]=$r->r1."n";
781fwrite($question,$d[$i]);
782fwrite($answer,$e[$i]);
783🎜 }
🎜🎜784🎜🎜fclose🎜(🎜$question🎜🎜);
🎜🎜785🎜🎜fclose🎜(🎜$answer🎜🎜);
🎜🎜786🎜🎜 }787788/* 四數的加減除法*/789if*/789if( ') && ($div=='t'))
790 {
791$question = fopen("question.txt", "w");
792$answer= fopen("answer.txt", "w");
793for($i=0;$i$num;$i++)
794 {
795$j=0;
796$bool=true;
797$b[$i]= addSubDiv($min, $max, $num1, $max,$$num1,
798while(($r->r1)//結果為負,重新出題799結果為負,重出題 {799
800$b[$i]= addSubDiv($min, $max, $num1, $max,$$num1,
801 }
802while(($bool) && ($i!=0))//803803
804while($b[$i]==$b[$j])
805 {
806$b[$i]= addSubDiv($min, $max, $num1, $max,$$num1,
807while(($r->r1)//結果為負,重新出題808結果為負,再出題 {808
809$b[$i]= addSubDiv($min, $max, $num1, $max,$$num1,
810 }
811$j=0;
812 }
813$j++;
814if($j==$i)
815 {
816🎜🎜$bool🎜=🎜false🎜🎜;
🎜🎜817🎜🎜