编程实现计算器
‘壹’ c语言设计一个简单的计算器程序
#include<stdio.h>//计算器
voidmenu()//自定义的菜单界面
{
printf("--------------------\n");
printf("请输入你的选择\n");
printf("1.+\n");
printf("2.-\n");
printf("3.*\n");
printf("4./\n");
printf("--------------------\n");
}
intmain()
{
inti=0;
intj=0;
intnum=0;//计算结果存放在nun
intselect=0;//选择的选项存放在select
do//do-while先执行再判断循环条件,即可实现重复计算功能
{
menu();//打印出菜单界面
scanf("%d",&select);//输入你的选项
printf("请输入计算值:");
scanf("%d%d",&i,&j);//输入要计算的数值
switch(select)
{
case1:
printf("%d+%d=%d\n",i,j,num=i+j);//实现加法功能
break;
case2:
printf("%d-%d=%d\n",i,j,num=i-j);//实现减法功能
break;
case3:
printf("%d*%d=%d\n",i,j,num=i*j);//实现乘法功能
break;
case4:
printf("%d-%d=%d\n",i,j,num=i/j);//实现除法功能
break;
default:
printf("输入有误重新选择");
break;
}
}while(select);
return0;
}
运行结果:

(1)编程实现计算器扩展阅读:
return表示把程序流程从被调函数转向主调函数并把表达式的值带回主调函数,实现函数值的返回,返回时可附带一个返回值,由return后面的参数指定。
return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。
‘贰’ 用c语言编写一个简单计算器程序
#include<stdio.h>//计算器
voidmenu()//自定义的菜单界面
{
printf("--------------------\n");
printf("请输入你的选择\n");
printf("1.+\n");
printf("2.-\n");
printf("3.*\n");
printf("4./\n");
printf("--------------------\n");
}
intmain()
{
inti=0;
intj=0;
intnum=0;//计算结果存放在nun
intselect=0;//选择的选项存放在select
do//do-while先执行再判断循环条件,即可实现重复计算功能
{
menu();//打印出菜单界面
scanf("%d",&select);//输入你的选项
printf("请输入计算值:");
scanf("%d%d",&i,&j);//输入要计算的数值
switch(select)
{
case1:
printf("%d+%d=%d\n",i,j,num=i+j);//实现加法功能
break;
case2:
printf("%d-%d=%d\n",i,j,num=i-j);//实现减法功能
break;
case3:
printf("%d*%d=%d\n",i,j,num=i*j);//实现乘法功能
break;
case4:
printf("%d-%d=%d\n",i,j,num=i/j);//实现除法功能
break;
default:
printf("输入有误重新选择");
break;
}
}while(select);
return0;
}
运行结果:

(2)编程实现计算器扩展阅读:
return表示把程序流程从被调函数转向主调函数并把表达式的值带回主调函数,实现函数值的返回,返回时可附带一个返回值,由return后面的参数指定。
return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。
‘叁’ 怎么用java编程编写一个计算器
打开IED:打开自己java编程的软件,采用的是eclipse软件。
建立java工程。
编写类。
‘肆’ Java编程:2.课题:计算器设计与实现
1、打开eclipse,建好工程,然后建好你的package,包名起bag01
2、建立你的class类,名字起JFrameDemo‘
3、删除掉class文件里所有内容,留出空白页
4、复制粘贴下面的代码
注:确保你的jdk版本里有swing图形化界面
package bag01;
import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
/*
* 本计算器只能运算单次,不支持连等式和连续运算
*/
public class JFrameDemo extends JFrame {
JFrame jf = new JFrame();
Container u = jf.getContentPane();
JPanel mp = new JPanel();
JLabel jl = new JLabel("贼牛逼计算器");
JTextField jt = new JTextField();
int num1; //第一次按下运算符号按钮之前输入的数字
int num2; //第二次按下运算符号按钮之前输入的数字
int ks = 0; //若按下加号ks赋值1,减号赋值2,乘号赋值3,除号赋值4,并在最终根据ks的值选择运算方式
JButton bt1 = new JButton("1");
JButton bt2 = new JButton("2");
JButton bt3 = new JButton("3");
JButton bt4 = new JButton("4");
JButton bt5 = new JButton("5");
JButton bt6 = new JButton("6");
JButton bt7 = new JButton("7");
JButton bt8 = new JButton("8");
JButton bt9 = new JButton("9");
JButton bt10 = new JButton("+");
JButton bt11 = new JButton("-");
JButton bt12 = new JButton("=");
JButton bt13 = new JButton("0");
JButton bt14 = new JButton("X");
JButton bt15 = new JButton("/");
List<String> list = new ArrayList();
public void Chuangkou() {
// 设置窗口属性
jf.setSize(400, 500);
jf.setVisible(true);
jf.setDefaultCloseOperation(EXIT_ON_CLOSE);
jf.setLayout(null);
jf.setLocationRelativeTo(null);
jf.setTitle("非常好计算器");
jl.setBounds(120, 50, 200, 25);
jl.setFont(new Font("黑体", Font.BOLD, 25));
//设置容器属性
u.setBackground(Color.white);
//设置面板属性
mp.setSize(400, 500);
mp.setVisible(true);
mp.setBackground(Color.pink);
mp.add(jl);
mp.setLayout(null);
u.add(mp);
//设置输入框属性
jt.setBounds(100, 100, 200, 50);
jt.setFont(new Font("黑体", Font.BOLD, 25));
mp.add(jt);
//设置按钮属性
bt1.setBounds(50, 180, 100, 50);
bt1.setFont(new Font("黑体", Font.BOLD, 30));
bt2.setBounds(150, 180, 100, 50);
bt2.setFont(new Font("黑体", Font.BOLD, 30));
bt3.setBounds(250, 180, 100, 50);
bt3.setFont(new Font("黑体", Font.BOLD, 30));
bt4.setBounds(50, 230, 100, 50);
bt4.setFont(new Font("黑体", Font.BOLD, 30));
bt5.setBounds(150, 230, 100, 50);
bt5.setFont(new Font("黑体", Font.BOLD, 30));
bt6.setBounds(250, 230, 100, 50);
bt6.setFont(new Font("黑体", Font.BOLD, 30));
bt7.setBounds(50, 280, 100, 50);
bt7.setFont(new Font("黑体", Font.BOLD, 30));
bt8.setBounds(150, 280, 100, 50);
bt8.setFont(new Font("黑体", Font.BOLD, 30));
bt9.setBounds(250, 280, 100, 50);
bt9.setFont(new Font("黑体", Font.BOLD, 30));
bt10.setBounds(50, 330, 100, 50);
bt10.setFont(new Font("黑体", Font.BOLD, 30));
bt11.setBounds(50, 380, 100, 50);
bt11.setFont(new Font("黑体", Font.BOLD, 30));
bt12.setBounds(250, 380, 100, 50);
bt12.setFont(new Font("黑体", Font.BOLD, 30));
bt13.setBounds(150, 330, 100, 50);
bt13.setFont(new Font("黑体", Font.BOLD, 30));
bt14.setBounds(150, 380, 100, 50);
bt14.setFont(new Font("黑体", Font.BOLD, 30));
bt15.setBounds(250, 330, 100, 50);
bt15.setFont(new Font("黑体", Font.BOLD, 30));
mp.add(bt1);
mp.add(bt2);
mp.add(bt3);
mp.add(bt4);
mp.add(bt5);
mp.add(bt6);
mp.add(bt7);
mp.add(bt8);
mp.add(bt9);
mp.add(bt10);
mp.add(bt11);
mp.add(bt12);
mp.add(bt13);
mp.add(bt14);
mp.add(bt15);
//按钮事件监听
bt1.addActionListener(new ButtonAction());
bt2.addActionListener(new ButtonAction());
bt3.addActionListener(new ButtonAction());
bt4.addActionListener(new ButtonAction());
bt5.addActionListener(new ButtonAction());
bt6.addActionListener(new ButtonAction());
bt7.addActionListener(new ButtonAction());
bt8.addActionListener(new ButtonAction());
bt9.addActionListener(new ButtonAction());
bt10.addActionListener(new ButtonAction());
bt11.addActionListener(new ButtonAction());
bt12.addActionListener(new ButtonAction());
bt13.addActionListener(new ButtonAction());
bt14.addActionListener(new ButtonAction());
bt15.addActionListener(new ButtonAction());
}
public class ButtonAction implements ActionListener {
public void actionPerformed(ActionEvent e) {
Object s = e.getSource();
if (s == bt1) {
list.add("1");
System.out.println(list);
//定义一个迭代器k,值是迭代的list
Iterator<String> k = list.iterator();
String str1 = ""; //定义一个空字符串
//定义一个循环,用来遍历list
while (k.hasNext()) { //判断k是否存在下一个值,如果是true则继续
String str = (String) k.next(); //定义一个字符串str,值是k当前的遍历
str1 = str1 + str; //将遍历出的字符串一个一个添加进str1字符串中
}
jt.setText(str1); //输出最终字符串实现按下的按钮都会显示出来
}
if (s == bt2) {
list.add("2");
System.out.println(list);
System.out.println(list);
Iterator<String> k = list.iterator();
String str1 = "";
while (k.hasNext()) {
String str = (String) k.next();
str1 = str1 + str;
}
jt.setText(str1);
}
if (s == bt3) {
list.add("3");
System.out.println(list);
System.out.println(list);
Iterator<String> k = list.iterator();
String str1 = "";
while (k.hasNext()) {
String str = (String) k.next();
str1 = str1 + str;
}
jt.setText(str1);
}
if (s == bt4) {
list.add("4");
System.out.println(list);
System.out.println(list);
Iterator<String> k = list.iterator();
String str1 = "";
while (k.hasNext()) {
String str = (String) k.next();
str1 = str1 + str;
}
jt.setText(str1);
}
if (s == bt5) {
list.add("5");
System.out.println(list);
System.out.println(list);
Iterator<String> k = list.iterator();
String str1 = "";
while (k.hasNext()) {
String str = (String) k.next();
str1 = str1 + str;
}
jt.setText(str1);
}
if (s == bt6) {
list.add("6");
System.out.println(list);
System.out.println(list);
Iterator<String> k = list.iterator();
String str1 = "";
while (k.hasNext()) {
String str = (String) k.next();
str1 = str1 + str;
}
jt.setText(str1);
}
if (s == bt7) {
list.add("7");
System.out.println(list);
System.out.println(list);
Iterator<String> k = list.iterator();
String str1 = "";
while (k.hasNext()) {
String str = (String) k.next();
str1 = str1 + str;
}
jt.setText(str1);
}
if (s == bt13) {
list.add("0");
System.out.println(list);
System.out.println(list);
Iterator<String> k = list.iterator();
String str1 = "";
while (k.hasNext()) {
String str = (String) k.next();
str1 = str1 + str;
}
jt.setText(str1);
}
if (s == bt8) {
list.add("8");
System.out.println(list);
System.out.println(list);
Iterator<String> k = list.iterator();
String str1 = "";
while (k.hasNext()) {
String str = (String) k.next();
str1 = str1 + str;
}
jt.setText(str1);
}
if (s == bt9) {
list.add("9");
System.out.println(list);
Iterator<String> k = list.iterator();
String str1 = "";
while (k.hasNext()) {
String str = (String) k.next();
str1 = str1 + str;
}
jt.setText(str1);
}
if (s == bt10) {
jt.setText("加上");
Iterator<String> k = list.iterator();
String str1 = "";
while (k.hasNext()) {
String str = (String) k.next();
str1 = str1 + str;
}
int a = Integer.parseInt(str1); //把字符串str1转换为数字类型
num1 = a;
ks = 1;
System.out.println(a);
list.removeAll(list);
}
if (s == bt11) {
jt.setText("减去");
Iterator<String> k = list.iterator();
String str1 = "";
while (k.hasNext()) {
String str = (String) k.next();
str1 = str1 + str;
}
int a = Integer.parseInt(str1);
num1 = a;
ks = 2;
System.out.println(a);
list.removeAll(list);
}
if (s == bt14) {
jt.setText("乘以");
Iterator<String> k = list.iterator();
String str1 = "";
while (k.hasNext()) {
String str = (String) k.next();
str1 = str1 + str;
}
int a = Integer.parseInt(str1);
num1 = a;
ks = 3;
System.out.println(a);
list.removeAll(list);
}
if (s == bt15) {
jt.setText("除以");
Iterator<String> k = list.iterator();
String str1 = "";
while (k.hasNext()) {
String str = (String) k.next();
str1 = str1 + str;
}
int a = Integer.parseInt(str1);
num1 = a;
ks = 4;
System.out.println(a);
list.removeAll(list);
}
if (s == bt12) {
Iterator<String> k = list.iterator();
String str1 = "";
while (k.hasNext()) {
String str = (String) k.next();
str1 = str1 + str;
}
int a = Integer.parseInt(str1);
num2 = a;
System.out.println(a);
list.removeAll(list);
if (ks == 1) {
int num3 = num1 + num2;
System.out.println(num3);
Integer inta = Integer.valueOf(num3);
String q = inta.toString();
jt.setText(q);
}
if (ks == 2) {
int num3 = num1 - num2;
System.out.println(num3);
Integer inta = Integer.valueOf(num3);
String q = inta.toString();
jt.setText(q);
}
if (ks == 3) {
int num3 = num1 * num2;
System.out.println(num3);
Integer inta = Integer.valueOf(num3);
String q = inta.toString();
jt.setText(q);
}
if (ks == 4) {
if (num2 == 0) {
jt.setText("除数不能为0");
} else {
int num3 = num1 / num2;
int num4 = num1 % num2;
System.out.println(num3 + "……" + num4);
Integer inta = Integer.valueOf(num3);
String q = inta.toString();
Integer inta2 = Integer.valueOf(num4);
String q1 = inta2.toString();
jt.setText(q + "余" + q1);
}
}
}
}
}
public static void main(String[] args) {
new JFrameDemo().Chuangkou();
}
}
‘伍’ 编程实现一个科学计算器,能够实现加减乘除,三角函数计算等。用户界面自己设计
java写的,可行
package ex1;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DecimalFormat;
import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.JTextField;
public class Calcutor extends JFrame {
private JTextField tf;
private JPanel panel1, panel2, panel3, panel4;
private JMenuBar myBar;
private JMenu menu1, menu2, menu3;
private JMenuItem editItem1, editItem2, help1, help2, help3;
private JRadioButtonMenuItem seeItem1, seeItem2;//单选框
private JCheckBoxMenuItem seeItem3;//复选框
private ButtonGroup bgb;
private String back;
private boolean IfResult = true, flag = false;
private String oper = "=";
private double result = 0;
private Num numActionListener;
private DecimalFormat df;
public Calcutor(){
super("科学计算器");//设置标题栏
df = new DecimalFormat("#.####");//保留四位小数
this.setLayout(new BorderLayout(10, 5));
panel1 = new JPanel(new GridLayout(1, 3, 10, 10));
panel2 = new JPanel(new GridLayout(5, 6, 5, 5));//5行6列
panel3 = new JPanel(new GridLayout(5, 1, 5, 5));
panel4 = new JPanel(new BorderLayout(5, 5));
/**
* 菜单栏
*/
myBar = new JMenuBar();
menu1 = new JMenu("编辑(E)");
menu2 = new JMenu("查看(V)");
menu3 = new JMenu("帮助(H)");
menu1.setFont(new Font("宋体", Font.PLAIN, 12));
menu2.setFont(new Font("宋体", Font.PLAIN, 12));
menu3.setFont(new Font("宋体", Font.PLAIN, 12));
/**
* 编辑栏
*/
editItem1 = new JMenuItem("复制(C) Ctrl+C");
editItem2 = new JMenuItem("粘贴(P) Ctrl+V");
editItem1.setFont(new Font("宋体",Font.PLAIN,12));
editItem2.setFont(new Font("宋体",Font.PLAIN,12));
/**
* 查看栏
*/
seeItem1 = new JRadioButtonMenuItem("科学型(T)");
seeItem2 = new JRadioButtonMenuItem("标准型(S)");
seeItem3 = new JCheckBoxMenuItem("数字分组(I)");
seeItem1.setFont(new Font("宋体",Font.PLAIN,12));
seeItem2.setFont(new Font("宋体",Font.PLAIN,12));
seeItem3.setFont(new Font("宋体",Font.PLAIN,12));
/**
* 帮助栏
*/
help1 = new JMenuItem("帮助主题(H)");
help2 = new JMenuItem("关于计算器(A)");
help1.setFont(new Font("宋体",Font.PLAIN,12));
help2.setFont(new Font("宋体",Font.PLAIN,12));
bgb = new ButtonGroup();//选项组
menu1.add(editItem1);
menu1.add(editItem2);
menu2.add(seeItem1);
menu2.add(seeItem2);
menu2.addSeparator();//添加一条分割线
menu2.add(seeItem3);
menu3.add(help1);
menu3.addSeparator();//添加一条分割线
menu3.add(help2);
myBar.add(menu1);
myBar.add(menu2);
myBar.add(menu3);
this.setJMenuBar(myBar);
numActionListener = new Num();//实现数字监听
/**
* 文本域,即为计算器的屏幕显示区域
*/
tf = new JTextField();
tf.setEditable(false);//文本区域不可编辑
tf.setBackground(Color.white);//文本区域的背景色
tf.setHorizontalAlignment(JTextField.RIGHT);//文字右对齐
tf.setText("0");
tf.setBorder(BorderFactory.createLoweredBevelBorder());
init();//对计算器进行初始化
}
/**
* 初始化操作
* 添加按钮
*/
private void init(){
addButton(panel1, "Backspace", new Clear(), Color.red);
addButton(panel1, "CE", new Clear(), Color.red);
addButton(panel1, "C", new Clear(), Color.red);
addButton(panel2, "1/x", new Signs(), Color.magenta);
addButton(panel2, "log", new Signs(), Color.magenta);
addButton(panel2, "7", numActionListener, Color.blue);
addButton(panel2, "8", numActionListener, Color.blue);
addButton(panel2, "9", numActionListener, Color.blue);
addButton(panel2, "÷", new Signs(), Color.red);
addButton(panel2, "n!", new Signs(), Color.magenta);
addButton(panel2, "sqrt", new Signs(), Color.magenta);
addButton(panel2, "4", numActionListener, Color.blue);
addButton(panel2, "5", numActionListener, Color.blue);
addButton(panel2, "6", numActionListener, Color.blue);
addButton(panel2, "×", new Signs(), Color.red);
addButton(panel2, "sin", new Signs(), Color.magenta);
addButton(panel2, "x^2", new Signs(), Color.magenta);
addButton(panel2, "1", numActionListener, Color.blue);
addButton(panel2, "2", numActionListener, Color.blue);
addButton(panel2, "3", numActionListener, Color.blue);
addButton(panel2, "-", new Signs(), Color.red);
addButton(panel2, "cos", new Signs(), Color.magenta);
addButton(panel2, "x^3", new Signs(), Color.magenta);
addButton(panel2, "0", numActionListener, Color.blue);
addButton(panel2, "-/+", new Clear(), Color.blue);
addButton(panel2, ".", new Dot(), Color.blue);
addButton(panel2, "+", new Signs(), Color.red);
addButton(panel2, "tan", new Signs(), Color.magenta);
addButton(panel2, "%", new Signs(), Color.magenta);
addButton(panel2, "π", numActionListener, Color.orange);
addButton(panel2, "e", numActionListener, Color.orange);
addButton(panel2, "′″", new Signs(), Color.orange);
addButton(panel2, "=", new Signs(), Color.red);
JButton btns = new JButton("计算器");
btns.setBorder(BorderFactory.createLoweredBevelBorder());
btns.setEnabled(false);//按钮不可操作
btns.setPreferredSize(new Dimension(20, 20));
panel3.add(btns);//加入按钮
addButton(panel3, "MC", null, Color.red);
addButton(panel3, "MR", null, Color.red);
addButton(panel3, "MS", null, Color.red);
addButton(panel3, "M+", null, Color.red);
panel4.add(panel1, BorderLayout.NORTH);
panel4.add(panel2, BorderLayout.CENTER);
this.add(tf, BorderLayout.NORTH);
this.add(panel3, BorderLayout.WEST);
this.add(panel4);
pack();
this.setResizable(false);//窗口不可改变大小
this.setLocation(300, 200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
/**
* 统一设置按钮的的使用方式
* @param panel
* @param name
* @param action
* @param color
*/
private void addButton(JPanel panel, String name, ActionListener action, Color color){
JButton bt = new JButton(name);
panel.add(bt);//在面板上增加按钮
bt.setForeground(color);//设置前景(字体)颜色
bt.addActionListener(action);//增加监听事件
}
/**
* 计算器的基础操作(+ - × ÷)
* @param x
*/
private void getResult (double x){
if(oper == "+"){result += x;}
else if(oper == "-"){result -= x;}
else if(oper == "×"){result *= x;}
else if(oper == "÷"){result /= x;}
else if(oper == "="){result = x;}
tf.setText(df.format(result));
}
/**
* 运算符号的事件监听
*/
class Signs implements ActionListener{
public void actionPerformed(ActionEvent e) {
/*
* 用ActionEvent对象的getActionCommand()方法
* 取得与引发事件对象相关的字符串
*/
String str = e.getActionCommand();
/* sqrt求平方根 */
if(str.equals("sqrt")){
double i = Double.parseDouble(tf.getText());
if(i>=0){
/*
* String.valueOf() 转换为字符串
* df.format() 按要求保留四位小数
* Math.sqrt() 求算数平方根
*/
tf.setText(String.valueOf(df.format(Math.sqrt(i))));
}
else{
tf.setText("负数不能开平方根");
}
}
/* log求常用对数 */
else if(str.equals("log")){
double i = Double.parseDouble(tf.getText());
if(i>0){
tf.setText(String.valueOf(df.format(Math.log(i))));
}else{
tf.setText("负数不能求对数");
}
}
/* %求百分比 */
else if(str.equals("%")){
tf.setText(df.format(Double.parseDouble(tf.getText()) / 100));
}
/* 1/x求倒数 */
else if(str.equals("1/x")){
if(Double.parseDouble(tf.getText()) == 0){
tf.setText("除数不能为零");
}else{
tf.setText(df.format(1 / Double.parseDouble(tf.getText())));
}
}
/* sin求正弦函数 */
else if(str.equals("sin")){
double i = Double.parseDouble(tf.getText());
tf.setText(String.valueOf(df.format(Math.sin(i))));
}
/* cos求余弦函数 */
else if(str.equals("cos")){
double i = Double.parseDouble(tf.getText());
tf.setText(String.valueOf(df.format(Math.cos(i))));
}
/* tan求正切函数 */
else if(str.equals("tan")){
double i = Double.parseDouble(tf.getText());
tf.setText(String.valueOf(df.format(Math.tan(i))));
}
/* n!求阶乘 */
else if(str.equals("n!")){
double i = Double.parseDouble(tf.getText());
if((i%2==0)||(i%2==1))//判断为整数放进行阶乘操作
{
int j = (int)i;//强制类型转换
int result=1;
for(int k=1;k<=j;k++)
result *= k;
tf.setText(String.valueOf(result));
}
else
{
tf.setText("无法进行阶乘");
}
}
/* x^2求平方 */
else if(str.equals("x^2")){
double i = Double.parseDouble(tf.getText());
tf.setText(String.valueOf(df.format(i*i)));
}
/* x^3求立方 */
else if(str.equals("x^3")){
double i = Double.parseDouble(tf.getText());
tf.setText(String.valueOf(df.format(i*i*i)));
}
/* ′″角度转换 */
/**
* 将角度值转换成弧度值,方便三角函数的计算
*/
else if(str.equals("′″")){
double i = Double.parseDouble(tf.getText());
tf.setText(String.valueOf(i/180*Math.PI));
}
else{
if(flag){
IfResult = false;
}
if(IfResult){
oper = str;
}else{
getResult(Double.parseDouble(tf.getText()));
oper = str;
IfResult = true;
}
}
}
}
/**
* 清除按钮的事件监听
*/
class Clear implements ActionListener{
public void actionPerformed(ActionEvent e) {
/*
* 用ActionEvent对象的getActionCommand()方法
* 取得与引发事件对象相关的字符串
*/
String str = e.getActionCommand();
if(str == "C"){
tf.setText("0");
IfResult = true;
result = 0;
}else if(str == "-/+"){
double i = 0 - Double.parseDouble(tf.getText().trim());
tf.setText(df.format(i));
}else if(str == "Backspace"){
if(Double.parseDouble(tf.getText()) > 0){
if(tf.getText().length() > 1){
tf.setText(tf.getText().substring(0, tf.getText().length() - 1));
//使用退格删除最后一位字符
}else{
tf.setText("0");
IfResult = true;
}
}else{
if(tf.getText().length() > 2){
tf.setText(tf.getText().substring(0, tf.getText().length() - 1));
}else{
tf.setText("0");
IfResult = true;
}
}
}else if(str == "CE"){
tf.setText("0");
IfResult = true;
}
}
}
/**
* 数字输入的事件监听
*/
class Num implements ActionListener{
public void actionPerformed(ActionEvent e) {
String str = e.getActionCommand();
if(IfResult){
tf.setText("");
IfResult = false;
}
if(str=="π")
{
tf.setText(String.valueOf(Math.PI));
}
else if(str=="e")
{
tf.setText(String.valueOf(Math.E));
}
else{
tf.setText(tf.getText().trim() + str);
if(tf.getText().equals("0")){
tf.setText("0");
IfResult = true;
flag = true;
}
}
}
}
/**
* 小数点的事件监听
*/
class Dot implements ActionListener{
public void actionPerformed(ActionEvent e) {
IfResult = false;
if(tf.getText().trim().indexOf(".") == -1){
tf.setText(tf.getText() + ".");
}
}
}
/**
* main方法
*/
public static void main(String[] args) {
new Calcutor().setVisible(true);
}
}
‘陆’ 用java语言编程实现计算器的基本功能
import java.awt.*;
import java.awt.event.*;
public class JSQ extends WindowAdapter {
Panel p1 = new Panel();
Panel p2 = new Panel();
Panel p3 = new Panel();
TextField txt;
private Button[] b = new Button[19];
private String ss[] = { "1", "2", "3", "+", "-", "4", "5", "6", "*", "/",
"7", "8", "9", "0", "=", "%", "清空", "sqrt", "关闭", };
static double a;
static String s = "", str;// 定义变量 创建对像
public static void main(String args[]) {
(new JSQ()).frame();
}
public void frame() {
Frame fm = new Frame("计算器");
for (int i = 0; i <= 18; i++) {
b[i] = new Button(ss[i]);
}
for (int i = 0; i <= 17; i++) {
p2.add(b[i]);
} // 创建按钮 并添加到P2
b[18].setBackground(Color.yellow);
txt = new TextField(16);
txt.setEditable(false);
for (int i = 0; i <= 18; i++) {
b[i].addActionListener(new buttonlistener());// 添加监听器
}
b[18].addActionListener(new close());
fm.addWindowListener(this);
fm.setBackground(Color.red);
p1.setLayout(new BorderLayout());
p1.add(txt, "North");
p2.setLayout(new GridLayout(4, 4));
p3.setLayout(new BorderLayout());
p3.add(b[18]);
fm.add(p1, "North");
fm.add(p2, "Center");
fm.add(p3, "South");
fm.pack();
fm.setVisible(true);// 都是些窗中设置 添加相关组件和监听器
}
public void windowClosing(WindowEvent e) {
System.exit(0);// 退出系统
}
class buttonlistener implements ActionListener {// 编写监听器事件 通过按键得出给果
public void actionPerformed(ActionEvent e) {
Button btn = (Button) e.getSource();
if (btn.getLabel().equals("=")) {
if (s.equals("sqrt")) {
str = String.valueOf(a);
txt.setText(str);
s = "";
} else {
jisuan();
str = String.valueOf(a);
txt.setText(str);
s = "";
}
} else if (btn.getLabel().equals("+")) {
jisuan();
txt.setText("");
s = "+";
} else if (btn.getLabel().equals("-")) {
jisuan();
txt.setText("");
s = "-";
} else if (btn.getLabel().equals("/")) {
jisuan();
txt.setText("");
s = "/";
} else if (btn.getLabel().equals("*")) {
jisuan();
txt.setText("");
s = "*";
} else if (btn.getLabel().equals("%")) {
jisuan();
txt.setText("");
s = "%";
} else if (btn.getLabel().equals("sqrt")) {
s = "sqrt";
jisuan();
txt.setText("");
} else {
txt.setText(txt.getText() + btn.getLabel());
if (btn.getLabel() == "清空")
txt.setText("");
}
}
public void jisuan() {// 编写具体计算方法
if (s.equals("+"))
a += Double.parseDouble(txt.getText());
else if (s.equals("-"))
a -= Double.parseDouble(txt.getText());
else if (s.equals("*"))
a *= Double.parseDouble(txt.getText());
else if (s.equals("/"))
a /= Double.parseDouble(txt.getText());
else if (s.equals("%"))
a %= Double.parseDouble(txt.getText());
else if (s.equals("sqrt"))
a = Math.sqrt(Double.parseDouble(txt.getText()));
else
a = Double.parseDouble(txt.getText());
}
}
}
class close implements ActionListener {// 退出
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
}
‘柒’ C语言编写简易计算器程序
C语言编写计算器
我们可以用printf和scanf函数输出结果和获取用户的输入。需要<stdio.h>头文件。scanf函数在读取数据的时候不需要再一行上输入每个数据,只要数据和数据之间留出空白就可以了。先声明两个变量number1和number2,operation变量用来存储运算符。用scanf函数获取这两个数字和运算符。分别用%lf %c %lf

‘捌’ 请教一下如何编程一个简易计算器
方法/步骤
1
打开Microsoft
Visual
Studio
2010,
新建名字为【计算器】的程序。
2
在新程序界面空白窗口上放置合适的控件:包括,
显示过程数字和结果数字的textbox控件;
用于各数字输入和计算方式输入的按钮,包括1,2,3,4,5,6,7,9,0和加减乘除等符号。
3
添加变量temp1(第一个数字)和pos(计算方式)
4
添加类addNum,在点击数字按钮时使用,用于在显示屏上增加用户输入的数字。
添加数字按钮0-9的代码,分别调用类addNum。
添加【=】按钮代码
记录第二个数字;
根据计算方式进行计算,显示计算结果。
添加归零按钮的代码,清空显示屏,将计算结果归零,将计算方式归零。
生成exe文件进行测试
输入第一个数字425
点击【+】,输入第二个数字897
点击【=】,获取计算结果1322
点击【CE】,将数字归零
输入第一个数字852
点击【*】,输入第二个数字84
点击【=】,获取计算结果71568
15
同样可以验证减法和除法。
‘玖’ 用JAVA编写一个计算器
importjava.awt.BorderLayout;
importjava.awt.Color;
importjava.awt.GridLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjavax.swing.ImageIcon;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JPanel;
importjavax.swing.JTextField;
importjavax.swing.SwingConstants;
{
/**
*
*/
=1L;
Resultresult=newResult();//定义text的面板
Number_Keynumber_key=newNumber_Key();//定义按钮面板
//当点击按钮+、-、*、/时,com=true
booleancom=false;
//当i=0时说明是我们第一次输入,字符串text不会累加
inti=0;
//存放text的内容
Stringtext="";
//存放点击按钮+、-、*、/之前的数值
doubledefbutton=0;
//+、-、*、/的代号分别为1,2,3,4
intsymbol=0;
//构造函数
Jisuanqi(){
super("WangJiao");//设定标题
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设定关闭窗体时退出程序
JPanelpane=newJPanel();//定义主面板
pane.setLayout(newBorderLayout());
setBounds(380,220,30,80);//前两个参数是在屏幕上显示的坐标,后两个是大小
//替换图标
ImageIconicon=newImageIcon("F:1.GIF");
//Jisuanqi.class.getResource("APPLE.GIF")
//);
setIconImage(icon.getImage());
pane.add(result,BorderLayout.NORTH);
pane.add(number_key,BorderLayout.CENTER);
pane.add(number_key.equal,BorderLayout.SOUTH);
number_key.one.addActionListener(this);//对1按钮添加监听事件
number_key.two.addActionListener(this);//对2按钮添加监听事件
number_key.three.addActionListener(this);//对3按钮添加监听事件
number_key.four.addActionListener(this);//对4按钮添加监听事件
number_key.five.addActionListener(this);//对5按钮添加监听事件
number_key.six.addActionListener(this);//对6按钮添加监听事件
number_key.seven.addActionListener(this);//对7按钮添加监听事件
number_key.eight.addActionListener(this);//对8按钮添加监听事件
number_key.nine.addActionListener(this);//对9按钮添加监听事件
number_key.zero.addActionListener(this);//对0按钮添加监听事件
number_key.ce.addActionListener(this);//对置零按钮添加监听事件
number_key.plus.addActionListener(this);//对+按钮添加监听事件
number_key.equal.addActionListener(this);//对=按钮添加监听事件
number_key.sub.addActionListener(this);//对-按钮添加监听事件
number_key.mul.addActionListener(this);//对*按钮添加监听事件
number_key.div.addActionListener(this);//对/按钮添加监听事件
number_key.point.addActionListener(this);//对.按钮添加监听事件
setContentPane(pane);
pack();//初始化窗体大小为正好盛放所有按钮
}
//各个按钮触发的事件
publicvoidactionPerformed(ActionEvente){
/*
*如果是点击数字按钮那么先要判断是否在此之前点击了+、-、*、/、=,如果是那么com=true如果没有com=
*false;或者是否点击数字键,如果是i=1,如果没有i=0;
*/
if(e.getSource()==number_key.one){
if(com||i==0){
result.text.setText("1");
com=false;
i=1;
}else{
text=result.text.getText();
result.text.setText(text+"1");
}
}elseif(e.getSource()==number_key.two){
if(com||i==0){
result.text.setText("2");
com=false;
i=1;
}else{
text=result.text.getText();
result.text.setText(text+"2");
}
}elseif(e.getSource()==number_key.three){
if(com||i==0){
result.text.setText("3");
com=false;
i=1;
}else{
text=result.text.getText();
result.text.setText(text+"3");
}
}elseif(e.getSource()==number_key.four){
if(com||i==0){
result.text.setText("4");
com=false;
i=1;
}else{
text=result.text.getText();
result.text.setText(text+"4");
}
}elseif(e.getSource()==number_key.five){
if(com||i==0){
result.text.setText("5");
com=false;
i=1;
}else{
text=result.text.getText();
result.text.setText(text+"5");
}
}elseif(e.getSource()==number_key.six){
if(com||i==0){
result.text.setText("6");
com=false;
i=1;
}else{
text=result.text.getText();
result.text.setText(text+"6");
}
}elseif(e.getSource()==number_key.seven){
if(com||i==0){
result.text.setText("7");
com=false;
i=1;
}else{
text=result.text.getText();
result.text.setText(text+"7");
}
}elseif(e.getSource()==number_key.eight){
if(com||i==0){
result.text.setText("8");
com=false;
i=1;
}else{
text=result.text.getText();
result.text.setText(text+"8");
}
}elseif(e.getSource()==number_key.nine){
if(com||i==0){
result.text.setText("9");
com=false;
i=1;
}else{
text=result.text.getText();
result.text.setText(text+"9");
}
}
/*
*对于0这个按钮有一定的说法,在我的程序里不会出现如00000这样的情况,我加了判断条件就是
*如果text中的数值=0就要判断在这个数值中是否有.存在?如果有那么就在原来数值基础之上添加0;否则保持原来的数值不变
*/
elseif(e.getSource()==number_key.zero){//result.text.getText()是得到text里内容的意思
if(com||i==0){
result.text.setText("0");
com=false;
i=1;
}else{
text=result.text.getText();
if(Float.parseFloat(text)>0||Float.parseFloat(text)<0){//Float.parseFloat(text)就是类型转换了,下面都是一样
result.text.setText(text+"0");
}else{
if(text.trim().indexOf(".")==-1){
result.text.setText(text);
}else{
result.text.setText(text+"0");
}
}
}
}elseif(e.getSource()==number_key.ce){
result.text.setText("0");
i=0;
com=true;
//text="";
defbutton=0;
}
/*
*本程序不会让一个数值中出现2个以上的小数点.具体做法是:判断是否已经存在.存在就不添加,不存在就添加.
*/
elseif(e.getSource()==number_key.point){
if(com||i==0){
result.text.setText("0.");
com=false;
i=1;
}else{
text=result.text.getText();
if(text.trim().indexOf(".")==-1){
result.text.setText(text+".");
}else{
result.text.setText(text);
}
}
}//获得点击+之前的数值
elseif(e.getSource()==number_key.plus){
com=true;
i=0;
defbutton=Double.parseDouble(result.text.getText());
symbol=1;
}//获得点击-之前的数值
elseif(e.getSource()==number_key.sub){
com=true;
i=0;
defbutton=Double.parseDouble(result.text.getText());
symbol=2;
}//获得点击*之前的数值
elseif(e.getSource()==number_key.mul){
com=true;
i=0;
defbutton=Double.parseDouble(result.text.getText());
System.out.println(defbutton);
symbol=3;
}//获得点击/之前的数值
elseif(e.getSource()==number_key.div){
com=true;
i=0;
defbutton=Double.parseDouble(result.text.getText());
symbol=4;
}elseif(e.getSource()==number_key.equal){
switch(symbol){
case1:{//计算加法
doublead=defbutton
+Double.parseDouble(result.text.getText());
result.text.setText(ad+"");
i=0;
text="";
break;
}
case2:{//计算减法
doublead=defbutton
-Double.parseDouble(result.text.getText());
result.text.setText(String.valueOf(ad));
i=0;
text="";
break;
}
case3:{//计算乘法
doublead=defbutton
*Double.parseDouble(result.text.getText());
result.text.setText(ad+"");
i=0;
text="";
break;
}
case4:{//计算除法
doublead=defbutton
/Double.parseDouble(result.text.getText());
result.text.setText(ad+"");
i=0;
text="";
break;
}
}
System.out.println(com);
}
System.out.println(result.text.getText());
}
@SuppressWarnings("deprecation")
publicstaticvoidmain(String[]args){
Jisuanqiloveyou=newJisuanqi();
loveyou.show();
}
}
//计算器数字按钮定义面板
classNumber_KeyextendsJPanel{
/**
*
*/
=1L;
JButtonzero=newJButton("0");//数字键0
JButtonone=newJButton("1");//数字键1
JButtontwo=newJButton("2");//数字键2
JButtonthree=newJButton("3");//数字键3
JButtonfour=newJButton("4");//数字键4
JButtonfive=newJButton("5");//数字键5
JButtonsix=newJButton("6");//数字键6
JButtonseven=newJButton("7");//数字键7
JButtoneight=newJButton("8");//数字键8
JButtonnine=newJButton("9");//数字键9
JButtonplus=newJButton("+");
JButtonsub=newJButton("-");
JButtonmul=newJButton("*");
JButtondiv=newJButton("/");
JButtonequal=newJButton("=");
JButtonce=newJButton("清零");//置零键
JButtonpoint=newJButton(".");
Number_Key(){
setLayout(newGridLayout(4,4,1,1));//定义布局管理器为网格布局
setBackground(Color.blue);//设置背景颜色
//添加按钮
add(one);
add(two);
add(three);
add(four);
add(five);
add(six);
add(seven);
add(eight);
add(nine);
add(zero);
add(plus);
add(sub);
add(mul);
add(div);
add(point);
add(equal);
add(ce);
}
}
//计算器显示结果的窗体
classResultextendsJPanel{
/**
*
*/
=1L;
//text先是输入和结果
JTextFieldtext=newJTextField("0");
@SuppressWarnings("deprecation")
Result(){//讲输入的数字或得到的结果在text的右边显示
text.setHorizontalAlignment(SwingConstants.RIGHT);
text.enable(false);//文本框不能编辑
setLayout(newBorderLayout());//设定布局管理器边框布局
add(text,BorderLayout.CENTER);//text放置在窗体的中间
}
}
直接复制保存成Jisuanqi.java可以直接运行了

