PHP实现的简单在线计算器功能示例

本文实例讲述了PHP实现的简单在线计算器功能。分享给大家供大家参考,具体如下:

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf8">
<title>简单的计算器(www.jb51.net)</title>
</head>
<body>
<?php
//如果用户单击了计算按钮才存在表单变量,才能接收表单数据和对数据进行验证
//以下if语句判断是否将表单中的两个操作数提交到本页面,如果没有则不执行
if(isset($_POST["num1"]) && isset($_POST["num2"])){
if(empty($_POST["num1"])){
//如果第一个第一个操作数为空输出错误信息,并停止计算
echo "<font color='red'>第一个操作数不能为空</font>";
unset($_POST["sub"]);
//取消表单中的提交变量,后面计算判断时将不执行
}
if(empty($_POST["num2"])){
//如果第二个第一个操作数为空输出错误信息,并停止计算
echo "<font color='red'>第二个操作数不能为空</font>";
unset($_POST["sub"]);
//取消表单中的提交变量,后面计算判断时将不执行
}
$oper=$_POST["oper"];
//获取操作符号
$num1=$_POST["num1"];
//获取第一个操作数
$num2=$_POST["num2"];
//获取第二个操作数
if($oper == "/"){
if($num2 == 0){
echo "<font color='red'>0不能作为除数使用</font>";
unset($_POST["sub"]);
}
}
}
?>
<!--以HTML表格的形式输出计算器的用户操作界面-->
<table border="1" align="center" width="400">
<form action="" method="post"> <!--使用POST方法提交给本页面-->
<caption><h2>简单的计算器</h2></caption>
<tr>
<td><input type="text" size="10" name="num1" value="<?php if(!empty($num1)){echo $num1;}?>"></td>
<td>
<select name="oper">
<option value="+" <?php if($oper == "+"){echo "selected";}?>>+</option>
<option value="-" <?php if($oper == "-"){echo "selected";}?>>-</option>
<option value="*" <?php if($oper == "*"){echo "selected";}?>>*</option>
<option value="/" <?php if($oper == "/"){echo "selected";}?>>/</option>
</select>
</td>
<td><input type="text" size="10" name="num2" value="<?php if(!empty($num2)){echo $num2;}?>"></td>
<td><input type="submit" name="sub" value="计算"></td>
</tr>
<?php
/**通过表单传过来的$_POST["sub],判断是否单击了计算按钮
来决定以下计算是否执行以及是否输出计算结果**/
if(isset($_POST["sub"]) && !empty($_POST["sub"])){
$sum = 0; //声明一个存放计算结果的变量,初始值为0
echo $sum;
//使用switch语句,通过表单选择的操作符来决定执行哪种运算
switch($oper){
case "+":
$sum = $num1+$num2;
break;
case "-":
$sum = $num1-$num2;
break;
case "*":
$sum = $num1*$num2;
break;
case "/":
$sum = $num1/$num2;
break;
}
//以下的三行是在表格的新行中输出计算结果
echo "<tr><td colspan='4' align='center'>";
echo "计算结果:$num1 $oper $num2 = $sum";
echo "</td></tr>";
}
?>
</form>
</table>
</body>
</html>

运行结果如下图:

PS:这里再为大家推荐几款计算工具供大家进一步参考借鉴:

在线一元函数(方程)求解计算工具:
http://tools.jb51.net/jisuanqi/equ_jisuanqi

科学计算器在线使用_高级计算器在线计算:
http://tools.jb51.net/jisuanqi/jsqkexue

在线计算器_标准计算器:
http://tools.jb51.net/jisuanqi/jsq

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数学运算技巧总结》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP常用遍历算法与技巧总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《php正则表达式用法总结》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

时间: 2017-07-31

PHP基于工厂模式实现的计算器实例

本文实例讲述了PHP基于工厂模式实现的计算器.分享给大家供大家参考.具体如下: abstract class Calculator { private $number1; private $number2; public $result; /** * @return the $number2 */ public function getNumber2() { return $this->number2; } /** * @param field_type $number2 */ public f

php编程实现简单的网页版计算器功能示例

本文实例讲述了php编程实现简单的网页版计算器功能.分享给大家供大家参考,具体如下: 如何通过php代码来实现一个网页版的计算器的简单功能?下面就是通过php基础知识来做的网页版计算器,功能只有"加减剩除求余",其他的一些计算功能可扩展. 实现简单计算器的具体php代码如下(这是php文件jsq.php的全部代码): <html> <head> <title>这是一个网页版的简单计算器</title> <meta http-equi

用php简单实现加减乘除计算器

用php实现加减乘除计算器.代码很简单哦! 复制代码 代码如下: <?php header("content-type:text/html;charset=utf-8"); session_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitiona

PHP基于堆栈实现的高级计算器功能示例

本文实例讲述了PHP基于堆栈实现的高级计算器功能.分享给大家供大家参考,具体如下: 当我们得到一个字符串运算式该如何去得出它的运算结果呢? 这时候我们就能使用堆栈的算法很巧妙的解决这个问题. 思路是这样的:(我们利用php函数substr循环去截取这个字符串运算式,依次取出这个字符串的值[我们得从第一个字符开始截取],我们将开始截取位置设为一个循环增长的变量,初始化为[$index=0]),同时还需要创建两个栈,一个专门存放数字[$numStack],一个存放运算符[$operStack],我们

php学习之简单计算器实现代码

复制代码 代码如下: <html> <head> <title>PHP实现简单计算器</title> <meta http-equiv="Content-Type" content="text/html;charset=gb2312"> </head> <?php //单路分支 if(isset($_GET["sub"])) { $num1=true;//数字1是否为空

PHP实现的简单三角形、矩形周长面积计算器分享

运用PHP面向对象的知识设计一个图形计算器,同时也运用到了抽象类知识,这个计算器可以计算三角形的周长和面积以及矩形的周长和面积.本图形计算器有4个页面:1.PHP图形计算器主页index.php;    2.形状的抽象类shape.class.php;    3三角形计算类triangle.class.php;    4.矩形计算类rect.class.php. PHP图形计算器代码点击下载:   php图形计算器.zip 代码分别如下: PHP图形计算器主页: <html>     <

利用php+mysql来做一个功能强大的在线计算器

找了很久,发现网上资料很少,于是想自己动手写,慢慢的发现问题多了,自己不怎么通算法,写一个计算式子短点还好,长了就挂了,再长点恐怕就要死机. 有一天做做mysql突然发现原来mysql功能这么强大,可以直接计算字符串...哈哈 这下可就高兴了. 代码还超级简单 就做了一个ajax的计算器 有式子错误提示 还可以时时显示输入的式子 有兴趣的朋友可以看看 更多的功能可以自己去开发 演示地址:http://www.jianlila.com/jsq.php jquer.js自己去下载 jsq1.php

关于PHP堆栈与列队的学习

在PHP中数组常被当作堆栈(后进先出:LIFO)与队列(先进先出:FIFO)结构来使用.PHP提供了一组函数可以用于push与pop(堆栈)还有shift与unshift(队列)来操作数组元素.堆栈与列队在实践中应用非常广泛.我们可以先看下堆栈:  复制代码 代码如下: <?php   $arr = array();   array_push($arr,'aaa');   array_push($arr,'bbb');   $arr.pop();   print_r($arr);?> 如果你打

php实现天干地支计算器示例

天干地支,简称"干支".在中国古代的历法中,甲.乙.丙.丁.戊.己.庚.辛.壬.癸被称为"十天干",子.丑.寅.卯.辰.巳.午.未.申.酉.戌.亥叫作"十二地支".十干和十二支依次相配,组成六十个基本单位,两者按固定的顺序互相配合,组成了干支纪法.从殷墟出土的甲骨文来看,天干地支在我国古代主要用于纪日,此外还曾用来纪月.纪年.纪时等. 天干地支算法1 天干地支算法: 一.公元后的:天干:甲4 乙5 丙6 丁7 戊8 己9 庚0 辛1 壬2 癸3

PHP房贷计算器实例代码,等额本息,等额本金

实例如下: debx(); function debx() { $dkm = 240; //贷款月数,20年就是240个月 $dkTotal = 10000; //贷款总额 $dknl = 0.0515; //贷款年利率 $emTotal = $dkTotal * $dknl / 12 * pow(1 + $dknl / 12, $dkm) / (pow(1 + $dknl / 12, $dkm) - 1); //每月还款金额 $lxTotal = 0; //总利息 for ($i = 0; $

关于Windows 不能在 本地计算器 启动 Apache2(phpstudy)

在百度之后,看到有同鞋提示要修改\phpStudy\Apache2\conf\里的httpd.conf文件,代码如下 复制代码 代码如下: <VirtualHost *:80> ServerAdmin webmaster@163.com DocumentRoot "D:\www" ServerName ymywz.com Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from

PHP中使用数组实现堆栈数据结构的代码

在堆栈中,最后压入的数据(进栈),将会被最先弹出(出栈). 即在数据存储时采用"先进后出"的数据结构. PHP中,将数组当做一个栈,主要是使用array_push()和array_pop()两个系统函数来完成. 入栈主要是利用array_push()函数向第一个参数的数组尾部添加一个或多个元素,然后返回新数组的长度,示例如下: 复制代码 代码如下: <?php $zhan=array("WEB");//声明一个数组当做栈 array_push($zhan,&q

Java中使用数组实现栈数据结构实例

栈是Java语言中最重要的数据结构之一,它的实现,至少应该包括以下几个方法: 1.pop() 出栈操作,弹出栈顶元素. 2.push(E e) 入栈操作 3.peek() 查看栈顶元素 4.isEmpty() 栈是否为空 另外,实现一个栈,还应该考虑到几个问题: 1.栈的初始大小以及栈满以后如何新增栈空间 2.对栈进行更新时需要进行同步 简单示例,使用数组实现栈,代码如下: 复制代码 代码如下: public class Stack<E> { // Java 不支持泛型数组,如需使用,请使用J

php中显示数组与对象的实现代码

1. 使用 print_r ( $array/$var ) print 是打印的意思,而r则取自Array的单词,那么该函数的功能就是打印数组内容,它既可以打印数组内容,也可以打印普通的变量. print_r ($_REQUEST) ; print_r ($_GET) ; /* 打印使用GET方法传递的表单内容*/ print_r($_POST) ; /* 打印使用表单POST方法传递过的数组内容*/ 2. 使用 var_dump ($object/$array/$var) var 代表变量(V

javascript中利用数组实现的循环队列代码

//循环队列 function CircleQueue(size){ this.initQueue(size); } CircleQueue.prototype = { //初始化队列 initQueue : function(size){ this.size = size; this.list = new Array(); this.capacity = size + 1; this.head = 0; this.tail = 0; }, //压入队列 enterQueue : functio

JavaScript把数组作为堆栈使用的方法

本文实例讲述了JavaScript把数组作为堆栈使用的方法.分享给大家供大家参考.具体如下: JavaScript把数组作为堆栈使用的代码范例,支持堆栈常用的push和pop方法 <script type="text/javascript"> var numbers = ["one", "two", "three", "four"]; numbers.push("five")

Java语言实现数据结构栈代码详解

近来复习数据结构,自己动手实现了栈.栈是一种限制插入和删除只能在一个位置上的表.最基本的操作是进栈和出栈,因此,又被叫作"先进后出"表. 首先了解下栈的概念: 栈是限定仅在表头进行插入和删除操作的线性表.有时又叫LIFO(后进先出表).要搞清楚这个概念,首先要明白"栈"原来的意思,如此才能把握本质. "栈"者,存储货物或供旅客住宿的地方,可引申为仓库.中转站,所以引入到计算机领域里,就是指数据暂时存储的地方,所以才有进栈.出栈的说法. 实现方式是

浅析C语言编程中的数组越界问题

因为C语言不检查数组越界,而数组又是我们经常用的数据结构之一,所以程序中经常会遇到数组越界的情况,并且后果轻者读写数据不对,重者程序crash.下面我们来分析一下数组越界的情况: 1) 堆中的数组越界 因为堆是我们自己分配的,如果越界,那么会把堆中其他空间的数据给写掉,或读取了其他空间的数据,这样就会导致其他变量的数据变得不对,如果是一个指针的话,那么有可能会引起crash 2) 栈中的数组越界 因为栈是向下增长的,在进入一个函数之前,会先把参数和下一步要执行的指令地址(通过call实现)压栈,

C#中的数组作为参数传递所引发的问题

原则:尽可能控制对数据的修改,如果可以预测某个数据不会或不应该被改变,就要对其控制,而不要期望使用这个数据的调用者不会改变其值. 如果参数在使用过程中被意外修改,将会带来不可预知的结果,而且这种错误很难被检查到,所以我们在设计方法参数的时候,要充分考虑传递引用类型参数或者引用方式传递引用类型参数可能带来的后果. 如果一个数据在传递过程中不能被改变,就要在构建这个对象的时候就使其值(字段或属性)不被改变. 一.对于简单的参数的控制 1.值类型参数传递 这种情况因为传递的是参数的副本,不影响原始值,

Javascript中的数组常用方法解析

前言 Array是Javascript构成的一个重要的部分,它可以用来存储字符串.对象.函数.Number,它是非常强大的.因此深入了解Array是前端必修的功课.周五啦,博主的心又开始澎湃了,明儿个周末有木有,又可以愉快的玩耍了. 创建数组 创建数组的基本方式有两种,一种字面量,另一种使用构造函数创建: var arr = [1,2,3]; //字面量的形式创建数组 值与值之间用英文逗号隔开 var arr = [1,2,3]; //字面量的形式创建数组 值与值之间用英文逗号隔开 var ar

Java中的数组基础知识学习教程

数字 通常情况下,当我们处理数字时,使用原始数据类型,如 byte,int,long,double 等. 示例 int i = 5000; float gpa = 13.65; byte mask = 0xaf; 然而,在开发中,我们会遇到需要使用对象而不是原始数据类型的情况.为了实现这个, Java 为每个原始数据类型提供包装类. 所有的包装类 (Integer, Long, Byte, Double, Float, Short) 是抽象类 Number 的子类. 这种包装是由编译器处理,这个