public static void main(String[] args) {

站在用戶的角度思考問題,與客戶深入溝通,找到薛城網(wǎng)站設(shè)計(jì)與薛城網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名與空間、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋薛城地區(qū)。
String st = "";
計(jì)算器 j = new 計(jì)算器();
boolean t = true;
while (t) {
System.out.print("請輸入計(jì)算代碼:");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
st = br.readLine();
} catch (IOException ex) {
Logger.getLogger(計(jì)算器.class.getName()).log(Level.SEVERE, null, ex);
}
if (st.equals("end")) {
t = false;
} else if (!st.equals("")) {
j.處理(st);
}
}
}
public void 處理(String st) {
if (st.indexOf("+") != -1) {
加(符號(hào)處理(st, "+"));
} else if (st.indexOf("-") != -1) {
減(符號(hào)處理(st, "-"));
} else if (st.indexOf("握棚*") != -1) {
乘(符號(hào)處理(st, "*"叢野));
} else if (st.indexOf("/") != -1) {
除(符號(hào)處理(st, "/"));
}
}
public int[] 符號(hào)處理(String st, String s) {
int[] i = new int[2];
i[0] = Integer.parseInt(st.substring(0, st.indexOf(s)));
i[1] = Integer.parseInt(st.substring(st.indexOf(s) + 1));
return i;
}
public void 加(int x[]) {
System.out.println(x[0] + "+" + x[1] + "=" + (x[0] + x[1]));
}
public void 減(int[] x) {
System.out.println(x[0] + "-" + x[1] + "=" + (x[0] - x[1]));
}
public void 乘(int[] x) {
System.out.println(x[0] + "*" + x[1] + "=" + x[0] * x[1]);
}
public void 除(int x[]) {
if (x[1] == 0) {
System.out.print("除數(shù)不能為零"段鄭則);
return;
}
System.out.println(x[0] + "/" + x[1] + "=" + x[0] / x[1]);
}
可以運(yùn)行:輸入示例:55+62
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
public class Calculator extends JFrame{
private float op1,op2;//定義兩個(gè)變量存放需要運(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;//時(shí)間開關(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)于計(jì)算器源扒(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ù)點(diǎn)的ActionListener事件
dot.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
int count;
count=str.length();
//1.第一位就為.時(shí)改變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("您再點(diǎn)的話,輸入的將不再是小數(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("您再點(diǎn)的話,輸入的將不再是數(shù)字了!");
}
else{
if(!(str.contains("0")count==1)){
str+="0";
text.setText(str);
}else
System.out.println("您再點(diǎn)的話,輸入的將不再是數(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清空按鈕時(shí)間
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);
}
});
//時(shí)間事件
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ù)時(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("計(jì)算器");
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);
}
}
網(wǎng)頁題目:java計(jì)算器代碼下載 java編寫簡單計(jì)算器代碼
本文URL:http://chinadenli.net/article38/dsphcpp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、軟件開發(fā)、企業(yè)網(wǎng)站制作、面包屑導(dǎo)航、做網(wǎng)站、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)