实训项目:PHP计算器功能程序实现

简介:   设计一个网页,让用户输人一个运算式,采用下拉列表提供“加、减、乘、除、模(%)”至少4种运算符。当用户单击“求值”按钮时,自动计算结果并显示出提示信息(可以是弹框显示结果,也可以是在浏览器的页面显示结果。

 🧮 题目要求

      设计一个网页,让用户输人一个运算式,采用下拉列表提供“加、减、乘、除、模(%)”至少4种运算符。当用户单击“求值”按钮时,自动计算结果并显示出提示信息(可以是弹框显示结果,也可以是在浏览器的页面显示结果,有时间的同学把程序UI界面设计一些样式效果,做漂亮一点)。

     实训目的:

     1.掌握各种流程控制语句的综合应用;

     2.熟练掌握PHP自定义函数的灵活运用方法。

效果图如下所示

image.gif

image.gif

🧮 html代码

<!DOCTYPE html><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width, initial-scale=1.0"><metahttp-equiv="Content-Type"content="text/html; charset=utf-8"/><title>Document</title></head><body><divclass="box1"><h1>简易计算器</h1><fieldset><legend>操作面板</legend><formaction=""method="post"id="form1"name="form1"><p>输入数据</p><p><inputtype="text"id="num1"name="num1"placeholder="请输入第一个数"></p><p><inputtype="text"id="num2"name="num2"placeholder="请输入第二个数"></p><p>选择运算符</p><p><selectname="s1"id="s1"><optionvalue="+">+</option><optionvalue="-">-</option><optionvalue="*">*</option><optionvalue="/">/</option><optionvalue="%"selected="selected">%</option></select></p><p><inputtype="submit"id="send"name="send"value="点击计算"style="margin-right: 20px;"><inputtype="reset"id="clean"name="clean"value="清空数字"></p></form><divclass="anwser"><fieldsetstyle="height: 170px;"><legend>计算结果:</legend></fieldset></div></fieldset><divclass="box2"><divclass="box_bottom"style="color:#b2b0b0;font-weight: bolder;font-family: Courier New">© <spanstyle="letter-spacing: 1.5px;font-size: 1.6rem;;">2022 GHW・WebSite</span></div></div></div></body></html>

image.gif

🧮 css代码

body    {
background: #000;
color: #fff;
    }
.box1    {
position: relative;
width: 31.25rem;
height:28rem;
border: 0.425remdouble#ccc;
margin: 0auto;
top: 6.25rem;
box-shadow: 0.625rem0.625rem1.25rem0.3125remrgb(93, 93, 93);
padding: 20px;
    }
h1    {
text-align: center;
color: #fff;
    }
input:hover  {
background-color: #000;
color: #fff;
border:1pxsolid#fff;
transition: .8s;
  }
.box2    {
margin: 0auto;
width: 300px;
height: 50px;
/* border: 1px solid #fff; */margin-top: 40px;
    }
.anwser    {
position: absolute;
width: 200px;
height: 200px;
border: 1pxsolid#fff;
top: 150px;
left: 280px;
padding: 5px;
    }

image.gif

🧮 php代码

<?php@$num1=$_POST["num1"];
@$num2=$_POST["num2"];
if (isset($num1) &&isset($num2)) {
if (empty($num1)) {
// echo "<script>alert('第一个数不能为空')</script>";echo"第一个数不能为空<br>";
    }
if (empty($num2)) {
// echo "<script>alert('第二个数不能为空')</script>";echo"第二个数不能为空<br>";
    }
if (!is_numeric($num1)) {
// echo "<script>alert('第一个空请输入有效数字')</script>";echo"第一个空请输入有效数字<br>";
    }
if (!is_numeric($num2)) {
// echo "<script>alert('第二个空请输入有效数字')</script>";echo"第二个空请输入有效数字<br>";
    }
if (isset($_POST["send"]) &&!empty($_POST["send"])) {
$s1=$_POST["s1"];
functionf1($num1, $num2, $s1) {
if (is_numeric($num1) &&is_numeric($num2)) {
$jg=0;
$s1=$_POST["s1"];
$str="";
for ($i=0; $i<5; $i++) {@$str. =$s1[$i];
                }
if ($str=='+') {
$jg=$num1+$num2;
                } elseif ($str=='-') {
$jg=$num1-$num2;
                } elseif ($str=='*') {
$jg=$num1*$num2;
                } elseif ($str=='/') {
if ($num2==0) {
// echo "<script>alert('0不能作为除数使用')</script>";echo"0不能作为除数使用<br>";
                    }@$jg=$num1/$num2;
                }
echo"{$num1}{$str}{$num2}={$jg}";
            }
        }
f1($num1, $num2, $s1);
    }
}
?>

image.gif

🧮 完整代码

<!DOCTYPE html><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width, initial-scale=1.0"><metahttp-equiv="Content-Type"content="text/html; charset=utf-8"/><title>Document</title><style>body    {
background: #000;
color: #fff;
    }
