簡(jiǎn)易計(jì)算器課程設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  目錄</b></p><p>  一、運(yùn)行環(huán)境··························

2、83;·················5</p><p>  二、問(wèn)題描述及要求·············

3、3;························5</p><p>  三、需求分析·······&#

4、183;····································

5、5</p><p>  四、設(shè)計(jì)思路·······························

6、3;············5</p><p>  4.1工作原理圖···················

7、····················6</p><p>  4.2功能規(guī)劃···········

8、83;·····························6</p><p>  五、程序的界面設(shè)計(jì)及代碼實(shí)現(xiàn)·

9、;···························7</p><p>  5.1聲明的類····&#

10、183;···································7</

11、p><p>  5.2引用的包································

12、83;·······7</p><p>  5.3界面設(shè)計(jì)························

13、················7</p><p>  5.4計(jì)算功能實(shí)現(xiàn)···············&

14、#183;····················15</p><p>  六、參考文獻(xiàn)··········

15、3;································21</p><p>  七

16、、總結(jié)····································&

17、#183;··········21</p><p>  八、源代碼·····················

18、;························22</p><p><b>  一、運(yùn)行環(huán)境</b></p><p>  (1

19、).操作系統(tǒng):Solaris、Windows xp、Windows 7等</p><p>  (2). 應(yīng)用軟件:jdk1.5、Eclipse</p><p><b>  二、問(wèn)題描述及要求</b></p><p>  制作一個(gè)計(jì)算器,要求仿Windows里的計(jì)算器,設(shè)計(jì)一個(gè)圖形界面,其中基本組件包括0~9、+、-、*、/、.、=、+/-、Ba

20、ck、CE、C、sqrt、%、1/x、。其基本功能完成加減乘除、開(kāi)方、求模、求倒,十進(jìn)制與八進(jìn)制、二進(jìn)制、十六進(jìn)制的轉(zhuǎn)換等,</p><p>  退格、清零等按鈕的實(shí)現(xiàn)。</p><p>  在我的計(jì)算器上實(shí)現(xiàn)了以上功能。在菜單欄有查看、編輯、幫助菜單,在“查看”菜單中有“標(biāo)準(zhǔn)型”菜單項(xiàng),實(shí)現(xiàn)加減乘除等基本功能,“科學(xué)型”菜單項(xiàng),實(shí)現(xiàn)進(jìn)制間的轉(zhuǎn)換。在“編輯”菜單中有“復(fù)制”、“粘貼”菜單項(xiàng)

21、?!皫椭辈藛沃杏小瓣P(guān)于計(jì)算器”、“幫助主題”菜單項(xiàng),并實(shí)現(xiàn)相關(guān)功能。</p><p><b>  三、需求分析</b></p><p>  日常生活中經(jīng)常需要用到計(jì)算器,比如科學(xué)計(jì)算、數(shù)值計(jì)算、會(huì)計(jì)業(yè)務(wù)等,但簡(jiǎn)單的計(jì)算器已不能滿足日常需要,因此有必要開(kāi)發(fā)一些進(jìn)制轉(zhuǎn)換、開(kāi)方等多種運(yùn)算的計(jì)算器。</p><p>  創(chuàng)建一個(gè)簡(jiǎn)單計(jì)算器,具有簡(jiǎn)單的

22、人機(jī)交互界面,便于數(shù)據(jù)計(jì)算。我的計(jì)算器具有的功能如下:</p><p>  1、實(shí)現(xiàn)基本的加、減、乘、除四則運(yùn)算及開(kāi)方、求倒、求模。</p><p>  2、Back退格、CE返回上層運(yùn)算符、C清零功能。</p><p>  3、十進(jìn)制與二進(jìn)制、八進(jìn)制、十六進(jìn)制之間的轉(zhuǎn)換。</p><p>  4、菜單中包含的一些功能,如幫助文檔。</

23、p><p><b>  四、設(shè)計(jì)思路</b></p><p><b>  4.1 工作原理圖</b></p><p><b>  4.2功能規(guī)劃</b></p><p>  本程序繼承父類Frame,運(yùn)用了布局管理器GridLayout和Borderlayout,將界面分為三塊,頂

24、上為單行文本框,中間為進(jìn)制單選鈕和退格、清空按鈕,下面是數(shù)字、符號(hào)按鈕。各種按鈕采用n行n列的網(wǎng)格布局,并注冊(cè)按鈕事件監(jiān)聽(tīng)器。</p><p>  事件監(jiān)聽(tīng)器中的事件處理方法void actionPerformed(ActionEvent event)完成主要的按鈕事件的處理。事件分為以下幾種情況:數(shù)字按鈕事件(0~9)、運(yùn)算符按鈕事件(+、-、×、/、%)、正負(fù)號(hào)按鈕事件(+/-)、小數(shù)點(diǎn)按鈕事件(.

25、)、等號(hào)按鈕事件(=)、求倒按鈕事件(1/x)、三角函數(shù)按鈕事件(cos,sin,tan)、開(kāi)方按鈕事件(sqrt)、對(duì)數(shù)按鈕事件(lgX,lnX)、進(jìn)制轉(zhuǎn)換按鈕事件。</p><p>  在此聲明的是每次輸入的數(shù)據(jù)都要進(jìn)行類型轉(zhuǎn)換。</p><p>  五、程序的界面設(shè)計(jì)及代碼實(shí)現(xiàn)</p><p><b>  5.1聲明的類</b></

26、p><p>  * 類名: calculator *</p><p>  * 作用: 主類。*</p><p>  * 繼承的父類: JFrame類 *</p><p>  * 實(shí)現(xiàn)的接口:ActionListener類 *</p><p>  **************************************

27、********************</p><p>  * 類名: WindowDestroyer *</p><p>  * 作用: 退出窗口動(dòng)作。 *</p><p>  * 繼承的父類: WindowAdapter類 *</p><p>  * 實(shí)現(xiàn)的接口:無(wú) *</p><p>  **********

28、************************************************</p><p>  * 類名: objConversion *</p><p>  * 作用: 各個(gè)進(jìn)制之間的轉(zhuǎn)換。*</p><p>  * 繼承的父類: 無(wú) *</p><p>  * 實(shí)現(xiàn)的接口:無(wú) *</p><p&g

29、t;  **********************************************************</p><p><b>  5.2引用的包</b></p><p>  import java.awt.*;</p><p>  import javax.swing.*;</p><p>  i

30、mport java.lang.Math;</p><p>  import java.awt.event.*;</p><p><b>  5.3界面設(shè)計(jì)</b></p><p>  1、調(diào)試后的界面:標(biāo)準(zhǔn)型</p><p>  JScrollPane scrollHelp;</p><p> 

31、 private objConversion convert = new objConversion();</p><p>  JMenuItem fileMenu,exitItemOfFile,s,t, about, me;</p><p>  JRadioButton sixteen,ten,eight,two;//單選按扭</p><p><b> 

32、 Jbutton </b></p><p>  Back,ce,c,num0,num1,num2,num3,num4,num5,num6,num7,num8,num9;</p><p>  Jbutton a,b,cc,dd,ee,ff,jia,jian,cheng,chu,quyu,deng,fu,dian,kai,dao,cos,sin,tan,lgX,lnX;</p

33、><p>  Container cp;//容器,便于集體操作</p><p>  JTextField text;</p><p>  String copycontent="";</p><p>  boolean clickable=true,clear=true;</p><p>  int a

