import java.awt.*;

惠濟(jì)網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,惠濟(jì)網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為惠濟(jì)上千提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的惠濟(jì)做網(wǎng)站的公司定做!
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
public class Calculator extends JFrame{
private float op1,op2;//定義兩個變量存放需要運(yùn)算的值
private String str="";//定義str去和text進(jìn)行交叉賦值
private String opr,co;//opr存放符合,co用來存放復(fù)制的內(nèi)容
private double re;//用來存放運(yùn)算的結(jié)果
private boolean bo=false;//是否進(jìn)行了+-*/運(yùn)算
private boolean btime=false;//時間開關(guān)
Container contentpane=this.getContentPane();
JPanel panel1=new JPanel(new BorderLayout()),
panel2=new JPanel(new FlowLayout()),
panel3=new JPanel(new GridLayout(4,5)),
panel4=new JPanel(new BorderLayout()),
panel5=new JPanel(new BorderLayout());
//菜單欄
JMenuBar menubar=new JMenuBar();
JMenu edit=new JMenu("編輯(E)"),
find=new JMenu("查看(V)"),
help=new JMenu("幫助(H)");
JMenuItem copy=new JMenuItem("復(fù)制(C)",'C'),
paste=new JMenuItem("粘貼(P)",'P'),
standard=new JMenuItem("標(biāo)準(zhǔn)型(T)",'T'),
science=new JMenuItem("科學(xué)型(S)",'S'),
numarray=new JMenuItem("數(shù)字分組(I)",'I'),
helptopic=new JMenuItem("幫助主題(H)",'H'),
aboutcal=new JMenuItem("關(guān)于計算器(A)",'A');
//輸入文本框
JTextField text=new JTextField(25);
//數(shù)字鍵
JButton one=new JButton("1"),
two=new JButton("2"),
three=new JButton("3"),
four=new JButton("4"),
five=new JButton("5"),
six=new JButton("6"),
seven=new JButton("7"),
eight=new JButton("8"),
nine=new JButton("9"),
zero=new JButton("0");
//功能鍵
JButton division=new JButton("/"),
multiply=new JButton("*"),
addition=new JButton("+"),
subtration=new JButton("-"),
sqrt=new JButton("sqrt"),
residual=new JButton("%"),
sign=new JButton("+/-"),
dot=new JButton("."),
reciprocal=new JButton("1/X"),
amount=new JButton("="),
backspace=new JButton("Backspace"),
ce=new JButton("CE"),
c=new JButton("C"),
time=new JButton("time");
public Calculator() {
contentpane.setLayout(new BorderLayout());
//textField文本從右邊開始寫
text.setHorizontalAlignment(SwingConstants.RIGHT);
text.setText("0.");
//菜單欄添加
edit.add(copy);
edit.add(paste);
find.add(standard);
find.add(science);
find.addSeparator();
find.add(numarray);
help.add(helptopic);
help.addSeparator();
help.add(aboutcal);
//把組件添加至容器中
menubar.add(edit);
menubar.add(find);
menubar.add(help);
panel1.add(menubar,"North");
panel1.add(text,"West");
//添加數(shù)字、功能鍵至panel2、panel3
panel2.add(backspace);
panel2.add(ce);
panel2.add(c);
panel2.add(time);
panel3.add(seven);
panel3.add(eight);
panel3.add(nine);
panel3.add(division);
panel3.add(sqrt);
panel3.add(four);
panel3.add(five);
panel3.add(six);
panel3.add(multiply);
panel3.add(residual);
panel3.add(one);
panel3.add(two);
panel3.add(three);
panel3.add(subtration);
panel3.add(reciprocal);
panel3.add(zero);
panel3.add(sign);
panel3.add(dot);
panel3.add(addition);
panel3.add(amount);
panel4.add(panel2,"North");
panel4.add(panel3,"West");
panel5.add(panel1,"North");
panel5.add(panel4,"West");
contentpane.add(panel5,"North");
//事件
//助記符
edit.setMnemonic('E');
find.setMnemonic('V');
help.setMnemonic('H');
//快捷鍵
KeyStroke kcopy=KeyStroke.getKeyStroke(KeyEvent.VK_C,Event.CTRL_MASK);
copy.setAccelerator(kcopy);
KeyStroke kpaste=KeyStroke.getKeyStroke(KeyEvent.VK_V,Event.CTRL_MASK);
paste.setAccelerator(kpaste);
//0-9、.的顯示事件
actionlistener1 al1=new actionlistener1();
one.addActionListener(al1);
two.addActionListener(al1);
three.addActionListener(al1);
four.addActionListener(al1);
five.addActionListener(al1);
six.addActionListener(al1);
seven.addActionListener(al1);
eight.addActionListener(al1);
nine.addActionListener(al1);
//小數(shù)點的ActionListener事件
dot.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
int count;
count=str.length();
//1.第一位就為.時改變text中內(nèi)容為:"0."
if(count==0){
str="0.";
text.setText(str);
}
//2.不可以重復(fù)按"."
else {if(!str.contains(".")){
str+=".";
text.setText(str);
}
else
System.out.println("您再點的話,輸入的將不再是小數(shù)了!");
}
}
});
//如果第一位是0那么第二位就不可以為0
zero.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
int count;
count=str.length();
if(bo){
if(!(str.contains("0")count==1)){
str="";
str+="0";
text.setText(str);
}else
System.out.println("您再點的話,輸入的將不再是數(shù)字了!");
}
else{
if(!(str.contains("0")count==1)){
str+="0";
text.setText(str);
}else
System.out.println("您再點的話,輸入的將不再是數(shù)字了!");
}
bo=false;
}
});
//+、-、*、/、%運(yùn)算
actionlistener3 al3=new actionlistener3();
addition.addActionListener(al3);
subtration.addActionListener(al3);
multiply.addActionListener(al3);
division.addActionListener(al3);
residual.addActionListener(al3);
//CE和C清空按鈕時間
actionlistener2 al2=new actionlistener2();
ce.addActionListener(al2);
c.addActionListener(al2);
//退格鍵
backspace.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
int count;
count=str.length()-1;
if(bo==false){
if(count=0){
str=str.substring(0,count);
text.setText(str);
}
else
text.setText("0.");
}else
System.out.println("您現(xiàn)在正進(jìn)行法則運(yùn)算!");
}
});
//求平方根
sqrt.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
int count;
count=str.length();
if(count!=0){
op1=Float.parseFloat(text.getText());
re=Math.sqrt(op1);
String str1=String.valueOf(re);
text.setText(str1);
str="";
}
else
System.out.println("您現(xiàn)在的按sqrt鍵毫無意義");
}
});
//求倒數(shù)
reciprocal.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
int count;
count=str.length();
if(count!=0){
op1=Float.parseFloat(text.getText());
if(op1!=0){
re=1/op1;
String str1=String.valueOf(re);
text.setText(str1);
str=str1;
}
else{
text.setText("除數(shù)不可以為0的");
str="";
}
}
else
System.out.println("您現(xiàn)在的按1/X鍵毫無意義");
}
});
//=事件
amount.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
op2=Float.parseFloat(str);
//需判斷進(jìn)行那種運(yùn)算法則
if(opr=="+"){//加法運(yùn)算
re=op1+op2;
String str1=String.valueOf(re);
text.setText(str1);
str=String.valueOf(re);
}else{
if(opr=="-"){//減法運(yùn)算
re=op1-op2;
String str1=String.valueOf(re);
text.setText(str1);
str=String.valueOf(re);
}else{
if(opr=="*"){//乘法運(yùn)算
re=op1*op2;
String str1=String.valueOf(re);
text.setText(str1);
str=String.valueOf(re);
}else{
if(opr=="/"op2!=0){//除法運(yùn)算
re=op1/op2;
String str1=String.valueOf(re);
text.setText(str1);
str=String.valueOf(re);
}else{
if(opr=="%"){//取余運(yùn)算
re=op1%op2;
String str1=String.valueOf(re);
text.setText(str1);
str="";
}
else if(op2==0){
text.setText("除數(shù)不可以為0的");
str="";
}
}
}
}
}
//打印看看
System.out.print(op1);
System.out.print(opr);
System.out.print(op2+"=");
System.out.print(re);
System.out.println();
}
});
//復(fù)制事件
copy.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
int count;
count=str.length();
if(count!=0){
co=text.getText();
}
else
System.out.println("沒有可復(fù)制的對象");
}
});
//粘貼事件
paste.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
str=co;
text.setText(str);
}
});
//時間事件
time.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(btime==false){
String st=(new Date()).toString();
text.setText(st);
str="";
btime=true;
}
else{
text.setText(str);
btime=false;
}
}
});
//+/-事件
sign.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
int a=Integer.valueOf(str);
a=a*(-1);
str=String.valueOf(a);
text.setText(str);
}
});
}
//定義1-9按鈕在text中顯示的內(nèi)部類
class actionlistener1 implements ActionListener{
public void actionPerformed(ActionEvent e){
JButton button=(JButton)e.getSource();
String btext=button.getText();
//如果第一位為0再輸入其他非零的整數(shù)時將零忽略
if(bo){
if(str.indexOf("0")==0str.length()==1){
str="";
str+=btext;
text.setText(str);
}else{
str="";
str+=btext;
text.setText(str);}
}else{
if(str.indexOf("0")==0str.length()==1){
str="";
str+=btext;
text.setText(str);
}else{
str+=btext;
text.setText(str);
}
}
bo=false;
}
}
//定義清空text中內(nèi)容的內(nèi)部類
class actionlistener2 implements ActionListener{
public void actionPerformed(ActionEvent e){
str="";
text.setText("0.");
}
}
//定義+、-、*、/、%運(yùn)算的內(nèi)部類
class actionlistener3 implements ActionListener{
public void actionPerformed(ActionEvent e){
int count;
count=str.length();
if(count!=0){
JButton button=(JButton)e.getSource();
opr=button.getText();
op1=Float.parseFloat(str);
bo=true;
}
else
System.out.println("您現(xiàn)在的按鍵毫無意義!");
}
}
public static void main(String[] args){
Calculator cc=new Calculator();
cc.pack();
cc.setResizable(false);//不可最大化
cc.setVisible(true);
cc.setTitle("計算器");
cc.setDefaultCloseOperation(EXIT_ON_CLOSE);
Dimension scmsize=Toolkit.getDefaultToolkit().getScreenSize();
int w=cc.getSize().width;
int h=cc.getSize().height;
int x=(scmsize.width-w)/2;
int y=(scmsize.height-h)/2;
cc.setLocation(x, y);
}
}
import java.util.Scanner;
public class JiSuan {
public static void main(String[] args) {
String zhanghao="765800331";//注意賬號密碼均為字符串類型
String mima="123456";
int isgoing=0;//當(dāng)賬號或密碼輸入錯誤時提示是否繼續(xù)輸入
String select="";//六種運(yùn)算中你的選擇
int result=0;//運(yùn)算結(jié)果
int a=0;
int b=0;
Scanner sa = new Scanner(System.in);
do{
System.out.println("請輸入你的賬號:");
String zhanghao1= sa.next();
System.out.println("請輸入你的密碼:");
String mima1= sa.next();
if(zhanghao.equals(zhanghao1)mima.equals(mima1)){
while(zhanghao.equals(zhanghao1)mima.equals(mima1)){
System.out.println("*******************歡迎使用Java小計算器**************");
System.out.println("本計算器提供以下功能");
System.out.println("A.加法");
System.out.println("B.減法");
System.out.println("C.乘法");
System.out.println("D.除法");
System.out.println("E.a的b次冪");
System.out.println("F.退出計算器");
System.out.println("請選擇:");
select= sa.next();
char c=select.charAt(0);//申明一個變量c來接收select轉(zhuǎn)換成char類型的變量
switch(c){
case 'A':
System.out.println("請輸入第一個數(shù)");
a = sa.nextInt();
System.out.println("請輸入第二個數(shù)");
b = sa.nextInt();
result = a+b;
System.out.println("運(yùn)算結(jié)果如下:"+result);
break;
case 'B':
System.out.println("請輸入第一個數(shù)");
a = sa.nextInt();
System.out.println("請輸入第二個數(shù)");
b = sa.nextInt();
result = a-b;
System.out.println("運(yùn)算結(jié)果如下:"+result);
break;
case 'C':
System.out.println("請輸入第一個數(shù)");
a = sa.nextInt();
System.out.println("請輸入第二個數(shù)");
b = sa.nextInt();
result = a*b;
System.out.println("運(yùn)算結(jié)果如下:"+result);
break;
case 'D':
System.out.println("請輸入第一個數(shù)");
a = sa.nextInt();
System.out.println("請輸入第二個數(shù)");
b = sa.nextInt();
result = a/b;
if(a%b!=0){
int m=a%b;
System.out.println("運(yùn)算結(jié)果如下:"+result+" 余數(shù):"+m);
}else{
System.out.println("運(yùn)算結(jié)果如下:"+result);
}
break;
case 'E':
System.out.println("請輸入第一個數(shù)");
a = sa.nextInt();
System.out.println("請輸入第二個數(shù)");
b = sa.nextInt();
int i=0;//指數(shù)的底數(shù)
int sum=1;//用來接收a的b次冪的結(jié)果
for(i=0;ib;i++){
sum=sum*a;
result=sum;
}
System.out.println("運(yùn)算結(jié)果如下:"+result);
break;
case 'F':
System.out.println("退出計算器");
break;
default:
System.out.println("無效輸入");
break;
}
if(c=='F'){
break;
}
}
}else{
System.out.println("賬號或密碼輸入錯誤!");
System.out.println("是否繼續(xù)輸入?(1.是0.否)");
isgoing = sa.nextInt();
}
}while(isgoing==1);
}
}
import java.awt.Color;
import java.awt.Font;
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;
import javax.swing.WindowConstants;
import javax.swing.border.LineBorder;
class Normal{
double i,j;
public Normal(double num1,double num2){
i=num1;
j=num2;
}
public double puls(){
return i+j;
}
public double subtract(){
return i-j;
}
public double multiply(){
return i*j;
}
public double divide(){
return i/j;
}
public double surpuls(){
return i%j;
}
}
class scientific extends Normal{
public scientific(int num1, int num2) {
super(num1, num2);
}
}
public class calc extends JFrame{
public static void main(String[] args) {
viewNormal VN= new viewNormal("normal");
}
}
class viewNormal extends JFrame implements ActionListener{
JPanel jp1 = new JPanel(new GridLayout(4,3,5,5));
JPanel jp2 = new JPanel(new GridLayout(5,1,5,5));
JLabel jl;
JButton[] jb;
JButton jbs,jbo,jba,jbb,jbc,jby;
StringBuffer sb = new StringBuffer();
Normal normal;
int dot=0;
double fnum=0;
double lnum=0;
double result;
String sign=null;
public viewNormal(String title){
setTitle(title);
setLayout(null);
setVisible(true);
setBounds(200,200,305,350);
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
jb= new JButton[12];
for(int i=0;i9;i++){
jb[i]=new JButton(""+(i+1));
jp1.add(jb[i]);
jb[i].addActionListener(this);
}
jb[9]=new JButton(".");
jb[10]=new JButton("0");
jb[11]=new JButton("=");
jb[9].addActionListener(this);
jb[10].addActionListener(this);
jb[11].addActionListener(this);
jp1.add(jb[9]);
jp1.add(jb[10]);
jp1.add(jb[11]);
jp1.setBounds(10, 100, 200, 200);
jbs= new JButton("+");jbo= new JButton("-");jba= new JButton("*");
jbb= new JButton("/");jby= new JButton("%");jbc= new JButton("C");
jbs.addActionListener(this);jbo.addActionListener(this);jba.addActionListener(this);
jbb.addActionListener(this);jby.addActionListener(this);jbc.addActionListener(this);
//jp2.add(jby);
jp2.add(jbs);jp2.add(jbo);jp2.add(jba);jp2.add(jbb);jp2.add(jbc);
jp2.setBounds(215, 100, 70, 200);
jl= new JLabel("0",JLabel.RIGHT);
jl.setFont(new Font("Batang",Font.BOLD, 20));
jl.setBorder(new LineBorder(Color.black,2));
jl.setBackground(Color.white);
jl.setBounds(10, 40, 275, 50);
jl.setOpaque(true);
add(jl);
add(jp1);
add(jp2);
}
//+
public void sum(){
lnum=Double.parseDouble(sb.toString());
normal=new Normal(fnum,lnum);
fnum=normal.puls();
result=fnum;
}
//-
private void sub() {
System.out.println(sb.toString());
lnum=Double.parseDouble(sb.toString());
normal=new Normal(fnum,lnum);
fnum=normal.subtract();
result=fnum;
}
//*
private void mul() {
lnum=Double.parseDouble(sb.toString());
normal=new Normal(fnum,lnum);
fnum=normal.multiply();
result=fnum;
}
// /
private void div() {
lnum=Double.parseDouble(sb.toString());
normal=new Normal(fnum,lnum);
fnum=normal.divide();
result=fnum;
}
//%
private void sur() {
lnum=Double.parseDouble(sb.toString());
normal=new Normal(fnum,lnum);
fnum=normal.surpuls();
result=fnum;
}
// =
private void same(){
if(sign.equals("+")){
sum();
}
if(sign.equals("-")){
sub();
}
if(sign.equals("*")){
mul();
}
if(sign.equals("/")){
div();
}
if(sign.equals("%")){
sur();
}
}
//result
public void Result(){
if(result%1!=0)
jl.setText(""+result);
else
{
int i=(int)result;
jl.setText(""+i);
}
}
@Override
public void actionPerformed(ActionEvent e) {
//System.out.println(sb.toString());
// 1~9
for(int i=0;i9;i++){
if(e.getSource()==jb[i]!sb.toString().equals("0")){
sb.append(jb[i].getText());
jl.setText(sb.toString());
}
else if(e.getSource()==jb[i]sb.toString().equals("0")){
int d=sb.length();
sb.delete(0, d);
sb.append(jb[i].getText());
jl.setText(sb.toString());
}
}
// 0
if(e.getSource()==jb[10]!sb.toString().equals("0")){
sb.append(jb[10].getText());
jl.setText(sb.toString());
}
// .
if(e.getSource()==jb[9]dot==0!sb.toString().equals("")){
dot++;
sb.append(jb[9].getText());
jl.setText(sb.toString());
}
// =
if(e.getSource()==jb[11]!sb.toString().equals("")){
same();
Result();
int d=sb.length();
sb.delete(0, d);
dot=0;
}
// +
if(e.getSource()==jbs!sb.toString().equals("")){
if(sign!="+"sign!=null)
same();
else
sum();
sign ="+";
Result();
int d=sb.length();
sb.delete(0, d);
dot=0;
}
//-
if(e.getSource()==jbo!sb.toString().equals("")){
if(fnum==0)
fnum=2*Double.parseDouble(sb.toString());
if(sign!="-"sign!=null)
same();
else
sub();
sign ="-";
Result();
int d=sb.length();
sb.delete(0, d);
dot=0;
}
//*
if(e.getSource()==jba!sb.toString().equals("")){
if(fnum==0)
fnum=1;
if(sign!="*"sign!=null)
same();
else
mul();
sign ="*";
Result();
int d=sb.length();
sb.delete(0, d);
dot=0;
}
// /
if(e.getSource()==jbb!sb.toString().equals("")){
if(fnum==0)
fnum=Math.pow(Double.parseDouble(sb.toString()),2);
if(sign!="/"sign!=null)
same();
else
div();
sign ="/";
Result();
int d=sb.length();
sb.delete(0, d);
dot=0;
}
//%
// if(e.getSource()==jby!sb.toString().equals("")){
// if(fnum==0){
// fnum=Double.parseDouble(sb.toString());
// result=fnum;
// }
// else {
// if(sign!="%"sign!=null)
// same();
// else{
// lnum=Double.parseDouble(sb.toString());
// normal=new Normal(fnum,lnum);
// fnum=normal.surpuls();
// result=fnum;
// }
// }
// sign ="%";
// Result();
// int d=sb.length();
// sb.delete(0, d);
// dot=0;
// }
//clear
if(e.getSource()==jbc){
int d=sb.length();
sb.delete(0, d);
jl.setText("0");
dot=0;
fnum=0;
lnum=0;
sign=null;
}
}
}
class viewScientific extends viewNormal{
public viewScientific(String title){
super(title);
setBounds(200,200,800,500);
}
}
//等號以后輸入符號用不了, String轉(zhuǎn) double 本來就有錯誤,你可以用我的擴(kuò)展成科學(xué)型的。
分享標(biāo)題:java算術(shù)運(yùn)算器的代碼 java算術(shù)運(yùn)算器的代碼是什么
分享鏈接:http://www.yijiale78.com/article38/ddocjpp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、虛擬主機(jī)、移動網(wǎng)站建設(shè)、服務(wù)器托管、自適應(yīng)網(wǎng)站、動態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)