.box1    {
position: relative;
width: 31.25rem;
height:28rem;
border: 0.425remdouble#ccc;
margin: 0auto;
top: 6.25rem;
box-shadow: 0.625rem0.625rem1.25rem0.3125remrgb(93, 93, 93);
padding: 20px;
    }
h1    {
text-align: center;
color: #fff;
    }
input:hover  {
background-color: #000;
color: #fff;
border:1pxsolid#fff;
transition: .8s;
  }
.box2    {
margin: 0auto;
width: 300px;
height: 50px;
/* border: 1px solid #fff; */margin-top: 40px;
    }
.anwser    {
position: absolute;
width: 200px;
height: 200px;
border: 1pxsolid#fff;
top: 150px;
left: 280px;
padding: 5px;
    }
</style></head><body><divclass="box1"><h1>简易计算器</h1><fieldset><legend>操作面板</legend><formaction=""method="post"id="form1"name="form1"><p>输入数据</p><p><inputtype="text"id="num1"name="num1"placeholder="请输入第一个数"></p><p><inputtype="text"id="num2"name="num2"placeholder="请输入第二个数"></p><p>选择运算符</p><p><selectname="s1"id="s1"><optionvalue="+">+</option><optionvalue="-">-</option><optionvalue="*">*</option><optionvalue="/">/</option><optionvalue="%"selected="selected">%</option></select></p><p><inputtype="submit"id="send"name="send"value="点击计算"style="margin-right: 20px;"><inputtype="reset"id="clean"name="clean"value="清空数字"></p></form><divclass="anwser"><fieldsetstyle="height: 170px;"><legend>计算结果:</legend><?php@$num1 = $_POST["num1"];@$num2 = $_POST["num2"];if (isset($num1) && isset($num2)) {if (empty($num1)) {// echo "<script>alert('第一个数不能为空')</script>";echo "第一个数不能为空<br>";}if (empty($num2)) {// echo "<script>alert('第二个数不能为空')</script>";echo "第二个数不能为空<br>";}if (!is_numeric($num1)) {// echo "<script>alert('第一个空请输入有效数字')</script>";echo "第一个空请输入有效数字<br>";}if (!is_numeric($num2)) {// echo "<script>alert('第二个空请输入有效数字')</script>";echo "第二个空请输入有效数字<br>";}if (isset($_POST["send"]) && !empty($_POST["send"])) {$s1 = $_POST["s1"];function f1($num1, $num2, $s1) {if (is_numeric($num1) && is_numeric($num2)) {$jg = 0;$s1 = $_POST["s1"];$str = "";for ($i = 0; $i < 5; $i++) {@$str. = $s1[$i];}if ($str == '+') {$jg = $num1 + $num2;} else if ($str == '-') {$jg = $num1 - $num2;} else if ($str == '*') {$jg = $num1 * $num2;} else if ($str == '/') {if ($num2 == 0) {// echo "<script>alert('0不能作为除数使用')</script>";echo "0不能作为除数使用<br>";}@$jg = $num1 / $num2;}echo "{$num1}{$str}{$num2}={$jg}";}}f1($num1, $num2, $s1);}}?></fieldset></div></fieldset><divclass="box2"><divclass="box_bottom"style="color:#b2b0b0;font-weight: bolder;font-family: Courier New">© <spanstyle="letter-spacing: 1.5px;font-size: 1.6rem;;">2022 GHW・WebSite</span></div></div></div></body></html>

image.gif

🧮 实现效果

image.gif

相关文章
|
1月前
|
Web App开发 安全 PHP
刚上线的PHP项目被攻击了怎么办
近期因忙于多个项目,代码质量有所疏忽,导致项目上线后遭攻击。攻击者通过文件上传漏洞和测试登录方式入侵,修改了 index.php 并植入恶意文件。经排查,问题源于未限制上传文件类型及未关闭测试登录配置。修复措施包括锁定文件、限制上传后缀、关闭测试登录、删除高危用户并限制其访问。此次事件提醒我们,细节疏漏可能引发严重风险,需时刻保持警惕。
|
1月前
|
存储 小程序 Java
热门小程序源码合集:微信抖音小程序源码支持PHP/Java/uni-app完整项目实践指南
小程序已成为企业获客与开发者创业的重要载体。本文详解PHP、Java、uni-app三大技术栈在电商、工具、服务类小程序中的源码应用,提供从开发到部署的全流程指南,并分享选型避坑与商业化落地策略,助力开发者高效构建稳定可扩展项目。
|
3月前
|
JavaScript Linux PHP
composer如何安装以及举例在PHP项目中使用Composer安装TCPDF库-优雅草卓伊凡
composer如何安装以及举例在PHP项目中使用Composer安装TCPDF库-优雅草卓伊凡
142 3
composer如何安装以及举例在PHP项目中使用Composer安装TCPDF库-优雅草卓伊凡
|
3月前
|
存储 缓存 安全
php项目源码加密之Zend Guard Loader加密的代码解密可能性很小-优雅草卓伊凡
php项目源码加密之Zend Guard Loader加密的代码解密可能性很小-优雅草卓伊凡
134 2
|
3月前
|
PHP
Composer在PHP项目中的手动类自动加载策略
为了确保文件名和类名的一致性及其可预测性,类名通常应该与文件名相匹配,所有的类都应属于一个命名空间,并且目录结构应该反映命名空间的结构。如此一来,当新的类被创建时,它们会自动遵守已有的约定,从而无需修改自动加载逻辑,确保了代码的模块化和可管理性。
51 8
|
4月前
|
安全 API PHP
Composer在现代PHP项目中的进阶实践
简介:本文深入探讨PHP依赖管理工具Composer的核心功能与企业实践。首先介绍其如何通过`composer.json`实现声明式依赖管理,变革PHP生态;接着解析自动加载优化、版本策略(如`~`和`^`)及私有仓库集成等关键特性;然后分享CI/CD集成、多环境配置与性能优化技巧(如阿里云镜像加速)的企业级方案;最后提供常见问题排查方法,如内存不足和依赖冲突解决,助力开发者高效管理项目依赖。
96 3
|
7月前
|
数据库连接 PHP 数据库
【YashanDB知识库】PHP使用ODBC使用数据库绑定参数功能异常
【YashanDB知识库】PHP使用ODBC使用数据库绑定参数功能异常
|
PHP 数据库
PHP项目学习1
最近在学习PHP,看了《轻松学PHP》,2天看完,学习了很多基础知识,可是没有出什么成果。然后看《PHP项目开发全程实录》,里面讲到一个online影视365网,刚好有一个朋友也要使用PHP做一个视频类的网站,所以我就用这个项目来练练。
1328 0
|
PHP
PHP项目学习2
通过《PHP项目学习1》基本上可以了解项目的大致结构、内容,现在直接从代码入手,开始coding吧。 现在部署环境中建立一个myonline的文件夹,便于放置我们的项目
875 0
|
1月前
|
关系型数据库 MySQL PHP
PHP和Mysql前后端交互效果实现
本文介绍了使用PHP连接MySQL数据库的基本函数及其实现案例。内容涵盖数据库连接、选择数据库、执行查询、获取结果等常用操作,并通过用户登录和修改密码的功能实例,展示了PHP与MySQL的交互过程及代码实现。
176 0
PHP和Mysql前后端交互效果实现