計算器實驗報告_第1頁
計算器實驗報告_第2頁
計算器實驗報告_第3頁
計算器實驗報告_第4頁
計算器實驗報告_第5頁
已閱讀5頁,還剩17頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

試驗二、鞏固Java基礎一、試驗目標1)鞏固Java語言進行結構化程序設計基本概念。2)鞏固Java語言進行面向對象程序設計基本概念。3)能夠應用面向對象程序設計思想處理實際問題。二、試驗內容1)創建學生類Student來完成下面問題。(1)創建類Student,包含屬性學號no、姓名name和年紀age,且都是private類型;(2)申明一個結構方法,以初始化對象全部域;(3)申明取得各屬性(學號、姓名和年紀)各個方法;(4)申明設置各屬性(學號、姓名和年紀)各個方法;(5)申明一個public型toString方法,將該類全部域信息組合成一個字符串;(6)申明統計創建Student對象個數組員變量count和得到Student對象個數方法。在主類中使用Student類創建兩個Student對象,輸出對象全部域信息;修改其姓名和年紀,并顯示。publicclassStudent{

//無參結構函數

publicStudent(){}

//有參結構函數

publicStudent(Stringno,Stringname,intage){

this.no=no;

this.age=age;

=name;

}

privateStringno; //學號

privateStringname;//名稱

privateintage; //年紀

publicStringgetNo(){

returnno;

}

publicvoidsetNo(Stringno){

this.no=no;

}

publicStringgetName(){

returnname;

}

publicvoidsetName(Stringname){

=name;

}

publicintgetAge(){

returnage;

}

publicvoidsetAge(intage){

this.age=age;

}

//-----------------------------Set跟Get方法end------------------

//重寫toString方法

@Override

publicStringtoString(){

return"我名字叫:".concat(name).concat(",學號是:").concat(no).concat(",今年").concat(age+"歲了!");

}

//程序入口

publicstaticvoidmain(String[]args){

//學生對象1

stu=newStudent("00001","小明",18);

System.out.println(stu.toString());

//學生對象2

stu=newStudent("00002","小花",22);

System.out.println(stu.toString());

}

}三、需求分析該計算器程序除了具備加減乘除基本功效外還有重置功效ce,程序里面實現了事件監聽接口,該程序只能實現一些基本加減乘除運算。計算器基本功效:1、加法運算:用數字按鈕和“+”按鈕進行運算;2、減法運算:用數字按鈕和“-”按鈕進行運算;3、乘法運算:用數字按鈕和“*”按鈕進行運算;4、除法運算:用數字按鈕和“/”按鈕進行運算;5、開根運算:用數字按鈕和“sqrt”按鈕進行運算;6、返回上一級鍵實現;7、清零鍵C按鈕實現。四、系統設計功效函數說明actionPerformed將每個組件都添加事件響應。詳細事件響應操作將在其余類中逐一實現。jbInit()對程序進行初始化并設置大小,名字,布局方式handleReset()類實現C、CE、backspace按鈕復位操作handleNumber()字符串輸入控制類完成簡單計算器設計與實現。圖形界面以下列圖所表示:系統界面以下列圖所表示五、源程序運行正常,能夠實現計算器“+”“—”“*”“/”等運算功效。/*一個計算器,與Windows附件自帶計算器標準版功效、界面相仿。但還不支持鍵盤操作。*/packagesy;importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;importjava.io.*;//創建Calculate類繼承swing包里JFrame類用于顯示界面里標簽、按鈕和文本字段publicclassCalculateextendsJFrame{privateStringfront="",behind="";//分別用于統計加減乘除運算符之前之后輸入內容privateStringop;//用于統計運算符privateStringre;//用于存放運算結果字符串格式privatebooleanflag=false;//用于統計是否按下了運算符privatebooleanflag1=false;//用于判斷是否輸入了點運算符privatedoubleresult;//用于存放運算結果privatebooleanflag2=false;//用于判斷是否輸入了數字privatebooleanflag3=false;//用于判斷是否按下了等號運算符//swing包中對窗體中具備相同邏輯功效組件進行組合類JPanelcontentPane;/**計算器上鍵顯示名字創建對象并實例化*/JTextFieldtxtResult=newJTextField("0");JButtonbtnNull=newJButton("sqrt");//新建一個按鈕顯示為sqrtJButtonbtnFour=newJButton("4");//新建一個按鈕顯示為4JButtonbtnFive=newJButton("5");//新建一個按鈕顯示為5JButtonbtnSix=newJButton("6");//新建一個按鈕顯示為6JButtonbtnDecrease=newJButton("-");//新建一個按鈕顯示為-JButtonbtnBegin=newJButton("C");//新建一個按鈕顯示為cJButtonbtnOne=newJButton("1");//新建一個按鈕顯示為1JButtonbtnTwo=newJButton("2");//新建一個按鈕顯示為2JButtonbtnThree=newJButton("3");//新建一個按鈕顯示為3JButtonbtnMultiply=newJButton("*");//新建一個按鈕顯示為*JButtonbtnCancel=newJButton("←");//新建一個按鈕顯示為←JButtonbtnZero=newJButton("0");//新建一個按鈕顯示為0JButtonbtnMinus=newJButton("+/-");//新建一個按鈕顯示為+/-JButtonbtnPoint=newJButton(".");//新建一個按鈕顯示為.JButtonbtnDivide=newJButton("/");//新建一個按鈕顯示為/JButtonbtnEqual=newJButton("=");//新建一個按鈕顯示為=JButtonbtnIncrease=newJButton("+");//新建一個按鈕顯示為+JButtonbtnSeven=newJButton("7");//新建一個按鈕顯示為7JButtonbtnEight=newJButton("8");//新建一個按鈕顯示為8JButtonbtnNine=newJButton("9");//新建一個按鈕顯示為9//用try,catch拋犯錯誤,監視全部又可能發生異常代碼publicCalculate(){try{setDefaultCloseOperation(EXIT_ON_CLOSE);//用戶單擊窗口關閉按鈕時程序執行操作jbInit();}catch(Exceptionexception){exception.printStackTrace();}}//建立一個私有jbinit類對程序進行初始化并設置大小,名字,布局方式privatevoidjbInit()throwsException{contentPane=(JPanel)getContentPane();contentPane.setLayout(null);//設置布局方式null就是默認為流式布局this.setResizable(false);//窗口大小不可改變setSize(newDimension(400,300));//設置大小位置在屏幕(400,300)坐標處顯示計算setTitle("計算器");//設置標題txtResult.setEnabled(false);//設置控件是否可用txtResult.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));txtResult.setEditable(false);//不允許修改結果文本框txtResult.setHorizontalAlignment(SwingConstants.RIGHT);//文本框內容右對齊txtResult.setBounds(newRectangle(33,19,310,34));//自己制訂位置坐標長寬(33,39)31034btnNull.setBounds(newRectangle(298,70,46,37));btnNull.setFont(newjava.awt.Font("Dialog",Font.PLAIN,12));//設置字體//btnNull.addActionListener(newFrameCalculate_btnNull_actionAdapter(this);btnFour.setBounds(newRectangle(33,120,46,37));btnFour.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));btnFive.setBounds(newRectangle(101,120,46,37));btnFive.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));btnSix.setBounds(newRectangle(167,119,46,37));btnSix.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));btnDecrease.setBounds(newRectangle(234,120,46,37));btnDecrease.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));btnBegin.setBounds(newRectangle(298,121,46,37));btnBegin.setFont(newjava.awt.Font("Dialog",Font.PLAIN,15));btnBegin.addActionListener(newCalculate_btnBegin_actionAdapter(this));btnOne.setBounds(newRectangle(33,172,46,37));btnOne.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));btnTwo.setBounds(newRectangle(101,172,46,37));btnTwo.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));btnThree.setBounds(newRectangle(167,172,46,37));btnThree.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));btnMultiply.setBounds(newRectangle(234,172,46,37));btnMultiply.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));btnCancel.setBounds(newRectangle(298,172,46,37));btnCancel.setFont(newjava.awt.Font("Dialog",Font.PLAIN,12));btnCancel.addActionListener(newCalculate_btnCancel_actionAdapter(this));btnZero.setBounds(newRectangle(33,222,46,37));btnZero.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));//加載數字0-9監聽事件在進行某一個操作時候觸發某項功效btnZero.addActionListener(newCalculate_btnZero_actionAdapter(this));btnOne.addActionListener(newCalculate_btnZero_actionAdapter(this));btnTwo.addActionListener(newCalculate_btnZero_actionAdapter(this));btnThree.addActionListener(newCalculate_btnZero_actionAdapter(this));btnFour.addActionListener(newCalculate_btnZero_actionAdapter(this));btnFive.addActionListener(newCalculate_btnZero_actionAdapter(this));btnSix.addActionListener(newCalculate_btnZero_actionAdapter(this));btnSeven.addActionListener(newCalculate_btnZero_actionAdapter(this));btnEight.addActionListener(newCalculate_btnZero_actionAdapter(this));btnNine.addActionListener(newCalculate_btnZero_actionAdapter(this));btnMinus.setBounds(newRectangle(101,222,46,37));btnMinus.setFont(newjava.awt.Font("Dialog",Font.PLAIN,10));btnMinus.addActionListener(newCalculate_btnMinus_actionAdapter(this));btnPoint.setBounds(newRectangle(167,222,46,37));btnPoint.setFont(newjava.awt.Font("Dialog",Font.PLAIN,30));btnPoint.setHorizontalTextPosition(SwingConstants.CENTER);btnPoint.addActionListener(newCalculate_btnPoint_actionAdapter(this));btnDivide.setBounds(newRectangle(234,222,46,37));btnDivide.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));btnEqual.setBounds(newRectangle(298,222,46,37));btnEqual.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));btnEqual.addActionListener(newCalculate_btnEqual_actionAdapter(this));btnIncrease.setBounds(newRectangle(234,70,46,37));btnIncrease.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));//加載加減乘除運算符監聽事件btnIncrease.addActionListener(newCalculate_btnIncrease_actionAdapter(this));btnDecrease.addActionListener(newCalculate_btnIncrease_actionAdapter(this));btnMultiply.addActionListener(newCalculate_btnIncrease_actionAdapter(this));btnDivide.addActionListener(newCalculate_btnIncrease_actionAdapter(this));btnSeven.setBounds(newRectangle(33,70,46,37));btnSeven.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));btnEight.setBounds(newRectangle(101,70,46,37));btnEight.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));btnNine.setBounds(newRectangle(167,70,46,37));btnNine.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));//存放報表內容容器contentPane.add(btnFive);contentPane.add(btnSix);contentPane.add(btnDecrease);contentPane.add(btnBegin);contentPane.add(btnOne);contentPane.add(btnTwo);contentPane.add(btnThree);contentPane.add(btnMultiply);contentPane.add(btnCancel);contentPane.add(btnMinus);contentPane.add(btnPoint);contentPane.add(btnDivide);contentPane.add(btnEqual);contentPane.add(btnEight);contentPane.add(btnNine);contentPane.add(btnFour);contentPane.add(btnSeven);contentPane.add(btnIncrease);contentPane.add(btnNull);contentPane.add(txtResult);contentPane.add(btnZero);}publicvoidbtnZero_actionPerformed(ActionEvente){if(flag){//假如剛才按下了運算符txtResult.setText("");if(flag1){//判斷之前是否輸入了點運算符txtResult.setText("0."+e.getActionCommand());flag1=false;}else{txtResult.setText(e.getActionCommand());}flag2=true;}else{intnum=txtResult.getText().indexOf(".");if(num<0&&!txtResult.getText().equals("0")){txtResult.setText(txtResult.getText()+e.getActionCommand());}elseif(num<0&&txtResult.getText().equals("0")){txtResult.setText(e.getActionCommand());}elseif(num>=0&&txtResult.getText().equals("0")){txtResult.setText("0."+e.getActionCommand());}elseif(num>=0&&!txtResult.getText().equals("0")){txtResult.setText(txtResult.getText()+e.getActionCommand());}}flag=false;flag3=false;}publicvoidbtnIncrease_actionPerformed(ActionEvente){if(flag3){txtResult.setText(txtResult.getText());op=e.getActionCommand();//得到剛才按下運算符front=txtResult.getText();//統計加減乘除運算符之前輸入內容}elseif(flag2){ActionEventee=newActionEvent("qq",1,"pp");btnEqual_actionPerformed(ee);op=e.getActionCommand();//得到剛才按下運算符front=re;flag2=false;}else{front=txtResult.getText();//統計加減乘除運算符之前輸入內容op=e.getActionCommand();//得到剛才按下運算符}flag3=false;flag=true;//統計已經按下了加減乘除運算符其中一個}publicvoidbtnEqual_actionPerformed(ActionEvente){if(!flag3)//未曾按下等于運算符behind=txtResult.getText();elsefront=re;try{doublea1=Double.parseDouble(front);doubleb1=Double.parseDouble(behind);if(op=="+"){result=a1+b1;}elseif(op=="-"){result=a1-b1;}elseif(op=="*"){result=a1*b1;}else{result=a1/b1;}Doubler=newDouble(result);re=r.toString(result);txtResult.setText(re);}catch(ArithmeticExceptionce){txtResult.setText("除數不能為零");}catch(Exceptionee){}if(!flag3)flag3=true;}publicvoidbtnPoint_actionPerformed(ActionEvente){intnum=txtResult.getText().indexOf(".");if(num<0&&!flag)txtResult.setText(txtResult.getText()+e.getActionCommand());if(flag)flag1=true;}publicvoidbtnBegin_actionPerformed(ActionEvente){//清零運算符事件處理flag=false;flag1=false;flag2=false;flag3=false;front="";behind="";re="";txtResult.setText("0");}publicvoidbtnMinus_actionPerformed(ActionEvente){//取反運算符事件處理if(txtResult.getText().equals("0")){//假如文本框內容為0txtResult.setText(txtResult.getText());}elseif(txtResult.getText().indexOf("-")>=0){//若文本框中含有負號Stringa=txtResult.getText().replaceAll("-","");txtResult.setText(a);}elseif(flag){txtResult.setText("0");}else{txtResult.setText("-"+txtResult.getText())}}publicvoidbtnCancel_actionPerformed(ActionEvente){//退格事件處理方法Stringstr=txtResult.getText();if(str.length()==1){//如文本框中只剩下最終一個字符,將文本框內容置為0txtResult.setText("0");}if(str.length()>1){str=str.substring(0,str.length()-1);txtResult.setText(str);}}publicstaticvoidmain(String[]args){Calculatefc=newCalculate();fc.setSize(400,310);fc.setLocation(200,150);fc.setVisible(true);}}classCalculate_btnCancel_actionAdapterimplementsActionListener{privateCalculateadaptee;Calculate_btnCancel_actionAdapter(Calculateadaptee){this.adaptee=adaptee;}publicvoidactionPerformed(ActionEvente){adaptee.btnCancel_actionPerformed(e);}}classCalculate_btnMinus_actionAdapterimplementsActionListener{privateCalculateadaptee;Calculate_btnMinus_actionAdapter(Calculateadaptee){this.adaptee=adaptee;}publicvoidactionPerformed(ActionEvente){adaptee.btnMinus_actionPerformed(e);}}classCalculate_btnBegin_actionAdapterimplementsAct

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論