PHP的表单四则运算,php实现网站四则运算。

简单四则运算多项运算

{

}?>

简单四则运算
习题数量
数值范围

{$open1 = fopen("config.txt","w+" ); //config.txt用于存放用户在表单输入的参数。

fwrite($open1,$_REQUEST["test1"]."\r\n".$_REQUEST["test2"]);fclose($open1);$open2 = fopen("time.txt","w+" ); //time.txt用于更新用户当前答题数量。

fwrite($open2,"0");fclose($open2);$open3 = fopen("exercise.txt","w+" ); //exercise.txt用于存放本次程序所出试题,同时用于判断是否有重复。

fclose($open3);header("Refresh:0;url = main.php"); //配置完成后跳转到主程序页面。

}?>

$open0 = file("config.txt");$range = chop($open0[1]); //读取随机数大小上限。

if(!(isset($_REQUEST["answer"])) && $flag) //出现回答后不再运行。

{include("exercise.php");$object = newexercise();$object->randomNumber($range);$flag = false;

}$open1 = fopen("exercise.txt",‘r‘); //读取exercise.txt的最后一行数据,即当前试题。

while($buf = fgets($open1))

{$res = $buf;

}fclose($open1);echo $res;if(isset($_REQUEST["answer"])) //输出答案和输入结果。

{echo file_get_contents("result.txt")."
"."您的结果为:".$_REQUEST["answer"]."
";

}else{?>

}if(isset($_REQUEST["answer"])) //输入结果后进行判断。

{

judge($_REQUEST["answer"]);

}function judge($answer)

{$result = file_get_contents("result.txt");if($result == $answer)

{echo "结果正确 ";

}else{echo "结果错误 ";

}$open2 = file("config.txt");$timeMax = chop($open2[0]); //读取习题数量。

$open3 = file("time.txt");$time = chop($open3[0]); //读取当前为第几题。

if($time < $timeMax - 1) //习题未出完时,当前题数加一,更新time.txt,重新运行main.txt

{echo "(第".($time + 1)."/".($timeMax)."题)";$time++;$open3 = fopen("time.txt","w+");fwrite($open3,"$time");fclose($open3);?>

}else //否则跳转到退出界面。

{echo "答题完毕。";header("Refresh:3;url = quit.php");

}

}<?PHPclassexercise

{public $numberA;public $numberB;public $numberC;public $result;public functionexercise()

{$this->numberA = null;$this->numberB = null;$this->result = null;

}public function randomFormula($a)

{$symbolA = rand(0,3);$symbolB = rand(0,3);$this->numberA = rand(0,$a);$this->numberB = rand(0,$a);$this->numberC = rand(0,$a);$openA = fopen("exercise.txt","a");$openB = fopen("result.txt","w+");fwrite($openA,$this->numberA.symbol($symbolA).$this->numberB.symbol($symbolB).$this->numberC." = "."\r\n");$this->result = 0;fwrite($openB,$this->result);fclose($openA);fclose($openB);

}public function randomNumber($a)

{$case2 = "0";$symbol = rand(0,3);$this->numberA = rand(0,$a);$this->numberB = rand(0,$a);$openA = fopen("exercise.txt","a");$openB = fopen("result.txt","w+");if($symbol == 0)

{$this->result = $this->numberA + $this->numberB;$case1 = $this->numberA." + ".$this->numberB." = "."\r\n";$case2 = $this->numberB." + ".$this->numberA." = "."\r\n";if(isRepeat($openA,$case1,$case2))

{fwrite($openA,$this->numberA." + ".$this->numberB." = "."\r\n");

}

}if($symbol == 1)

{$this->numberB = rand(0,$this->numberA);$case1 = $this->numberA." - ".$this->numberB." = "."\r\n";$this->result = $this->numberA - $this->numberB;if(isRepeat($openA,$case1,$case2))

{fwrite($openA,$this->numberA." - ".$this->numberB." = "."\r\n");

}

}if($symbol == 2)

{$case1 = $this->numberA." * ".$this->numberB." = "."\r\n";$case2 = $this->numberB." * ".$this->numberA." = "."\r\n";$this->result = $this->numberA * $this->numberB;if(isRepeat($openA,$case1,$case2))

{fwrite($openA,$this->numberA." * ".$this->numberB." = "."\r\n");

}

}if($symbol == 3)

{$this->numberB = rand(1,$a);$this->numberA = rand(1,$this->numberB);$case1 = $this->numberA." / ".$this->numberB." = "."\r\n";$gcd = getGreatestCommonDivisor($this->numberA,$this->numberB);$this->result = ($this->numberA / $gcd)."/".($this->numberB / $gcd);if($this->result == "1/1")

{$this->result = "1";

}if(isRepeat($openA,$case1,$case2))

{fwrite($openA,$this->numberA." / ".$this->numberB." = "."\r\n");

}

}fwrite($openB,$this->result);fclose($openA);fclose($openB);

}

}function symbol($a)

{$symbol = "";switch($a)

{case 0:

$symbol = " + ";break;case 1:

$symbol = " - ";break;case 2:

$symbol = " * ";break;case 3:

$symbol = " / ";break;

}return $symbol;

}function isRepeat($open1,$case1,$case2)

{while($buf = fgets($open1))

{if($buf == $case1 || $buf == $case2)

{header("Refresh:0;url = main.php");return false;

}else{continue;

}

}return true;

}function getGreatestCommonDivisor($numberA,$numberB)

