1、java課程設計---計算器 要求如下:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import java.util.LinkedList;
import java.io.*;
public class CalculatorWindow extends JFrame implements ActionListener{
NumberButton numberButton[];
OperationButton operationButton[];
JButton 小數點操作,正負號操作,退格操作,等號操作,清零操作,sin;
JTextField resultShow; //顯示計算結果
JTextField showComputerProcess; //顯示當前計算過程
JTextArea saveComputerProcess; //顯示計算步驟
JButton saveButton,copyButton,clearButton;
LinkedList<String> list; //鏈表用來存放第一個運算數、運算符號和第二個運算數
HandleDigit handleDigit; //負責處理ActionEvent事件
HandleOperation handleOperation ;
HandleBack handleBack;
HandleClear handleClear;
HandleEquality handleEquality;
HandleDot handleDot;
HandlePOrN handlePOrN;
HandleSin handleSin;
public CalculatorWindow(){
setTitle("計算器");
JPanel panelLeft,panelRight;
list=new LinkedList<String>();
resultShow=new JTextField(10);
resultShow.setHorizontalAlignment(JTextField.RIGHT);
resultShow.setForeground(Color.blue);
resultShow.setFont(new Font("TimesRoman",Font.BOLD,16));
resultShow.setBorder(new SoftBevelBorder(BevelBorder.LOWERED));
resultShow.setEditable(false);
resultShow.setBackground(Color.white);
showComputerProcess=new JTextField();
showComputerProcess.setHorizontalAlignment(JTextField.CENTER);
showComputerProcess.setFont(new Font("Arial",Font.BOLD,16));
showComputerProcess.setBackground(Color.cyan);
showComputerProcess.setEditable(false);
saveComputerProcess=new JTextArea();
saveComputerProcess.setEditable(false);
saveComputerProcess.setFont(new Font("宋體",Font.PLAIN,16));
numberButton=new NumberButton[10];
handleDigit=new HandleDigit(list,resultShow,showComputerProcess);
for(int i=0;i<=9;i++){
numberButton[i]=new NumberButton(i);
numberButton[i].setFont(new Font("Arial",Font.BOLD,20));
numberButton[i].addActionListener(handleDigit);
}
operationButton=new OperationButton[4];
handleOperation=new HandleOperation(list,resultShow,
showComputerProcess,saveComputerProcess);
String 運算符號[]={"+","-","*","/"};
for(int i=0;i<4;i++){
operationButton[i]=new OperationButton(運算符號[i]);
operationButton[i].setFont(new Font("Arial",Font.BOLD,20));
operationButton[i].addActionListener(handleOperation);
}
小數點操作=new JButton(".");
handleDot=new HandleDot(list,resultShow,showComputerProcess);
小數點操作.addActionListener(handleDot);
正負號操作=new JButton("+/-");
handlePOrN=new HandlePOrN(list,resultShow,showComputerProcess);
正負號操作.addActionListener(handlePOrN);
等號操作=new JButton("=");
handleEquality=new HandleEquality(list,resultShow,
showComputerProcess,saveComputerProcess);
等號操作.addActionListener(handleEquality);
sin=new JButton("sin");
handleSin=new HandleSin(list,resultShow,
showComputerProcess,saveComputerProcess);
sin.addActionListener(handleSin);
退格操作=new JButton("退格");
handleBack=new HandleBack(list,resultShow,showComputerProcess);
退格操作.addActionListener(handleBack);
清零操作=new JButton("C");
handleClear=new HandleClear(list,resultShow,showComputerProcess);
清零操作.addActionListener(handleClear);
清零操作.setForeground(Color.red);
退格操作.setForeground(Color.red);
等號操作.setForeground(Color.red);
sin.setForeground(Color.blue);
正負號操作.setForeground(Color.blue);
小數點操作.setForeground(Color.blue);
panelLeft=new JPanel();
panelRight=new JPanel();
panelLeft.setLayout(new BorderLayout());
JPanel centerInLeft=new JPanel();
panelLeft.add(resultShow,BorderLayout.NORTH);
panelLeft.add(centerInLeft,BorderLayout.CENTER);
centerInLeft.setLayout(new GridLayout(4,5));
centerInLeft.add(numberButton[1]);
centerInLeft.add(numberButton[2]);
centerInLeft.add(numberButton[3]);
centerInLeft.add(operationButton[0]);
centerInLeft.add(清零操作);
centerInLeft.add(numberButton[4]);
centerInLeft.add(numberButton[5]);
centerInLeft.add(numberButton[6]);
centerInLeft.add(operationButton[1]);
centerInLeft.add(退格操作);
centerInLeft.add(numberButton[7]);
centerInLeft.add(numberButton[8]);
centerInLeft.add(numberButton[9]);
centerInLeft.add(operationButton[2]);
centerInLeft.add(sin);
centerInLeft.add(numberButton[0]);
centerInLeft.add(正負號操作);
centerInLeft.add(小數點操作);
centerInLeft.add(operationButton[3]);
centerInLeft.add(等號操作);
panelRight.setLayout(new BorderLayout());
panelRight.add(showComputerProcess,BorderLayout.NORTH);
saveButton=new JButton("保存");
copyButton=new JButton("復制");
clearButton=new JButton("清除");
saveButton.setToolTipText("保存計算過程到文件");
copyButton.setToolTipText("復制選中的計算過程");
clearButton.setToolTipText("清除計算過程");
saveButton.addActionListener(this);
copyButton.addActionListener(this);
clearButton.addActionListener(this);
panelRight.add(new JScrollPane(saveComputerProcess),BorderLayout.CENTER);
JPanel southInPanelRight=new JPanel();
southInPanelRight.add(saveButton);
southInPanelRight.add(copyButton);
southInPanelRight.add(clearButton);
panelRight.add(southInPanelRight,BorderLayout.SOUTH);
JSplitPane split=new JSplitPane
(JSplitPane.HORIZONTAL_SPLIT,panelLeft,panelRight);
add(split,BorderLayout.CENTER);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
setBounds(100,50,528,258);
validate();
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==copyButton)
saveComputerProcess.copy();
if(e.getSource()==clearButton)
saveComputerProcess.setText(null);
if(e.getSource()==saveButton){
JFileChooser chooser=new JFileChooser();
int state=chooser.showSaveDialog(null);
File file=chooser.getSelectedFile();
if(file!=null&&state==JFileChooser.APPROVE_OPTION){
try{ String content=saveComputerProcess.getText();
StringReader read=new StringReader(content);
BufferedReader in= new BufferedReader(read);
FileWriter outOne=new FileWriter(file);
BufferedWriter out= new BufferedWriter(outOne);
String str=null;
while((str=in.readLine())!=null){
out.write(str);
out.newLine();
}
in.close();
out.close();
}
catch(IOException e1){}
}
}
}
public static void main(String args[]){
new CalculatorWindow();
}
}
2、java 計算器課程設計報告
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;//導包
class MyClass extends JFrame
//創建一個MyClass類繼承JFrame框架的窗口類,
//也就是說JFrame里有的功能MyClass都能實現
{
JLabel a1=new JLabel("第一個數");
//創建一個顯示「第一個數」的標簽
JLabel a2=new JLabel("第二個數");
JLabel a3=new JLabel("運算結果");
JTextField b1=new JTextField(5);
//創建一個文本框、默認長度為5,用來輸入運算數字,當然也可以默認為空
JTextField b2=new JTextField(5);
JTextField b3=new JTextField(5);
//創建一個用於顯示運算結果的標簽,也可以創建一個標簽來顯示
JButton a=new JButton("加");
//創建一個用於加法計算的按鈕,點擊時進行加法運算
JButton b=new JButton("減");
JButton c=new JButton("乘");
JButton d=new JButton("除");
JPanel jp1=new JPanel();//創建一個面板,用來放控制項
JPanel jp2=new JPanel();
JPanel jp3=new JPanel();
MyClass()//構造函數,用來初始化的
{
setLayout(new GridLayout(3,1));//添加一個四行四列的布局管理器
jp1.setLayout(new FlowLayout());//設置JP1面板為流式布局管理器
jp1.setLayout(new FlowLayout());
//將a1,b1,a2,b2四個控制項添加到jp1面板中
jp1.add(a1);
jp1.add(b1);
jp1.add(a2);
jp1.add(b2);
jp1.add(a3);
//將a,b,c,d四個控制項添加到jp2面板中
jp2.add(a);
jp2.add(b);
jp2.add(c);
jp2.add(d);
jp3.add(a3);
jp3.add(b3);
//將jp1,jp2,jp3三個面板添加到窗口中
add(jp1);
add(jp3);
add(jp2);
Object e;
a.addActionListener(new ActionListener()
//創建一個匿名的事件監聽器
{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
double x=Double.valueOf(b1.getText().toString());
//獲取第一個輸入數,並將其由String型轉換成double型
double y=Double.valueOf(b2.getText().toString());
//獲取第二個輸入數,並將其由String型轉換成double型
b3.setText(""+(x+y));
//將運算結果在b3這個文本框中顯示
}
});
b.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
double x=Double.valueOf(b1.getText().toString());
double y=Double.valueOf(b2.getText().toString());
b3.setText(""+(x-y));
}
});
c.addActionListener(new ActionListener()//創建一個匿名的事件監聽器
{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
double x=Double.valueOf(b1.getText().toString());
double y=Double.valueOf(b2.getText().toString());
b3.setText(""+(x*y));
}
});
d.addActionListener(new ActionListener()//創建一個匿名的事件監聽器
{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
double x=Double.valueOf(b1.getText().toString());
double y=Double.valueOf(b2.getText().toString());
//因為0不能做除數,所以在這里需要進行判斷
if(y==0)
{
b3.setText("錯誤");
}
else
{
b3.setText(""+(x/y));
}
}
});
//下面的是設置窗口的屬性
this.setTitle("計算器");//設置窗口的標題
//this.setSize(400,400);//設置窗口的大小,也可以改成this.pack()
this.pack();
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);//設置關閉屬性
this.setVisible(true);//設置窗口的可見性
}
public static void main(String[] args)//主函數
{
new MyClass();
}
}
3、JAVA在WEB上的應用——實現簡易計算器 求代碼
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>網頁特效|網頁特效代碼(JsHtml.cn)---普通計算器代碼</title> </head> <body> <script language="JavaScript"> <!-- Hide the script from old browsers -- function compute(obj) {obj.expr.value = eval(obj.expr.value)} var one = '1' var two = '2' var three = '3' var four = '4' var five = '5' var six = '6' var seven = '7' var eight = '8' var nine = '9' var zero = '0' var plus = '+' var minus = '-' var multiply = '*' var divide = '/' var decimal = '.' function enter(obj, string) {obj.expr.value += string} function clear(obj) {obj.expr.value = ''} // --End Hiding Here --> </script> <form name="calc"> <table border=1> <td colspan=4><input type="text" name="expr" size=30 action="compute(this.form)"> <tr> <td><input type="button" value=" 7 " onClick="enter(this.form, seven)"> <td><input type="button" value=" 8 " onClick="enter(this.form, eight)"> <td><input type="button" value=" 9 " onClick="enter(this.form, nine)"> <td><input type="button" value=" / " onClick="enter(this.form, divide)"> <tr><td><input type="button" value=" 4 " onClick="enter(this.form, four)"> <td><input type="button" value=" 5 " onClick="enter(this.form, five)"> <td><input type="button" value=" 6 " onClick="enter(this.form, six)"> <td><input type="button" value=" * " onClick="enter(this.form, multiply)"> <tr><td><input type="button" value=" 1 " onClick="enter(this.form, one)"> <td><input type="button" value=" 2 " onClick="enter(this.form, two)"> <td><input type="button" value=" 3 " onClick="enter(this.form, three)"> <td><input type="button" value=" - " onClick="enter(this.form, minus)"> <tr><td colspan=2><input type="button" value=" 0 " onClick="enter(this.form, zero)"> <td><input type="button" value=" . " onClick="enter(this.form, decimal)"> <td><input type="button" value=" + " onClick="enter(this.form, plus)"> <tr><td colspan=2><input type="button" value=" = " onClick="compute(this.form)"> <td colspan=2><input type="button" value="AC" size= 3 onClick="clear(this.form)"> </table> </form> </body> </html> 執行的結果如下圖:
4、誰能夠幫我做Java課程設計,計算器的實現?
import java.awt.*;
import java.applet.*;
public class Calculator extends Applet{
TextField tfAnswer; //顯示輸入和結果的文本域
Button bPoint,bEqual,bPlus,bMinus,bClear,bMulti,bDivision; //運算符按鈕
Button[] b=new Button[10]; //數字按鈕
String currentOp,preOp; //當前操作和上一步操作
String foreText,backText; //當前輸入和上一次輸入
boolean isFloat = false; //運算類型標志
public void init() {
Panel panel1=new Panel(); //實例化面板
Panel panel2=new Panel();
Panel panel3=new Panel();
currentOp = new String(""); //實例化各組件
preOp = new String("");
foreText = new String("");
backText = new String("");
tfAnswer = new TextField(8);
setBackground(Color.lightGray); //設置Applet背景色
setForeground(Color.blue); //設置Applet前景色
for(int i=9;i>=0;i--){
b[i]=new Button(Integer.toString(i)); //實例化數字按鈕
panel2.add(b[i]); //增加按鈕到面板
}
bPoint = new Button("."); //實例化按鈕
bEqual = new Button("=");
bEqual.setForeground(Color.red); //設置按鈕前景色
bClear = new Button("清除");
bClear.setForeground(Color.red);
bDivision = new Button("/");
bDivision.setForeground(Color.red);
bMulti = new Button("*");
bMulti.setForeground(Color.red);
bMinus = new Button("-");
bMinus.setForeground(Color.red);
bPlus = new Button("+");
bPlus.setForeground(Color.red);
setLayout(new FlowLayout()); //設置布局管理器
panel1.setLayout(new FlowLayout());
panel2.setLayout(new GridLayout(4,3));
panel3.setLayout(new GridLayout(4,1));
panel1.add(tfAnswer); //增加組件到面板
panel1.add(bClear);
panel2.add(bPoint);
panel2.add(bEqual);
panel3.add(bPlus);
panel3.add(bMinus);
panel3.add(bMulti);
panel3.add(bDivision);
add(panel1); //增加組件到Applet
add(panel2);
add(panel3);
}
public boolean action(Event e, Object o) { //事件處理
String s = new String("");
for(int i=0;i<10;i++){
if(e.target==b[i]||e.target==bPoint){ //按鈕事件來自於數字按鈕和點按鈕
if(e.target != bPoint) {
s = (String)o;
doForeText(s); //處理輸入
}
if((e.target == bPoint)&&(!isFloat)){ //浮點數輸入
isFloat = true; //設置運算標志
s = (String)o;
if(foreText.equals("")){
foreText += "0."; //增加小數點前面0
}
else{
doForeText(s);
}
}
}
}
if(e.target == bClear) {
doClear(); //清除輸入
}
if((e.target == bMulti)||(e.target == bDivision)|| (e.target == bPlus)||(e.target == bMinus)) { //處理運算
if(foreText != ""){
currentOp = ((String)o);
doOperator(); //處理運算
}
else {
preOp = ((String)o);
}
}
if(e.target == bEqual) { //等於按鈕事件處理
doOperator(); //處理運算
}
return true;
}
public void doOperator(){
double dFore,dBack;
Double d;
if(preOp.equals("")) {
backText = foreText;
foreText = "";
tfAnswer.setText(backText); //顯示文本
}
else {
dFore = (new Double(foreText)).doubleValue(); //得到第一輸入
dBack = (new Double(backText)).doubleValue(); //得到第二輸入
foreText = "";
backText = tfAnswer.getText();
if(preOp.equals("+")) { //加運算處理
d = new Double((dBack + dFore)); //得到運算結果
tfAnswer.setText(d.toString()); //顯示運算結果
backText = d.toString();
}
if(preOp.equals("-")) {
d = new Double((dBack - dFore));//得到運算結果
tfAnswer.setText(d.toString()); //顯示運算結果
backText = d.toString();
}
if(preOp.equals("*")) {
d = new Double((dBack * dFore));//得到運算結果
tfAnswer.setText(d.toString());//顯示運算結果
backText = d.toString();
}
if(preOp.equals("/")) {
if (dFore==0){
tfAnswer.setText("除數不能為0"); //顯示出錯信息
return;
}
d = new Double((dBack / dFore));//得到運算結果
tfAnswer.setText(d.toString());//顯示運算結果
backText = d.toString();
}
}
//Math.sin();
preOp = currentOp;
}
public void doForeText(String s) {
foreText += s;
tfAnswer.setText(foreText); //顯示輸入
}
public void doBackText(String s){
backText = foreText;
foreText = "";
tfAnswer.setText(foreText); //顯示輸入
}
public void doClear() { //清除輸入
currentOp = "";
preOp = "";
foreText = "";
backText = "";
isFloat = false;
tfAnswer.setText("");
}
}
5、求JAVA課程設計計算器源代碼~~~急要能用的
網上找到一個,不把代碼貼過來了,自己看吧
http://www.blogjava.net/yangcai/archive/2006/11/14/81105.html
本人自己沒有試過,純粹想撈分
6、JAVA課程設計--簡易計算器. 求源代碼.
import javax.swing.*;//新的窗口組件包
import java.awt.*;
import java.awt.event.*;
public class Jisuanqi implements ActionListener
{ JFrame jf=new JFrame();
boolean dotExist, operated, equaled; // 幫助運算的布爾變數
double result; // 目前的結果
char lastOperator; // 表示上一運算符
JTextField jtf; // 顯示欄
JButton dot, plus, minus, multi, div, sqrt, equal, change, clear,quyu; // 運算符
JButton[] numbers;
Panel p=new Panel();
// 構造者
public Jisuanqi()
{
jf.setTitle("陳巳偉牌計算器");
// 初始化變數
dotExist = false; // 表示當前的數是否有小數點
operated = false; // 表示任意運算符是否被按下
equaled = false; // 表示等號是否被按下
result = 0;
lastOperator = '?';
// 初始化窗口變數
jtf = new JTextField("0");
jtf.setEditable(false); //設置文本框的可編輯性
jf.setSize(250,200);
jf.setVisible(true);
numbers = new JButton[10];
for (int i = 0; i < 10; i++)
numbers[i] = new JButton("" + i);
dot = new JButton(".");
plus = new JButton("+");
minus = new JButton("-");
multi = new JButton("*");
div = new JButton("/");
sqrt = new JButton("√");
equal = new JButton("=");
change= new JButton("±");
clear = new JButton("NC");
quyu=new JButton("%");
p.setLayout(new GridLayout(5,4));
p.add(numbers[1]);
p.add(numbers[2]);
p.add(numbers[3]);
p.add(plus);
p.add(numbers[4]);
p.add(numbers[5]);
p.add(numbers[6]);
p.add(minus);
p.add(numbers[7]);
p.add(numbers[8]);
p.add(numbers[9]);
p.add(multi);
p.add(dot);
p.add(numbers[0]);
p.add(sqrt);
p.add(div);
p.add(equal);
p.add(change);
p.add(clear);
p.add(quyu);
jf.add(jtf,BorderLayout.NORTH);
jf.add(p,BorderLayout.CENTER);
numbers[0].addActionListener(this);
numbers[1].addActionListener(this);
numbers[2].addActionListener(this);
numbers[3].addActionListener(this);
plus.addActionListener(this);
numbers[4].addActionListener(this);
numbers[5].addActionListener(this);
numbers[6].addActionListener(this);
minus.addActionListener(this);
numbers[7].addActionListener(this);
numbers[8].addActionListener(this);
numbers[9].addActionListener(this);
multi.addActionListener(this);
dot.addActionListener(this);
sqrt.addActionListener(this);
div.addActionListener(this);
equal.addActionListener(this);
change.addActionListener(this);
clear.addActionListener(this);
quyu.addActionListener(this);
}
// 對按鈕進行反應的方法
public void actionPerformed(ActionEvent e)
{
JButton btn = (JButton)e.getSource();
if (btn == clear)
{
jtf.setText("0");
dotExist = false;
operated = false;
equaled = false;
result = 0;
lastOperator = '?';
}
else if (btn == equal)
{
operate('=');
equaled = true;
}
else if (btn == plus)
{
operate('+');
equaled = false;
}
else if (btn == minus)
{
operate('-');
equaled = false;
}
else if (btn == multi)
{
operate('*');
equaled = false;
}
else if (btn == div)
{
operate('/');
equaled = false;
}
else if (btn==quyu){
operate('%');
equaled=false;
}
else if (btn == change)
{
operate('p');
operate('=');
equaled = true;
}
else if (btn == sqrt)
{
operate('s');
operate('=');
equaled = true;
}
else
{
if (equaled)
result = 0;
for (int i = 0; i < 10; i++)
if (btn == numbers[i])
{
if (jtf.getText().equals("0"))
jtf.setText("" + i);
else if(! operated)
jtf.setText(jtf.getText() + i);
else
{
jtf.setText("" + i);
operated = false;
}
}
if (btn == dot && ! dotExist)
{
jtf.setText(jtf.getText() + ".");
}
}
}
// 進行運算的方法
private void operate(char operator)
{
double currentNumber = Double.valueOf(jtf.getText()).doubleValue();
if (lastOperator == '?')
result = currentNumber;
else if (lastOperator == '+')
result += currentNumber;
else if (lastOperator == '-')
result -= currentNumber;
else if (lastOperator == '*')
result *= currentNumber;
else if (lastOperator == '/')
result /= currentNumber;
else if(lastOperator=='%')
result %=currentNumber;
else if (lastOperator == 'p')
result *= -1;
else if (lastOperator == 's')
result = Math.sqrt(currentNumber);
else if (lastOperator == '=' && equaled)
result = currentNumber;
jtf.setText("" + result);
operated = true;
lastOperator = operator;
}
public static void main(String[] args)
{new Jisuanqi();<br> <br> }
}
7、計算機課程設計 用JAVA做計算器
聯系我嘛,
這個沒什麼問題。
就是用JFrame嘛?
8、java課程設計:設計一個計算器模擬程序。
簡單,javascript就行頁面上添加一個文本框,下面添加按鈕,加減乘除四個方法。然後就OK了。
9、java課程設計:計算器的設計與實現 設計一個能實現計算功能的java程序,可以進行加減乘除
http://download點csdn點net/detail/wocao1212120/8877447
有個用netbeans做的有界面的 不知對你有沒有幫助。