本文目录一览:
- 1、java中如何对较大的数字进行计算
- 2、用JAVA编写的科学计算器源代码
- 3、学Java不知道将来能做哪些工作?
- 4、求JAVA标准计算器与科学计算器转换源代码
- 5、Java编辑一个科学型计算器跟复合型计算器
- 6、java里如何正确计算检验和
java中如何对较大的数字进行计算
不管是不是用JAVA,其实方法都一样,利用数组比如说长度为一千的数字,可以这个 int[] number = new int[1000];相加的思路是,首先两个数组的长度必须是一致,位数不同的话,前面补0,内存有点浪费,但是计算起来比较方便。然后让它们从0到最高位,每位进行相加并保存相应的位置上。最后一步是从0开始判断有没有大于10的数字,如果有就向前面进位(前一个加1,当前位减10),这样就可以。如果是相减,其实思路还是一样的,每位先相减,再判断是否有小于0的,如果有则向前面一位借1(前一位减1,当前位加10)如果是相乘,和上面一样,不过要注意的是进位的时候,不止进一位,比如5*6,就要向前进3位了(前一位加3,当前位减30)除就比较麻烦点,要涉及到精确度问题,得看实际需要 输出就更容易了,直接for循环数组 特别要注意的是,如果最高位有进位的时候,这个是比较容易出错的地方 思路在上面,如果实现不了请留言
用JAVA编写的科学计算器源代码
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class Counter extends WindowAdapter
{
static JFrame f=new JFrame("计算器");
static JTextField text1=new JTextField("0.");
static String source="";
static String cal="";
static String object="";
static boolean flag=false;
static boolean flag1=true;
static boolean flag2=false;
public void init()
{
try
{
Container c=f.getContentPane();
JPanel pan1=new JPanel();
JButton b1=new JButton("1");
JButton b2=new JButton("2");
JButton b3=new JButton("3");
JButton b4=new JButton("4");
JButton b5=new JButton("5");
JButton b6=new JButton("6");
JButton b7=new JButton("7");
JButton b8=new JButton("8");
JButton b9=new JButton("9");
JButton b0=new JButton("0");
JButton b11=new JButton("+");
JButton b12=new JButton("-");
JButton b13=new JButton("*");
JButton b14=new JButton("/");
JButton b15=new JButton(".");
JButton b16=new JButton("=");
JButton bclar=new JButton("清零");
text1.setHorizontalAlignment(JTextField.RIGHT);
c.add(text1,"North");
c.add(pan1);
A aa=new A();
Result re=new Result();
Opertion op=new Opertion();
Clar cl=new Clar();
b1.addActionListener(aa);
b2.addActionListener(aa);
b3.addActionListener(aa);
b4.addActionListener(aa);
b5.addActionListener(aa);
b6.addActionListener(aa);
b7.addActionListener(aa);
b8.addActionListener(aa);
b9.addActionListener(aa);
b0.addActionListener(aa);
b11.addActionListener(op);
b12.addActionListener(op);
b13.addActionListener(op);
b14.addActionListener(op);
b16.addActionListener(re);
b15.addActionListener(aa);
bclar.addActionListener(cl);
pan1.add(b1);
pan1.add(b2);
pan1.add(b3);
pan1.add(b11);
pan1.add(b4);
pan1.add(b5);
pan1.add(b6);
pan1.add(b12);
pan1.add(b7);
pan1.add(b8);
pan1.add(b9);
pan1.add(b13);
pan1.add(b0);
pan1.add(b15);
pan1.add(b16);
pan1.add(b14);
pan1.add(bclar);
f.setSize(200,220);
f.setVisible(true);
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
}
class A implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String a=text1.getText();
String s=e.getActionCommand();
if(a.equals("0.")||a.equals("+")||a.equals("-")||a.equals("*")||a.equals("/"))
text1.setText(s);
else {
if(flag2)
{
text1.setText(s);
flag2=false;
}
else
text1.setText(a+s);
}
}
}
class Opertion implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
cal=e.getActionCommand();
if(flag1==true)
source=text1.getText();
text1.setText(cal);
flag1=false;
flag=true;
}
}
class Result implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
double num1;
num1=Double.parseDouble(source);
object=text1.getText();
double num2;
num2=Double.parseDouble(object);
double result=0;
if(cal.equals("+"))
result=num1+num2;
if(cal.equals("-"))
result=num1-num2;
if(cal.equals("*"))
result=num1*num2;
if(cal.equals("/"))
if(num2==0)
text1.setText("除数不能为0");
else
result=num1/num2;
String s1=Double.toString(result);
text1.setText(s1);
flag1=true;
flag2=true;
}
}
class Clar implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
text1.setText("0.");
}
}
public static void main(String[] args)
{
Counter count=new Counter();
count.init();
}
public void windowClosing(WindowEvent e){
System.exit(1);
}
public void windowOpened(WindowEvent e){}
public void windowIconified(WindowEvent e){}
public void windowDeiconified(WindowEvent e){}
public void windowClosed(WindowEvent e){}
public void windowActivated(WindowEvent e){}
public void windowDeactivated(WindowEvent e){}
}
学Java不知道将来能做哪些工作?
学习Java培训将来可以做企业应用开发、web开发、游戏开发、物联网等工作。1、企业应用开发:由于Java的安全性,很多企业会使用Java开发一些大型的应用,比如第三方交易系统、银行前后交易系统、医疗管理系统等等。千锋教育就有线上免费JavaScript线上公开课。 2、Web开发:用Java开发的网页会更流畅,更不容易卡顿,所以越来越多的公司开始用Java开发网页。目前很多培训机构也会在Java教学课程中教授html5、css、 JavaScript、 jQuery脚本语言和异步交互技术AJAX等知识点,让学员在培训后找到Java web开发工作。3、游戏开发:国内游戏行业正在蓬勃发展,且由于一些游戏脚本语言可以与Java语言无缝交互 ,而Java本身也可以开发一些小游戏,所以精通Java的人在游戏开发市场上地很受欢迎。4、物联网:物联网是近年来兴起的一个概念。目前,该领域人才匮乏。Java 的平台独立性使得Java语言非常适合开发嵌入式程序行业。如果想了解Java更多相关知识,建议到千锋教育了解一下。千锋教育目前在18个城市拥有22个校区,年培养优质人才20000余人,与国内20000余家企业建立人才输送合作关系,院校合作超600所。
求JAVA标准计算器与科学计算器转换源代码
importjava.awt.*;importjava.awt.event.*;importjava.lang.*;importjavax.swing.*;publicclassCounterextendsFrame{//声明三个面板的布局GridLayoutgl1,gl2,gl3;Panelp0,p1,p2,p3;JTextFieldtf1;TextFieldtf2;Buttonb0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19,b20,b21,b22,b23,b24,b25,b26;StringBufferstr;//显示屏所显示的字符串doublex,y;//x和y都是运算数intz;//Z表示单击了那一个运算符.0表示"+",1表示"-",2表示"*",3表示"/"staticdoublem;//记忆的数字publicCounter(){gl1=newGridLayout(1,4,10,0);//实例化三个面板的布局gl2=newGridLayout(4,1,0,15);gl3=newGridLayout(4,5,10,15);tf1=newJTextField(27);//显示屏tf1.setHorizontalAlignment(JTextField.RIGHT);tf1.setEnabled(false);tf1.setText("0");tf2=newTextField(10);//显示记忆的索引值tf2.setEditable(false);//实例化所有按钮、设置其前景色并注册监听器b0=newButton("Backspace");b0.setForeground(Color.red);b0.addActionListener(newBt());b1=newButton("CE");b1.setForeground(Color.red);b1.addActionListener(newBt());b2=newButton("C");b2.setForeground(Color.red);b2.addActionListener(newBt());b3=newButton("MC");b3.setForeground(Color.red);b3.addActionListener(newBt());b4=newButton("MR");b4.setForeground(Color.red);b4.addActionListener(newBt());b5=newButton("MS");b5.setForeground(Color.red);b5.addActionListener(newBt());b6=newButton("M+");b6.setForeground(Color.red);b6.addActionListener(newBt());b7=newButton("7");b7.setForeground(Color.blue);b7.addActionListener(newBt());b8=newButton("8");b8.setForeground(Color.blue);b8.addActionListener(newBt());b9=newButton("9");b9.setForeground(Color.blue);b9.addActionListener(newBt());b10=newButton("/");b10.setForeground(Color.red);b10.addActionListener(newBt());b11=newButton("sqrt");b11.setForeground(Color.blue);b11.addActionListener(newBt());b12=newButton("4");b12.setForeground(Color.blue);b12.addActionListener(newBt());b13=newButton("5");b13.setForeground(Color.blue);b13.addActionListener(newBt());b14=newButton("6");b14.setForeground(Color.blue);b14.addActionListener(newBt());b15=newButton("*");b15.setForeground(Color.red);b15.addActionListener(newBt());b16=newButton("%");b16.setForeground(Color.blue);b16.addActionListener(newBt());b17=newButton("1");b17.setForeground(Color.blue);b17.addActionListener(newBt());b18=newButton("2");b18.setForeground(Color.blue);b18.addActionListener(newBt());b19=newButton("3");b19.setForeground(Color.blue);b19.addActionListener(newBt());b20=newButton("-");b20.setForeground(Color.red);b20.addActionListener(newBt());b21=newButton("1/X");b21.setForeground(Color.blue);b21.addActionListener(newBt());b22=newButton("0");b22.setForeground(Color.blue);b22.addActionListener(newBt());b23=newButton("+/-");b23.setForeground(Color.blue);b23.addActionListener(newBt());b24=newButton(".");b24.setForeground(Color.blue);b24.addActionListener(newBt());b25=newButton("+");b25.setForeground(Color.red);b25.addActionListener(newBt());b26=newButton("=");b26.setForeground(Color.red);b26.addActionListener(newBt());//实例化四个面板p0=newPanel();p1=newPanel();p2=newPanel();p3=newPanel();//创建一个空字符串缓冲区str=newStringBuffer();//添加面板p0中的组件和设置其在框架中的位置和大小p0.add(tf1);p0.setBounds(10,25,300,40);//添加面板p1中的组件和设置其在框架中的位置和大小p1.setLayout(gl1);p1.add(tf2);p1.add(b0);p1.add(b1);p1.add(b2);p1.setBounds(10,65,300,25);//添加面板p2中的组件并设置其的框架中的位置和大小p2.setLayout(gl2);p2.add(b3);p2.add(b4);p2.add(b5);p2.add(b6);p2.setBounds(10,110,40,150);//添加面板p3中的组件并设置其在框架中的位置和大小p3.setLayout(gl3);//设置p3的布局p3.add(b7);p3.add(b8);p3.add(b9);p3.add(b10);p3.add(b11);p3.add(b12);p3.add(b13);p3.add(b14);p3.add(b15);p3.add(b16);p3.add(b17);p3.add(b18);p3.add(b19);p3.add(b20);p3.add(b21);p3.add(b22);p3.add(b23);p3.add(b24);p3.add(b25);p3.add(b26);p3.setBounds(60,110,250,150);//设置框架中的布局为空布局并添加4个面板setLayout(null);add(p0);add(p1);add(p2);add(p3);setResizable(false);//禁止调整框架的大小//匿名类关闭窗口addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente1){System.exit(0);}});setBackground(Color.lightGray);setBounds(100,100,320,280);setVisible(true);}//构造监听器classBtimplementsActionListener{publicvoidactionPerformed(ActionEvente2){try{if(e2.getSource()==b1)//选择"CE"清零{tf1.setText("0");//把显示屏清零str.setLength(0);//清空字符串缓冲区以准备接收新的输入运算数}elseif(e2.getSource()==b2)//选择"C"清零{tf1.setText("0");//把显示屏清零str.setLength(0);}elseif(e2.getSource()==b23)//单击"+/-"选择输入的运算数是正数还是负数{x=Double.parseDouble(tf1.getText().trim());tf1.setText(""+(-x));}elseif(e2.getSource()==b25)//单击加号按钮获得x的值和z的值并清空y的值{x=Double.parseDouble(tf1.getText().trim());str.setLength(0);//清空缓冲区以便接收新的另一个运算数y=0d;z=0;}elseif(e2.getSource()==b20)//单击减号按钮获得x的值和z的值并清空y的值{x=Double.parseDouble(tf1.getText().trim());str.setLength(0);y=0d;z=1;}elseif(e2.getSource()==b15)//单击乘号按钮获得x的值和z的值并清空y的值{x=Double.parseDouble(tf1.getText().trim());str.setLength(0);y=0d;z=2;}elseif(e2.getSource()==b10)//单击除号按钮获得x的值和z的值并空y的值{x=Double.parseDouble(tf1.getText().trim());str.setLength(0);y=0d;z=3;}elseif(e2.getSource()==b26)//单击等号按钮输出计算结果{str.setLength(0);switch(z){case0:tf1.setText(""+(x+y));break;case1:tf1.setText(""+(x-y));break;case2:tf1.setText(""+(x*y));break;case3:tf1.setText(""+(x/y));break;}}elseif(e2.getSource()==b24)//单击"."按钮输入小数{if(tf1.getText().trim().indexOf(′.′)!=-1)//判断字符串中是否已经包含了小数点{}else//如果没数点有小{if(tf1.getText().trim().equals("0"))//如果初时显示为0{str.setLength(0);tf1.setText((str.append("0"+e2.getActionCommand())).toString());}elseif(tf1.getText().trim().equals(""))//如果初时显示为空则不做任何操作{}else{tf1.setText(str.append(e2.getActionCommand()).toString());}}y=0d;}elseif(e2.getSource()==b11)//求平方根{x=Double.parseDouble(tf1.getText().trim());tf1.setText("数字格式异常");if(x0)tf1.setText("负数没有平方根");elsetf1.setText(""+Math.sqrt(x));str.setLength(0);y=0d;}elseif(e2.getSource()==b16)//单击了"%"按钮{x=Double.parseDouble(tf1.getText().trim());tf1.setText(""+(0.01*x));str.setLength(0);y=0d;}elseif(e2.getSource()==b21)//单击了"1/X"按钮{x=Double.parseDouble(tf1.getText().trim());if(x==0){tf1.setText("除数不能为零");}else{tf1.setText(""+(1/x));}str.setLength(0);y=0d;}elseif(e2.getSource()==b3)//MC为清除内存{m=0d;tf2.setText("");str.setLength(0);}elseif(e2.getSource()==b4)//MR为重新调用存储的数据{if(tf2.getText().trim()!="")//有记忆数字{tf1.setText(""+m);}}elseif(e2.getSource()==b5)//MS为存储显示的数据{m=Double.parseDouble(tf1.getText().trim());tf2.setText("M");tf1.setText("0");str.setLength(0);}elseif(e2.getSource()==b6)//M+为将显示的数字与已经存储的数据相加要查看新的数字单击MR{m=m+Double.parseDouble(tf1.getText().trim());}else//选择的是其他的按钮{if(e2.getSource()==b22)//如果选择的是"0"这个数字键{if(tf1.getText().trim().equals("0"))//如果显示屏显示的为零不做操作{}else{tf1.setText(str.append(e2.getActionCommand()).toString());y=Double.parseDouble(tf1.getText().trim());}}elseif(e2.getSource()==b0)//选择的是“BackSpace”按钮{if(!tf1.getText().trim().equals("0"))//如果显示屏显示的不是零{if(str.length()!=1){tf1.setText(str.delete(str.length()-1,str.length()).toString());//可能抛出字符串越界异常}else{tf1.setText("0");str.setLength(0);}}y=Double.parseDouble(tf1.getText().trim());}else//其他的数字键{tf1.setText(str.append(e2.getActionCommand()).toString());y=Double.parseDouble(tf1.getText().trim());}}}catch(NumberFormatExceptione){tf1.setText("数字格式异常");}catch(StringIndexOutOfBoundsExceptione){tf1.setText("字符串索引越界");}}}publicstaticvoidmain(Stringargs[]){newCounter();}}
Java编辑一个科学型计算器跟复合型计算器
Java编辑一个科学型计算器跟复合型计算器:
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextField;
import java.awt.GridLayout;
import javax.swing.JButton;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List; public class CalculaterYYWF extends JFrame {
private JPanel contentPane;
private JTextField textField;
private ListString listSign = new ArrayListString();
private ListDouble listNum = new ArrayListDouble(); public static void main(String[] args) {
new CalculaterYYWF();
} public CalculaterYYWF() {
setResizable(false);
setBackground(new Color(240, 255, 240));
setTitle("有猿无粉牌计算器");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 265, 375);
contentPane = new JPanel();
contentPane.setBackground(new Color(224, 255, 255));
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
textField = new JTextField();
textField.setBounds(10, 10, 237, 44);
contentPane.add(textField);
textField.setColumns(10);
JPanel panel = new JPanel();
panel.setBackground(new Color(224, 255, 255));
panel.setBounds(10, 64, 237, 273);
contentPane.add(panel);
panel.setLayout(new GridLayout(5, 4, 5, 5));
String stmp = "123+456-789*0.%/()";
for (int i = 0; i 18; i++) {
JButton j = new JButton(String.valueOf(stmp.charAt(i)));
j.setActionCommand(j.getText());
panel.add(j);
j.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
textField.setText(textField.getText().trim()
+ e.getActionCommand());
}
});
}
JButton bt_clear = new JButton("C");
panel.add(bt_clear);
bt_clear.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
textField.setText("");
}
});
JButton bt_deng = new JButton("=");
panel.add(bt_deng);
bt_deng.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String expression = textField.getText();
bracketResolve(expression);
}
});
setVisible(true);
} // 逐层消括号并计算
public void bracketResolve(String exp) {
String strjs = convertString(exp);
} }
java里如何正确计算检验和
import java.security.MessageDigest;
public class MD5HashingExample
{
public static void main(String[] args)throws Exception
{
String password = "123456";
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(password.getBytes("UTF-8" )); //or GBK
byte byteData[] = md.digest();
//convert the byte to hex format method 1
StringBuffer sb = new StringBuffer();
for (int i = 0; i byteData.length; i++) {
sb.append(Integer.toString((byteData[i] 0xff) + 0x100, 16).substring(1));
}
System.out.println("Digest(in hex format):: " + sb.toString());
//convert the byte to hex format method 2
StringBuffer hexString = new StringBuffer();
for (int i=0;ibyteData.length;i++) {
String hex=Integer.toHexString(0xff byteData[i]);
if(hex.length()==1) hexString.append('0');
hexString.append(hex);
}
System.out.println("Digest(in hex format):: " + hexString.toString());
}
}