java課程設(shè)計報告---方程求根_第1頁
已閱讀1頁,還剩12頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  課程設(shè)計報告</b></p><p>  ( Java程序設(shè)計 )</p><p>  設(shè)計題目 方程求根 </p><p>  年級專業(yè) 2010級計算機科學(xué)與技術(shù) </p><p>  學(xué)生姓名 <

2、;/p><p>  指導(dǎo)老師 </p><p>  2012年01月 </p><p>  Java程序設(shè)計課程設(shè)計任務(wù)書</p><p>  計算機與信息工程 院系 計算機科學(xué)與技術(shù) 教研室</p><p>  2011年 12 月 1 日&

3、lt;/p><p><b>  目錄</b></p><p>  一、概要設(shè)計························

4、3;··················4-5</p><p><b>  1、設(shè)計內(nèi)容</b></p><p><b>  2、程序流程圖</b></p>

5、<p>  二、詳細(xì)設(shè)計·································

6、83;·········6-10</p><p><b>  1、Java類清單</b></p><p><b>  2、程序代碼</b></p><p>  三、運行結(jié)果·····&

7、#183;···································11-12

8、</p><p>  1、不是一元二次方程</p><p><b>  2、沒有實根</b></p><p><b>  3、有實根</b></p><p>  四、總結(jié)報告··········

9、83;································12</p><p>  

10、五、參考文獻(xiàn)···································

11、3;·······12</p><p><b>  概要設(shè)計</b></p><p><b>  1、設(shè)計內(nèi)容</b></p><p>  首先編寫一個封裝一元二次方程的類,然后再編寫一個窗口。要求窗口使用三個文本框和一個文本區(qū),為方程對象中的數(shù)據(jù)提供視

12、圖,其中三個文本框用來顯示和更新方程對象的系數(shù);文本區(qū)對象用來顯示方程的根。窗口中有一個按鈕,用戶單擊該按鈕后,程序用文本框中的數(shù)據(jù)修改方程的系數(shù),并將方程的根顯示在文本區(qū)中。</p><p><b>  2、程序流程圖</b></p><p><b>  詳細(xì)設(shè)計</b></p><p><b>  1、Jav

13、a類清單</b></p><p>  本設(shè)計由3個類構(gòu)成。三個類如表一(Java類清單)所示:</p><p>  表一. Java類清單</p><p><b>  2、程序代碼</b></p><p>  名稱:一元二次方程求根</p><p>  時間:2012年1月6日<

14、;/p><p><b>  /*</b></p><p>  * SquareEquation.Java</p><p><b>  *</b></p><p><b>  * 開發(fā)者:董雪</b></p><p><b>  *</b&

15、gt;</p><p>  * 簡介:封裝一元二次方程</p><p><b>  *</b></p><p><b>  */</b></p><p>  public class SquareEquation </p><p><b>  { </b

16、></p><p>  double a,b,c;</p><p>  double root1,root2;</p><p>  public void setA(double a)</p><p><b>  { </b></p><p><b>  this.a=a;<

17、/b></p><p><b>  }</b></p><p>  public void setB(double b)</p><p><b>  { </b></p><p><b>  this.b=b;</b></p><p><b&

18、gt;  }</b></p><p>  public void setC(double c)</p><p><b>  { </b></p><p><b>  this.c=c;</b></p><p><b>  }</b></p><p

19、>  Public double getRootOne() throws NoRealRootException,NoSquareEquationException</p><p><b>  { </b></p><p><b>  if(a!=0)</b></p><p><b>  { <

20、;/b></p><p>  double disk=b*b-4*a*c;</p><p>  if(disk>=0)</p><p><b>  { </b></p><p>  root1=(-b+Math.sqrt(disk))/(2*a);</p><p><b> 

21、 } </b></p><p><b>  else</b></p><p><b>  { </b></p><p>  throw new NoRealRootException("沒有實根"); </p><p><b>  }</b>&l

22、t;/p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  throw new NoRealRootException("不是二次方程"); </p><

23、p><b>  }</b></p><p>  return root1;</p><p><b>  } </b></p><p>  public double getRootTwo() throws NoRealRootException,NoSquareEquationException</p>

24、<p><b>  { </b></p><p><b>  if(a!=0)</b></p><p><b>  { </b></p><p>  double disk=b*b-4*a*c;</p><p>  if(disk>=0)</p&

25、gt;<p><b>  { </b></p><p>  root2=(-b-Math.sqrt(disk))/(2*a);</p><p><b>  } </b></p><p><b>  else</b></p><p><b>  { &l

26、t;/b></p><p>  throw new NoRealRootException("沒有實根"); </p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p&g

27、t;<p><b>  {</b></p><p>  throw new NoRealRootException("不是二次方程"); </p><p><b>  }</b></p><p>  return root2;</p><p><b>  

28、} </b></p><p><b>  }</b></p><p>  class NoRealRootException extends Exception</p><p><b>  { </b></p><p>  String message;</p><

29、p>  NoRealRootException(String s)</p><p><b>  { </b></p><p>  message=s;</p><p><b>  }</b></p><p>  public String getMessage()</p>&

30、lt;p><b>  { </b></p><p>  return message;</p><p><b>  }</b></p><p><b>  }</b></p><p>  class NoSquareEquationException extends

31、Exception</p><p><b>  { </b></p><p>  String message;</p><p>  NoSquareEquationException(String s)</p><p><b>  { </b></p><p>  m

32、essage=s;</p><p><b>  }</b></p><p>  public String getMessage()</p><p><b>  { </b></p><p>  return message;</p><p><b>  }&l

33、t;/b></p><p><b>  }</b></p><p><b>  /*</b></p><p>  * EquationFrame.java</p><p><b>  *</b></p><p><b>  * 開發(fā)者

34、:董雪</b></p><p><b>  *</b></p><p>  * 簡介:計算器的圖形界面</p><p><b>  *</b></p><p><b>  */</b></p><p>  import java.awt.*

35、;</p><p>  import java.awt.event.*;</p><p>  public class EquationFrame extends Frame implements ActionListener</p><p><b>  { </b></p><p>  SquareEquation

36、equation; //聲明變量</p><p>  TextField textA,textB,textC; </p><p>  TextArea showRoots; </p><p>  Button controlButton; //聲明變量</p><p>  public Equation

37、Frame()</p><p><b>  { </b></p><p>  equation=new SquareEquation(); //創(chuàng)建對象</p><p>  textA=new TextField(8); </p><p>  textB=new TextField(8);

38、 </p><p>  textC=new TextField(8);</p><p>  showRoots=new TextArea();</p><p>  controlButton=new Button("確定");</p><p>  Panel pNorth=new Panel(); //創(chuàng)建

39、對象</p><p>  pNorth.add(new Label("二次項系數(shù):")); //添加標(biāo)簽到面板</p><p>  pNorth.add(textA); //添加文本框到面板</p><p>  pNorth.add(new Label("一次項系數(shù):"));</

40、p><p>  pNorth.add(textB);</p><p>  pNorth.add(new Label("常數(shù)項系數(shù):"));</p><p>  pNorth.add(textC); </p><p>  pNorth.add(controlButton); //添加按鈕到面板</p&

41、gt;<p>  controlButton.addActionListener(this);; //當(dāng)前窗口作為controlButton的ActionEvent事件的監(jiān)視器</p><p>  add(pNorth,BorderLayout.NORTH);//設(shè)置面板的布局方式為邊界布局</p><p>  add(showRoots,BorderLayout.CE

42、NTER);</p><p>  setBounds(100,100,630,160); //設(shè)置邊框大小</p><p>  setVisible(true);//設(shè)置可見</p><p>  validate();</p><p>  addWindowListener(new WindowAdapter() //

43、內(nèi)部類:窗口適配器</p><p><b>  { </b></p><p>  public void windowClosing(WindowEvent e)</p><p><b>  { </b></p><p>  System.exit(0); //關(guān)閉窗口</p&g

44、t;<p><b>  }</b></p><p><b>  }</b></p><p><b>  );</b></p><p><b>  }</b></p><p>  public void actionPerformed(Acti

45、onEvent e)</p><p><b>  { </b></p><p>  try{//異常處理</p><p>  double a=Double.parseDouble(textA.getText()); //textA調(diào)用方法獲取其中的文本</p><p>  double b=Double.

46、parseDouble(textB.getText()); //textB調(diào)用方法獲取其中的文本 </p><p>  double c=Double.parseDouble(textC.getText()); // textC調(diào)用方法獲取其中的文本</p><p>  equation.setA(a);//調(diào)用賦值</p><p>  e

47、quation.setB(b);</p><p>  equation.setC(c);</p><p>  textA.setText(""+a);</p><p>  textB.setText(""+b);</p><p>  textC.setText(""+c);</

48、p><p>  showRoots.append("\n 根:"+equation.getRootOne());</p><p>  showRoots.append("\n 根:"+equation.getRootTwo()); </p><p><b>  } </b></p><

49、p>  catch(Exception ex)</p><p>  { showRoots.append("\n"+ex+"\n");</p><p><b>  }</b></p><p><b>  }</b></p><p><b> 

50、 }</b></p><p><b>  /*</b></p><p>  * EquationMainClass.java</p><p><b>  *</b></p><p><b>  * 開發(fā)者:董雪</b></p><p>&l

51、t;b>  *</b></p><p>  * 簡介:計算器的主類</p><p><b>  *</b></p><p><b>  */</b></p><p>  public class EquationMainClass</p><p>  {

52、public static void main(String args[])</p><p>  { EquationFrame frame=new EquationFrame();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>

53、;  運行結(jié)果</b></p><p>  1、不是一元二次方程:當(dāng)a=0時,運行結(jié)果如圖一所示。</p><p>  圖一. “不是一元二次方程”界面</p><p>  2、沒有實根:當(dāng)a!=0,disk=b*b-4*a*c<0時,運行結(jié)果如圖二所示。</p><p>  圖二. “沒有實根”界面</p>

54、<p><b>  3、有實根</b></p><p>  (1)、當(dāng)a!=0,disk=0時,只有一個二重根,運行結(jié)果如圖三所示。</p><p>  圖三. “一個二重根”界面</p><p>  (2)、當(dāng)a!=0,disk>0時,有兩個實根,運行結(jié)果如圖四所示。</p><p>  圖四.

55、“兩個不同實根”界面</p><p><b>  四、總結(jié)報告</b></p><p>  Java程序設(shè)計是一門博大精深的課程,我們只上了一學(xué)期的Java課,盡管時間有限,但是Java中的知識是值得我們花費更多的時間去學(xué)習(xí)的。通過這次的課程設(shè)計,讓我真正明白了實踐在理工科學(xué)習(xí)中的重要性。也許只是一個初級基礎(chǔ)的小程序,但也運用到了很多知識點。在Java中,整體思想也很

56、重要,每個部分怎么安排,都需要我們?nèi)プ屑?xì)思考后用最簡潔明了的方式把他們表現(xiàn)出來。以后繼續(xù)學(xué)習(xí)……</p><p><b>  五、參考文獻(xiàn)</b></p><p>  《Java程序設(shè)計教程(第二版)》-----雍俊海</p><p>  《Java2 實用教程(第三版)·實驗指導(dǎo)與習(xí)題解答》----耿祥義 張躍平</p>

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論