《《JAVA計算器》word版》由會員分享,可在線閱讀,更多相關(guān)《《JAVA計算器》word版(5頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、
《JAVA程序設計》
任 務 報 告
課設題目: 計算器
學生姓名: 潘天雄
學 號: 11570122
完成日期: 2013.10.27
成 績:
題目基本要求:
編寫一個圖形界面計算機,具有基本的運算功能。
流程圖:
結(jié)構(gòu)介紹
一、Optr類
自定義的
2、運算符堆棧,用來存放優(yōu)先級低的運算符,用以解決運算時的優(yōu)先級問題。
包括自定義的出入棧、初始化和棧頂元素返回功能
二、Opnd類
自定義的操作數(shù)堆棧,用來存放未被運算的操作數(shù),用以解決運算時的優(yōu)先級問題。
包括自定義的出入棧、初始化和棧頂元素返回功能
三、Screen類
自定義的label顯示緩存,用來將運算結(jié)果和操作符進行整理后顯示。提供了初始化、數(shù)據(jù)添加、括號嵌套、整理等功能,使輸出更加符合生活習慣
四、Number類
自定義的數(shù)字緩沖區(qū),用來將單個按鈕的數(shù)字與輸入的小數(shù)點進行組合使起整理成一個數(shù)字以供之后的運算和顯示。此類提供一個判空方法,退格方法,清空方法以及進
3、入方法。
五、Cal類
此類的功能時描述界面并提供事件監(jiān)聽的方法,同時包含了程序入口。
六、Compute類
包含三個功能函數(shù)
private char Precee(Optr optr,char c);
public char Calculate(Optr optr,char c,Opnd opnd);
public double Operate(Optr optr,Opnd opnd);
1)private char Precee(Optr optr,char c)
此函數(shù)提供了一個優(yōu)先級表,將緩沖區(qū)的運算符與運算符棧棧頂?shù)倪\算符做優(yōu)先級比較,并返回優(yōu)先級的比較
4、結(jié)果
2)public char Calculate(Optr optr,char c,Opnd opnd);
此函數(shù)是邏輯函數(shù),將輸入的運算符進行優(yōu)先級查表比較,根據(jù)結(jié)果決定將其入?;蛑苯舆\算。
3)public double Operate(Optr optr,Opnd opnd);
此函數(shù)是運算函數(shù),根據(jù)傳遞的運算符進行相應運算并返回結(jié)果。
附錄:
源代碼:
一、Optr 類
//運算符棧
public class Optr {
private int top;//棧頂指針
private int maxsize;//棧大小
5、private char array[];//數(shù)據(jù)數(shù)組
public Optr(int maxsize){
this.maxsize=maxsize;
top=0;
array=new char[this.maxsize];
array[0]='#';
}//初始化棧 棧底為'#'
public void Clean(){
top=0;
array[0]='#';
}//重置棧
public void Push(char temp){
array[++this.top]=temp;
}//入棧
publ
6、ic char Pop(){
return array[top--];
}//出棧
public char GetTop(){
return array[top];
}
//返回棧頂
}
二、Opnd 類
//運算符棧
public class Opnd {
private int top;//棧頂指針
private int maxsize;//棧大小
private double array[];//數(shù)據(jù)數(shù)組
public Opnd(int maxsize){
this.maxsize=maxsiz
7、e;
top=0;
array=new double[this.maxsize];
}//初始化棧
public void Clean(){
top=0;
}//重置棧
public void Push(double temp){
array[++top]=temp;
}//入棧
public double Pop(){
return array[top--];
}//出棧
public double GetTop(){
return array[top];
}//返回棧頂
}
5