后端开发|php教程
软件工程
后端开发-php教程
1.设计思想:
信贷网站php免费系统源码,ubuntu 进程杀不死,tomcat的安装包名称,绿色爬虫龙,php被go替代了吗,seo系统权重lzw
本次任务我用php实现的主要功能,默认必须有加减法。
源码 模板下载网站,ubuntu 黑屏绿色ok,爬虫软件和脚本,php text居中,seo后期要求lzw
首先,创建index.php文件,在HTML语句里创建表单,表单内容包括,出题数目,最大最小值,及其他的一些选项。
bs框架源码 下砸,终端vscode插件,ubuntu系统如何关闭网口,tomcat改变名称,手机在线打开sqlite,dedecms视频播放插件,vue搭前端项目框架,python爬虫爬电影,php 更新数据,seo优化详细教程seo博客,免费php网页模板网站,去掉网页边框颜色,个人简历 模板 html,学生端管理系统,小程序源码 餐饮lzw
然后,创建rubric.php文件,将表单信息提交到此文件下,四则运算方法实现时调用传递过来的值。实现四则运算的方法和前几次用Java时的方法差不多,将代码做了修改和优化。将题目和答案分别放入question.txt和answer.txt文件里,以备后用。
第三,创建submitAnswer.php、acceptAnswer.php、deleteAnswer.php和judgeAnswer.php文件,分别用于在线提交答案,接收答案,删除答案和判断答案。提交的答案放在answer1.txt文件里,判断答案时通过比较answer.txt和answer1.txt文件里的内容即可。
2.源程序代码
1 index.php
2
3
9
10
11
12
37
38
39
40
41
42 欢迎来到小学四则运算出题系统
43 44
45 默认只有两个数参与运算的加减法
46 47 请输入参与运算的最小数值(非负整数)
48
49 50 请输入参与运算的最大数值(非负整数且不小于最小数值)
51
52 53 请输入出题数目(正整数)
54
55 56 选择参与运算的数的个数
57 2
58 3
59 4
60 61 选择是否加入乘法
62 是
63 否
64 65 选择是否加入除法
66 是
67 否
68 69
70
71
72
73
74
75 76 rubric.php
77 78
79
80
81
83
84 85 <?php 86if(is_numeric($_POST["max"])) 87 { 88$max=$_POST["max"]; //最大值 89 } 90if(is_numeric($_POST["min"])) 91 { 92$min=$_POST["min"]; //最小值 93 } 94if(is_numeric($_POST["num"])) 95 { 96$num=$_POST["num"]; //出题数目 97 } 98if(is_numeric($_POST["num1"])) 99 {100$num1=$_POST["num1"]; //参与运算的个数101 }102if(is_string($_POST["mul"]))103 {104$mul=$_POST["mul"]; //选择是否加入乘法 是t否f105 }106if(is_string($_POST["div"]))107 {108$div=$_POST["div"]; //选择是否加入除法 是t否f109 }110111/* 定义数组 */112$a=array(); //方法中使用,存储随机数字和运算符113$amd=array(); //方法中使用,将算好乘/除法后的算式存入此数组114$b=array(); //调用方法时使用115$d=array(); //存储题目116$e=array(); //存储答案117118/* Result 类用于封装结果 */119class Result120 {121public$r1; //$r1存储计算结果122 }123124/* 运算符只有加减的方法 */125function addSub($min,$max,$num1,$result)126 {127$str=mt_rand($min,$max);128$re=$str;129for($i=1;$ir1=$re;
145$str=$str." = ";
146return$str;
147 }
148149/* 运算符为加减乘的方法 */150function addSubMul($min,$max,$num1,$result)
151 {
152$a[0]= mt_rand($min, $max);
153/* 将算式中的数和运算符存入数组$a */154/*如果此循环中在运算符左右两侧加入空格,则在后面while循环中的if条件语句中的运算符也应加空格,否则会出错*/155for($i=1;$i<(2*$num1-1);$i=$i+2) //(2*$num1-1) 为算式中参与运算的数和运算符个数之和156{157$c= mt_rand(0, 2);158if($c==0)159 {160$a[$i]= + ;161$a[$i+1]= mt_rand($min, $max);162 }163if($c==1)164 {165$a[$i]= - ;166$a[$i+1]= mt_rand($min, $max);167 }168if($c==2)169 {170$a[$i]= x ;171$a[$i+1]= mt_rand($min, $max);172 }173}174/* 将算式中的乘法算完后的算式存入数组$amd */175$i=0;176$j=0;177while($i<(2*$num1-1)) //运算符左右是否有空格应和上面的for循环保持一致178{179if($a[$i]== x )180 {181$amd[$j-1]=$amd[$j-1]*$a[$i+1];182$i=$i+2;183 }184else185 {186$amd[$j]=$a[$i];187$j++;188$i++;189 }190}191/* 算出算式的答案$re */192$re=$amd[0];193$k=1;194while($k<$j) //运算符左右是否有空格应和上面的for循环保持一致195{196if($amd[$k]== + )197 {198$re=$re+$amd[$k+1];199$k=$k+2;200continue;201 }202if($amd[$k]== - )203 {204$re=$re-$amd[$k+1];205$k=$k+2;206 }207}208/* 将数组中的值连接为字符串算式$str */209$str=$a[0];210for($i=1;$ir1=$re;
215$str=$str." = ";
216return$str;
217 }
218219/* 运算符为加减除的方法 */220function addSubDiv($min,$max,$num1,$result)
221 {
222$a[0]= mt_rand($min, $max);
223/* 将算式中的数和运算符存入数组$a */224for($i=1;$i<(2*$num1-1);$i=$i+2) 225{226$c= mt_rand(0, 2);227if($c==0)228 {229$a[$i]= + ;230$a[$i+1]= mt_rand($min, $max);231 }232if($c==1)233 {234$a[$i]= - ;235$a[$i+1]= mt_rand($min, $max);236 }237if($c==2)238 {239$a[$i]= ÷ ;240$a[$i+1]= mt_rand($min, $max);241 }242}243/* 将算式中的除法算完后的算式存入数组$amd */244$i=0;245$j=0;246while($i<(2*$num1-1))247{248if($a[$i]== ÷ )249 {250while(($amd[$j-1] % $a[$i+1]!=0) || $a[$i+1]==0 ) //避免除法有余数251 {252$a[$i+1]= mt_rand($min,$max);253 }254$amd[$j-1]=$amd[$j-1]/$a[$i+1];255$i=$i+2;256 }257else258 {259$amd[$j]=$a[$i];260$j++;261$i++;262 }263}264/* 算出算式的答案$re */265$re=$amd[0];266$k=1;267while($k<$j)268{269if($amd[$k]== + )270 {271$re=$re+$amd[$k+1];272$k=$k+2;273continue;274 }275if($amd[$k]== - )276 {277$re=$re-$amd[$k+1];278$k=$k+2;279 }280}281282/* 将算式放入字符串$str */283$str=$a[0];284for($i=1;$ir1=$re;
289$str=$str." = ";
290return$str;
291 }
292293/* 运算符为加减乘除的方法 */294function addSubMulDiv($min,$max,$num1,$result)
295 {
296$a[0]= mt_rand($min, $max);
297/* 将算式中的数和运算符存入数组$a */298for($i=1;$i<(2*$num1-1);$i=$i+2)299{300$c= mt_rand(0, 3);301if($c==0)302 {303$a[$i]= + ;304$a[$i+1]= mt_rand($min, $max);305 }306if($c==1)307 {308$a[$i]= - ;309$a[$i+1]= mt_rand($min, $max);310 }311if($c==2)312 {313$a[$i]= x ;314$a[$i+1]= mt_rand($min, $max);315 }316if($c==3)317 {318$a[$i]= ÷ ;319$a[$i+1]= mt_rand($min, $max);320 }321}322/* 将算式中的除法算完后的算式存入数组$amd */323$i=0;324$j=0;325while($i<(2*$num1-1))326{327if($a[$i]== x )328 {329$amd[$j-1]=$amd[$j-1]*$a[$i+1];330$i=$i+2;331 }332elseif($a[$i]== ÷ )333 {334while(($amd[$j-1] % $a[$i+1]!=0) || $a[$i+1]==0 ) //避免除法有余数335 {336$a[$i+1]= mt_rand($min,$max);337 }338$amd[$j-1]=$amd[$j-1]/$a[$i+1];339$i=$i+2;340 }341else342 {343$amd[$j]=$a[$i];344$j++;345$i++;346 }347}348/* 算出算式的答案$re */349$re=$amd[0];350$k=1;351while($k<$j)352{353if($amd[$k]== + )354 {355$re=$re+$amd[$k+1];356$k=$k+2;357continue;358 }359if($amd[$k]== - )360 {361$re=$re-$amd[$k+1];362$k=$k+2;363 }364}365/* 将算式放入字符串$str */366$str=$a[0];367for($i=1;$ir1=$re;
372$str=$str." = ";
373return$str;
374 }
375376$r= new Result();
377378/* 两个数的加减法 */379if(($num1==2) && ($mul==f) && ($div==f))
380 {
381$question = fopen("question.txt", "w");
382$answer= fopen("answer.txt", "w");
383for($i=0;$ir1)r1)r1."\n";
412fwrite($question,$d[$i]);
413fwrite($answer,$e[$i]);
414}
415fclose($question);
416fclose($answer);
417 }
418419/* 两个数的加减乘法 */420if(($num1==2) && ($mul== ) && ($div==f))
421 {
422$question = fopen("question.txt", "w");
423$answer= fopen("answer.txt", "w");
424for($i=0;$ir1)r1)r1."\n";
453fwrite($question,$d[$i]);
454fwrite($answer,$e[$i]);
455}
456fclose($question);
457fclose($answer);
458 }
459460/* 两个数的加减除法 */461if(($num1==2) && ($mul==f) && ($div== ))
462 {
463$question = fopen("question.txt", "w");
464$answer= fopen("answer.txt", "w");
465for($i=0;$ir1)r1)r1."\n";
494fwrite($question,$d[$i]);
495fwrite($answer,$e[$i]);
496}
497fclose($question);
498fclose($answer);
499 }
500501/* 两个数的加减乘除法 */502if(($num1==2) && ($mul== ) && ($div== ))
503 {
504$question = fopen("question.txt", "w");
505$answer= fopen("answer.txt", "w");
506for($i=0;$ir1)r1)r1."\n";
535fwrite($question,$d[$i]);
536fwrite($answer,$e[$i]);
537}
538fclose($question);
539fclose($answer);
540 }
541542/* 三个数的加减法 */543if(($num1==3) && ($mul==f) && ($div==f))
544 {
545$question = fopen("question.txt", "w");
546$answer= fopen("answer.txt", "w");
547for($i=0;$ir1)r1)r1."\n";
576fwrite($question,$d[$i]);
577fwrite($answer,$e[$i]);
578}
579fclose($question);
580fclose($answer);
581 }
582583/* 三个数的加减乘法 */584if(($num1==3) && ($mul== ) && ($div==f))
585 {
586$question = fopen("question.txt", "w");
587$answer= fopen("answer.txt", "w");
588for($i=0;$ir1)r1)r1."\n";
617fwrite($question,$d[$i]);
618fwrite($answer,$e[$i]);
619}
620fclose($question);
621fclose($answer);
622 }
623624/* 三个数的加减除法 */625if(($num1==3) && ($mul==f) && ($div== ))
626 {
627$question = fopen("question.txt", "w");
628$answer= fopen("answer.txt", "w");
629for($i=0;$ir1)r1)r1."\n";
658fwrite($question,$d[$i]);
659fwrite($answer,$e[$i]);
660}
661fclose($question);
662fclose($answer);
663 }
664665/* 三个数的加减乘除法 */666if(($num1==3) && ($mul== ) && ($div== ))
667 {
668$question = fopen("question.txt", "w");
669$answer= fopen("answer.txt", "w");
670for($i=0;$ir1)r1)r1."\n";
699fwrite($question,$d[$i]);
700fwrite($answer,$e[$i]);
701}
702fclose($question);
703fclose($answer);
704 }
705706/* 四个数的加减法 */707if(($num1==4) && ($mul==f) && ($div==f))
708 {
709$question = fopen("question.txt", "w");
710$answer= fopen("answer.txt", "w");
711for($i=0;$ir1)r1)r1."\n";
740fwrite($question,$d[$i]);
741fwrite($answer,$e[$i]);
742}
743fclose($question);
744fclose($answer);
745 }
746747/* 四个数的加减乘法 */748if(($num1==4) && ($mul== ) && ($div==f))
749 {
750$question = fopen("question.txt", "w");
751$answer= fopen("answer.txt", "w");
752for($i=0;$ir1)r1)r1."\n";
781fwrite($question,$d[$i]);
782fwrite($answer,$e[$i]);
783}
784fclose($question);
785fclose($answer);
786 }
787788/* 四个数的加减除法 */789if(($num1==4) && ($mul==f) && ($div== ))
790 {
791$question = fopen("question.txt", "w");
792$answer= fopen("answer.txt", "w");
793for($i=0;$ir1)r1)<0)//结果为负,重新出题808 {809$b[$i]= addSubDiv($min, $max, $num1, $r);810 }811$j=0;812 }813$j++;814if($j==$i)815 {816$bool=false;817