2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p>  《Java程序設(shè)計》課程設(shè)計</p><p>  設(shè)計題目  模擬科學(xué)計算器 </p><p>  設(shè)計時間  2013.6.18 至 2013.6.24 </p><p>  學(xué)生姓名  </p><p>  學(xué)生學(xué)號 

2、 </p><p>  所在班級  </p><p>  指導(dǎo)教師  </p><p><b>  目 錄</b></p><p><b>  1 設(shè)計目的1</b><

3、;/p><p><b>  2 設(shè)計任務(wù)1</b></p><p><b>  3 設(shè)計內(nèi)容1</b></p><p>  3.1 需求分析1</p><p>  3.1.1 問題描述1</p><p>  3.1.2 基本要求1</p><p>

4、;  3.2 設(shè)計方法及設(shè)計方案1</p><p>  3.2.1 包的描述1</p><p>  3.2.2 類的描述1</p><p>  3.2.3 類之間的關(guān)系1</p><p>  3.3 系統(tǒng)設(shè)計2</p><p>  3.3.1 操作流程圖2</p><p>  3.3

5、.2界面設(shè)計2</p><p>  3.4 系統(tǒng)實現(xiàn)3</p><p>  3.4.1 源程序3</p><p>  3.4.2 測試及運行結(jié)果10</p><p>  4 總結(jié)與心得體會11</p><p><b>  參考文獻(xiàn)12</b></p><p>&

6、lt;b>  1 設(shè)計目的</b></p><p>  實現(xiàn)基本數(shù)學(xué)運算、函數(shù)等功能:加、減、乘、除、階乘、正弦、余弦和指數(shù)運算。</p><p><b>  2 設(shè)計任務(wù)</b></p><p>  界面模擬Windows中的計算器程序。</p><p>  實現(xiàn)基本數(shù)學(xué)運算、函數(shù)等功能:加、減、乘、

7、除、階乘、正弦、余弦和指數(shù)運算。</p><p><b>  3 設(shè)計內(nèi)容</b></p><p><b>  3.1 需求分析</b></p><p>  3.1.1 問題描述 </p><p>  日常生活中經(jīng)常需要用到計算器,比如科學(xué)計算, 數(shù)值計算, 會計業(yè)務(wù)等等,在Applet中實現(xiàn)一個精

8、巧的計算器,可以讓用戶的 操作也更方便和快捷。 </p><p>  3.1.2 基本要求</p><p>  本項目需要實現(xiàn)一個具有四則運算的計算器,能夠?qū)崿F(xiàn)基本的加、減、乘、除、正弦、余弦和指數(shù)運算,以及其它的輔助功能;界面簡潔適用。</p><p>  3.2 設(shè)計方法及設(shè)計方案</p><p>  3.2.1 包的描述</p&g

9、t;<p>  import java.awt.*;</p><p>  import java.awt.event.*;</p><p>  import java.text.DecimalFormat;</p><p>  import javax.swing.*;</p><p>  3.2.2 類的描述</p>

10、;<p>  public Calucator()</p><p>  private void init()</p><p>  private void addButton()</p><p>  private void getResult ()</p><p>  3.2.3 類之間的關(guān)系</p><

11、p>  public class Calucator extends JFrame</p><p>  class Signs implements ActionListener</p><p>  class Clear implements ActionListener</p><p>  class Num implements ActionListen

12、er</p><p>  class Dot implements ActionListener</p><p><b>  3.3 系統(tǒng)設(shè)計</b></p><p>  3.3.1 操作流程圖</p><p>  3.3.2 界面設(shè)計</p><p><b>  3.4 系統(tǒng)實現(xiàn)<

13、;/b></p><p><b>  3.4.1 源程序</b></p><p>  import java.awt.*;</p><p>  import java.awt.event.*;</p><p>  import java.text.DecimalFormat;</p><p>

14、;  import javax.swing.*;</p><p>  public class Calucator extends JFrame {</p><p>  private JTextField tf;</p><p>  private JPanel panel1, panel2, panel3, panel4;</p><p>

15、;  private String back;</p><p>  private boolean IfResult = true, flag = false;</p><p>  private String oper = "=";</p><p>  private double result = 0;</p><p>

16、;  private Num numActionListener;</p><p>  private DecimalFormat df;</p><p>  public Calucator(){</p><p>  super("科學(xué)計算器");//設(shè)置標(biāo)題欄</p><p>  df = new DecimalFor

17、mat("#.####");//保留四位小數(shù)</p><p>  this.setLayout(new BorderLayout(10, 5));</p><p>  panel1 = new JPanel(new GridLayout(1, 3, 10, 10));</p><p>  panel2 = new JPanel(new GridL

18、ayout(5, 6, 5, 5));//5行6列</p><p>  panel3 = new JPanel(new GridLayout(5, 1, 5, 5));</p><p>  panel4 = new JPanel(new BorderLayout(5, 5));</p><p>  numActionListener = new Num();//實現(xiàn)

19、數(shù)字監(jiān)聽</p><p>  tf = new JTextField();</p><p>  tf.setEditable(false);//文本區(qū)域不可編輯</p><p>  tf.setBackground(Color.white);//文本區(qū)域的背景色</p><p>  tf.setHorizontalAlignment(JTex

20、tField.RIGHT);//文字右對齊</p><p>  tf.setText("0");</p><p>  tf.setBorder(BorderFactory.createLoweredBevelBorder());</p><p>  init();//對計算器進(jìn)行初始化</p><p><b> 

21、 }</b></p><p>  private void init(){</p><p>  addButton(panel1, "Backspace", new Clear(), Color.red);</p><p>  addButton(panel1, "CE", new Clear(), Color.r

22、ed);</p><p>  addButton(panel1, "C", new Clear(), Color.red);</p><p>  addButton(panel2, "1/x", new Signs(), Color.magenta);</p><p>  addButton(panel2, "log

23、", new Signs(), Color.magenta);</p><p>  addButton(panel2, "7", numActionListener, Color.blue);</p><p>  addButton(panel2, "8", numActionListener, Color.blue);</p>

24、<p>  addButton(panel2, "9", numActionListener, Color.blue);</p><p>  addButton(panel2, "÷", new Signs(), Color.red);</p><p>  addButton(panel2, "n!", n

25、ew Signs(), Color.magenta);</p><p>  addButton(panel2, "sqrt", new Signs(), Color.magenta);</p><p>  addButton(panel2, "4", numActionListener, Color.blue);</p><p&g

26、t;  addButton(panel2, "5", numActionListener, Color.blue);</p><p>  addButton(panel2, "6", numActionListener, Color.blue);</p><p>  addButton(panel2, "×", new

27、Signs(), Color.red);</p><p>  addButton(panel2, "sin", new Signs(), Color.magenta);</p><p>  addButton(panel2, "x^2", new Signs(), Color.magenta);</p><p>  addBu

28、tton(panel2, "1", numActionListener, Color.blue);</p><p>  addButton(panel2, "2", numActionListener, Color.blue);</p><p>  addButton(panel2, "3", numActionListener,

29、 Color.blue);</p><p>  addButton(panel2, "-", new Signs(), Color.red);</p><p>  addButton(panel2, "cos", new Signs(), Color.magenta);</p><p>  addButton(panel2,

30、"x^3", new Signs(), Color.magenta);</p><p>  addButton(panel2, "0", numActionListener, Color.blue);</p><p>  addButton(panel2, "-/+", new Clear(), Color.blue);</

31、p><p>  addButton(panel2, ".", new Dot(), Color.blue);</p><p>  addButton(panel2, "+", new Signs(), Color.red);</p><p>  addButton(panel2, "tan", new Sign

32、s(), Color.magenta);</p><p>  addButton(panel2, "%", new Signs(), Color.magenta);</p><p>  addButton(panel2, "π", numActionListener, Color.orange);</p><p>  addB

33、utton(panel2, "e", numActionListener, Color.orange);</p><p>  addButton(panel2, "′″", new Signs(), Color.orange);</p><p>  addButton(panel2, "=", new Signs(), Color

34、.red);</p><p>  JButton btns = new JButton("計算器");</p><p>  btns.setBorder(BorderFactory.createLoweredBevelBorder());</p><p>  btns.setEnabled(false);//按鈕不可操作</p>&

35、lt;p>  btns.setPreferredSize(new Dimension(20, 20));</p><p>  panel3.add(btns);//加入按鈕</p><p>  addButton(panel3, "MC", null, Color.red);</p><p>  addButton(panel3, &quo

36、t;MR", null, Color.red);</p><p>  addButton(panel3, "MS", null, Color.red);</p><p>  addButton(panel3, "M+", null, Color.red);</p><p>  panel4.add(panel1, B

37、orderLayout.NORTH);</p><p>  panel4.add(panel2, BorderLayout.CENTER);</p><p>  this.add(tf, BorderLayout.NORTH);</p><p>  this.add(panel3, BorderLayout.WEST);</p><p>  

38、this.add(panel4);</p><p><b>  pack();</b></p><p>  this.setResizable(false);//窗口不可改變大小</p><p>  this.setLocation(300, 200);</p><p>  this.setDefaultCloseOpe

39、ration(JFrame.EXIT_ON_CLOSE);</p><p><b>  }</b></p><p>  private void addButton(JPanel panel, String name, ActionListener action, Color color){</p><p>  JButton bt = new

40、 JButton(name);</p><p>  panel.add(bt);//在面板上增加按鈕</p><p>  bt.setForeground(color);//設(shè)置前景(字體)顏色</p><p>  bt.addActionListener(action);//增加監(jiān)聽事件</p><p><b>  }</b

41、></p><p>  private void getResult (double x){</p><p>  if(oper == "+"){result += x;}</p><p>  else if(oper == "-"){result -= x;}</p><p>  else if

42、(oper == "×"){result *= x;}</p><p>  else if(oper == "÷"){result /= x;}</p><p>  else if(oper == "="){result = x;}</p><p>  tf.setText(df.for

43、mat(result));</p><p><b>  }</b></p><p>  class Signs implements ActionListener{</p><p>  public void actionPerformed(ActionEvent e) {</p><p>  String str =

44、e.getActionCommand();</p><p>  /* sqrt求平方根 */</p><p>  if(str.equals("sqrt")){</p><p>  double i = Double.parseDouble(tf.getText());</p><p><b>  if(i>

45、;=0){</b></p><p>  tf.setText(String.valueOf(df.format(Math.sqrt(i))));</p><p><b>  }</b></p><p><b>  else{</b></p><p>  tf.setText("

46、負(fù)數(shù)不能開平方根");</p><p><b>  }</b></p><p><b>  }</b></p><p>  /* log求常用對數(shù) */</p><p>  else if(str.equals("log")){</p><p>

47、  double i = Double.parseDouble(tf.getText());</p><p><b>  if(i>0){</b></p><p>  tf.setText(String.valueOf(df.format(Math.log(i))));</p><p><b>  }else{</b>

48、;</p><p>  tf.setText("負(fù)數(shù)不能求對數(shù)");</p><p><b>  }</b></p><p><b>  }</b></p><p>  /* %求百分比 */</p><p>  else if(str.equals(&q

49、uot;%")){</p><p>  tf.setText(df.format(Double.parseDouble(tf.getText()) / 100));</p><p><b>  }</b></p><p>  /* 1/x求倒數(shù) */</p><p>  else if(str.equals(&

50、quot;1/x")){</p><p>  if(Double.parseDouble(tf.getText()) == 0){</p><p>  tf.setText("除數(shù)不能為零");</p><p><b>  }else{</b></p><p>  tf.setText(df

51、.format(1 / Double.parseDouble(tf.getText())));</p><p><b>  }</b></p><p><b>  }</b></p><p>  /* sin求正弦函數(shù) */</p><p>  else if(str.equals("si

52、n")){</p><p>  double i = Double.parseDouble(tf.getText());</p><p>  tf.setText(String.valueOf(df.format(Math.sin(i))));</p><p><b>  }</b></p><p>  /*

53、cos求余弦函數(shù) */</p><p>  else if(str.equals("cos")){</p><p>  double i = Double.parseDouble(tf.getText());</p><p>  tf.setText(String.valueOf(df.format(Math.cos(i))));</p&g

54、t;<p><b>  }</b></p><p>  /* tan求正切函數(shù) */</p><p>  else if(str.equals("tan")){</p><p>  double i = Double.parseDouble(tf.getText());</p><p>

55、  tf.setText(String.valueOf(df.format(Math.tan(i))));</p><p><b>  }</b></p><p>  /* n!求階乘 */</p><p>  else if(str.equals("n!")){</p><p>  double i

56、 = Double.parseDouble(tf.getText());</p><p>  if((i%2==0)||(i%2==1))//判斷為整數(shù)放進(jìn)行階乘操作</p><p><b>  {</b></p><p>  int j = (int)i;//強制類型轉(zhuǎn)換</p><p>  int result=1;

57、</p><p>  for(int k=1;k<=j;k++)</p><p>  result *= k;</p><p>  tf.setText(String.valueOf(result));</p><p><b>  }</b></p><p><b>  else&

58、lt;/b></p><p><b>  {</b></p><p>  tf.setText("無法進(jìn)行階乘");</p><p><b>  }</b></p><p><b>  }</b></p><p>  /* x^

59、2求平方 */</p><p>  else if(str.equals("x^2")){</p><p>  double i = Double.parseDouble(tf.getText());</p><p>  tf.setText(String.valueOf(df.format(i*i)));</p><p>

60、;<b>  }</b></p><p>  /* x^3求立方 */</p><p>  else if(str.equals("x^3")){</p><p>  double i = Double.parseDouble(tf.getText());</p><p>  tf.setText(S

61、tring.valueOf(df.format(i*i*i)));</p><p><b>  }</b></p><p>  else if(str.equals("′″")){</p><p>  double i = Double.parseDouble(tf.getText());</p><p&

62、gt;  tf.setText(String.valueOf(i/180*Math.PI));</p><p><b>  }</b></p><p><b>  else{</b></p><p><b>  if(flag){</b></p><p>  IfResult

63、= false;</p><p><b>  }</b></p><p>  if(IfResult){</p><p>  oper = str;</p><p><b>  }else{ </b></p><p>  getResult(Double.parseDoubl

64、e(tf.getText()));</p><p>  oper = str;</p><p>  IfResult = true;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b>&

65、lt;/p><p><b>  }</b></p><p>  class Clear implements ActionListener{</p><p>  public void actionPerformed(ActionEvent e) {</p><p>  String str = e.getActionCom

66、mand();</p><p>  if(str == "C"){</p><p>  tf.setText("0");</p><p>  IfResult = true;</p><p>  result = 0;</p><p>  }else if(str == &quo

67、t;-/+"){</p><p>  double i = 0 - Double.parseDouble(tf.getText().trim());</p><p>  tf.setText(df.format(i));</p><p>  }else if(str == "Backspace"){</p><p&g

68、t;  if(Double.parseDouble(tf.getText()) > 0){</p><p>  if(tf.getText().length() > 1){</p><p>  tf.setText(tf.getText().substring(0, tf.getText().length() - 1));</p><p>  //使用退

69、格刪除最后一位字符</p><p><b>  }else{</b></p><p>  tf.setText("0");</p><p>  IfResult = true;</p><p><b>  }</b></p><p><b>  

70、}else{</b></p><p>  if(tf.getText().length() > 2){</p><p>  tf.setText(tf.getText().substring(0, tf.getText().length() - 1));</p><p><b>  }else{</b></p>

71、<p>  tf.setText("0");</p><p>  IfResult = true;</p><p><b>  }</b></p><p><b>  }</b></p><p>  }else if(str == "CE"){<

72、;/p><p>  tf.setText("0");</p><p>  IfResult = true;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p

73、><p>  class Num implements ActionListener{</p><p>  public void actionPerformed(ActionEvent e) {</p><p>  String str = e.getActionCommand();</p><p>  if(IfResult){</p&

74、gt;<p>  tf.setText("");</p><p>  IfResult = false;</p><p><b>  }</b></p><p>  if(str=="π")</p><p><b>  {</b></p&g

75、t;<p>  tf.setText(String.valueOf(Math.PI));</p><p><b>  }</b></p><p>  else if(str=="e")</p><p><b>  {</b></p><p>  tf.setText

76、(String.valueOf(Math.E));</p><p><b>  }</b></p><p><b>  else{</b></p><p>  tf.setText(tf.getText().trim() + str);</p><p>  if(tf.getText().equal

77、s("0")){</p><p>  tf.setText("0");</p><p>  IfResult = true;</p><p>  flag = true;</p><p><b>  }</b></p><p><b>  }<

78、;/b></p><p><b>  }</b></p><p><b>  }</b></p><p>  class Dot implements ActionListener{</p><p>  public void actionPerformed(ActionEvent e) {&

79、lt;/p><p>  IfResult = false;</p><p>  if(tf.getText().trim().indexOf(".") == -1){</p><p>  tf.setText(tf.getText() + ".");</p><p><b>  }</b&g

80、t;</p><p><b>  }</b></p><p><b>  }</b></p><p>  public static void main(String[] args) {</p><p>  new Calucator().setVisible(true);</p>&

81、lt;p><b>  }</b></p><p><b>  } </b></p><p>  3.4.2 測試及運行結(jié)果</p><p><b>  1、輸入數(shù)字20</b></p><p><b>  計算5!</b></p>&

82、lt;p><b>  4 總結(jié)與心得體會</b></p><p>  通過本次課程設(shè)計我學(xué)到了好多,也發(fā)現(xiàn)了自己的好多不足!很顯然最明顯的收獲是理解和較熟練的掌握了JavaApplet 圖形界面的基本方法,尤其在 JavaApplet 圖形界面的布局方面學(xué)到頗多,以前布局很亂并且很多布局都是無效的.在此次課設(shè)中通過查閱很多資料和同學(xué)的互相幫助,充分發(fā)揮了 JavaApplet 界面布局

83、的優(yōu)越性.另外按鈕功能的實現(xiàn)也是本次課設(shè)的一大難點,怎樣實現(xiàn)那些功能是關(guān)鍵.通過這次課設(shè)我又學(xué)會了好多函數(shù)。另外我這次課設(shè)部分程序是通過外部資料得到的,這使得我認(rèn)識到查閱資料和開外多看書 籍的重要性.但不主張照搬,因為那不是我們自己成果,那是不光彩的!總之通過此次課設(shè)我學(xué)到了好多,也掌握了好多關(guān)于 JavaApplet 的事件管理和按鈕功能實現(xiàn)方法。</p><p><b>  參考文獻(xiàn)</b&g

84、t;</p><p>  [1] 屈輝立,陳可明,石武信.JSP網(wǎng)站編程教程[M].第1版, 北京:北京希望電子出版社,2005 </p><p>  [2] 白勇.用B/S模式構(gòu)建在線考試系統(tǒng)[J],重慶電力高等專科學(xué)校學(xué)報,2003,10(4): 100~130. </p><p>  [3]劉萬軍,梁清華,王

溫馨提示

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

評論

0/150

提交評論