这篇文章主要围绕php实现简单四则运算器和运算符php展开,旨在为您提供一份详细的参考资料。我们将全面介绍php实现简单四则运算器的优缺点,解答运算符php的相关问题,同时也会为您带来C#四则运算器(
这篇文章主要围绕php实现简单四则运算器和运算符php展开,旨在为您提供一份详细的参考资料。我们将全面介绍php实现简单四则运算器的优缺点,解答运算符php的相关问题,同时也会为您带来C# 四则运算器(多态方法实现)、C#实现的简单整数四则运算计算器功能示例、C++实现能四则运算计算器、JAVA 实现四则运算的简单计算器的实用方法。
本文目录一览:php实现简单四则运算器(运算符php)
本文实例为大家分享了php实现简单四则运算器的具体代码,供大家参考,具体内容如下
前端代码 :
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>php计算器</title> </head> <body> <form name="form" method="post" action="phpjisuan.php"> 请输入num1:<input type="text" name="num1"></br></br> 请选择运算符:<select name="sel"> <option value="+">+</option> <option value="-">-</option> <option value="*">*</option> <option value="/">/</option> <option value="%">%</option> </select></br></br> 请输入num2:<input type="text" name="num2"></br></br> <input type="submit" name="Submit" value="计算"> <input type="reset" name="Reset" value="重置"> </form> </body> </html>
后台:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>php计算器</title> <?php $num1=$_POST["num1"]; $num2=$_POST["num2"]; $sel=$_POST["sel"]; ?> </head> <body> <?php if($sel=="+"){ $num=$num1+$num2; } else if($sel=="-"){ $num=$num1-$num2; } else if($sel=="*"){ $num=$num1*$num2; } else if($sel=="/"){ if($num2!=0){ $num=$num1/$num2; }else{ echo "除数不能为0"; } } else if($sel=="%"){ if($num2!=0){ $num=$num1%$num2; }else{ echo "除数不能为0"; } } if(isset($num)){ echo "运算结果为$num"; } ?> </body> </html>
效果图1:
效果图2:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
- PHP 使用位运算实现四则运算的代码
- PHP实现的简单四则运算计算器功能示例
- 用PHP实现的四则运算表达式计算实现代码
C# 四则运算器(多态方法实现)
在上一节 C# 课上,我们学习了用类的继承的方式来做一个四则运算器,然而老师的代码在课上演示的效果并不理想,而且没有使用多态的思想实现,今天我们就来用多态的方式实现四则运算器。
1. 题目及要求
2. Arithmetic 类的实现
在实现 Arithmetic 类之前,我们需要一个类库,类库的创建方法如下:
打开 VisualStidio,新建 -- 项目 -- 在 c# 一栏中选中类库
我们将我们的类库命名为 MyClassLibrary1,当然你也可以根据自己的喜好命名
进入类库后,将 c# 文件重命名为 Airthmetic,并开始编写代码
Aeithmetic.cs 具体代码如下:
1 using System;
2
3 namespace MyClassLibrary1
4 {
5 public class Arithmetic //声明算术运算类
6 {
7 private double num1;
8 private double num2; //设置两个操作数
9 //声明两个操作数的索引
10 public double Num1
11 {
12 get
13 {
14 return num1;
15 }
16 set
17 {
18 num1 = value;
19 }
20 }
21 public double Num2
22 {
23 get
24 {
25 return num2;
26 }
27 set
28 {
29 num2 = value;
30 }
31 }
32 //声明Airthmetic类的计算值方法
33 public virtual string GetResult()
34 {
35 return "两数没有做任何算术运算";
36 }
37 //检查输入的数据是否符合规范
38 public static bool CheckNum(string s1, string s2)
39 {
40 double num;
41 bool flag; //声明标志变量flag
42 if (!double.TryParse(s1, out num))
43 flag = false; //当第一个数字不合规范时,flag为假
44 else if (!double.TryParse(s2, out num))
45 flag = false; //第二个数字不合规范时,flag为假
46 else flag = true; //当两个数字都符合规范时,flag为真
47 return flag;
48 }
49 }
50
51 public class NumAdd:Arithmetic //声明加法运算类
52 {
53 //重载父类中的计算值方法
54 public override string GetResult()
55 {
56 string result = "两数相加的结果为:";
57 double num = Num1 + Num2; //计算两个数的和
58 result += Convert.ToString(num); //将计算结果转换为字符串
59 return result;
60 }
61 }
62
63 public class NumSub : Arithmetic //声明减法运算类
64 {
65 //重载父类中的计算值方法
66 public override string GetResult()
67 {
68 string result = "两数相减的结果为:";
69 double num = Num1 - Num2; // 计算两个数的差
70 result += Convert.ToString(num); // 将计算结果转换为字符串
71 return result;
72 }
73 }
74
75 public class NumMul : Arithmetic //声明乘法运算类
76 {
77 //重载父类中的计算值方法
78 public override string GetResult()
79 {
80 string result = "两数相乘的结果为:";
81 double num = Num1 * Num2; //计算两个数的积
82 result += Convert.ToString(num); //将计算结果转换为字符串
83 return result;
84 }
85 }
86
87 public class NumDiv : Arithmetic //声明除法运算类
88 {
89 //重载父类中的计算值方法
90 public override string GetResult()
91 {
92 string result = "两个数相除的结果为:";
93 double num = Num1 / Num2; //计算两个数的商
94 result += Convert.ToString(num); //将计算结果转换为字符串
95 return result;
96 }
97 }
98 }
在编写完代码之后,我们在菜单栏上点击 生成 -- 生成解决方案即可保存类库
生成后的结果如下:
请记住生成的路径名,我们在等下引用此类库时要用到
1. 连接到类库
首先,我们创建一个 c# 窗口程序
然后,我们需要将刚才创建的类库引用到这个项目中去(直接在项目里面新建类的就不需要)
对你的项目右键 -- 添加 -- 引用
然后点击 浏览,在生成的路径里找到你的类库并添加
之后我们再在代码里加入 using MyClassLibrary1; 便可以正常使用类库了
当然,如果你嫌创建和引用类库过于麻烦,你也可以像 java 一样直接在项目里新建类,这里只是提供一下类库的创建和连接!
1. 窗体应用程序的具体实现
接下来,让我们回到窗体应用程序的实现中来,在创建了窗体应用程序后,右手边会出现一个可视化界面,将要用的控件拖到合适位置并右键 -- 属性对他们的名字和文本进行改变
这里提供我的界面布局和命名(命名用红字标出)
然后我们双击确定按钮进入编程界面。
Form1.cs 具体代码如下:
1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Data;
5 using System.Drawing;
6 using System.Linq;
7 using System.Text;
8 using System.Threading.Tasks;
9 using System.Windows.Forms;
10 using MyClassLibrary1;
11
12 namespace cs四则运算器2018_1023
13 {
14 public partial class Form1 : Form
15 {
16 public Form1()
17 {
18 InitializeComponent();
19 this.Text = "四则运算工具"; //声明标题文字
20 }
21
22 private void ButtonSubmit_Click(object sender, EventArgs e)
23 {
24 string a = textBoxNum1.Text; //获取操作数A的字符串
25 string b = textBoxNum2.Text; //获取操作数B的字符串
26 if (!Arithmetic.CheckNum(a, b)) //当数字不符合规范时,打印警告信息并退出
27 {
28 MessageBox.Show("请输入符合规范的数字!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
29 return;
30 }
31
32
33 Arithmetic ari = new Arithmetic(); //声明一个Arithmetic类实例。
34
35 //根据单选控件选中的值来决定使用哪一个子类来初始化
36 if (RadioAdd.Checked)
37 ari = new NumAdd();
38 if (RadioSub.Checked)
39 ari = new NumSub();
40 if (RadioMul.Checked)
41 ari = new NumMul();
42 if (RadioDiv.Checked)
43 ari = new NumDiv();
44
45 ari.Num1 = Convert.ToDouble(a);
46 ari.Num2 = Convert.ToDouble(b); //将两个操作数赋值给实例ari
47 LabelResult.Text = ari.GetResult(); //将结果转换为字符串
48 }
49 }
50 }
运行结果如下:
C#实现的简单整数四则运算计算器功能示例
本文实例讲述了C#实现的简单整数四则运算计算器功能。分享给大家供大家参考,具体如下:
运行效果图如下:
具体代码如下:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace 计算器 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } public string num; public int flag;//用于判断输入的操作符 public double num1,num2; private void num0_button_Click(object sender,EventArgs e) { num = num + "0"; num2 = Convert.Todouble(num); textBox.Text = num; } private void num1_button_Click(object sender,EventArgs e)//重点算法1 { if (textBox.Text == "0") { num = "1"; textBox.Text = Convert.ToString(num); } else { num = num + "1"; num2 = Convert.Todouble(num); textBox.Text = num; } } private void num2_button_Click(object sender,EventArgs e) { if (textBox.Text == "0") { num = "2"; textBox.Text = Convert.ToString(num); } else { num = num + "2"; num2 = Convert.Todouble(num); textBox.Text = num; } } private void num3_button_Click(object sender,EventArgs e) { if (textBox.Text == "0") { num = "3"; textBox.Text = Convert.ToString(num); } else { num = num + "3"; num2 = Convert.Todouble(num); textBox.Text = num; } } private void num4_button_Click(object sender,EventArgs e) { if (textBox.Text == "0") { num = "4"; textBox.Text = Convert.ToString(num); } else { num = num + "4"; num2 = Convert.Todouble(num); textBox.Text = num; } } private void num5_button_Click(object sender,EventArgs e) { if (textBox.Text == "0") { num = "5"; textBox.Text = Convert.ToString(num); } else { num = num + "5"; num2 = Convert.Todouble(num); textBox.Text = num; } } private void num6_button_Click(object sender,EventArgs e) { if (textBox.Text == "0") { num = "6"; textBox.Text = Convert.ToString(num); } else { num = num + "6"; num2 = Convert.Todouble(num); textBox.Text = num; } } private void num7_button_Click(object sender,EventArgs e) { if (textBox.Text == "0") { num = "7"; textBox.Text = Convert.ToString(num); } else { num = num + "7"; num2 = Convert.Todouble(num); textBox.Text = num; } } private void num8_button_Click(object sender,EventArgs e) { if (textBox.Text == "0") { num = "8"; textBox.Text = Convert.ToString(num); } else { num = num + "8"; num2 = Convert.Todouble(num); textBox.Text = num; } } private void num9_button_Click(object sender,EventArgs e) { if (textBox.Text == "0") { num = "9"; textBox.Text = Convert.ToString(num); } else { num = num + "9"; num2 = Convert.Todouble(num); textBox.Text = num; } } private void add_button_Click(object sender,EventArgs e)//重点算法2 { if (textBox.Text.Length > 0) { num1 = Convert.Todouble(textBox .Text); num = ""; flag = 1; textBox.Text = ""; textBox.Focus(); } } private void dev_button_Click(object sender,EventArgs e) { if (textBox.Text.Length > 0) { num1 = Convert.Todouble(textBox.Text); num = ""; flag = 2; textBox.Text = ""; textBox.Focus(); } } private void mul_button_Click(object sender,EventArgs e) { if (textBox.Text.Length > 0) { num1 = Convert.Todouble(textBox.Text); num = ""; flag = 3; textBox.Text = ""; textBox.Focus(); } } private void chu_button_Click(object sender,EventArgs e) { if (textBox.Text.Length > 0) { num1 = Convert.Todouble(textBox.Text); num = ""; flag = 4; // textBox.Text = ""; textBox.Focus(); } } private void equ_button_Click(object sender,EventArgs e) { switch (flag) { case 1: textBox.Text = Convert.ToString(num1+Convert .Todouble(num));//重点算法3 num2 = Convert.Todouble(textBox .Text); break; case 2: textBox.Text = Convert.ToString(num1 - Convert.Todouble(num)); num2 = Convert.Todouble(textBox.Text); break; case 3: textBox.Text = Convert.ToString(num1 * Convert.Todouble(num)); num2 = Convert.Todouble(textBox.Text); break; case 4: textBox.Text = Convert.ToString(num1 / Convert.Todouble(num)); num2 = Convert.Todouble(textBox.Text); break; } } private void re_button_Click(object sender,EventArgs e) { num = ""; textBox.Text = "0"; } } }
PS:这里再为大家推荐几款计算工具供大家进一步参考借鉴:
在线一元函数(方程)求解计算工具:
http://tools.jb51.net/jisuanqi/equ_jisuanqi
科学计算器在线使用_高级计算器在线计算:
http://tools.jb51.net/jisuanqi/jsqkexue
在线计算器_标准计算器:
http://tools.jb51.net/jisuanqi/jsq
更多关于C#相关内容感兴趣的读者可查看本站专题:《C#数据结构与算法教程》、《C#程序设计之线程使用技巧总结》、《C#常见控件用法教程》、《WinForm控件用法总结》、《C#数组操作技巧总结》及《C#面向对象程序设计入门教程》
希望本文所述对大家C#程序设计有所帮助。
C++实现能四则运算计算器
#include <iostream>
#include <string>
#include <cmath>
#include <deque>
using namespace std;
#define LENGTH 61440 //60KB
bool isNo(char c) //is Number
{
return c >= ''0'' && c <= ''9'' || c == ''.'';
}
bool isSyb(const char* c)//is Symbol
{
return (*c == ''+'' || *c == ''-'' || *c == ''*'' || *c == ''/'') && strlen(c) == 1; //ver1.2
}
bool isSyb(char c)//is Symbol
{
return c == ''+'' || c == ''-'' || c == ''*'' || c == ''/'';
}
bool isIlg(char c) //is illegal
{
return !isNo(c) && !isSyb(c) && !(c == ''('' || c == '')'' || c == '' '');
}
const char* GetSubtext(const char* S,size_t bgn,size_t end) //follow "left-inclusive interval"
{
char* subtext = new char[end - bgn + 1];
subtext[end - bgn] = ''\0'';
for (size_t i = bgn; i != end; i++)
subtext[i - bgn] = S[i];
return subtext;
}
const char* calc(const char* S,size_t len)
{
deque<string> words;
bool inNo = false; //door for isNo
//bool inSyb = false; //door for isSyb
size_t NoPos = 0;
//size_t SybPos = 0;
size_t ParPos = 0, ParDep = 0;
for (size_t i = 0; i <= len; i++) //build standard formula
{
if(isIlg(S[i]) && i != len) //formula illegal checking
{
return "The formula is illegal!";
//exit(1);
}
if (isNo(S[i]) && !inNo) //Number postion begin
{
inNo = true;
NoPos = i;
}
if (!isNo(S[i]) && inNo) //Number postion end
{
inNo = false;
words.push_back(GetSubtext(S,NoPos,i));
}
if (isSyb(S[i])/* && !inSyb*/)
{
/*
inSyb = true;
SybPos = i;
*/
words.push_back(GetSubtext(S,i,i + 1));
}
/*
if (!isSyb(S[i]) && inSyb)
{
inSyb = false;
words.push_back(GetSubtext(S,SybPos,i));
}*/
if (S[i] == ''('')
{
//inPar = true;
ParDep++;
ParPos = i + 1; //left-inclusive interval
size_t j;
for (j= i + 1; ParDep && j <= len; j++)
{
if (S[j] == ''('') ParDep++;
if (S[j] == '')'') ParDep--;
}
if (j <= len)
{
string recResult(calc(GetSubtext(S,ParPos,j - 1),strlen(GetSubtext(S,ParPos,j - 1))));
if (recResult == "The formula is illegal!")
return "The formula is illegal!";
else if (recResult == "Parentheses is not match!")
return "Parentheses is not match!";
else
words.push_back(recResult);
}
else
{
//parentheses is not match
return "Parentheses is not match!";
}
i = j; //jump over subtext
}
if (S[i] == '')'')
return "Parentheses is not match!";
} //end for
long double tempResult = 0;
static char CtmpResult[50];
//check formula
if (words.size() == 0) return "0."; // 0 element
if (words.size() == 1 ) //1 element
if( !isSyb(words.front().c_str()))
{
strcpy_s(CtmpResult,words.front().c_str());
return CtmpResult;
}
else
return "The formula is illegal!";
if (words.front() == "*" || words.front() == "/") //front is symble
return "The formula is illegal!";
if (words.front() == "+" || words.front() == "-")
{
if (!isSyb((words.begin() + 1) -> c_str()))
{
words.front() += *(words.begin() + 1);
words.erase(words.begin() + 1); //erase second one
}
else
return "The formula is illegal!";
}
if (isSyb(words.back().c_str()))
return "The formula is illegal!";
for (deque<string>::iterator i = words.begin() + 1; i < words.end(); i++)
{
if ((*i == "*" || *i == "/") && (isSyb((i-1) -> c_str())) && strlen((i-1) -> c_str()))
return "The formula is illegal!";
if ((*i == "+" || *i == "-") && (isSyb((i-1) -> c_str())) && strlen((i-1) -> c_str()))
if(!isSyb(*((i+1) -> c_str())))
{
*(i + 1) = *i + *(i + 1);
i = words.erase(i);
}
else
return "The formula is illegal!";
}
//start calculate
for (deque<string>::iterator i = words.begin(); i != words.end(); i++)
{
//calculate * and /
if (*i == "*")
{
tempResult = atof((i-1) -> c_str()) * atof((i+1) -> c_str());
_gcvt_s(CtmpResult,tempResult,47);//double to string
i = words.erase(i - 1);
i = words.erase(i);
*i = CtmpResult;
}
if (*i == "/")
{
tempResult = atof((i-1) -> c_str()) / atof((i+1) -> c_str());
_gcvt_s(CtmpResult,tempResult,47); //double to string
i = words.erase(i - 1);
i = words.erase(i);
*i = CtmpResult;
}
}
for (deque<string>::iterator i = words.begin(); i != words.end(); i++)
{
//calculate + and -
if (*i == "+")
{
tempResult = atof((i-1) -> c_str()) + atof((i+1) -> c_str());
_gcvt_s(CtmpResult,tempResult,47); //double to string
i = words.erase(i - 1);
i = words.erase(i);
*i = CtmpResult;
}
if (*i == "-")
{
tempResult = atof((i-1) -> c_str()) - atof((i+1) -> c_str());
_gcvt_s(CtmpResult,tempResult,47);//double to string
i = words.erase(i - 1);
i = words.erase(i);
*i = CtmpResult;
}
}
strcpy_s( CtmpResult, words.front().c_str());
return CtmpResult;
}
void main(int argc,char* argv[])
{
if (argc > 1)
{
cout<<argv[1]<<ends<<''=''<<ends<<calc(argv[1],strlen(argv[1]))<<endl;
}
else
{
cout<<"请输入公式,如需退出请按CTRL + C。\nVER1.3 design by zuozhiwen.\n";
char S[LENGTH];
while(1)
{
cin.getline(S,LENGTH);
cout<<calc(S,strlen(S))<<endl;
}
}
}
JAVA 实现四则运算的简单计算器
开发环境 eclipse java neon.
今天用 JAVA 的 swing 界面程序设计制作了一个四则运算的简易计算器。代码以及截图如下:
代码的缩进格式复制后没有了缩进,看起来有点难受哈哈哈哈
computer.java:
/////////////////////////////////////////
//
// 开发者:
//
// 简介:实现四则运算的简易计算器
//
////////////////////////////////////////
/*
* 用 swing 图形用户界面实现计算器的设计
* 同时练习在线文档注释的使用方法
*
* @author linruier
* @version 1.0
* @since J2SE1.8
*/
import javax.swing.JButton;
import java.awt.Graphics;
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JTextField;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import javax.swing.JPanel;
import java.awt.Font;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class computer extends JFrame
{
computer()
{
super ("简易计算器");
Font f=new Font ("黑体",30,30);
JTextField jt1=new JTextField(null);
JTextField jt2=new JTextField(null);
jt1.setFont(f);
jt2.setFont(f);
jt1.setHorizontalAlignment(JTextField.RIGHT);
jt2.setHorizontalAlignment(JTextField.RIGHT);
Container c=getContentPane();
c.setLayout(new FlowLayout(FlowLayout.LEFT,5,5));
c.add(jt1);
c.add(jt2);
jt1.setPreferredSize(new Dimension(370,70));
jt2.setPreferredSize(new Dimension(370,75));
jt1.setEditable(false);jt2.setEditable(false);
JButton jb[]=new JButton[16];
for(int j=0;j<16;j++)
{
jb[j]=new JButton();
jb[j].setBackground(Color.WHITE);
jb[j].setFocusable(false);
jb[j].setPreferredSize(new Dimension(90,90));
jb[j].setFont(f);
c.add(jb[j]);
}
this.setResizable(false);
// 对各个按钮的名称赋值
jb[0].setText("+");jb[1].setText("-");jb[2].setText("*");jb[3].setText("/");
jb[4].setText("1");jb[5].setText("2");jb[6].setText("3");jb[7].setText("C");jb[7].setBackground(Color.ORANGE);
jb[8].setText("4");jb[9].setText("5");jb[10].setText("6");jb[11].setText("0");
jb[12].setText("7");jb[13].setText("8");jb[14].setText("9");jb[15].setText("=");
JButton Button_num[]={jb[4],jb[5],jb[6],jb[8],jb[9],jb[10],jb[11],jb[12],jb[13],jb[14]};
for(int i=0;i<Button_num.length;i++)
{
Button_num[i].addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
JButton action_Button=(JButton)e.getSource();
jt2.setText(jt2.getText()+action_Button.getText());
}
}
);
}
for(int j=0;j<4;j++)
{
jb[j].addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String s=jt2.getText();
char ch=s.charAt(s.length()-1);
if(ch==''+''||ch==''-''||ch==''*''||ch==''/'')((JButton)e.getSource()).setEnabled(false);
else
{
jt1.setText(jt2.getText());
jt2.setText(((JButton)e.getSource()).getText());
}
}
}
);
}
jb[7].addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
jt1.setText(null);jt2.setText(null);
}
}
);
jb[15].addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
try
{
String Calculate_String=jt1.getText()+jt2.getText();
int result=calculation.result(Calculate_String);
jt1.setText(null);
jt2.setText(Integer.toString(result));
}
catch(ArithmeticException ex)
{
jt1.setText(null);jt2.setText("ERROR");
}
}
}
);
}
public static void main(String args[])
{
computer app=new computer();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
app.setSize(400,580);
app.setVisible(true);
}
}
// 再定义一个计算类 calculation.java:
public class calculation {
calculation(){};
boolean is_operator(char ch)
{
if(ch==''+''||ch==''-''||ch==''*''||ch==''/'')return true;
else return false;
}
static int result(String s)
{
String ch[]={"+","-","*","/"};
int i=0;int index;
while(s.indexOf(ch[i])==-1&&i<4){i++;}
if(i==4)return -1;
else index=s.indexOf(ch[i]);
String s1=s.substring(0, index);
String s2=s.substring(index+1, s.length());
if(i==0)return Integer.parseInt(s1)+Integer.parseInt(s2);
if(i==1)return Integer.parseInt(s1)-Integer.parseInt(s2);
if(i==2)return Integer.parseInt(s1)*Integer.parseInt(s2);
if(i==3&&Integer.parseInt(s2)!=0)return Integer.parseInt(s1)/Integer.parseInt(s2);
else if(i==3&&Integer.parseInt(s2)==0){throw new ArithmeticException();}
return -1;
}
}
最后运行就可以实现一个十分简洁的小计算器:
关于php实现简单四则运算器和运算符php的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于C# 四则运算器(多态方法实现)、C#实现的简单整数四则运算计算器功能示例、C++实现能四则运算计算器、JAVA 实现四则运算的简单计算器的相关知识,请在本站寻找。
本文标签: