java计算器

合集下载

简易计算器面板小程序

简易计算器面板小程序

[java語言與程序設計]简易计算器面板小程序歸真我发表于:2011/8/1822:49:17标签(TAG):简易计算器面板java小程序/**C1.java简易计算器面板小程序*/import java.applet.*;//引入Java系统标准类库中java.applet包import java.awt.*;//引入Java系统标准类库中java.awt包import java.awt.event.*;//引入Java系统标准类库中java.awt.event包public class C1extends Applet{Label b;//标题标签对象TextField t1,t2,t3;//三个文本框对象Button btn1,btn2;//两个按钮对象CheckboxGroup se;//单选按钮组,它由四个互斥的按钮组成,用来选择计算类型。

Checkbox a,s,m,d;//四个单选按钮,分别代表加、减、乘、除四种运算。

public void init(){b=new Label("简易计算器面板设计");//创建标题标签对象t1=new TextField(13);//创建文本框1,用来输入操作数1t2=new TextField(13);//创建文本框2,用来输入操作数2t3=new TextField(13);//创建文本框3,用来输出运算结果btn1=new Button("等于");//创建按钮1“等于”,用来对输入的两操作数进行运算btn2=new Button("重置");//创建按钮2“重置”,用来清空三个文本框,并将计算类型置为初始状态(选中加法)。

se=new CheckboxGroup();//创建单选按钮组a=new Checkbox("加",true,se);//创建单选按钮:加s=new Checkbox("减",false,se);//创建单选按钮:减m=new Checkbox("乘",false,se);//创建单选按钮:乘d=new Checkbox("除",false,se);//创建单选按钮:除add(b);//添加标题标签对象到面板add(t1);//添加输入文本框对象t1到面板add(a);add(s);add(m);add(d);//添加四个单选按钮对象到面板add(t2);//添加输入文本框对象t2到面板add(btn1);//添加运算按钮对象btn1“等于”到面板add(t3);//添加输出文本框对象t3到面板add(btn2);//添加按钮对象btn2“重置”到面板}}//*~程序保存为:C1.java编译时执行:javac C1.java得到字节码:C1.class编写HTML文件:C1.html,将字节码嵌入其中。

带括号的计算器

带括号的计算器
JButton btn_LBrackets=new JButton("(");
JButton btnClear=new JButton("清除");
JTextField textformula=new JTextField(); //定义一个textFiled组件!
JTextField textformula1 = new JTextField();
{
operand=new StringBuffer(operand.substring(1,operand.length()));
}
else
{
operand=operand.insert(0,'-');
}
textformula.setText(operand.toString()); //显示操作数!
}
else if(e.getSource()==btn6)
{
operand.append('6');
textformula.setText(operand.toString());
}
else if(e.getSource()==btn7)
{
operand.append('7');
textformula.setText(operand.toString());
}
class koWindowListener extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
dispose();
}
}
//myframe.java

Android入门程序开发—BMI计算器

Android入门程序开发—BMI计算器

Android入门程序开发—BMI计算器作者:董明华李宏伟来源:《电脑知识与技术》2017年第35期摘要:AndroidStudio已经代替了Eclipse,成为Android官方集成开发工具。

文章基于AndroidStudio设计了一款身高体重计算器,通过介绍常见布局控件的用法,使初学者能够快速入门Android APP开发,了解APP界面设计,用户输入值的获取等知识。

关键词:AndroidStudio;BMI;APP中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)35-0136-031 背景BMI指数,即身体质量指数,是用体重公斤数除以身高米数平方得出的数字,是目前国际上常用的衡量人体胖瘦程度以及是否健康的一个标准。

体质指数(BMI)=体重(kg)÷身高^2(m)。

文章根据BMI指数开发一款简易身高体重计算器,通过分析用户的身高体重值,判断其身材是否标准。

2 APP展示最终APP效果如图1所示,用户输入身高体重值后,通过单击计算按钮,可得出身体胖瘦程度的一个提示。

3 知识点分析项目涉及知识点较为简单,界面布局为LinearLayout,控件为EditText和Button,java源代码部分主要是控件的初始化,取得文本输入框的输入值,并转换为数值类型,然后计算出BMI指数值,并通过Toast给出提示。

4 界面设计界面从上向下依次为身高输入框、体重输入框和按钮,输入框对应Android中的EditText 控件,按钮对应Button控件,垂直排列的布局适合用线性布局LinearLayout。

布局主要作用是设置控件在屏幕上的位置,线性布局LinearLayout可以让其中的控件水平排列或者垂直排列。

首先,在res/layout文件夹中找到自动生成的布局文件activity_main.xml。

在此文件中声明父布局LinearLayout的排版方向为垂直排列,通过设置android:orientation的属性值为vertical 实现。

(简单)Android实现计算器功能

(简单)Android实现计算器功能

Android实现计算器功能创建两个Activity Calculate.java 和Result.javaCalculate.java 用于显示计算的页面Result.java用于显示结果先在main.xml中写四个控件main.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android" android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><EditTextandroid:id="@+id/VarOne"android:layout_width="fill_parent"android:layout_height="wrap_content"/><TextViewandroid:id="@+id/symbol"android:layout_width="fill_parent"android:layout_height="wrap_content"/><EditTextandroid:id="@+id/VarTwo"android:layout_width="fill_parent"android:layout_height="wrap_content"/><Buttonandroid:id="@+id/calculate"android:layout_width="fill_parent"android:layout_height="wrap_content"/></LinearLayout>代码如下:Calculate.javaview plaincopy to clipboardprint?.........10........20........30........40........50........60........70........80........90........100.......110.......120.......130.......140. (150)1. p ackage com.fgh;//包名2.3. i mport android.app.Activity;4. i mport android.content.Intent;5. i mport android.os.Bundle;6. i mport android.view.Menu;7. i mport android.view.MenuItem;8. i mport android.view.View;9. i mport android.view.View.OnClickListener;10. import android.widget.Button;11. import android.widget.EditText;12. import android.widget.TextView;13.14. public class Calculate extends Activity {15. /** Called when the activity is first created. */16. //以乘法为例声明四个变量17. private EditText varOne;//乘数1 为EditText类型意思是可以编辑的文本框18. private EditText varTwo;//乘数2 为EditText类型意思是可以编辑的文本框19. private TextView symbol;//符号为文本类型20. private Button calculate;//计算按钮按钮类型点击是触发计算操作21.22. @Override23. public void onCreate(Bundle savedInstanceState) {24. super.onCreate(savedInstanceState);25. setContentView(yout.main);26. //下面为四个变量赋值注意他们的类型27. varOne = (EditText) findViewById(R.id.VarOne);28. varTwo = (EditText) findViewById(R.id.VarTwo);29. symbol = (TextView) findViewById(R.id.symbol);30. calculate = (Button) findViewById(R.id.calculate);31. // 为symbol和calculate设置显示值32. // 方法133. // symnol.setText("乘以");34. // calculate.setText("计算");35. // 方法2 推荐使用方法2 可以为android国际化打下基础36. symbol.setText(R.string.symbol);37. calculate.setText(R.string.calculate);38. calculate.setOnClickListener(new CalculateListener()); //为button按钮绑定监听器当点下按钮时触发计算操作39. }40.41. /*42. * (non-Javadoc)43. *44. * @see android.app.Activity#onCreateOptionsMenu(android.view.Menu)45. */46. //显示一个菜单两个按钮一个退出按钮一个关于按钮47. @Override48. public boolean onCreateOptionsMenu(Menu menu) {49. menu.add(0, 1, 1, R.string.exit);50. menu.add(0, 2, 2, R.string.about);51. return super.onCreateOptionsMenu(menu);52. }53.54. /*55. * (non-Javadoc)56. *57. * @see android.app.Activity#onOptionsItemSelected(android.view.MenuItem)58. */59. //为菜单的按钮编写当点击按钮时触发的方法60. @Override61. public boolean onOptionsItemSelected(MenuItem item) {//传的为ItemId62. if (item.getItemId() == 1) {63. finish();64. }65.66. return super.onOptionsItemSelected(item);67. }68. //为button编写一个监听器当点击button按钮时触发69. class CalculateListener implements OnClickListener {70.71. @Override72. public void onClick(View v) {//注意这里传的参数是view 不是其他的不然报错73. String varOneStr = varOne.getText().toString();74. String varTwoStr = varTwo.getText().toString();75. Intent intent = new Intent(); //new一个Intent对象76. intent.putExtra("one", varOneStr);//放入的是键值对77. intent.putExtra("two", varTwoStr);78. intent.setClass(Calculate.this, Result.class);//设置页面跳转79. Calculate.this.startActivity(intent);//启动intent对象80. }81.82. }83. }Result.javaview plaincopy to clipboardprint?.........10........20........30........40........50........60........70........80........90........100.......110.......120.......130.......140. (150)1. p ackage com.fgh;2.3. i mport android.app.Activity;4. i mport android.content.Intent;5. i mport android.os.Bundle;6. i mport android.widget.TextView;7.8. p ublic class Result extends Activity {9.10. private TextView tvResult; //声明一个变量11.12. /*13. * (non-Javadoc)14. *15. * @see android.app.Activity#onCreate(android.os.Bundle)16. */17. @Override18. protected void onCreate(Bundle savedInstanceState) {19. super.onCreate(savedInstanceState);20. setContentView(yout.result);21. tvResult = (TextView) findViewById(R.id.result);22. // 得到intent对象中的值23. Intent intent = getIntent(); //这里是得到用getIntent()方法,不是再new出来一个Intent对象24. //声明两个变量接收传来的值为String类型的25. String varOneStr = intent.getStringExtra("one");26. String varTwoStr = intent.getStringExtra("two");27. //对接收的值类型转换(相乘的两个数得是整型的)28. int varOneInt = Integer.parseInt(varOneStr);29. int varTwoInt = Integer.parseInt(varTwoStr);30. int result = varOneInt * varTwoInt;31. tvResult.setText(result + "");// setText接收到是字符串加上一个串自动转型32.33. }34.35. }新建一个result.xml 为result.java页面编写控件result.xmlview plaincopy to clipboardprint?.........10........20........30........40........50........60........70........80........90........100.......110.......120.......130.......140. (150)1. <?xml version="1.0" encoding="utf-8"?>2. <LinearLayout xmlns:android="/apk/res/android"3. android:orientation="vertical"4. android:layout_width="fill_parent"5. android:layout_height="fill_parent">6.7. <TextView8. android:id="@+id/result"9. android:layout_width="fill_parent"10. android:layout_height="wrap_content"11. />12. </LinearLayout>同时修改AndroidManifest.xml文件在<application></application>标签里面添加以下代码在strings.xml里设置值strings.xml1. <?xml version="1.0" encoding="utf-8"?>2. <resources>3. <string name="hello">Hello World, Calculate!</string>4. <string name="app_name">Calculate</string>5. <string name="symbol">乘以</string>6. <string name="calculate">计算</string>7. <string name="result">result</string>8. <string name="exit">退出</string>9. <string name="about">关于</string>10. </resources>这样一个实现乘法的功能就实现了。

java复数计算器

java复数计算器

public class ComplexNumber{public double real;public double imaginary;//public double realPart;//public double unrealPart;public ComplexNumber(){}public ComplexNumber(String str){int x ;String y;String real = null, unreal = null;if(str.contains("i")){x = str.indexOf("i");int x1 = str.substring(0, x).indexOf("+");int y1 = str.substring(0, x).indexOf("-");int x2=str.substring(x, str.length()).indexOf("+");int y2=str.substring(x, str.length()).indexOf("-");if(!str.substring(0, x).contains("+")&&!str.substring(0, x).contains("-")){ unreal = str.substring(0, x);real = str.substring(x+1, str.length());}if(str.substring(0, x).contains("+")&&!str.substring(0, x).contains("-")){ unreal = str.substring(x1, x);real = str.substring(0, x1);}if(str.substring(0, x).contains("+")&&str.substring(0, x).contains("-")){unreal = str.substring(x1, x);real = str.substring(0, x1);}if(!str.substring(0, x).contains("+") && str.substring(0, x).contains("-")){ unreal = str.substring(y1,x);if(str.substring(x, str.length()).contains("+"))real = str.substring(x2+1, str.length());else if(str.substring(x, str.length()).contains("-"))real = str.substring(y2, str.length());elsereal=str.substring(0,y1);}//real = str.substring(0, x);//unreal = str.substring(x+1, str.length()-1);this.real = Double.parseDouble(real);this.imaginary = Double.parseDouble(unreal);}}public ComplexNumber(double a,double b){real=a;imaginary=b;}public double getReal(){return real;}public double getImaginary(){return imaginary;}public void setReal(double mReal){real=mReal;}public void setImaginary(int mImaginary){imaginary=mImaginary;}public static ComplexNumber he(ComplexNumber X,ComplexNumber Y){ ComplexNumber Complex=new ComplexNumber();Complex.real=X.real+Y.real;Complex.imaginary=X.imaginary+Y.imaginary;return Complex;}public static ComplexNumber cha(ComplexNumber X,ComplexNumber Y){ ComplexNumber Complex=new ComplexNumber();Complex.real=X.real-Y.real;Complex.imaginary=X.imaginary-Y.imaginary;return Complex;}public static ComplexNumber cheng(ComplexNumber X,ComplexNumber Y){ComplexNumber Complex=new ComplexNumber();Complex.real=X.real*Y.real-X.imaginary*Y.imaginary;Complex.imaginary=X.imaginary+Y.imaginary;return Complex;}public static ComplexNumber chu(ComplexNumber X,ComplexNumber Y){ComplexNumber Complex=new ComplexNumber();Complex.real=(X.real*Y.real+X.imaginary*Y.imaginary)/(Y.real*Y.real+Y.imaginary*Y.imag inary);Complex.imaginary=(-X.real*Y.imaginary+X.imaginary*Y.real)/(Y.real*Y.real+Y.imaginary *Y.imaginary);return Complex;}public String toString(){return ("("+real+(imaginary<0 ? "-"+imaginary*(-1) : "+"+imaginary )+"i"+")");}}import java.awt.Color;import ponent;import java.awt.Container;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextField;public class smallComputer extends JFrame{private JLabel jl1=new JLabel("输入x:");private JTextField jtf1=new JTextField(6);private JLabel jl2=new JLabel("输入y:");private JTextField jtf2=new JTextField(6);private JLabel jl3=new JLabel("结果");private static JButton jb1=new JButton("+");private JButton jb2=new JButton("-");private JButton jb3 =new JButton("*");private JButton jb4=new JButton("/");private double realPart;private double unrealPart;//构造方法public smallComputer(double realPart,double unrealPart){this.realPart = realPart;this.unrealPart = unrealPart;}//toString()方法public String toString(){if(unrealPart > 0)return realPart+"+"+unrealPart+"i";else if(unrealPart < 0){unrealPart = -unrealPart;}return realPart+"-"+unrealPart+"i";}//虚数的加法public void add(ComplexNumber a){//realPart = realPart + a.realPart;// unrealPart = unrealPart + a.unrealPart;}public smallComputer (){setTitle("复数计算器");setSize(300, 300);setLocationRelativeTo(null);//使窗口dialog显示到屏幕中央setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible(true);this.setLayout(new GridLayout(4,1));JPanel jp1=new JPanel();jp1.setBackground(Color.YELLOW);jp1.add(jl1);jp1.add(jtf1);this.add(jp1);JPanel jp2=new JPanel();jp2.setBackground(Color.PINK);jp2.add(jl2);jp2.add(jtf2);this.add(jp2);JPanel jp3=new JPanel();jp3.setBackground(Color.WHITE);jp3.add(jl3);this.add(jp3);JPanel jp4=new JPanel();jp4.setBackground(Color.CY AN);jp4.add(jb1);jp4.add(jb2);jp4.add(jb3);jp4.add(jb4);this.add(jp4);jb1.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent arg0) {ComplexNumber x = new ComplexNumber(jtf1.getText().trim());ComplexNumber y=new ComplexNumber(jtf2.getText().trim());ComplexNumber z = ComplexNumber.he(x, y);jl3.setText(z + "");//x.toString() + " + " + y.toString() + " = " +}});jb2.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent arg0) { ComplexNumber x = new ComplexNumber(jtf1.getText().trim());ComplexNumber y=new ComplexNumber(jtf2.getText().trim());ComplexNumber z = ComplexNumber.cha(x, y);jl3.setText(z + "");}});jb3.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent arg0) { ComplexNumber x = new ComplexNumber(jtf1.getText().trim());ComplexNumber y=new ComplexNumber(jtf2.getText().trim());ComplexNumber z = ComplexNumber.cheng(x, y);jl3.setText(z + "");}});jb4.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent arg0) { ComplexNumber x = new ComplexNumber(jtf1.getText().trim());ComplexNumber y=new ComplexNumber(jtf2.getText().trim());ComplexNumber z = ComplexNumber.chu(x, y);jl3.setText(z + "");}});}public static void main(String[] args) {ComplexNumber a = new ComplexNumber();// ComplexNumber b = new ComplexNumber(3,4);// ComplexNumber c = new ComplexNumber(4,5);// ComplexNumber d = new ComplexNumber(1,-4);System.out.println(a);// Container b;//jb.add(a);// System.out.println(b);// c.subtract(d);// System.out.println(c);// d.multi(a);// System.out.println(d);smallComputer f=new smallComputer();}}。

eoLinker-API_Shop_标准体重计算器_API接口_Java调用示例代码

eoLinker-API_Shop_标准体重计算器_API接口_Java调用示例代码

eoLinker-API Shop 标准体重计算器 Java调用示例代码标准体重计算器身体质量指数 (Body Mass Index, 简称BMI), 通过身高和体重来计算您的身材是否标准该产品拥有以下APIs:1.计算BMI值2.获取标准体重参考注意,该示例代码仅适用于网站下API使用该产品前,您需要通过https:///#/api/detail/?productID=104申请API服务1.计算BMI值package net.apishop.www.controller;import java.io.DataOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.UnsupportedEncodingException;import .HttpURLConnection;import .MalformedURLException;import .URL;import .URLEncoder;import java.util.HashMap;import java.util.Map;import com.alibaba.fastjson.JSONObject;/*** httpUrlConnection访问远程接口工具*/public class Api{/*** 方法体说明:向远程接口发起请求,返回字节流类型结果* param url 接口地址* param requestMethod 请求方式* param params 传递参数重点:参数值需要用Base64进行转码* return InputStream 返回结果*/public static InputStream httpRequestToStream(String url, String re questMethod, Map<String, String> params){InputStream is = null;try{String parameters = "";boolean hasParams = false;// 将参数集合拼接成特定格式,如name=zhangsan&age=24for (String key : params.keySet()){String value = URLEncoder.encode(params.get(key), "UTF-8");parameters += key + "=" + value + "&";hasParams = true;}if (hasParams){parameters = parameters.substring(0, parameters.length() - 1);}// 请求方式是否为getboolean isGet = "get".equalsIgnoreCase(requestMethod);// 请求方式是否为postboolean isPost = "post".equalsIgnoreCase(requestMethod);if (isGet){url += "?" + parameters;}URL u = new URL(url);HttpURLConnection conn = (HttpURLConnection) u.openConnecti on();// 请求的参数类型(使用restlet框架时,为了兼容框架,必须设置Con tent-Type为“”空)conn.setRequestProperty("Content-Type", "application/octet-stream");// conn.setRequestProperty("Content-Type", "application/x-w ww-form-urlencoded");// 设置连接超时时间conn.setConnectTimeout(50000);// 设置读取返回内容超时时间conn.setReadTimeout(50000);// 设置向HttpURLConnection对象中输出,因为post方式将请求参数放在http正文内,因此需要设置为ture,默认falseif (isPost){conn.setDoOutput(true);}// 设置从HttpURLConnection对象读入,默认为trueconn.setDoInput(true);// 设置是否使用缓存,post方式不能使用缓存if (isPost){conn.setUseCaches(false);}// 设置请求方式,默认为GETconn.setRequestMethod(requestMethod);// post方式需要将传递的参数输出到conn对象中if (isPost){DataOutputStream dos = new DataOutputStream(conn.getOut putStream());dos.writeBytes(parameters);dos.flush();dos.close();}// 从HttpURLConnection对象中读取响应的消息// 执行该语句时才正式发起请求is = conn.getInputStream();}catch(UnsupportedEncodingException e){e.printStackTrace();}catch(MalformedURLException e){e.printStackTrace();}catch(IOException e){e.printStackTrace();}return is;}public static void main(String args[]){String url = "https:///common/postcode/getPostCo deByAddr";String requestMethod = "POST";Map<String, String> params = new HashMap<String, String>(); params.put("weight", ""); //体重(单位:千克/公斤)params.put("height", ""); //身高(单位:厘米/cm)String result = null;try{InputStream is = httpRequestToStream(url, requestMethod, pa rams);byte[] b = new byte[is.available()];is.read(b);result = new String(b);}catch(IOException e){e.printStackTrace();}if (result != null){JSONObject jsonObject = JSONObject.parseObject(result);String status_code = jsonObject.getString("statusCode");if (status_code == "000000"){// 状态码为000000, 说明请求成功System.out.println("请求成功:" + jsonObject.getString("resu lt"));}else{// 状态码非000000, 说明请求失败System.out.println("请求失败:" + jsonObject.getString("desc "));}}else{// 返回内容异常,发送请求失败,以下可根据业务逻辑自行修改System.out.println("发送请求失败");}}}2.获取标准体重参考package net.apishop.www.controller;import java.io.DataOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.UnsupportedEncodingException;import .HttpURLConnection;import .MalformedURLException;import .URL;import .URLEncoder;import java.util.HashMap;import java.util.Map;import com.alibaba.fastjson.JSONObject;/*** httpUrlConnection访问远程接口工具*/public class Api{/*** 方法体说明:向远程接口发起请求,返回字节流类型结果* param url 接口地址* param requestMethod 请求方式* param params 传递参数重点:参数值需要用Base64进行转码* return InputStream 返回结果*/public static InputStream httpRequestToStream(String url, String re questMethod, Map<String, String> params){InputStream is = null;try{String parameters = "";boolean hasParams = false;// 将参数集合拼接成特定格式,如name=zhangsan&age=24for (String key : params.keySet()){String value = URLEncoder.encode(params.get(key), "UTF-8");parameters += key + "=" + value + "&";hasParams = true;}if (hasParams){parameters = parameters.substring(0, parameters.length() - 1);}// 请求方式是否为getboolean isGet = "get".equalsIgnoreCase(requestMethod);// 请求方式是否为postboolean isPost = "post".equalsIgnoreCase(requestMethod);if (isGet){url += "?" + parameters;}URL u = new URL(url);HttpURLConnection conn = (HttpURLConnection) u.openConnecti on();// 请求的参数类型(使用restlet框架时,为了兼容框架,必须设置Con tent-Type为“”空)conn.setRequestProperty("Content-Type", "application/octet-stream");// conn.setRequestProperty("Content-Type", "application/x-w ww-form-urlencoded");// 设置连接超时时间conn.setConnectTimeout(50000);// 设置读取返回内容超时时间conn.setReadTimeout(50000);// 设置向HttpURLConnection对象中输出,因为post方式将请求参数放在http正文内,因此需要设置为ture,默认falseif (isPost){conn.setDoOutput(true);}// 设置从HttpURLConnection对象读入,默认为trueconn.setDoInput(true);// 设置是否使用缓存,post方式不能使用缓存if (isPost){conn.setUseCaches(false);}// 设置请求方式,默认为GETconn.setRequestMethod(requestMethod);// post方式需要将传递的参数输出到conn对象中if (isPost){DataOutputStream dos = new DataOutputStream(conn.getOut putStream());dos.writeBytes(parameters);dos.flush();dos.close();}// 从HttpURLConnection对象中读取响应的消息// 执行该语句时才正式发起请求is = conn.getInputStream();}catch(UnsupportedEncodingException e){e.printStackTrace();}catch(MalformedURLException e){e.printStackTrace();}catch(IOException e){e.printStackTrace();}return is;}public static void main(String args[]){String url = "https:///common/postcode/getPostCo deByAddr";String requestMethod = "POST";Map<String, String> params = new HashMap<String, String>(); String result = null;try{InputStream is = httpRequestToStream(url, requestMethod, pa rams);byte[] b = new byte[is.available()];is.read(b);result = new String(b);}catch(IOException e){e.printStackTrace();}if (result != null){JSONObject jsonObject = JSONObject.parseObject(result);String status_code = jsonObject.getString("statusCode");if (status_code == "000000"){// 状态码为000000, 说明请求成功System.out.println("请求成功:" + jsonObject.getString("resu lt"));}else{// 状态码非000000, 说明请求失败System.out.println("请求失败:" + jsonObject.getString("desc "));}}else{// 返回内容异常,发送请求失败,以下可根据业务逻辑自行修改 System.out.println("发送请求失败");}}}。

迷你计算器说明书

摘要本设计要求学生设计、开发出一个简单的计算器。

通过该题目的设计,培养学生面向对象程序设计的思想,要求学生达到熟练掌握Java语言的基本知识和技能,基本掌握面向对象程序设计的基本思路和方法,能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。

同时强调好的程序设计风格,提高解决实际问题的能力。

关键词:Java语言、计算器、图形界面该程序是一个图形界面的简单的java计算器,使用人员能快捷简单地进行操作。

即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。

可以进行简单的四则运算(加,减,乘,除,以及求相反数),有退格功能,归零表示初始化,界面颜色为灰白,该程序支持键盘操作等。

随着科学技术的不断发展,计算机已经成为我们工作学习和生活中不可缺少的工具。

文本编辑器是个人计算机最司空见惯的应用程序了,在学习了Java语言之后,使用Java语言编写一个简单的计算器,可以实现简单的运算功能,满足日常基本的工作学习和娱乐需要。

Java是由Sun公司开发的新一代纯面向对象的网络编程语言。

其目标是建立一种在任意种机器,任一种操作系统的网络环境中运行的软件,实行所谓“程序写一次,到处运行”的目标。

正因为如此,Java已成为当今Internet上最流行,最受欢迎的一种程序开发语言。

摘要 (I)前言 (II)第1章任务要求 (1)1.1 基本要求 (1)1.2 系统要求 (1)第2章详细设计 (2)2.1 实现功能 (2)2.2 功能模块 (2)2.3 图形界面设计 (2)2.4 功能实现 (5)2.5 小程序 (6)2.5.1 图形界面设计 (6)2.5.2 功能运算 (8)第3章系统测试 (11)3.1 测试方案 (11)3.2 测试用例 (11)3.3 测试结果 (11)3.3.1 四则运算测试结果 (11)3.3.2其他运算测试结果 (12)3.4 软件可靠性分析 (12)3.5 软件不足性分析 (13)第4章软件使用说明书 (14)4.1图形界面 (14)4.2四则运算举例 (14)4.3其他运算举例 (16)4.4清零及退格操作 (16)4.5小程序及其操作 (17)4.5.1小程序主界面 (17)4.5.1小程序操作说明 (17)参考文献 (18)课程设计总结 (19)致谢 (20)第1章任务要求1.1 基本要求:绘制基本国际象棋棋盘。

课程设计报告(java版的计算器源代码)

程序功能简介:从最基本的加、减、乘、除,到基本数学函数处理,再到数的进制转换处理。

代码如下/*文件名:Calculator.java*说明:简易科学计算器*/import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Calculator extends Frame implements ActionListener, WindowListener{private Container container;private GridBagLayout layout;private GridBagConstraints constraints;private JTextField displayField; //计算结果显示区private String lastCommand; //保存+,-,*,/,=命令0private double result; //保存计算结果private boolean start; //判断是否为数字的开始private JMenuBar menubar;private JMenuItem m_exit,m2_ejz,m2_bjz;private Dialog dialog;private Label label_dialog;private JButton button_sqrt,button_plusminus,button_CE,button_cancel,button_1,button_2,button_3,button_4,button_5,button_6,button_7,button_8,button_9,button_0,button_plus,button_minus,button_multiply,button_divide,button_point,button_equal,button_log,button_tan,button_cos,button_sin,button_exp;public Calculator() //构造方法设置布局、为按钮注册事件监听器{super("Calculator");this.setLocation(240,200);this.setSize(350,300);this.setResizable(true);this.setLayout(new GridLayout(7,1));this.addmyMenu(); //调用成员方法添加菜单displayField=new JTextField(30);this.add(displayField);displayField.setEditable(true);start=true;result=0;lastCommand = "=";JPanel panel0=new JPanel();panel0.setLayout(new GridLayout(1,4,4,4));JPanel panel1=new JPanel();panel1.setLayout(new GridLayout(1,5,4,4));this.add(panel1);button_sqrt=new JButton("sqrt");button_plusminus=new JButton("+/-");button_exp=new JButton("exp");button_CE=new JButton("退格");button_cancel=new JButton("C");JPanel panel2=new JPanel();panel2.setLayout(new GridLayout(1,5,4,4));this.add(panel2);button_7=new JButton("7");button_8=new JButton("8");button_9=new JButton("9");button_log=new JButton("log");button_divide=new JButton("/");JPanel panel3=new JPanel();panel3.setLayout(new GridLayout(1,5,4,4));this.add(panel3);button_4=new JButton("4");button_5=new JButton("5");button_6=new JButton("6");button_tan=new JButton("tan");button_multiply=new JButton("*");JPanel panel4=new JPanel();panel4.setLayout(new GridLayout(1,5,4,4));this.add(panel4);button_1=new JButton("1");button_2=new JButton("2");button_3=new JButton("3");button_cos=new JButton("cos");button_minus=new JButton("-");JPanel panel5=new JPanel();panel5.setLayout(new GridLayout(1,5,4,4));this.add(panel5);button_0=new JButton("0");button_point=new JButton(".");button_equal=new JButton("=");button_sin=new JButton("sin");button_plus=new JButton("+");panel1.add(button_sqrt);panel1.add(button_plusminus);panel1.add(button_exp);panel1.add(button_CE);panel1.add(button_cancel);panel2.add(button_7);panel2.add(button_8);panel2.add(button_9);panel2.add(button_log);panel2.add(button_divide);panel3.add(button_4);panel3.add(button_5);panel3.add(button_6);panel3.add(button_tan);panel3.add(button_multiply);panel4.add(button_1);panel4.add(button_2);panel4.add(button_3);panel4.add(button_cos);panel4.add(button_minus);panel5.add(button_0);panel5.add(button_point);panel5.add(button_equal);panel5.add(button_sin);panel5.add(button_plus);button_sqrt.addActionListener(this);button_plusminus.addActionListener(this);button_exp.addActionListener(this);button_CE.addActionListener(this);button_cancel.addActionListener(this);button_7.addActionListener(this);button_8.addActionListener(this);button_9.addActionListener(this);button_log.addActionListener(this);button_divide.addActionListener(this);button_4.addActionListener(this);button_5.addActionListener(this);button_6.addActionListener(this);button_tan.addActionListener(this);button_multiply.addActionListener(this);button_1.addActionListener(this);button_2.addActionListener(this);button_3.addActionListener(this);button_cos.addActionListener(this);button_minus.addActionListener(this);button_0.addActionListener(this);button_point.addActionListener(this);button_equal.addActionListener(this);button_sin.addActionListener(this);button_plus.addActionListener(this);this.addWindowListener(new WinClose()); //注册窗口监听器this.setVisible(true);}private void addmyMenu() //菜单的添加{JMenuBar menubar=new JMenuBar();this.add(menubar);JMenu m1=new JMenu("选项");JMenu m2=new JMenu("进制转换");JMenuItem m1_exit=new JMenuItem("退出");m1_exit.addActionListener(this);JMenuItem m2_ejz=new JMenuItem("二进制");m2_ejz.addActionListener(this);JMenuItem m2_bjz=new JMenuItem("八进制");m2_bjz.addActionListener(this);JMenu m3 = new JMenu(" 帮助");JMenuItem m3_Help = new JMenuItem("用法");m3_Help.addActionListener(this);dialog = new Dialog(this,"提示",true); //模式窗口dialog.setSize(240,80);label_dialog = new Label("",Label.CENTER); //标签的字符串为空,居中对齐dialog.add(label_dialog);dialog.addWindowListener(this); //为对话框注册窗口事件监听器m1.add(m1_exit);menubar.add(m1);m2.add(m2_ejz);m2.add(m2_bjz);menubar.add(m2);m3.add(m3_Help);menubar.add(m3); }public void actionPerformed(ActionEvent e) //按钮的单击事件处理方法{if(e.getSource().equals(button_1)||e.getSource().equals(button_2)||e.getSource().equals(button_3)||e.getSource().equals(button_4)||e.getSource().equals(button_5)|| e.getSource().equals(button_6)||e.getSource().equals(button_7)|| e.getSource().equals(button_8)||e.getSource().equals(button_9) ||e.getSource().equals(button_0)||e.getSource().equals(button_point)||e.getSource().equals(button_plusminus)||e.getSource().equals(button_cancel)||e.getSource().equals(button_CE)){ //非运算符的处理方法String input=e.getActionCommand();if (start){displayField.setText("");start=false;if(input.equals("+/-"))displayField.setText(displayField.getText()+"-");}if(!input.equals("+/-")){String str=displayField.getText();if(input.equals("退格")) //退格键的实现方法{if(str.length()>0)displayField.setText(str.substring(0,str.length()-1));}else if(input.equals("C")) //清零键的实现方法{displayField.setText("0");start=true;}elsedisplayField.setText(displayField.getText()+input);}}else if (e.getActionCommand()=="二进制") //二进制的转换{int n=Integer.parseInt(displayField.getText());displayField.setText(Integer.toBinaryString(n));}else if (e.getActionCommand()=="八进制") //八进制的转换{int n=Integer.parseInt(displayField.getText());displayField.setText(Integer.toOctalString(n));}else if (e.getActionCommand()=="退出") //选项中退出的处理方法{System.exit(0);}else if (e.getActionCommand()=="用法") //按下'帮助'菜单栏中用法的处理方法{label_dialog.setText("sqrt,exp等键是先输运算符再输数字\n");dialog.setLocation(400,250);dialog.setVisible(true);}else //各运算符的识别{String command=e.getActionCommand();if(start){lastCommand=command;}else{calculate(Double.parseDouble(displayField.getText()));lastCommand=command;start=true;}}}public void calculate(double x) //各运算符的具体运算方法double d=0;if (lastCommand.equals("+"))result+= x;else if (lastCommand.equals("-"))result-=x;else if (lastCommand.equals("*"))result*=x;else if (lastCommand.equals("/"))result/=x;else if (lastCommand.equals("="))result=x;else if (lastCommand.equals("sqrt")){d=Math.sqrt(x);result=d;}else if (lastCommand.equals("exp")){d=Math.exp(x);result=d;}else if (lastCommand.equals("log")){d=Math.log(x);result=d;}else if (lastCommand.equals("tan")){d=Math.tan(x);result=d;}else if (lastCommand.equals("cos")){d=Math.cos(x);result=d;}else if (lastCommand.equals("sin")){d=Math.sin(x);result=d;}displayField.setText(""+ result);}public void windowClosing(WindowEvent e){if(e.getSource()==dialog)dialog.setVisible(false); //隐藏对话框 elseSystem.exit(0);public void windowOpened(WindowEvent e) { }public void windowActivated(WindowEvent e) { }public void windowDeactivated(WindowEvent e) { }public void windowClosed(WindowEvent e) { }public void windowIconified(WindowEvent e) { }public void windowDeiconified(WindowEvent e) { }public static void main(String args[]){Calculator calculator=new Calculator();}}class WinClose implements WindowListener{public void windowClosing(WindowEvent e) //单击窗口关闭按钮时触发并执行实现窗口监听器接口中的方法{System.exit(0); //结束程序运行}public void windowOpened(WindowEvent e){}public void windowActivated(WindowEvent e){}public void windowDeactivated(WindowEvent e){}public void windowClosed(WindowEvent e){}public void windowIconified(WindowEvent e){}public void windowDeiconified(WindowEvent e){}}运行结果截图:程序功能实现:1.运用两个面板的叠加做出界面。

保存计算过程的计算器 PPT


总体设计
• 设计计算器时要编写11个Java源文件。
• 需要Java系统提供的一些重要的类。
11个Java源文件
• CalculatorWindow.java,NumberButton .java,OperationButton.java,HandleDig it.java,HandleOperation.java,HandleD ot.java,HandlePositiveOrNegative.jav a,HandleEquality.java,HandleSin.java, HandleBack.java和HandleClear.java.
• JTextField resultShow;
//显示计算结果
• JTextField showComputerProcess; //显示当前计算过程
• JTextArea saveComputerProcess; //显示计算步骤
• JButton saveButton,copyButton,clearButton;
• public class NumberButton extends JButton{
• int number;
• public NumberButton(int number){

super(""+number);

this.number=number;

setForeground(Color.blue);
保存计算过程的计算器
• 制作人: • 邝泰鹏 罗强 谢奇
主要内容:
• 1.设计要求; • 2.总体要求; • 3.详细设计; • 5.代码调试; • 6.软件发布; • 7.课程设计题目.

java公式计算框架

java公式计算框架
Java公式计算框架有很多,以下列举几个常用的:
1. Apache Commons Math:Apache Commons Math是一个Java数学库,提供了计算基本数学、线性代数、随机数、统计方法等的工具类和算法。

其中包含了对复杂数学函数的支持,可以用于处理线性方程组、矩阵、向量等计算。

2. JEP :JEP(Java Expression Parser)是Java中一种功能强大、简单易用的数学表达式计算器,可支持从简单的数学表达式到复杂的函数、变量和条件表达式的计算和应用。

3. Expr4j:Expr4j是一个简单的数学表达式计算器,适用于处理基
本数学函数的计算和应用。

它可以对公式进行解析并直接对表达式进行计算。

4. JEval:JEval是一款轻量级的Java表达式计算器,可以支持数
学表达式计算、变量赋值、函数调用等复杂操作。

它提供了自定义函数和
操作符,可以按需扩展。

这些框架都能够实现公式的解析和计算,具体使用可根据需求进行选择。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Cal extends JFrame implements ActionListener {private JTextField disp;private JTextField none;private JButton[] buttons1;private JButton[] buttons2;private JButton[][] buttons3;private JPanel panel1;private JPanel panel2;private JPanel panel3;private String S1="";private String S2="";private double Sum=0.0;private boolean Flag=true;private boolean Jia=true;private boolean Jian=true;private boolean Cheng=true;private boolean Chu=true;private boolean Dian=true;private boolean Deng=true;public Cal(){super();this.Init();}public void Init(){this.setLayout(null);//取消窗体的默认布局方式disp=new JTextField();disp.setLocation(5, 5);disp.setSize(380, 30);disp.setText("0.");none=new JTextField();none.setLocation(5, 50);none.setSize(60, 30);none.setEnabled(false);//设置文本框不能用none.setBackground(Color.LIGHT_GRAY);this.add(disp);this.add(none);this.InitPanel1();//初始化面板1this.InitPanel2();this.InitPanel3();this.setTitle("计算器");this.setVisible(true);this.setSize(450,450);}public void InitPanel1(){String[] texts={"BackSpace","CE","C"};panel1=new JPanel();panel1.setSize(300,30);panel1.setLocation(90,50);buttons1=new JButton[3];//定义面板中所包含的按钮的个数panel1.setLayout(new GridLayout(1,3,3,3));for(int i=0;i<buttons1.length;i++){buttons1[i]=new JButton(texts[i]);panel1.add(buttons1[i]);//将按钮添加到面板中buttons1[i].addActionListener(this);}this.add(panel1);//将面板1添加到窗体中//设置面板的布局方式为表格布局方式}public void InitPanel2(){String[] texts={"MC","MR","MS","MR"};panel2=new JPanel();panel2.setSize(60,150);panel2.setLocation(5,90);buttons2=new JButton[4];//面板2中所包含的按钮panel2.setLayout(new GridLayout(4,1,3,3));for(int i=0;i<buttons2.length;i++){buttons2[i]=new JButton(texts[i]);panel2.add(buttons2[i]);//将按钮添加到面板中buttons2[i].addActionListener(this);}this.add(panel2);//将面板2添加到窗体中}public void InitPanel3(){String[][]texts={{"7","8","9","/","sqrt"},{"4","5","6","*","%"},{"1","2","3","-","1/x"},{"0","+/-",".","+","= "}};panel3=new JPanel();panel3.setSize(300,150);panel3.setLocation(90,90);buttons3=new JButton[4][5];//面板2中所包含的按钮panel3.setLayout(new GridLayout(4,5,3,3));for(int i=0;i<4;i++){for(int j=0;j<5;j++){buttons3[i][j]=new JButton(texts[i][j]);panel3.add(buttons3[i][j]);//将按钮添加到面板中buttons3[i][j].addActionListener(this);}}this.add(panel3);//将面板3添加到窗体中}public void actionPerformed(ActionEvent e){JButton bt=(JButton)e.getSource();if(bt.getText().equals("BackSpace")){if(!disp.getText().equals("0")){if(disp.getText().length()==1){disp.setText("0");}else{String temp=disp.getText();disp.setText(temp.substring(0,temp.length()-1));}}}else{if(bt.getText().equals("C")){disp.setText("0.");S1="";S2="";Sum=0.0;Flag=true;Jia=true;Jian=true;Cheng=true;Chu=true;Dian=true;Deng=true;}}if(bt.getText()=="1"||bt.getText()=="2"||bt.getText()=="3"||bt.getText()=="4"||bt.getText()==" 5"||bt.getText()=="6"||bt.getText()=="7"||bt.getText()=="8"||bt.getText()=="9"||bt.getText()=="0"){ if(Flag&&Deng){S1=S1+bt.getText();disp.setText(S1);}else{S2=S2+bt.getText();disp.setText(S2);}} else if(bt.getText()=="+/-"){double dd=0.0-Double.parseDouble(disp.getText());disp.setText(String.valueOf(dd));}else if(bt.getText()=="1/x"){if(disp.getText()=="0"){disp.setText("分母不能为零");}else{double tt=1/Double.parseDouble(disp.getText());disp.setText(String.valueOf(tt));}}else if(bt.getText().equals("sqrt")){disp.setText(String.valueOf(Math.sqrt(Double.parseDouble(disp.getText())))); }if(bt.getText()=="+"){Flag=false;Jia=false;}else if(bt.getText()=="-"){Flag=false;Jian=false;}else if(bt.getText()=="*"){Flag=false;Cheng=false;}else if(bt.getText()=="/"){Flag=false;Chu=false;}if(bt.getText().equals("=")){Deng=false;if(!Jia){Flag=true;Jia=true;Sum=Double.parseDouble(S1)+Double.parseDouble(S2);S1=String.valueOf(Sum);S2="";disp.setText(String.valueOf(Sum));}if(!Jian){Flag=true;Jian=true;Sum=Double.parseDouble(S1)-Double.parseDouble(S2);S1=String.valueOf(Sum);S2="";disp.setText(String.valueOf(Sum));}if(!Cheng){Flag=true;Cheng=true;Sum=Double.parseDouble(S1)*Double.parseDouble(S2);S1=String.valueOf(Sum);S2="";disp.setText(String.valueOf(Sum));}if(!Chu){Flag=true;Chu=true;if(Double.parseDouble(S2)==0){disp.setText("分母不能为零");}else{Sum=Double.parseDouble(S1)/Double.parseDouble(S2);S1=String.valueOf(Sum);S2="";disp.setText(String.valueOf(Sum));}}}}public static void main(String[] args) {Cal cal=new Cal();}}。

相关文档
最新文档