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

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  課程設(shè)計(jì)報(bào)告</b></p><p>  課程名稱: 面向?qū)ο蠹夹g(shù)課程設(shè)計(jì) </p><p>  設(shè)計(jì)題目: 科學(xué)計(jì)算器 </p><p>  學(xué) 院: 信息科學(xué)與工程學(xué)院 </p><p>  專 業(yè): 計(jì)算機(jī)科學(xué)與技

2、術(shù)(軟件外包)</p><p>  姓 名: 王怡 </p><p>  學(xué) 號(hào): 20101214132 </p><p>  班 級(jí): 計(jì)1001 </p><p>  指導(dǎo)教師: 史桂嫻

3、 </p><p>  二零一二年 六 月 十 日</p><p><b>  設(shè)計(jì)內(nèi)容及要求</b></p><p>  設(shè)計(jì)并實(shí)現(xiàn)類似于Windows系統(tǒng)中“計(jì)算器”的窗口及功能</p><p>  要求:設(shè)計(jì)出如圖所示的圖形界面并且能夠?qū)崿F(xiàn)多種運(yùn)算,且保證運(yùn)算的正確性</p><

4、;p><b>  開發(fā)環(huán)境</b></p><p><b>  設(shè)計(jì)環(huán)境或器材: </b></p><p>  硬件環(huán)境:個(gè)人計(jì)算機(jī) </p><p>  軟件環(huán)境:MyEclipse 集成開發(fā)環(huán)境 Java JCreator Pro;</p><p>  設(shè)計(jì)原理說明:運(yùn)用Applic

5、ation程序。</p><p><b>  設(shè)計(jì)思路</b></p><p>  對(duì)Application運(yùn)用繼承JFrame設(shè)計(jì),類的設(shè)計(jì)構(gòu)造方法利用等</p><p><b>  菜單欄設(shè)計(jì)。</b></p><p>  創(chuàng)建文本域,即為計(jì)算器的屏幕顯示區(qū)域。</p><p

6、>  定義初始化操作,在設(shè)計(jì)界面中添加并加入按鈕控件。</p><p>  統(tǒng)一設(shè)置按鈕的的使用方式。給各個(gè)按鈕進(jìn)行算法,利用鼠標(biāo)點(diǎn)擊事件,當(dāng)鼠標(biāo)點(diǎn)擊某個(gè)按鈕時(shí)就開始執(zhí)行那個(gè)按鈕所定義的算法,生成數(shù)據(jù)并顯示。</p><p>  調(diào)用java類中的Math函數(shù)庫以及各種串的操作,像是計(jì)算器的基礎(chǔ)操作(+ - × ÷)。</p><p>  

7、用ActionEvent對(duì)象的getActionCommand()方法, 取得與引發(fā)事件對(duì)象相關(guān)的字 符串:寫入平方根sqrt、百分號(hào)%、倒數(shù)1/x,sin,cos,tan的計(jì)算公式。</p><p>  注冊(cè)按鈕事件監(jiān)聽器。</p><p><b>  算法的流程圖</b></p><p><b>  詳細(xì)設(shè)計(jì)過程與

8、分析</b></p><p><b>  1、界面設(shè)計(jì)</b></p><p>  設(shè)置內(nèi)容網(wǎng)格布局BorderLayout,創(chuàng)建菜單欄和文本區(qū),創(chuàng)建單選按鈕,默認(rèn)選中,添加按鈕并加入按鈕,統(tǒng)一設(shè)置按鈕的使用方式。整體布局是一個(gè)BorderLayout,其中第一行的按鈕、下面的按鈕都是BorderLayout,四部分按鈕是GridLayout,然后將四部分

9、的按鈕加入到BorderLayout,再將這個(gè)BorderLayout以及結(jié)果輸出框、版權(quán)信息加入到最大的BorderLayout。</p><p>  2、給各個(gè)按鈕進(jìn)行算法,利用鼠標(biāo)點(diǎn)擊事件,當(dāng)鼠標(biāo)點(diǎn)擊某個(gè)按鈕時(shí)就開始執(zhí)行那個(gè)按鈕所定義的算法,生成數(shù)據(jù)并顯示。</p><p>  3、添加動(dòng)作監(jiān)聽事件:添加數(shù)字監(jiān)聽,運(yùn)算符號(hào)事件的監(jiān)聽,清除按鈕的事件監(jiān)聽,小數(shù)點(diǎn)的事件監(jiān)聽。privat