34、ll=0;</p><p>  double qian;</p><p>  String fuhao,copy;</p><p>  int jin=10,first=1;</p><p>  public Calculator(){</p><p>  super("計(jì)算器");</p&g

35、t;<p>  setSize(400,400);</p><p>  setLocation(400,400);</p><p>  text=new JTextField(25);</p><p>  text.setHorizontalAlignment(JTextField.LEFT);//從左到右</p><p>  

36、JPanel cp1=new JPanel();</p><p>  JPanel cp2=new JPanel();</p><p>  JPanel cp3=new JPanel();</p><p>  cp=getContentPane();</p><p>  cp.add(cp1,"North");</p

37、><p>  cp.add(cp2,"Center");</p><p>  cp.add(cp3,"South");</p><p>  cp1.setLayout(new GridLayout(1,1));</p><p>  cp2.setLayout(new GridLayout(2,4));<

38、;/p><p>  cp3.setLayout(new GridLayout(7,4));</p><p>  sixteen=new JRadioButton("十六進(jìn)制");</p><p>  sixteen.setVisible(false);</p><p>  ten=new JRadioButton("

39、進(jìn)制",true);</p><p>  ten.setVisible(false);</p><p>  eight=new JRadioButton("八進(jìn)制");</p><p>  eight.setVisible(false);</p><p>  two=new JRadioButton("

40、二進(jìn)制");</p><p>  two.setVisible(false);</p><p>  a = new JButton("A");</p><p>  a.setVisible(false);</p><p>  b = new JButton("B");</p>&

41、lt;p>  b.setVisible(false);</p><p>  cc = new JButton("C");</p><p>  cc.setVisible(false);</p><p>  dd = new JButton("D");</p><p>  dd.setVisible

42、(false);</p><p>  ee = new JButton("E");</p><p>  ee.setVisible(false);</p><p>  ff = new JButton("F");</p><p>  ff.setVisible(false);</p>&l

43、t;p>  jia = new JButton("+");</p><p>  jian = new JButton("-");</p><p>  cheng = new JButton("×");</p><p>  chu = new JButton("÷"

44、;);</p><p>  quyu = new JButton("%");</p><p>  deng = new JButton("=");</p><p>  fu = new JButton("+/-");</p><p>  dian = new JButton(&quo

45、t;.");</p><p>  kai = new JButton("sqrt");</p><p>  dao = new JButton("1/x");</p><p>  num0=new JButton("0");</p><p>  num1=new JButt

46、on("1");</p><p>  num2=new JButton("2");</p><p>  num3=new JButton("3");</p><p>  num4=new JButton("4");</p><p>  num5=new JButt

47、on("5");</p><p>  num6=new JButton("6");</p><p>  num7=new JButton("7");</p><p>  num8=new JButton("8");</p><p>  cos=new JButto

48、n("cos");</p><p>  sin=new JButton("sin");</p><p>  tan=new JButton("tan");</p><p>  lgX=new JButton("lgX");</p><p>  lnX=new JB

49、utton("lnX");</p><p>  num9=new JButton("9");</p><p>  sixteen.addActionListener(this);</p><p>  ten.addActionListener(this);</p><p>  eight.addActi

50、onListener(this);</p><p>  two.addActionListener(this);</p><p>  ButtonGroup btg=new ButtonGroup();//創(chuàng)建一個(gè)多斥作用域</p><p>  btg.add(sixteen);</p><p>  btg.add(ten);</p&g

51、t;<p>  btg.add(eight);</p><p>  btg.add(two);</p><p>  cp1.add(text);</p><p>  text.setEditable(false);</p><p>  text.setBackground(Color.white);</p><

52、;p>  Back=new JButton("Back");//Back</p><p>  Back.setForeground(Color.red);</p><p>  Back.addActionListener(this);</p><p>  ce=new JButton("CE");//CE</p&g

53、t;<p>  ce.setForeground(Color.red);</p><p>  ce.addActionListener(this);</p><p>  c=new JButton("C");//C</p><p>  c.setForeground(Color.red);</p><p> 

54、 c.addActionListener(this);</p><p>  cp2.add(sixteen);</p><p>  cp2.add(ten);</p><p>  cp2.add(eight);</p><p>  cp2.add(two);</p><p>  cp2.add(Back);</p

55、><p>  cp2.add(ce);</p><p>  cp2.add(c);</p><p>  cp3.add(num7);</p><p>  num7.addActionListener(this);</p><p>  cp3.add(num8);</p><p>  num8.add

56、ActionListener(this);</p><p>  cp3.add(num9);</p><p>  num9.addActionListener(this);</p><p>  cp3.add(chu);</p><p>  chu.addActionListener(this);</p><p>  

57、cp3.add(kai);</p><p>  kai.addActionListener(this);</p><p>  cp3.add(num4);</p><p>  num4.addActionListener(this);</p><p>  cp3.add(num5);</p><p>  num5.ad

58、dActionListener(this);</p><p>  cp3.add(num6);</p><p>  num6.addActionListener(this);</p><p>  cp3.add(cheng);</p><p>  cheng.addActionListener(this);</p><p&

59、gt;  cp3.add(quyu);</p><p>  quyu.addActionListener(this);</p><p>  cp3.add(num1);</p><p>  num1.addActionListener(this);</p><p>  cp3.add(num2);</p><p>  

60、num2.addActionListener(this);</p><p>  cp3.add(num3);</p><p>  num3.addActionListener(this);</p><p>  cp3.add(jian);</p><p>  jian.addActionListener(this);</p>&

61、lt;p>  cp3.add(dao);</p><p>  dao.addActionListener(this);</p><p>  cp3.add(num0);</p><p>  num0.addActionListener(this);</p><p>  cp3.add(fu);</p><p> 

62、 fu.addActionListener(this);</p><p>  cp3.add(dian);</p><p>  dian.addActionListener(this);</p><p>  cp3.add(jia);</p><p>  jia.addActionListener(this);</p><

63、p>  cp3.add(deng);</p><p>  deng.addActionListener(this);</p><p>  cp3.add(cos);</p><p>  cos.addActionListener(this);</p><p>  cp3.add(sin);</p><p>  s

64、in.addActionListener(this);</p><p>  cp3.add(tan);</p><p>  tan.addActionListener(this);</p><p>  cp3.add(lnX);</p><p>  lnX.addActionListener(this);</p><p&g

65、t;  cp3.add(lgX);</p><p>  lgX.addActionListener(this);</p><p>  cp3.add(a);</p><p>  a.setForeground(Color.magenta);</p><p>  a.setBackground(Color.pink);</p>&

66、lt;p>  a.addActionListener(this);</p><p>  cp3.add(b);</p><p>  b.setForeground(Color.magenta);</p><p>  b.setBackground(Color.pink);</p><p>  b.addActionListener(th

67、is);</p><p>  cp3.add(cc);</p><p>  cc.setForeground(Color.magenta);</p><p>  cc.setBackground(Color.pink);</p><p>  cc.addActionListener(this);</p><p>  c

68、p3.add(dd);</p><p>  dd.setForeground(Color.magenta);</p><p>  dd.setBackground(Color.pink);</p><p>  dd.addActionListener(this);</p><p>  cp3.add(ee);</p><p

69、>  ee.setForeground(Color.magenta);</p><p>  ee.setBackground(Color.pink);</p><p>  ee.addActionListener(this);</p><p>  cp3.add(ff);</p><p>  ff.setForeground(Color

70、.magenta);</p><p>  ff.setBackground(Color.pink);</p><p>  ff.addActionListener(this);</p><p>  JMenuBar mainMenu = new JMenuBar();</p><p>  setJMenuBar(mainMenu);</

71、p><p>  JMenu editMenu = new JMenu("編輯");</p><p>  JMenu viewMenu = new JMenu("查看");</p><p>  JMenu helpMenu = new JMenu("幫助");</p><p>  main

72、Menu.add(viewMenu);</p><p>  mainMenu.add(editMenu);</p><p>  mainMenu.add(helpMenu);</p><p>  fileMenu = new JMenu("復(fù)制C Ctrl+C");</p><p>  exitItemOfFile = n

73、ew JMenuItem("粘貼V Ctrl+V");</p><p>  fileMenu.addActionListener(this);</p><p>  exitItemOfFile.addActionListener(this);</p><p>  editMenu.add(fileMenu);</p><p&g

74、t;  editMenu.add(exitItemOfFile);</p><p>  t = new JMenuItem("●標(biāo)準(zhǔn)型");</p><p>  s = new JMenuItem(" 科學(xué)型");</p><p>  viewMenu.add(t);</p><p>  viewM

75、enu.add(s);</p><p>  t.addActionListener(this);</p><p>  s.addActionListener(this);</p><p>  about = new JMenuItem(" 關(guān)于計(jì)算器");</p><p>  me = new JMenuItem(&quo

76、t; 幫助主題");</p><p>  helpMenu.add(about); </p><p>  helpMenu.add(me);</p><p>  about.addActionListener(this);</p><p>  me.addActionListener(this);</p><p&

77、gt;  addWindowListener(new WindowDestroyer());</p><p><b> ?。?、科學(xué)型:</b></p><p> ?。?、這是“幫助”菜單里的“幫助主題”菜單項(xiàng):用了JtextArea將內(nèi)容顯示出來(lái)</p><p>  me = new JMenuItem(" 幫助主題");&l

78、t;/p><p>  JTextArea help = new JTextArea(10, 30); </p><p>  scrollHelp = new JScrollPane(help); </p><p>  help.setEditable(false); </p><p>  help.append("執(zhí)行簡(jiǎn)單計(jì)算 &quo

79、t;+"\n"); </p><p>  help.append("1. 鍵入計(jì)算的第一個(gè)數(shù)字。"+"\n"); </p><p>  help.append("2. 單擊“+”執(zhí)行加、“-”執(zhí)行減、“*”執(zhí)行乘或“/”執(zhí)行除"+"\n"); </p><p>  h

80、elp.append("3. 鍵入計(jì)算的下一個(gè)數(shù)字。"+"\n"); </p><p>  help.append("4. 輸入所有剩余的運(yùn)算符和數(shù)字。"+"\n"); </p><p>  help.append("5. 單擊“=“ ");</p><p> ?。?、

81、這是“幫助”菜單里的“關(guān)于計(jì)算器”菜單項(xiàng):用了JOptionPane.showMessageDialog(null, "計(jì)算機(jī)開(kāi)發(fā)者:魏曉力");</p><p><b>  5.4計(jì)算功能實(shí)現(xiàn)</b></p><p><b> ?。?、四則運(yùn)算</b></p><p>  if (temp == jia

82、){//加法</p><p>  qian = Double.parseDouble(text.getText());</p><p>  fuhao = "+";</p><p>  clear = false;</p><p><b>  }</b></p><p>  i

83、f (temp == jian){</p><p>  qian = Double.parseDouble(text.getText());</p><p>  fuhao = "-";</p><p>  clear = false;</p><p><b>  }</b></p>&

84、lt;p>  if (temp == cheng){</p><p>  qian = Double.parseDouble(text.getText());</p><p>  fuhao = "×";</p><p>  clear = false;</p><p><b>  }</b

85、></p><p>  if(temp==chu){</p><p>  qian = Double.parseDouble(text.getText());</p><p>  fuhao = "÷";</p><p>  clear = false;</p><p><b&

86、gt;  }</b></p><p>  if (temp == quyu){</p><p>  qian = Double.parseDouble(text.getText());</p><p>  fuhao="%";</p><p>  clear = false;</p><p&

87、gt;<b>  }</b></p><p>  if (temp == deng){</p><p>  double ss = Double.parseDouble(text.getText());</p><p>  text.setText("");</p><p>  if (fuhao =

88、= "+")</p><p>  text.setText(qian + ss + "");</p><p>  if (fuhao == "-")</p><p>  text.setText(qian - ss + "");</p><p>  if (fuh

89、ao == "×")</p><p>  text.setText(qian * ss + "");</p><p>  if (fuhao == "÷")</p><p>  text.setText(qian / ss + "");</p><

90、p>  if(fuhao=="%")</p><p>  text.setText(qian%ss + "");</p><p>  clear = false;//要清空前一次的數(shù)據(jù)</p><p><b>  }</b></p><p><b>  2、三角函數(shù)

91、運(yùn)算</b></p><p>  if(temp==cos){ text.setText(Double.toString(Math.cos(Double.parseDouble(text.getText())*Math.PI/180)));</p><p><b>  }</b></p><p>  if(tem

92、p==sin){</p><p>  text.setText(Double.toString(Math.sin(Double.parseDouble(text.getText())*Math.PI/180)));</p><p><b>  }</b></p><p>  if(temp==tan){ </p><p>

93、;  text.setText(Double.toString(Math.tan(Double.parseDouble(text.getText())*Math.PI/180)));</p><p><b>  }</b></p><p><b>  3、對(duì)數(shù)運(yùn)算</b></p><p>  if(temp==lgX){

94、 text.setText(Double.toString(Math.log10(Double.parseDouble(text.getText()))));</p><p><b>  }</b></p><p>  if(temp==lnX){ text.setText(Double.toString(Math.log(Double.pa

95、rseDouble(text.getText()))));</p><p><b>  }</b></p><p><b>  4、開(kāi)方、求倒運(yùn)算</b></p><p>  if (temp == kai){</p><p>  String s = text.getText();</p&g

96、t;<p>  if (s.charAt(0) == '-')</p><p>  text.setText("負(fù)數(shù)不能開(kāi)根號(hào)");</p><p>  else </p><p>  text.setText(Double.toString(java.lang.Math.sqrt</p>&

97、lt;p>  (Double.parseDouble(text.getText()))));</p><p>  clear = false;</p><p><b>  }</b></p><p>  if (temp == dao){</p><p>  if (text.getText().charAt(0)

98、 == '0' && text.getText().length() == 1)</p><p>  text.setText("除數(shù)不能為零");</p><p><b>  else{</b></p><p>  boolean isDec = true;</p><p

99、>  int i, j, k;</p><p>  String s = Double.toString(1 / Double.parseDouble(text.getText()));</p><p>  for (i = 0; i < s.length(); i++)</p><p>  if (s.charAt(i) == '.')

100、</p><p><b>  break;</b></p><p>  for (j = i + 1; j < s.length(); j++)</p><p>  if (s.charAt(j) != '0'){</p><p>  isDec = false; break;</p>

101、<p><b>  }</b></p><p>  if (isDec == true){</p><p>  String stemp = "";</p><p>  for (k = 0; k < i; k++)</p><p>  stemp += s.charAt(k);&l

102、t;/p><p>  text.setText(stemp);</p><p><b>  }</b></p><p><b>  else</b></p><p>  text.setText(s);</p><p><b>  }</b></p&g

103、t;<p>  clear = false;</p><p><b>  } </b></p><p><b> ?。怠⒄?fù)號(hào)運(yùn)算</b></p><p>  if (temp == fu){</p><p>  boolean isNumber = true;</p>

104、<p>  String s = text.getText();</p><p>  for (int i = 0; i < s.length(); i++) if(!(s.charAt(i)>='0'&&s.charAt(i)<='9'||s.charAt(i)=='.'||s.charAt(i)=

105、='-')){</p><p>  isNumber = false; break;</p><p><b>  }</b></p><p>  if (isNumber == true){ </p><p>  if (s.charAt(0) == '-'){</p>&

106、lt;p>  text.setText("");</p><p>  for (int i = 1; i < s.length(); i++){</p><p>  char a = s.charAt(i);</p><p>  text.setText(text.getText() + a);</p><p>

107、;<b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p>  text.setText('-' + s);</p><p><b>  }</b></p>

108、<p><b>  }</b></p><p><b> ?。丁⑼顺龃翱趧?dòng)作</b></p><p>  class WindowDestroyer extends WindowAdapter{//</p><p>  public void windowClosing(WindowEvent e){ </

109、p><p>  System.exit(0);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  7、進(jìn)制轉(zhuǎn)換</b></p><p>  class objConversion{</p>

110、<p>  public String decDec(int decNum){</p><p>  String strDecNum = Integer.toString(decNum);</p><p>  for (int i = strDecNum.length(); i < 3; i++)</p><p>  strDecNum = &q

111、uot;0" + strDecNum;</p><p>  return invert (strDecNum, 5);</p><p><b>  }</b></p><p>  public String decHex (int decNum){//10 to 16</p><p>  String strH

112、exNum = "";</p><p>  int currentNum = 0;</p><p>  while(decNum != 0){</p><p>  if (decNum > 15){</p><p>  currentNum=decNum%16;</p><p>  decNu

113、m /= 16;</p><p><b>  }</b></p><p><b>  else{</b></p><p>  currentNum = decNum;</p><p>  decNum = 0;</p><p><b>  }</b>&l

114、t;/p><p>  switch (currentNum){</p><p>  case 15: strHexNum += "F"; break;</p><p>  case 14: strHexNum += "E"; break;</p><p>  case 13: strHexNum += &q

115、uot;D"; break;</p><p>  case 12: strHexNum += "C"; break;</p><p>  case 11: strHexNum += "B"; break;</p><p>  case 10: strHexNum += "A"; break;<

116、;/p><p>  default: strHexNum +=Integer.toString(currentNum);break;</p><p><b>  }</b></p><p><b>  }</b></p><p>  return invert(strHexNum,2);</p&g

117、t;<p><b>  }</b></p><p>  public String decOct (int decNum){//10 to 8</p><p>  String strOctNum = "";</p><p>  while (decNum != 0){</p><p>

118、  if (decNum > 7){</p><p>  strOctNum += Integer.toString(decNum % 8);</p><p>  decNum /= 8;</p><p><b>  }else{</b></p><p>  strOctNum += Integer.toStrin

119、g(decNum);</p><p>  decNum = 0;</p><p><b>  }</b></p><p><b>  }</b></p><p>  return invert (strOctNum, 3);</p><p><b>  }</

120、b></p><p>  public String decBin (int decNum) {//10 to 2</p><p>  String strBinNum = "";</p><p>  while (decNum != 0) {</p><p>  if (decNum > 1){</p&

121、gt;<p>  strBinNum += Integer.toString(decNum % 2);</p><p>  decNum /= 2;</p><p><b>  }else{</b></p><p>  strBinNum += Integer.toString(decNum);</p><p&

122、gt;  decNum = 0;</p><p><b>  }</b></p><p><b>  }</b></p><p>  return invert (strBinNum, 8);</p><p><b>  }</b></p><p>  

123、private String invert(String strNum,int minLength){ </p><p>  String answer = "";</p><p>  int length = strNum.length();</p><p>  if (length < minLength){</p>&l

124、t;p>  for (int padding =(minLength -length);padding>0;padding--){</p><p>  answer += "0";</p><p><b>  }</b></p><p><b>  }</b></p><

125、p>  for(int i=length;i>0;i--)</p><p>  answer+=strNum.charAt(i-1);</p><p>  return answer;</p><p><b>  }</b></p><p><b>  }</b></p>

126、<p><b>  六、參考文獻(xiàn)</b></p><p>  [01]施霞萍,張歡.Java課程設(shè)計(jì)(第二版)[M]機(jī)械工業(yè)出版社.2006年8月</p><p>  [02] 耿祥義,張躍平. Java2實(shí)用教程(第三版).清華大學(xué)出版社。</p><p><b>  七、總結(jié)</b></p>&

127、lt;p>  設(shè)計(jì)給人以創(chuàng)作的沖動(dòng),但是也要為這次沖動(dòng)承擔(dān)一定的痛苦,卻事后會(huì)發(fā)現(xiàn),這一切都是值得的。本次的Java課程設(shè)計(jì)讓我對(duì)Java的理論知識(shí)又有了更深一步的了解,溫故而知新,開(kāi)始設(shè)計(jì)時(shí)完全沒(méi)頭緒,感覺(jué)很混亂,對(duì)書(shū)本知識(shí)不夠扎實(shí)的我深感“書(shū)到用時(shí)方恨少”,只好又一遍瀏覽全書(shū),讓我對(duì)其有了大概的復(fù)習(xí),對(duì)知識(shí)系統(tǒng)全面進(jìn)行了了解,讓我里出了我設(shè)計(jì)的框架,遇到困難時(shí)先是苦思冥想在向同學(xué)請(qǐng)教。</p><p>

128、  這次課程設(shè)計(jì)使我感到收獲不小,讓我對(duì)Java的設(shè)計(jì)過(guò)程有了更深的了解,促進(jìn)了對(duì)理論知識(shí)的消化與吸收,也鞏固和完善了本門課程的知識(shí)體系結(jié)構(gòu)。設(shè)計(jì)過(guò)程中遇到了不少麻煩:如進(jìn)制間的轉(zhuǎn)換,也遇到了平時(shí)學(xué)習(xí)中老師強(qiáng)調(diào)與教過(guò)的疑難點(diǎn),不懂的通過(guò)翻閱資料和與同學(xué)間的討論都一一解決了。</p><p>  通過(guò)實(shí)踐讓我發(fā)現(xiàn)了我的不足,并加深了自身學(xué)習(xí)能力,提高了綜合能力。因此在以后的學(xué)習(xí)中我會(huì)通過(guò)實(shí)踐來(lái)檢驗(yàn)自己的不足和加深、

129、鞏固自身。以此來(lái)完善自己的知識(shí)系統(tǒng)。</p><p>  這次課程設(shè)計(jì)的主要目的是學(xué)會(huì)Java程序開(kāi)發(fā)的環(huán)境搭建與配置,并在實(shí)際運(yùn)用中學(xué)習(xí)和掌握J(rèn)ava程序開(kāi)發(fā)的全過(guò)程,以及進(jìn)一步熟悉掌握J(rèn)ava程序設(shè)計(jì)語(yǔ)言的基礎(chǔ)內(nèi)容,提高Java編程技術(shù)以及分析解決問(wèn)題的綜合能力。通過(guò)這次課程設(shè)計(jì),我基本掌握了以上要求。由于專業(yè)知識(shí)有限,以及動(dòng)手能力的欠缺,所以開(kāi)發(fā)的系統(tǒng)不是很完善,有一些功能未實(shí)現(xiàn),但是簡(jiǎn)易計(jì)算器的基本功能均

130、已實(shí)現(xiàn)。以前對(duì)Java語(yǔ)言的很多知識(shí)認(rèn)識(shí)都不深刻,做過(guò)這次課程設(shè)計(jì)之后,我對(duì)Java語(yǔ)言的開(kāi)發(fā)有了一個(gè)比較系統(tǒng)的了解;比如:用戶圖形界面設(shè)計(jì)等的運(yùn)用已經(jīng)比較熟練。</p><p><b>  八、源代碼</b></p><p>  import java.awt.*;</p><p>  import javax.swing.*;</p&

131、gt;<p>  import java.lang.Math;</p><p>  import java.awt.event.*;</p><p>  public class Calculator extends JFrame implements ActionListener{</p><p>  JScrollPane scrollHelp;&

132、lt;/p><p>  private objConversion convert = new objConversion();//各個(gè)進(jìn)制之間的轉(zhuǎn)化</p><p>  JMenuItem fileMenu,exitItemOfFile,s,t, about, me;</p><p>  JRadioButton sixteen,ten,eight,two;//單選按

133、扭</p><p>  JButton Back,ce,c,num0,num1,num2,num3,num4,num5,num6,num7,num8,num9;</p><p>  JButton a,b,cc,dd,ee,ff,jia,jian,cheng,chu,</p><p>  quyu,deng,fu,dian,kai,dao,cos,sin,tan,l

134、gX,lnX;</p><p>  Container cp;//容器,便于集體操作</p><p>  JTextField text;</p><p>  String copycontent="";</p><p>  boolean clickable=true,clear=true;</p><

135、;p>  int all=0;</p><p>  double qian;</p><p>  String fuhao,copy;</p><p>  int jin=10,first=1;</p><p>  public Calculator(){</p><p>  super("計(jì)算器&qu

136、ot;);</p><p>  setSize(400,400);</p><p>  setLocation(400,400);</p><p>  text=new JTextField(25);</p><p>  text.setHorizontalAlignment(JTextField.LEFT);//從左到右</p>

137、<p>  JPanel cp1=new JPanel();</p><p>  JPanel cp2=new JPanel();</p><p>  JPanel cp3=new JPanel();</p><p>  cp=getContentPane();</p><p>  cp.add(cp1,"North&

138、quot;);</p><p>  cp.add(cp2,"Center");</p><p>  cp.add(cp3,"South");</p><p>  cp1.setLayout(new GridLayout(1,1));</p><p>  cp2.setLayout(new GridLay

139、out(2,4));</p><p>  cp3.setLayout(new GridLayout(7,4));</p><p>  sixteen=new JRadioButton("十六進(jìn)制");</p><p>  sixteen.setVisible(false);</p><p>  ten=new JRadio

140、Button("進(jìn)制",true);</p><p>  ten.setVisible(false);</p><p>  eight=new JRadioButton("八進(jìn)制");</p><p>  eight.setVisible(false);</p><p>  two=new JRadio

141、Button("二進(jìn)制");</p><p>  two.setVisible(false);</p><p>  a = new JButton("A");</p><p>  a.setVisible(false);</p><p>  b = new JButton("B");

142、</p><p>  b.setVisible(false);</p><p>  cc = new JButton("C");</p><p>  cc.setVisible(false);</p><p>  dd = new JButton("D");</p><p>  

143、dd.setVisible(false);</p><p>  ee = new JButton("E");</p><p>  ee.setVisible(false);</p><p>  ff = new JButton("F");</p><p>  ff.setVisible(false);&

144、lt;/p><p>  jia = new JButton("+");</p><p>  jian = new JButton("-");</p><p>  cheng = new JButton("×");</p><p>  chu = new JButton(&quo

145、t;÷");</p><p>  quyu = new JButton("%");</p><p>  deng = new JButton("=");</p><p>  fu = new JButton("+/-");</p><p>  dian = new

溫馨提示

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

評(píng)論

0/150

提交評(píng)論