{$n = 0;while($numberB > 0)

{$n = $numberA % $numberB;$numberA = $numberB;$numberB = $n;

}return $numberA;

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: JSP和JavaBean可以结合实现四则运算。具体实现步骤如下: 1.在JSP页面中,定义四个输入框,分别用于输入两个操作数和运算符。 2.定义一个按钮,用于提交表单。 3.在JSP页面中,使用<jsp:useBean>标签创建一个JavaBean对象,用于进行四则运算。 4.在JavaBean中,定义四个属性,分别对应输入的两个操作数和运算符,以及计算结果。 5.在JavaBean中,定义一个方法,用于进行四则运算,并将结果保存到计算结果属性中。 6.在JSP页面中,使用<jsp:setProperty>标签将输入的操作数和运算符设置到JavaBean的属性中。 7.在JSP页面中,使用<jsp:getProperty>标签获取JavaBean的计算结果属性,并显示在页面上。 8.在JSP页面中,使用<form>标签将输入框和按钮包裹起来,实现表单提交。 9.在JSP页面中,使用<% %>标签调用JavaBean的方法,进行四则运算。 10.在JavaBean中,使用try-catch语句处理异常情况,例如除数为等。 以上就是使用JSP和JavaBean实现四则运算的步骤。 ### 回答2: JSP和JavaBean是实现四则运算的常用技术。JSP是Java服务器页面的缩写,它是一种在Web服务器中运行的Java代码。而JavaBean则是一种Java中的可重用组件,它封装了复杂的业务逻辑,使得代码更易于维护和重复使用。 首先,我们可以在JSP页面中设置表单,让用户输入要进行四则运算的数字和运算符,然后提交给后台JavaBean进行计算。JavaBean可以使用Java的面向对象特性来实现四则运算,例如使用类的封装和继承来实现加、减、乘、除等运算。 在JavaBean中,可以定义一个包含四则运算方法的类,然后在JSP页面中通过Bean的名字来调用这些方法。例如,假设我们有一个名为Calculator的JavaBean类,其中包含add、subtract、multiply和divide四个方法,我们可以在JSP页面中使用以下代码来调用它们: ``` <jsp:useBean id="calculator" class="Calculator" /> <% double num1 = Double.parseDouble(request.getParameter("num1")); double num2 = Double.parseDouble(request.getParameter("num2")); String operator = request.getParameter("operator"); double result = 0.0; switch(operator) { case "+": result = calculator.add(num1, num2); break; case "-": result = calculator.subtract(num1, num2); break; case "*": result = calculator.multiply(num1, num2); break; case "/": result = calculator.divide(num1, num2); break; } out.println("计算结果: " + result); %> ``` 上述代码中,我们首先使用 \<jsp:useBean\> 标签声明一个名为calculator的Bean对象,并指定它的类为Calculator。然后通过request.getParameter()方法获取JSP页面上的num1、num2和operator参数,再根据operator的值来调用Calculator中相应的方法进行计算。最后输出结果。 以上就是使用JSP和JavaBean实现四则运算的基本过程。需要注意的是,为了保证程序的可靠性和安全性,我们应该对输入参数进行参数校验和异常处理,避免出现非法操作和程序崩溃。 ### 回答3: JSP (JavaServer Pages) 和 JavaBean 是 Java EE 技术栈中非常常用的两种技术。其中,JSP 是一种可以嵌入 Java 代码的 HTML 文件,而 JavaBean 则是一种 Java 类,用于封装数据和业务逻辑。我们可以通过结合使用 JSP 和 JavaBean 来实现四则运算。 首先,我们需要在 JSP 文件中定义表单,用于输入运算数和选择操作符。表单的代码如下: ``` <form action="calculation.jsp" method="post"> <input type="text" name="num1"> <select name="operator"> <option value="add">+</option> <option value="subtract">-</option> <option value="multiply">*</option> <option value="divide">/</option> </select> <input type="text" name="num2"> <input type="submit" value="Calculate"> </form> ``` 其中,表单的 action 属性指向计算处理的 servlet 或 JSP 页面,method 属性指定请求方法为 post,num1 和 num2 分别表示输入的两个数字,operator 表示选择的操作符。 接着,我们需要创建 JavaBean 类,用于处理计算逻辑。这里我们创建一个 Calculation 类,代码如下: ``` public class Calculation { private float num1; private float num2; private String operator; public float getNum1() { return num1; } public void setNum1(float num1) { this.num1 = num1; } public float getNum2() { return num2; } public void setNum2(float num2) { this.num2 = num2; } public String getOperator() { return operator; } public void setOperator(String operator) { this.operator = operator; } public float getResult() { switch (operator) { case "add": return num1 + num2; case "subtract": return num1 - num2; case "multiply": return num1 * num2; case "divide": return num1 / num2; default: return 0; } } } ``` Calculation 类中定义了三个属性:num1、num2 和 operator,分别表示输入的两个数字和操作符。同时,Calculation 类还定义了 getResult() 方法,用于计算并返回最终的结果。 最后,我们需要在 JSP 页面中引用 Calculation 类,并将表单提交的数据传递给 Calculation 类进行处理。处理的代码如下: ``` <jsp:useBean id="calculation" class="com.example.Calculation" scope="request"/> <% calculation.setNum1(Float.parseFloat(request.getParameter("num1"))); calculation.setNum2(Float.parseFloat(request.getParameter("num2"))); calculation.setOperator(request.getParameter("operator")); %> <p>结果为:<%= calculation.getResult() %></p> ``` JSP 页面中首先通过 <jsp:useBean> 标签创建 Calculation 类的实例,并将对象的作用域指定为 request。接着,我们通过 request.getParameter() 方法获取表单提交的数据,并传递给 Calculation 类进行处理。最后,我们通过 <%= %> 标签将结果显示在页面上。 综上,通过结合使用 JSP 和 JavaBean,我们可以实现一个简单的四则运算系统。可以使用上述代码作为参考,进行开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值