10、e void addButton(JPanel panel, String name, ActionListener action語句實(shí)現(xiàn)了ActionListener接口,因此可以調(diào)用addActionListener(this)方法對(duì)按鈕進(jìn)行點(diǎn)擊監(jiān)聽,在下面的public void actionPerformed(ActionEvent e) 方法里面對(duì)各個(gè)點(diǎn)擊事件進(jìn)行處理。</p><p>  4、用Act

11、ionEvent對(duì)象的getActionCommand()方法取得與引發(fā)事件對(duì)象相關(guān)的字符串,求平方根,百分比,倒數(shù),sin,cos,tan等函數(shù)。</p><p>  5、對(duì)“查看”添加監(jiān)聽并加入到button組中,public void actionPerformed(ActionEvent e) {</p><p>  setVisible(false);</p>&l

12、t;p>  new CalculatorSimple().setVisible(true);</p><p>  用setVisible語句對(duì)標(biāo)準(zhǔn)型界面設(shè)置隱藏,默認(rèn)顯示科學(xué)型界面。從而實(shí)現(xiàn)界面的轉(zhuǎn)換。</p><p><b>  源代碼</b></p><p>  1、科學(xué)型計(jì)算器界面</p><p>  imp

13、ort java.awt.*;</p><p>  import java.awt.event.*;</p><p>  import java.text.DecimalFormat;</p><p>  import javax.swing.*;</p><p>  public class Calculator extends JFram

14、e implements ActionListener {</p><p>  private JTextField tf;//創(chuàng)建文本框</p><p>  private JPanel panel1, panel2, panel3, panel4;//創(chuàng)建面板容器</p><p>  private JMenuBar myBar;//創(chuàng)建一個(gè)水平菜單欄</

15、p><p>  private JMenu menu1, menu2, menu3;</p><p>  private JMenuItem editItem1, editItem2, help1, help2, help3;</p><p>  private JRadioButtonMenuItem seeItem1, seeItem2;//單選框</p>

16、;<p>  private JCheckBoxMenuItem seeItem3;//復(fù)選框</p><p>  private ButtonGroup itemGroup = new ButtonGroup();</p><p>  private ButtonGroup bgb;</p><p>  private String back;//字

17、符串返回</p><p>  private boolean IfResult = true, flag = false;</p><p>  private String oper = "=";</p><p>  private double result = 0;</p><p>  private Num numA

18、ctionListener;//設(shè)置數(shù)字監(jiān)聽</p><p>  private DecimalFormat df;//格式化數(shù)字輸出</p><p>  public Calculator(){</p><p>  super("科學(xué)計(jì)算器");//設(shè)置標(biāo)題欄</p><p>  df = new DecimalForm

19、at("#.####");//保留四位小數(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 GridLa

20、yout(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><b>  /*</b></p>&l

21、t;p><b>  * 菜單欄</b></p><p><b>  */</b></p><p>  myBar = new JMenuBar();</p><p>  menu1 = new JMenu("編輯(E)");</p><p>  menu2 = new JM

22、enu("查看(V)");</p><p>  menu3 = new JMenu("幫助(H)");</p><p>  menu1.setFont(new Font("宋體", Font.PLAIN, 12));</p><p>  menu2.setFont(new Font("宋體&quo

23、t;, Font.PLAIN, 12));</p><p>  menu3.setFont(new Font("宋體", Font.PLAIN, 12));</p><p><b>  /*</b></p><p><b>  * 編輯欄</b></p><p><b>

24、;  */</b></p><p>  editItem1 = new JMenuItem("復(fù)制(C) Ctrl+C");</p><p>  editItem2 = new JMenuItem("粘貼(P) Ctrl+V");</p><p>  editItem1.setFont(new Font("

25、;宋體",Font.PLAIN,12));</p><p>  editItem2.setFont(new Font("宋體",Font.PLAIN,12));</p><p><b>  /*</b></p><p><b>  * 查看欄</b></p><p>&

26、lt;b>  */</b></p><p>  seeItem2= new JRadioButtonMenuItem("標(biāo)準(zhǔn)型");</p><p>  seeItem1 = new JRadioButtonMenuItem("科學(xué)型");</p><p>  seeItem3 = new JCheckBo

27、xMenuItem("數(shù)字分組(I)");</p><p>  seeItem1.addActionListener(this);</p><p>  seeItem2.addActionListener(this);</p><p>  seeItem1.setSelected(true);</p><p>  item

28、Group.add(seeItem1);</p><p>  itemGroup.add(seeItem2);</p><p>  seeItem2.addActionListener(new ActionListener() {</p><p>  public void actionPerformed(ActionEvent e) {</p>&l

29、t;p>  setVisible(false);</p><p>  new CalculatorSimple().setVisible(true);</p><p><b>  }</b></p><p><b>  });</b></p><p>  seeItem1.setFont(ne

30、w Font("宋體",Font.PLAIN,12));</p><p>  seeItem2.setFont(new Font("宋體",Font.PLAIN,12));</p><p>  seeItem3.setFont(new Font("宋體",Font.PLAIN,12));</p><p>&

31、lt;b>  /*</b></p><p><b>  * 幫助欄</b></p><p><b>  */</b></p><p>  help1 = new JMenuItem("幫助主題(H)");</p><p>  help2 = new JMenuI

32、tem("關(guān)于計(jì)算器(A)");</p><p>  help1.setFont(new Font("宋體",Font.PLAIN,12));</p><p>  help2.setFont(new Font("宋體",Font.PLAIN,12));</p><p>  bgb = new ButtonG

33、roup();//選項(xiàng)組</p><p>  menu1.add(editItem1);</p><p>  menu1.add(editItem2);</p><p>  menu2.add(seeItem1);</p><p>  menu2.add(seeItem2);</p><p>  menu2.addSe

34、parator();//添加一條分割線</p><p>  menu2.add(seeItem3);</p><p>  menu3.add(help1);</p><p>  menu3.addSeparator();//添加一條分割線</p><p>  menu3.add(help2);</p><p>  my

35、Bar.add(menu1);</p><p>  myBar.add(menu2);</p><p>  myBar.add(menu3);</p><p>  this.setJMenuBar(myBar);</p><p>  numActionListener = new Num();//實(shí)現(xiàn)數(shù)字監(jiān)聽</p><p

36、><b>  /**</b></p><p>  * 文本域,即為計(jì)算器的屏幕顯示區(qū)域</p><p><b>  */</b></p><p>  tf = new JTextField();</p><p>  tf.setEditable(false);//文本區(qū)域不可編輯</p&

37、gt;<p>  tf.setBackground(Color.white);//文本區(qū)域的背景色</p><p>  tf.setHorizontalAlignment(JTextField.RIGHT);//文字右對(duì)齊</p><p>  tf.setText("0");</p><p>  tf.setBorder(Borde

38、rFactory.createLoweredBevelBorder());</p><p>  init();//對(duì)計(jì)算器進(jìn)行初始化</p><p><b>  }</b></p><p><b>  /**</b></p><p><b>  * 初始化操作</b></

39、p><p><b>  * 添加按鈕</b></p><p><b>  */</b></p><p>  private void init(){</p><p>  addButton(panel1, "Backspace", new Clear(), Color.red);&l

40、t;/p><p>  addButton(panel1, "CE", new Clear(), Color.red);</p><p>  addButton(panel1, "C", new Clear(), Color.red);</p><p>  addButton(panel2, "1/x", new

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

42、 addButton(panel2, "8", numActionListener, Color.blue);</p><p>  addButton(panel2, "9", numActionListener, Color.blue);</p><p>  addButton(panel2, "¡Â", n

43、ew Signs(), Color.red);</p><p>  addButton(panel2, "n!", new Signs(), Color.magenta);</p><p>  addButton(panel2, "sqrt", new Signs(), Color.magenta);</p><p>  ad

44、dButton(panel2, "4", numActionListener, Color.blue);</p><p>  addButton(panel2, "5", numActionListener, Color.blue);</p><p>  addButton(panel2, "6", numActionListen

45、er, Color.blue);</p><p>  addButton(panel2, "¡Á", new Signs(), Color.red);</p><p>  addButton(panel2, "sin", new Signs(), Color.magenta);</p><p>  addB

46、utton(panel2, "x^2", new Signs(), Color.magenta);</p><p>  addButton(panel2, "1", numActionListener, Color.blue);</p><p>  addButton(panel2, "2", numActionListener,

47、 Color.blue);</p><p>  addButton(panel2, "3", numActionListener, Color.blue);</p><p>  addButton(panel2, "-", new Signs(), Color.red);</p><p>  addButton(panel2,

48、 "cos", new Signs(), Color.magenta);</p><p>  addButton(panel2, "x^3", new Signs(), Color.magenta);</p><p>  addButton(panel2, "0", numActionListener, Color.blue);&

49、lt;/p><p>  addButton(panel2, "-/+", new Clear(), Color.blue);</p><p>  addButton(panel2, ".", new Dot(), Color.blue);</p><p>  addButton(panel2, "+", new

50、 Signs(), Color.red);</p><p>  addButton(panel2, "tan", new Signs(), Color.magenta);</p><p>  addButton(panel2, "%", new Signs(), Color.magenta);</p><p>  addBut

51、ton(panel2, "π", numActionListener, Color.orange);</p><p>  addButton(panel2, "e", numActionListener, Color.orange);</p><p>  addButton(panel2, "`", new Signs(), Co

52、lor.orange);</p><p>  addButton(panel2, "=", new Signs(), Color.red);</p><p>  JButton btns = new JButton("計(jì)算器");</p><p>  btns.setBorder(BorderFactory.createLow

53、eredBevelBorder());</p><p>  btns.setEnabled(false);//按鈕不可操作</p><p>  btns.setPreferredSize(new Dimension(20, 20));</p><p>  panel3.add(btns);//加入按鈕</p><p>  addButton(

54、panel3, "MC", null, Color.red);</p><p>  addButton(panel3, "MR", null, Color.red);</p><p>  addButton(panel3, "MS", null, Color.red);</p><p>  addButto

55、n(panel3, "M+", null, Color.red);</p><p>  panel4.add(panel1, BorderLayout.NORTH);</p><p>  panel4.add(panel2, BorderLayout.CENTER);</p><p>  this.add(tf, BorderLayout.NOR

56、TH);</p><p>  this.add(panel3, BorderLayout.WEST);</p><p>  this.add(panel4);</p><p>  pack();//調(diào)整此窗口的大小,以適合其子組件的首選大小和布局</p><p>  this.setResizable(false);//窗口不可改變大小<

57、;/p><p>  this.setLocation(500, 200);//將組件移到新位置</p><p>  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);</p><p><b>  }</b></p><p><b>  /**</b>

58、</p><p>  * 統(tǒng)一設(shè)置按鈕的的使用方式</p><p>  * @param panel</p><p>  * @param name</p><p>  * @param action</p><p>  * @param color</p><p><b>  */&

59、lt;/b></p><p>  private void addButton(JPanel panel, String name, ActionListener action, Color color){</p><p>  JButton bt = new JButton(name);</p><p>  panel.add(bt);//在面板上增加按鈕&

60、lt;/p><p>  bt.setForeground(color);//設(shè)置前景(字體)顏色</p><p>  bt.addActionListener(action);//增加監(jiān)聽事件</p><p><b>  }</b></p><p><b>  /**</b></p>&l

61、t;p>  * 計(jì)算器的基礎(chǔ)操作(+ - ¡Á ¡Â)</p><p>  * @param x</p><p><b>  */</b></p><p>  private void getResult (double x){</p><p>  if(oper == &q

62、uot;+"){result += x;}</p><p>  else if(oper == "-"){result -= x;}</p><p>  else if(oper == "¡Á"){result *= x;}</p><p>  else if(oper == "

63、1;Â"){result /= x;}</p><p>  else if(oper == "="){result = x;}</p><p>  tf.setText(df.format(result));</p><p><b>  }</b></p><p><b>

64、;  /**</b></p><p>  * 運(yùn)算符號(hào)的事件監(jiān)聽</p><p><b>  */</b></p><p>  class Signs implements ActionListener{</p><p>  public void actionPerformed(ActionEvent e)

65、 {</p><p><b>  /*</b></p><p>  * 用ActionEvent對(duì)象的getActionCommand()方法</p><p>  * 取得與引發(fā)事件對(duì)象相關(guān)的字符串</p><p><b>  */</b></p><p>  String

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

67、f(i>=0){</b></p><p><b>  /*</b></p><p>  * String.valueOf() 轉(zhuǎn)換為字符串</p><p>  * df.format() 按要求保留四位小數(shù)</p><p>  * Math.sqrt() 求算數(shù)平方根</p><p&

68、gt;<b>  */</b></p><p>  tf.setText(String.valueOf(df.format(Math.sqrt(i))));</p><p><b>  }</b></p><p><b>  else{</b></p><p>  tf.set

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

70、<p>  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>  }els

71、e{</b></p><p>  tf.setText("負(fù)數(shù)不能求對(duì)數(shù)");</p><p><b>  }</b></p><p><b>  }</b></p><p>  /* %求百分比 */</p><p>  else if(st

72、r.equals("%")){</p><p>  tf.setText</p><p>  (df.format(Double.parseDouble(tf.getText()) / 100));</p><p><b>  }</b></p><p>  /* 1/x求倒數(shù) */</p>

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

74、t;/p><p>  tf.setText(df.format(1 / Double.parseDouble(tf.getText())));</p><p><b>  }</b></p><p><b>  }</b></p><p>  /* sin求正弦函數(shù) */</p><

75、p>  else if(str.equals("sin")){</p><p>  double i = Double.parseDouble(tf.getText());</p><p>  tf.setText(String.valueOf(df.format(Math.sin(i))));</p><p><b>  }&l

76、t;/b></p><p>  /* cos求余弦函數(shù) */</p><p>  else if(str.equals("cos")){</p><p>  double i = Double.parseDouble(tf.getText());</p><p>  tf.setText(String.valueOf

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

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

79、)){</p><p>  double i = 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;//強(qiáng)制類型轉(zhuǎn)換&l

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

81、;/p><p><b>  else</b></p><p><b>  {</b></p><p>  tf.setText("無法進(jìn)行階乘");</p><p><b>  }</b></p><p><b>  }<

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

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

84、lt;/p><p>  tf.setText(String.valueOf(df.format(i*i*i)));</p><p><b>  }</b></p><p>  /* ′″角度轉(zhuǎn)換 */</p><p><b>  /**</b></p><p>  * 將角度值轉(zhuǎn)

85、換成弧度值,方便三角函數(shù)的計(jì)算</p><p><b>  */</b></p><p>  else if(str.equals("′″")){</p><p>  double i = Double.parseDouble(tf.getText());</p><p>  tf.setText(S

86、tring.valueOf(i/180*Math.PI));</p><p><b>  }</b></p><p><b>  else{</b></p><p><b>  if(flag){</b></p><p>  IfResult = false;</p>

87、;<p><b>  }</b></p><p>  if(IfResult){</p><p>  oper = str;</p><p><b>  }else{ </b></p><p>  getResult(Double.parseDouble(tf.getText()));

88、</p><p>  oper = str;</p><p>  IfResult = true;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p&

89、gt;<b>  }</b></p><p><b>  /**</b></p><p>  * 清除按鈕的事件監(jiān)聽</p><p><b>  */</b></p><p>  class Clear implements ActionListener{</p>

90、<p>  public void actionPerformed(ActionEvent e) {</p><p><b>  /*</b></p><p>  * 用ActionEvent對(duì)象的getActionCommand()方法</p><p>  * 取得與引發(fā)事件對(duì)象相關(guān)的字符串</p><p>

91、;<b>  */</b></p><p>  String str = e.getActionCommand();</p><p>  if(str == "C"){</p><p>  tf.setText("0");</p><p>  IfResult = true;<

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

93、gt;<p>  }else if(str == "Backspace"){</p><p>  if(Double.parseDouble(tf.getText()) > 0){</p><p>  if(tf.getText().length() > 1){</p><p>  tf.setText(tf.getTe

94、xt().substring(0, tf.getText().length() - 1));</p><p>  //使用退格刪除最后一位字符</p><p><b>  }else{</b></p><p>  tf.setText("0");</p><p>  IfResult = true;&

95、lt;/p><p><b>  }</b></p><p><b>  }else{</b></p><p>  if(tf.getText().length() > 2){</p><p>  tf.setText(tf.getText().substring(0, tf.getText().l

96、ength() - 1));</p><p><b>  }else{</b></p><p>  tf.setText("0");</p><p>  IfResult = true;</p><p><b>  }</b></p><p><b&

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

98、gt;<b>  }</b></p><p><b>  }</b></p><p><b>  /**</b></p><p>  * 數(shù)字輸入的事件監(jiān)聽</p><p><b>  */</b></p><p>  class

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

100、ext("");</p><p>  IfResult = false;</p><p><b>  }</b></p><p>  if(str=="π")</p><p><b>  {</b></p><p>  tf.setTe

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

102、);</p><p><b>  }</b></p><p><b>  else{</b></p><p>  tf.setText(tf.getText().trim() + str);</p><p>  if(tf.getText().equals("0")){</

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

104、p><b>  }</b></p><p><b>  }</b></p><p><b>  /**</b></p><p>  * 小數(shù)點(diǎn)的事件監(jiān)聽</p><p><b>  */</b></p><p>  class

105、 Dot implements ActionListener{</p><p>  public void actionPerformed(ActionEvent e) {</p><p>  IfResult = false;</p><p>  if(tf.getText().trim().indexOf(".") == -1){</p

106、><p>  tf.setText(tf.getText() + ".");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  /

107、**</b></p><p><b>  * main方法</b></p><p><b>  */</b></p><p>  public static void main(String[] args) {</p><p>  new Calculator().setVisible(

108、true);</p><p><b>  }</b></p><p><b>  @Override</b></p><p>  public void actionPerformed(ActionEvent e) {</p><p><b>  }</b></p>

109、<p><b>  }</b></p><p>  2、標(biāo)準(zhǔn)型計(jì)算器界面</p><p>  import java.awt.BorderLayout;</p><p>  import java.awt.Color;</p><p>  import java.awt.Dimension;</p&g

110、t;<p>  import java.awt.Font;</p><p>  import java.awt.GridLayout;</p><p>  import java.awt.event.ActionEvent;</p><p>  import java.awt.event.ActionListener;</p><p

111、>  import java.text.DecimalFormat;</p><p>  import javax.swing.BorderFactory;</p><p>  import javax.swing.ButtonGroup;</p><p>  import javax.swing.JButton;</p><p>  

112、import javax.swing.JCheckBoxMenuItem;</p><p>  import javax.swing.JFrame;</p><p>  import javax.swing.JMenu;</p><p>  import javax.swing.JMenuBar;</p><p>  import javax

113、.swing.JMenuItem;</p><p>  import javax.swing.JPanel;</p><p>  import javax.swing.JRadioButtonMenuItem;</p><p>  import javax.swing.JTextField;</p><p>  public class Ca

114、lculatorSimple extends JFrame implements ActionListener {</p><p>  private JTextField tf;//創(chuàng)建文本框</p><p>  private JPanel panel1, panel2, panel3, panel4;//創(chuàng)建面板容器</p><p>  private JMe

115、nuBar myBar;//創(chuàng)建一個(gè)水平菜單欄</p><p>  private JMenu menu1, menu2, menu3;</p><p>  private JMenuItem editItem1, editItem2, help1, help2, help3;</p><p>  private JRadioButtonMenuItem seeIt

116、em1, seeItem2;//單選框</p><p>  private JCheckBoxMenuItem seeItem3;//復(fù)選框</p><p>  private ButtonGroup itemGroup = new ButtonGroup();</p><p>  private ButtonGroup bgb;</p><p&

117、gt;  private String back;//字符串返回</p><p>  private boolean IfResult = true, flag = false;</p><p>  private String oper = "=";</p><p>  private double result = 0;</p>

118、<p>  private Num numActionListener;//設(shè)置數(shù)字監(jiān)聽</p><p>  private DecimalFormat df;//格式化數(shù)字輸出</p><p>  public CalculatorSimple(){</p><p>  super("科學(xué)計(jì)算器");//設(shè)置標(biāo)題欄</p>

119、;<p>  df = new DecimalFormat("#.####");//保留四位小數(shù)</p><p>  this.setLayout(new BorderLayout(10, 5));</p><p>  panel1 = new JPanel(new GridLayout(1, 3, 10, 10));</p><p&g

120、t;  panel2 = new JPanel(new GridLayout(4, 6, 4, 4));</p><p>  panel3 = new JPanel(new GridLayout(5, 1, 5, 5));</p><p>  panel4 = new JPanel(new BorderLayout(5, 5));</p><p><b>

121、  /*</b></p><p><b>  * 菜單欄</b></p><p><b>  */</b></p><p>  myBar = new JMenuBar();</p><p>  menu1 = new JMenu("編輯(E)");</p>

122、;<p>  menu2 = new JMenu("查看(V)");</p><p>  menu3 = new JMenu("幫助(H)");</p><p>  menu1.setFont(new Font("宋體", Font.PLAIN, 12));</p><p>  menu2.s

123、etFont(new Font("宋體", Font.PLAIN, 12));</p><p>  menu3.setFont(new Font("宋體", Font.PLAIN, 12));</p><p><b>  /*</b></p><p><b>  * 編輯欄</b>&

124、lt;/p><p><b>  */</b></p><p>  editItem1 = new JMenuItem("復(fù)制(C) Ctrl+C");</p><p>  editItem2 = new JMenuItem("粘貼(P) Ctrl+V");</p><p>  edit

125、Item1.setFont(new Font("宋體",Font.PLAIN,12));</p><p>  editItem2.setFont(new Font("宋體",Font.PLAIN,12));</p><p><b>  /*</b></p><p><b>  * 查看欄<

126、/b></p><p><b>  */</b></p><p>  seeItem2= new JRadioButtonMenuItem("標(biāo)準(zhǔn)型");</p><p>  seeItem1 = new JRadioButtonMenuItem("科學(xué)型");</p><p&

127、gt;  seeItem3 = new JCheckBoxMenuItem("數(shù)字分組(I)");</p><p>  seeItem1.addActionListener(this);</p><p>  seeItem2.addActionListener(this);</p><p>  seeItem2.setSelected(true)

128、;</p><p>  itemGroup.add(seeItem1);</p><p>  itemGroup.add(seeItem2);</p><p>  seeItem1.addActionListener(new ActionListener() {</p><p>  public void actionPerformed(Ac

129、tionEvent e) {</p><p>  setVisible(false);</p><p>  new Calculator().setVisible(true);</p><p><b>  }</b></p><p><b>  });</b></p><p>

130、;  seeItem1.setFont(new Font("宋體",Font.PLAIN,12));</p><p>  seeItem2.setFont(new Font("宋體",Font.PLAIN,12));</p><p>  seeItem3.setFont(new Font("宋體",Font.PLAIN,12));

131、</p><p><b>  /*</b></p><p><b>  * 幫助欄</b></p><p><b>  */</b></p><p>  help1 = new JMenuItem("幫助主題(H)");</p><p&g

132、t;  help2 = new JMenuItem("關(guān)于計(jì)算器(A)");</p><p>  help1.setFont(new Font("宋體",Font.PLAIN,12));</p><p>  help2.setFont(new Font("宋體",Font.PLAIN,12));</p><p&

133、gt;  bgb = new ButtonGroup();//選項(xiàng)組</p><p>  menu1.add(editItem1);</p><p>  menu1.add(editItem2);</p><p>  menu2.add(seeItem1);</p><p>  menu2.add(seeItem2);</p>

134、<p>  menu2.addSeparator();//添加一條分割線</p><p>  menu2.add(seeItem3);</p><p>  menu3.add(help1);</p><p>  menu3.addSeparator();//添加一條分割線</p><p>  menu3.add(help2);<

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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)論