資源簡介
java課程設計,里面包含源程序和課程設計報告
題目要求:編寫一計算器,仿照windows xp計算器界面,能實現基本的運算及一些科學運算。
能實現的運算如下:
"+",加 "-",減 "*",乘 "/",除 "x^y",x的y次方 "Mod",取模 "And",相與 "Or",相或 "Xor",異或 "Lsh",左移 "Rsh",右移 "sqrt",開根號 "%",取百分數 "1/X",求倒數 正弦余弦函數:"sin", "cos", "tan", 對數函數:"ln", "log",階乘: "n!",立方:"x^3", 平方:"x^2", 取反:"Not" };
同時還提供菜單功能,可以復制粘貼運算結果,給出“科學型”和“基本型”運算選擇菜單,給出運算器幫助與程序、作者信息
2.更改程序圖標為計算器圖標
3.程序不足,對一些科學計算沒有進行計算值的校驗,希望讀者自行加入。

代碼片段和文件信息
import?java.awt.*;
import?javax.swing.*;
import?java.awt.event.*;
import?java.io.IOException;
public?class?Calculator?extends?Jframe?{
/**
?*?
?*/
JMenuItem?menu[];?//?菜單項
JTextField?tf1;?//?計算器顯示屏
TextField?tf2;?//?用于顯示是否有記憶值
Button?bt[]?=?new?Button[45];?//?45個按鈕
StringBuffer?str;?//?顯示屏所顯示的字符串
String?strTmp;//?暫存顯示屏的結果,用于復制、粘貼
double?x?y;?//?x和y為兩個運算數
static?double?m;?//?記憶值
int?op?=?23;
/*
?*?op表示單擊了那一個運算符.0-22分別表示:?“+“?“-“?“*“?“/“?“x^y“?“Mod“?“And“?“Or“
?*?“Xor“?“Lsh“?“Rsh“?“sqrt“?“%“?“1/X“?“sin“?“cos“?“tan“?“ln“
?*?“log“?“n!“?“x^3“?“x^2“?“Not“
?*/
public?Calculator()?{
//?更換程序圖標為計算器圖標image.jpg
Toolkit?tk?=?Toolkit.getDefaultToolkit();
Image?image?=?tk.createImage(“image.jpg“);?/*?image.gif計算器圖標?*/
setIconImage(image);
settitle(“計算器“);
setMenu();//?設置菜單項
setButtonAndTextField();//?實例化按鈕與文本區域
//?創建一個空字符串緩沖區
str?=?new?StringBuffer();
strTmp?=?new?String();
setResizable(false);//?禁止調整框架的大小
setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
setBackground(Color.white);
setVisible(true);//?顯示框架
}
public?void?setButtonAndTextField()?{
//?定義按鈕上顯示的字符
String?btCmd[]?=?{?“Backspace“?“CE“?“C“?“MC“?“MR“?“MS“?“M+“?“7“
“8“?“9“?“/“?“sqrt“?“4“?“5“?“6“?“*“?“%“?“1“?“2“?“3“
“-“?“1/X“?“0“?“+/-“?“.“?“+“?“=“?“PI“?“sin“?“ln“
“x^y“?“Mod“?“And“?“E“?“cos“?“log“?“x^3“?“Or“?“Xor“
“Lsh“?“tan“?“n!“?“x^2“?“Rsh“?“Not“?};
GridLayout?gl1?gl2?gl3?gl4;
JPanel?p0?p1?p2?p3?p4;
gl1?=?new?GridLayout(1?4?10?0);//?實例化四個面板的布局
gl2?=?new?GridLayout(4?1?0?15);
gl3?=?new?GridLayout(4?5?10?10);
gl4?=?new?GridLayout(3?6?10?10);
tf1?=?new?JTextField(26);//?顯示屏
tf1.setHorizontalAlignment(JTextField.RIGHT);
tf1.setEnabled(false);
tf1.setDisabledTextColor(Color.black);
tf1.setText(“0“);
tf2?=?new?TextField(5);//?顯示記憶的索引值
tf2.setEditable(false);
tf2.disable();
//?實例化所有按鈕、設置其前景色并注冊按鈕和鍵盤監聽器
int?i;
for?(i?=?0;?i?45;?i++)?{
bt[i]?=?new?Button(btCmd[i]);
bt[i].addActionListener(new?btEvent());
bt[i].addKeyListener(new?keyEvent());
if?(i?<=?6?||?(i?%?5?==?0?&&?i?27)?||?i?==?26)?{
bt[i].setForeground(Color.red);
}?else?if?(i?>=?27)?{
bt[i].setForeground(Color.magenta);
}?else?{
bt[i].setForeground(Color.blue);
}
}
//?實例化四個面板
p0?=?new?JPanel();
p1?=?new?JPanel();
p2?=?new?JPanel();
p3?=?new?JPanel();
p4?=?new?JPanel();
//?添加面板p0中的組件和設置其在框架中的位置和大小
p0.add(tf1);
p0.setFocusable(false);
p0.setBounds(10?0?290?180);
//?添加面板p1中的組件和設置其在框架中的位置和大小
p1.setLayout(gl1);
p1.add(tf2);
p1.add(bt[0]);
p1.add(bt[1]);
p1.add(bt[2]);
p1.setBounds(10?45?290?30);
//?添加面板p2中的組件并設置其的框架中的位置和大小
p2.setLayout(gl2);
p2.add(bt[3]);
p2.add(bt[4]);
p2.add(bt[5]);
p2.add(bt[6]);
p2.setBounds(10?85?40?180);
//?添加面板p3中的組件并設置其在框架中的位置和大小
p
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????192512??2009-12-21?15:05??實驗3\java實驗1.doc
?????文件???????4677??2009-11-30?20:34??實驗3\calculator\ReadMe.txt
?????文件????????739??2009-12-01?01:39??實驗3\calculator\bin\Calculator$btEvent.class
?????文件???????1278??2009-12-01?01:39??實驗3\calculator\bin\Calculator$keyEvent.class
?????文件???????2805??2009-12-01?01:39??實驗3\calculator\bin\Calculator$mnEvent.class
?????文件???????9484??2009-12-01?01:39??實驗3\calculator\bin\Calculator.class
?????文件????????301??2009-11-03?22:21??實驗3\calculator\.classpath
?????文件??????14191??2009-12-01?01:39??實驗3\calculator\src\Calculator.java
?????文件????????629??2009-11-03?22:21??實驗3\calculator\.settings\org.eclipse.jdt.core.prefs
?????文件????????386??2009-11-03?22:21??實驗3\calculator\.project
?????文件???????5827??2009-11-30?03:42??實驗3\calculator\image.jpg
?????目錄??????????0??2009-12-01?08:56??實驗3\calculator\bin
?????目錄??????????0??2009-12-01?08:56??實驗3\calculator\src
?????目錄??????????0??2009-12-01?08:56??實驗3\calculator\.settings
?????目錄??????????0??2009-12-01?08:56??實驗3\calculator
?????目錄??????????0??2009-12-21?15:12??實驗3
-----------?---------??----------?-----??----
???????????????232829????????????????????16
- 上一篇:java 學生選課系統
- 下一篇:簡單的學生信息管理
評論
共有 條評論