⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calculate.txt

📁 一个简单的科学计算机器,是用JAVA写的,是我们大二时期的课设.
💻 TXT
字号:
程序源代码 

import javax.swing.*; 
import java.awt.Container; 
import java.awt.event.*; 

class Calculate_GUI extends JFrame{                      //主窗口定义   
private JPanel p1;                              
privateJButtonkeyButton[]=newJButton[16], clearButton,deleteButton; 
private JTextField ofd; 
private Container contentPane;       
private boolean firstInput=true; 
private Calculate_Model model=new Calculate_Model(); 

public Calculate_GUI(){ 
setTitle("calculate");
p1=new JPanel();            //创建面板对象p1
keyButton[0]=new JButton("7"); 
keyButton[1]=new JButton("8"); 
keyButton[2]=new JButton("9"); 
keyButton[3]=new JButton("/"); 
keyButton[4]=new JButton("4"); 
keyButton[5]=new JButton("5"); 
keyButton[6]=new JButton("6"); 
keyButton[7]=new JButton("*"); 
keyButton[8]=new JButton("1"); 
keyButton[9]=new JButton("2"); 
keyButton[10]=new JButton("3"); 
keyButton[11]=new JButton("-"); 
keyButton[12]=new JButton("+"); 
keyButton[13]=new JButton("0"); 
keyButton[14]=new JButton("."); 
keyButton[15]=new JButton("="); 
clearButton=new JButton("clear"); 
deleteButton=new JButton("del"); 
ofd=new JTextField(15); 
ofd.setText("0"); 
ofd.setEditable(false);                     //设定文本组件中的内容不可以编辑 
contentPane=this.getContentPane(); 

this.setSize(350,350); 
p1.setLayout(new java.awt.GridLayout(4,5)); //设定网格布局                                                            
for(int i=0;i<keyButton.length;i++){ 
if(i==4)p1.add(deleteButton); 
if(i==8)p1.add(clearButton); 
keyButton[i].setFont(new java.awt.Font("Dialog",1,16)); 
p1.add(keyButton[i]);                
} 
contentPane.add(ofd,java.awt.BorderLayout.NORTH); 
contentPane.add(p1,java.awt.BorderLayout.CENTER); 
this.show(); 
} 
public void registEvent(){                              事件 
this.addWindowListener(new WindowAdapter(){ 
public void windowClosing(WindowEvent we){System.exit(0);} 
}); 
for(int i=0;i<keyButton.length;i++){ 
keyButton[i].addActionListener(new keyButtonHandler()); //注册监听器 
}
deleteButton.addActionListener(new ActionListener(){ //注册监听器
public void actionPerformed(ActionEvent ae){ 
ofd.setText(model.backSpace(ofd.getText())); 
if(ofd.getText().equals("0"))firstInput=true; 
} 
}); 
clearButton.addActionListener(new ActionListener(){ //注册监听器
public void actionPerformed(ActionEvent ae){               
firstInput=true; 
ofd.setText("0"); 
model.reset(); 
} 
}); 
} 

class keyButtonHandler implements ActionListener{  //实现监听器功能             
public void actionPerformed(ActionEvent ae){ 
char actionCommand=ae.getActionCommand().charAt(0); 
switch(actionCommand){ 
case '1':case '2':case '3':case '4':case '5': case '6':case '7':case '8':
case '9':case '0':case '.': 
if(firstInput){ofd.setText(String.valueOf(actionCommand));firstInput=false;} 
else ofd.setText(ofd.getText()+actionCommand); 
break; 
case '+':case '-':case '*':case '/': 
if(firstInput)model.setOperate(actionCommand); 
else{ 
model.setOperateNumber(Double.parseDouble(ofd.getText())); 
model.calculating(); 
model.setOperate(actionCommand); 
ofd.setText(String.valueOf(model.getResult())); 
firstInput=true; 
} 
break; 
case '=': 
if(firstInput){ 
model.calculating(); 
ofd.setText(String.valueOf(model.getResult())); 
} 
else{ 
model.setOperateNumber(Double.parseDouble(ofd.getText())); 
model.calculating(); 
ofd.setText(String.valueOf(model.getResult())); 
firstInput=true; 
} 
} 
}
} 
public class Calculate_Model{                           //实现运算的功能类
private double result; 
private double operateNumber; 
private char operate; 

public Calculate_Model(){ 
result=0; 
operateNumber=0; 
operate=' '; 
} 

public void setResult(double n){ 
result=n; 
} 
public void setOperate(char o){ 
operate=o; 
} 
public void setOperateNumber(double n){ 
operateNumber=n; 
} 
public double getResult(){ 
return result; 
} 
public void calculating(){ 
switch(operate){             //操作符    
case ' ':result=operateNumber;break; 
case '+':result+=operateNumber;break; 
case '-':result-=operateNumber;break; 
case '*':result*=operateNumber;break; 
case '/':result/=operateNumber;break; 
} 
} 
public void reset(){ 
result=0; 
operateNumber=0; 
operate=' '; 
} 
public String backSpace(String n){ 
String reResult="0"; 
try{ 
reResult=n.substring(0,n.length()-1); 
Double.parseDouble(reResult); 
} 
catch(NumberFormatException e){reResult="0";} 
return reResult; 
} 
} 
public static void main(String args[]){                     //主函数
  Calculate_GUI th=new Calculate_GUI(); 
  th.registEvent();   }   }

这是我们的大二期未的JAVA课程设计,虽然简单了点, 我可是很认真做的.









⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -