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

下載本文檔

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

文檔簡介

1、<p>  面向?qū)ο缶幊逃?xùn)練課程設(shè)計</p><p>  題 目:迷你計算器設(shè)計 </p><p><b>  目錄</b></p><p>  第一章 緒論1</p><p>  1.1 開發(fā)環(huán)境1</p><p>  1.2 基本功能介紹2</p>&

2、lt;p>  第二章 系統(tǒng)設(shè)計2</p><p>  2.1 系統(tǒng)流程圖2</p><p>  2.2 系統(tǒng)功能框圖3</p><p>  2.3 需求分析4</p><p>  第三章 軟件設(shè)計4</p><p>  3.1 界面設(shè)計5</p><p>  3.2

3、 代碼設(shè)計5</p><p>  第四章 測試分析10</p><p>  3.1 程序運(yùn)行情況:10</p><p>  3.2 程序異常處理:10</p><p>  3.3 測試用例10</p><p>  3.3.1 加法測試10</p><p>  3.3.2 減法測

4、試11</p><p>  3.3.3 乘法測試12</p><p>  3.3.4 除法測試13</p><p>  第五章 結(jié)束語14</p><p>  第六章 參考文獻(xiàn)14</p><p><b>  第一章 緒論</b></p><p>

5、;<b>  1.1 開發(fā)環(huán)境</b></p><p>  本系統(tǒng)是利用Java語言在NetBeans IDE6.5環(huán)境下開發(fā)的,Java語言是當(dāng)今流行的網(wǎng)絡(luò)編程語言,它具有面向?qū)ο?、跨平臺、分布應(yīng)用等特點(diǎn)。面向?qū)ο蟮拈_發(fā)方法是當(dāng)今世界最流行的開發(fā)方法,它不僅具有更貼近自然的語義,而且有利于軟件的維護(hù)和繼承。</p><p>  為了進(jìn)一步鞏固課堂上所學(xué)到的知識,深刻

6、把握J(rèn)ava語言的重要概念及其面向?qū)ο蟮奶匦?,鍛煉學(xué)生熟練的應(yīng)用面向?qū)ο蟮乃枷牒驮O(shè)計方法解決實(shí)際問題的能力,開設(shè)了Java程序設(shè)計課程設(shè)計。</p><p>  通過此次課程設(shè)計,鞏固所學(xué)Java語言基本知識,增進(jìn)Java語言編輯基本功,掌握J(rèn)DK、Editplus、Eclipse、JCreator等開發(fā)工具的運(yùn)用,拓寬常用類庫的應(yīng)用。使學(xué)生通過該教學(xué)環(huán)節(jié)與手段,把所學(xué)課程及相關(guān)知識加以融會貫通,全面掌握J(rèn)ava

7、語言的編程思想及面向?qū)ο蟪绦蛟O(shè)計的方法,為今后從事實(shí)際工作打下堅實(shí)的基礎(chǔ)。</p><p>  1.2 基本功能介紹</p><p>  本系統(tǒng)實(shí)現(xiàn)了一個簡單而實(shí)用的計算器,通過這個計算器我們可以進(jìn)行一些基本的運(yùn)算操作,它可以進(jìn)行簡單的四則運(yùn)算(加、減、乘、除)但僅限于十進(jìn)制下,還可以進(jìn)行(八進(jìn)制,十進(jìn)制,十六進(jìn)制)之間的相互轉(zhuǎn)換,八進(jìn)制最多可以輸入19位數(shù),十進(jìn)制最多可以輸入18位數(shù),十

8、六進(jìn)制最多可以輸入14位數(shù),backspace表示退格,clear表示初始化,在window下直接運(yùn)行(Jsp2003.bat)即可,界面為灰白對稱。它的設(shè)計按軟件工程的方法進(jìn)行,系統(tǒng)具有良好的界面、必要的交互信息和較好的健壯性;醒目美觀的軟件封面。使用人員能快捷簡單地進(jìn)行操作。即時準(zhǔn)確地獲得需要的計算的結(jié)果,充分降低了數(shù)字計算的難度和節(jié)約了時間,對人們的生活有一定的幫助。</p><p>  第二章 系統(tǒng)

9、設(shè)計</p><p><b>  2.1 系統(tǒng)流程圖</b></p><p>  2.2 系統(tǒng)功能框圖</p><p>  說明:在程序中構(gòu)建類testZ,在其中封裝起界面、文本框、按鈕、數(shù)字、運(yùn)算符等等成員,再引入成員函數(shù)testZ()進(jìn)行計算器的模擬界面設(shè)計;其次設(shè)計出事件處理函數(shù),如:運(yùn)算事件、符號事件、等號事件等等;最后設(shè)計運(yùn)算函數(shù)的響

10、應(yīng)事件。這樣設(shè)計的好處在于使得程序的實(shí)現(xiàn)思維更清晰,易懂,可讀性增強(qiáng)。反之則不然。</p><p><b>  2.3 需求分析</b></p><p>  首先分析這個說要完成的功能,它的主要任務(wù)是完成十六進(jìn)制、十進(jìn)制、八進(jìn)制和二進(jìn)制之間的相互轉(zhuǎn)化,需要包含負(fù)數(shù),但不用考慮小數(shù)。  其次,確定接口參數(shù)。根據(jù)功能可知,它傳遞給外部的就是一個轉(zhuǎn)后的數(shù)據(jù),

11、而外部除了需要傳遞給轉(zhuǎn)化前的數(shù)據(jù)以外,是否還需要其他參數(shù)呢?我們都知道,十進(jìn)制的負(fù)數(shù)同樣可以利用其他進(jìn)制進(jìn)行表示,例如二進(jìn)制,轉(zhuǎn)化方法是:求十進(jìn)制數(shù)的絕對值對應(yīng)的二進(jìn)制數(shù),最高位為1;然后對二進(jìn)制逐位求反,最高位除外;接著最低一位加1,需要進(jìn)位的話依次進(jìn)位,最高位除外。如今的問題就擺在了我們面前,我們?nèi)绾沃肋@個數(shù)的最高位是第幾位呢,也許有人會說,那就用轉(zhuǎn)化后的前面再加上一位,好,即使這樣可以成立,那么-1轉(zhuǎn)化后就是11,3轉(zhuǎn)化后也為1

12、1,現(xiàn)在如果需要現(xiàn)在的把這個數(shù)二進(jìn)制數(shù)再轉(zhuǎn)化為十進(jìn)制,那么我們?nèi)绾沃涝瓉淼氖钦龜?shù)還是負(fù)數(shù)呢,如果要轉(zhuǎn)化為十六進(jìn)制,八進(jìn)制又當(dāng)如何呢?經(jīng)過以上的分析發(fā)現(xiàn),還應(yīng)該有另外一個參數(shù)——二進(jìn)制時的寬度,只有這樣才能知道誰是最高位,因此就稱這個參數(shù)為位寬。  最后,設(shè)計類。根據(jù)第二步的分析,因?yàn)槲粚拰γ恳粋€方法都是一樣,所以可能把它作為類的成員變量,而另外兩個</p><p>  第三章 軟件設(shè)計&l

13、t;/p><p><b>  3.1 界面設(shè)計</b></p><p>  這個就是計算器界面,簡潔易用,我們可以從中的數(shù)字按鍵和運(yùn)算符按鈕進(jìn)行相應(yīng)的數(shù)學(xué)計算,總共由17個按鈕(10個數(shù)字符+5個運(yùn)算符號+1個小數(shù)點(diǎn)+1個“clear”按鈕),一個標(biāo)簽、再加一個文本框組成。</p><p><b>  3.2 代碼設(shè)計</b>

14、</p><p>  import java.awt.*;</p><p>  import java.awt.event.*;</p><p>  import javax.swing.*;</p><p>  public class Caculator </p><p><b>  {</b>

15、;</p><p>  public static void main(String[] args) </p><p><b>  {</b></p><p>  JFrame frame = new JFrame("Caculator");</p><p>  frame.setDefaultClo

16、seOperation(JFrame.EXIT_ON_CLOSE); </p><p>  frame.getContentPane().add(new CaculatorPanel());</p><p>  frame.pack();</p><p>  frame.setVisible(true);</p><p><

17、;b>  }</b></p><p><b>  }</b></p><p>  class CaculatorPanel extends JPanel</p><p><b>  {</b></p><p>  private JLabel namelabel,resultlab

18、el;</p><p>  private JTextField resultField;</p><p>  private JPanel labelPanel,numberPanel,toolPanel;</p><p>  private JButton s1,s2,s3,s4,s5,s6,s7, s8, s9,s0,</p><p>

19、  p1,p2,t1,t2,t3,t4,clear;</p><p>  private boolean end,add,sub,mul,div;</p><p>  private String str;</p><p>  private double num1,num2;</p><p>  public CaculatorPanel(

20、)</p><p>  { </p><p>  namelabel = new JLabel("計算器");</p><p>  resultField = new JTextField(10);</p><p>  ButtonListener listener = new ButtonListe

21、ner();</p><p>  clear = new JButton("clear"); </p><p>  clear.addActionListener(listener); </p><p>  s1 = new JButton("1"); s1.addActionListener(listener);<

22、/p><p>  s2 = new JButton("2"); s2.addActionListener(listener);</p><p>  s3 = new JButton("3"); s3.addActionListener(listener);</p><p>  s4 = new JButton("4&qu

23、ot;); s4.addActionListener(listener);</p><p>  s5 = new JButton("5"); s5.addActionListener(listener);</p><p>  s6 = new JButton("6"); s6.addActionListener(listener);</p>

24、;<p>  s7 = new JButton("7"); s7.addActionListener(listener);</p><p>  s8 = new JButton("8"); s8.addActionListener(listener);</p><p>  s9 = new JButton("9");

25、 s9.addActionListener(listener);</p><p>  s0 = new JButton("0"); s0.addActionListener(listener);</p><p>  p1 = new JButton("."); p1.addActionListener(listener);</p>&l

26、t;p>  p2 = new JButton("="); p2.addActionListener(listener);</p><p>  t1 = new JButton("+"); t1.addActionListener(listener);</p><p>  t2 = new JButton("-"); t2.a

27、ddActionListener(listener);</p><p>  t3 = new JButton("*"); t3.addActionListener(listener);</p><p>  t4 = new JButton("/"); t4.addActionListener(listener);</p><p&g

28、t;  labelPanel = new JPanel();</p><p>  labelPanel.add(namelabel);</p><p>  labelPanel.add(resultField);</p><p>  labelPanel.add(clear);</p><p>  numberPanel = new JPan

29、el();</p><p>  numberPanel.setLayout(new GridLayout(4,3));</p><p>  numberPanel.add(s1);</p><p>  numberPanel.add(s2);</p><p>  numberPanel.add(s3);</p><p>

30、;  numberPanel.add(s4);</p><p>  numberPanel.add(s5);</p><p>  numberPanel.add(s6);</p><p>  numberPanel.add(s7);</p><p>  numberPanel.add(s8);</p><p>  nu

31、mberPanel.add(s9);</p><p>  numberPanel.add(s0);</p><p>  numberPanel.add(p1);</p><p>  numberPanel.add(p2);</p><p>  toolPanel = new JPanel();</p><p>  to

32、olPanel.setLayout(new GridLayout(4,1));</p><p>  toolPanel.add(t1);</p><p>  toolPanel.add(t2);</p><p>  toolPanel.add(t3);</p><p>  toolPanel.add(t4);</p><p

33、>  setPreferredSize(new Dimension(500,200));</p><p>  setBackground(Color.cyan);</p><p>  add(labelPanel);</p><p>  add(numberPanel);</p><p>  add(toolPanel);</p&

34、gt;<p><b>  }</b></p><p>  public void num(int i){</p><p>  String s = null;</p><p>  s=String.valueOf(i);</p><p><b>  if(end){</b></p

35、><p>  //如果數(shù)字輸入結(jié)束,則將文本框置零,重新輸入</p><p>  resultField.setText("0");</p><p>  end=false;</p><p><b>  }</b></p><p>  if((resultField.getText

36、()).equals("0")){</p><p>  //如果文本框的內(nèi)容為零,則覆蓋文本框的內(nèi)容</p><p>  resultField.setText(s); </p><p><b>  }</b></p><p><b>  else{</b></p>

37、;<p>  //如果文本框的內(nèi)容不為零,則在內(nèi)容后面添加數(shù)字</p><p>  str = resultField.getText() + s;</p><p>  resultField.setText(str); </p><p><b>  }</b></p><p><b>  

38、}</b></p><p>  private class ButtonListener implements ActionListener</p><p><b>  {</b></p><p>  public void actionPerformed(ActionEvent e)</p><p><

39、;b>  { //數(shù)字事件</b></p><p>  if(e.getSource()==clear)</p><p>  resultField.setText("0"); </p><p>  else if(e.getSource()==s1)</p><p><b&g

40、t;  num(1);</b></p><p>  else if(e.getSource()==s2)</p><p><b>  num(2);</b></p><p>  else if(e.getSource()==s3)</p><p><b>  num(3);</b><

41、;/p><p>  else if(e.getSource()==s4)</p><p><b>  num(4);</b></p><p>  else if(e.getSource()==s5)</p><p><b>  num(5);</b></p><p>  else

42、 if(e.getSource()==s6)</p><p><b>  num(6);</b></p><p>  else if(e.getSource()==s7)</p><p><b>  num(7);</b></p><p>  else if(e.getSource()==s8)&l

43、t;/p><p><b>  num(8);</b></p><p>  else if(e.getSource()==s9)</p><p><b>  num(9);</b></p><p>  else if(e.getSource()==s0)</p><p><b

44、>  num(0); </b></p><p><b>  //符號事件 </b></p><p>  else if(e.getSource()==t1)</p><p><b>  sign(1);</b></p><p>  else if(e.getSource()==t

45、2)</p><p><b>  sign(2);</b></p><p>  else if(e.getSource()==t3)</p><p><b>  sign(3);</b></p><p>  else if(e.getSource()==t4)</p><p>

46、;<b>  sign(4);</b></p><p><b>  //等號</b></p><p>  else if(e.getSource()==p1){</p><p>  str=resultField.getText();</p><p>  if(str.indexOf(".

47、")<=1){</p><p><b>  str+=".";</b></p><p>  resultField.setText(str);</p><p><b>  }</b></p><p><b>  }</b></p>

48、<p>  else if(e.getSource()==p2){</p><p>  num2=Double.parseDouble(resultField.getText());</p><p><b>  if(add){</b></p><p>  num1=num1 + num2;}</p><p&g

49、t;  else if(sub){</p><p>  num1=num1 - num2;}</p><p>  else if(mul){</p><p>  num1=num1 * num2;}</p><p>  else if(div){</p><p>  num1=num1 / num2;} </p&

50、gt;<p>  resultField.setText(String.valueOf(num1));</p><p>  end=true; </p><p><b>  } </b></p><p><b>  }</b></p><p>  public void sig

51、n(int s){</p><p><b>  if(s==1){</b></p><p><b>  add=true;</b></p><p>  sub=false;</p><p>  mul=false;</p><p>  div=false;</p>

52、<p><b>  }</b></p><p>  else if(s==2){</p><p>  add=false;</p><p><b>  sub=true;</b></p><p>  mul=false;</p><p>  div=false;

53、</p><p><b>  }</b></p><p>  else if(s==3){</p><p>  add=false;</p><p>  sub=false;</p><p><b>  mul=true;</b></p><p>  

54、div=false;</p><p><b>  }</b></p><p>  else if(s==4){</p><p>  add=false;</p><p>  sub=false;</p><p>  mul=false;</p><p><b> 

55、 div=true;</b></p><p><b>  } </b></p><p>  num1=Double.parseDouble(resultField.getText());</p><p><b>  end=true;</b></p><p><b>  }&l

56、t;/b></p><p><b>  }</b></p><p><b>  }</b></p><p>  第四章 測試分析</p><p>  4.1 程序運(yùn)行情況:</p><p>  程序正常的響應(yīng)按鈕事件,輸入的數(shù)值長度受變量length的限定,進(jìn)行混

57、合四則運(yùn)算的時候,結(jié)果如果不是很大,可以正常顯示,但如果結(jié)果很大,就可能采用科學(xué)記數(shù)方式,這樣帶來了進(jìn)制轉(zhuǎn)換時的麻煩,需要特殊的處理科學(xué)記數(shù)里的E ,當(dāng)結(jié)果太大的時候,有可能超出可能表示的最大值,(結(jié)果溢出),這個時候就要對結(jié)果進(jìn)行必要的異常處理,我在輸出結(jié)果的方法內(nèi)設(shè)置if 語句,如果結(jié)果大于某一個值就拋出一個This_number_too_big 類型的類,再使用try-catch,捕捉輸出結(jié)果的方法拋出的異常對象。然后進(jìn)行,重制歸

58、零的處理。</p><p>  4.2 程序異常處理:</p><p>  當(dāng)結(jié)果超出Double.MAX_VALUE時,將拋出一個This_number_too_big 類的異常對象,這個是我自定義的一個異常類它繼承自Exception 類,然后使用try-catch去捕捉這個異常,異常的處理如下: </p><p>  try { js();} catch

59、(This_number_too_big e) { lab.setText("0"); number=0; mark='n'; Refresh=false; System.out.println("The number is too big"); } //如果出現(xiàn)異常則初始化效果如同clear鍵</p><p><b>  4.3 測

60、試用例</b></p><p>  4.4.1 加法測試 </p><p>  (1) 8952+1965.89運(yùn)行結(jié)果如下:</p><p> ?。?) 0.58+(-2.891)運(yùn)行結(jié)果如下:</p><p>  4.4.2 減法測試</p><p>  (1) 589.47-1009 運(yùn)算結(jié)果如下:

61、</p><p>  (2)?。埃埃担福场∵\(yùn)算結(jié)果如下:</p><p>  4.4.3 乘法測試</p><p>  (1)?。矗担福ǎ担福保矗担∵\(yùn)算結(jié)果如下:</p><p> ?。?)?。埃罚福啊∵\(yùn)算結(jié)果如下:</p><p>  4.4.4 除法測試</p><p>  

62、(1)?。保埃福埃埃啊∵\(yùn)算結(jié)果如下:</p><p>  (2)?。保埃埃玻埃场∵\(yùn)算結(jié)果如下:</p><p> ?。埃梗埂∵\(yùn)算結(jié)果如下:</p><p>  第五章 結(jié)束語</p><p>  終于做完了這次的作業(yè),有一種如釋重?fù)?dān)的感覺,但還是有一點(diǎn)點(diǎn)的留戀。這次做的《計算器》的實(shí)現(xiàn)算是一個比較簡單的設(shè)計,它牽涉的知識面

63、并不是很多,實(shí)現(xiàn)的功能簡單,對界面要求也不高,很適合我們做一些個人的程序開發(fā)。做起來雖然不是很吃力但有時還是比較煩躁的,可是在精力完全投入之后又發(fā)現(xiàn)自己已經(jīng)被它深深吸引住,它有一股莫名的魅力在吸引我去完善。</p><p>  從緒論到最后的總結(jié),都是一步一個腳印走過來的,在這其中有很多的困難,但是還是自己給一個一個地突破,沒有半途而廢。老師給我們的時間是很充足的,在足夠的時間里我們就沒有理由不去做好它,通過此次

64、課程設(shè)計,我們將本學(xué)期所學(xué)的JAVA知識得到鞏固和應(yīng)用,在設(shè)計的過程中遇到了很到問題,不過在自己向別人請教或網(wǎng)上找資料,最后還是很好的完成了。</p><p>  這此課程設(shè)計還讓我懂得了寫程序不能閉門造車,要努力拓寬知識面,開闊視野,拓展思維。它還讓我學(xué)會了在網(wǎng)上查閱那些無限的資料。通過對此課題的開發(fā),使我對用JBuilder9.0開發(fā)系統(tǒng)有了一個比較清楚的認(rèn)識,體會到理論和實(shí)踐的重要性。由于自己的分析設(shè)計和程

65、序經(jīng)驗(yàn)不足,該系統(tǒng)設(shè)計和實(shí)現(xiàn)過程中,還有許多沒有完善的地方,比如用戶界面設(shè)計不夠美觀,異常出錯處理比較差等多方面問題,是在最后的測試中還是存在一些小的問題,這些都有待進(jìn)一步完善和提高,但值得欣慰的是,自己還是做出來了點(diǎn)東西。。對于文中出現(xiàn)的不足和系統(tǒng)中出現(xiàn)的問題敬請老師指導(dǎo)。</p><p>  通過這次自己動手學(xué)習(xí),我學(xué)到了很多東西,對軟件開發(fā)我又增加了一些知識,相信在以后的系統(tǒng)開發(fā)中我們將會設(shè)計的更好、系統(tǒng)功

66、能做的更完善。</p><p>  第六章 參考文獻(xiàn)</p><p>  [1]陳維興,林小茶.c++面向?qū)ο蟪绦蛟O(shè)計教程. 北京: 清華大學(xué)出版社,1996.2004.</p><p>  [2]張國峰. C++程序設(shè)計實(shí)用教程. 北京: 清華大學(xué)出版社,1996. </p><p>  [3]張松梅. C++語言教程. 電子科技大學(xué)

67、出版社,1993. </p><p>  [4]閻龍. C程序員的C++指南. 北京航空航天大學(xué)出版社,1992.</p><p>  [5]王博. 面向?qū)ο蟮慕!⒃O(shè)計技術(shù)與方法. 北京希望電腦公司,1990. </p><p>  [6]汪成為. 面向?qū)ο蠓治?、設(shè)計及應(yīng)用. 國防工業(yè)出版社,1992. </p><p>  [7]江明德.

溫馨提示

  • 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

提交評論