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

下載本文檔

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

文檔簡介

1、<p><b>  工學(xué)系課程設(shè)計(jì)報(bào)告</b></p><p>  設(shè) 計(jì) 題 目:計(jì)算帶變量的數(shù)學(xué)表達(dá)式程序 </p><p>  系 別:工學(xué)系 </p><p>  專 業(yè) (方 向):信息管理與信息系統(tǒng)

2、 </p><p>  年 級、 班:2012級本科(1)班 </p><p>  2014年6月30日</p><p>  帶變量的數(shù)學(xué)運(yùn)算表達(dá)式</p><p><b>  系統(tǒng)開發(fā)的背景</b></p><p>  在我們?nèi)粘I钪?,?jì)算開支

3、、收入時(shí),大額數(shù)字或是多倍小數(shù)的計(jì)算都需要計(jì)算器的幫助,而在學(xué)習(xí)一些科目時(shí),也常常要處理數(shù)字。雖然現(xiàn)在的計(jì)算器價(jià)格比較低廉,但是功能過于簡單的不能滿足個(gè)人需求,功能多的價(jià)格較貴,不僅操作不便,很多功能也根本用不到。為了設(shè)計(jì)開發(fā)一個(gè)屬于自己的簡單計(jì)算器來完成日常學(xué)習(xí)生活的需求。因此,我們用自己所學(xué)的知識,采用GUI來實(shí)現(xiàn)計(jì)算器,并采用Swing組件,AWT事件處理等實(shí)現(xiàn)具體功能。</p><p><b>

4、  系統(tǒng)分析與設(shè)計(jì)</b></p><p><b> ?。ㄒ唬┫到y(tǒng)功能要求</b></p><p>  由于現(xiàn)代用戶更傾向于由鼠標(biāo)方便操作的圖形用戶界面,所以我們采用GUI來實(shí)現(xiàn)計(jì)算器,并采用Swing組件,AWT事件處理等實(shí)現(xiàn)具體功能。功能要求: </p><p> ?。?)由用戶輸入一個(gè)表達(dá)式,求出其計(jì)算結(jié)果后顯示。&

5、#160;</p><p> ?。?)允許在表達(dá)式中出現(xiàn)常用的數(shù)學(xué)函數(shù),如絕對值、取整、三角函數(shù)、倒數(shù)、平方根、平方、立方等。 </p><p>  (3)要能夠判斷出表達(dá)式中的變量名及其個(gè)數(shù),按照變量名自動彈出/出現(xiàn)輸入界面逐個(gè)讓用戶輸入變量。 </p><p> ?。?)盡量使用圖形界面實(shí)現(xiàn),要符合日常軟件使用規(guī)范來設(shè)計(jì)菜單和界面。</

6、p><p> ?。?)如果無法實(shí)現(xiàn)圖形界面,則在命令行方式下也需要提供菜單,方便用戶操作。</p><p> ?。ǘ┫到y(tǒng)模塊結(jié)構(gòu)設(shè)計(jì)</p><p>  通過對系統(tǒng)功能的分析,計(jì)算帶變量的數(shù)學(xué)表達(dá)式系統(tǒng)功能模板如下圖所示:</p><p>  通過上圖的功能分析,把整個(gè)系統(tǒng)劃分為2個(gè)大模塊,9個(gè)小功能:</p><p>

7、  簡單計(jì)算,具體實(shí)現(xiàn)功能:計(jì)算加、減、乘、除。</p><p>  簡單科學(xué)計(jì)算,具體實(shí)現(xiàn)功能:開平方運(yùn)算、平方、立方、取整、三角函數(shù)、倒數(shù)。</p><p><b>  系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)</b></p><p>  以下是部分類功能的說明:</p><p>  CalFrame //構(gòu)造新窗體</p>

8、<p>  CalPanelL //定義面板容器</p><p>  CalButton//定義按鈕</p><p><b>  系統(tǒng)測試</b></p><p><b>  主要問題:</b></p><p>  1.標(biāo)點(diǎn)符號問題,經(jīng)常出現(xiàn)漏打分號,忽略中英文標(biāo)點(diǎn)轉(zhuǎn)換等問題,所以一定要謹(jǐn)

9、慎仔細(xì).</p><p>  2.進(jìn)制轉(zhuǎn)換的實(shí)現(xiàn)及正/余弦計(jì)算經(jīng)常出現(xiàn)問題,結(jié)果不正確,經(jīng)過查閱資料及反復(fù)調(diào)試,我終于克服了這一難題.</p><p>  3.界面設(shè)計(jì),開始我的設(shè)計(jì)不太合理,各類功能鍵排序不合理,看起來雜亂無章,既不美觀也不實(shí)用。經(jīng)過多次調(diào)整程序終于能使界面美觀實(shí)用。</p><p>  4.要注意類、成員變量、成員方法的命名,其中,class后的

10、類名由一個(gè)或多個(gè)英文</p><p>  5.單詞構(gòu)成,每個(gè)單詞的第一個(gè)字符必須是大寫;而成員變量和成員方法名的第一個(gè)單詞的第一個(gè)字母必須小寫,其他單詞第一個(gè)字母大寫。</p><p>  6.以下是其中一些主要功能演示過程:</p><p>  運(yùn)行界面: </p><p&g

11、t;<b>  總結(jié)</b></p><p>  通過此次的課程設(shè)計(jì)實(shí)踐,我不但進(jìn)一步理解掌握了老師教授的知識,而且通過查找資料學(xué)會了課上沒有的東西,進(jìn)一步理解了面向?qū)ο蟮暮x,發(fā)現(xiàn)了很多它比面向過程突出的地方,第一次接觸了圖形界面,初步了解了GUI方面的知識。在實(shí)踐中我遇到了很多問題,但我都努力克服,并最終成功的完成了這次課程設(shè)計(jì)。</p><p>  通過編寫這個(gè)

12、相對復(fù)雜的程序,我認(rèn)識解決實(shí)際問題前應(yīng)先建立模型,再通過建立的模型使問題簡單化,從而解決問題。并且這次編寫的程序大部分是通過調(diào)用各包中的方法來實(shí)現(xiàn)的,這也讓我充分理解了包和類的調(diào)用關(guān)系。由于這次編寫的程序比較復(fù)雜,所以不能一次性編寫、調(diào)試,也由此讓我學(xué)會把程序分塊,逐個(gè)編寫、調(diào)試。</p><p><b>  附件(源代碼)</b></p><p>  import

13、java.awt.*; </p><p>  import java.awt.event.*;</p><p>  public class Cal {</p><p>  public static void main(String[] args) {</p><p>  CalFrame f = new CalFrame(); <

14、/p><p><b>  }</b></p><p><b>  }</b></p><p>  class CalFrame extends Frame {//定義窗口類</p><p>  double d1, d2 ,c;//兩個(gè)數(shù)對象d1,d2</p><p>  int

15、 op = 0;// 為下面實(shí)現(xiàn)接口處理異常做準(zhǔn)備</p><p>  TextField tf;//定義文本域</p><p>  CalPanelL p1;//左容器對象</p><p>  CalPanelR p2;//右容器對象</p><p>  CalFrame()//構(gòu)造函數(shù){</p><p>  sup

16、er("計(jì)算數(shù)學(xué)表達(dá)式的程序");//設(shè)置圖形界面Frame標(biāo)題</p><p>  setLayout(new FlowLayout(FlowLayout.CENTER,8,10));</p><p>  setBackground(new Color(140,120,110));</p><p>  setForeground(Color.w

17、hite);</p><p>  setResizable(false);</p><p>  setSize(250,200);</p><p>  setLocation(400,260);//設(shè)置Frame相應(yīng)屬性</p><p>  tf = new TextField(22);</p><p>  tf.se

18、tEditable(false);</p><p>  tf.setBackground(Color.white);</p><p>  tf.setForeground(Color.black);</p><p>  tf.setFont(new Font("Arial",Font.BOLD,16));//定義文本框?qū)傩?lt;/p>

19、<p>  add(tf);//添加文本框到圖形界面</p><p>  p1 = new CalPanelL();</p><p>  p2 = new CalPanelR();//初始化容器</p><p><b>  add(p1);</b></p><p>  add(p2);//添加容器到圖形界面&l

20、t;/p><p>  setVisible(true);</p><p>  addWindowListener(new Wclose());//添加關(guān)閉窗口事件監(jiān)聽者</p><p>  }//構(gòu)造函數(shù)定義結(jié)束</p><p>  class CalButton extends Button {//CAlButton類的域定義(內(nèi)部類)<

21、/p><p>  CalButton(String s){</p><p><b>  super(s);</b></p><p>  setBackground(Color.gray);//定義按鈕顏色為灰色</p><p><b>  }</b></p><p><b&

22、gt;  }</b></p><p>  class CalPanelL extends Panel {</p><p>  CalButton b0, b1, b2, b3,</p><p>  b4, b5, b6, b7,</p><p>  b8, b9, bPN, bPoint;//分別代表0,1,2,3,4,5,6,7

23、,8,9,+/-,.</p><p>  CalPanelL(){</p><p>  setLayout(new GridLayout(4,3));</p><p>  setFont(new Font("TimesRoman",Font.BOLD,16));</p><p>  b0 = new CalButton(&

24、quot;0"); </p><p>  b1 = new CalButton("1"); </p><p>  b2 = new CalButton("2"); </p><p>  b3 = new CalButton("3"); </p><p>  b4 = new

25、 CalButton("4"); </p><p>  b5 = new CalButton("5"); </p><p>  b6 = new CalButton("6"); </p><p>  b7 = new CalButton("7"); </p><p&g

26、t;  b8 = new CalButton("8"); </p><p>  b9 = new CalButton("9"); </p><p>  bPN = new CalButton("+/-");</p><p>  bPoint = new CalButton("."); &

27、lt;/p><p>  add(b7); b7.addActionListener(new PressB7()); </p><p>  add(b8); b8.addActionListener(new PressB8()); </p><p>  add(b9); b9.addActionListener(new PressB9()); </p&g

28、t;<p>  add(b4); b4.addActionListener(new PressB4()); </p><p>  add(b5); b5.addActionListener(new PressB5()); </p><p>  add(b6); b6.addActionListener(new PressB6()); </p><

29、;p>  add(b1); b1.addActionListener(new PressB1()); </p><p>  add(b2); b2.addActionListener(new PressB2()); </p><p>  add(b3); b3.addActionListener(new PressB3()); </p><p> 

30、 add(b0); b0.addActionListener(new PressB0()); </p><p>  add(bPN); bPN.addActionListener(new PressBPN()); ;</p><p>  add(bPoint); bPoint.addActionListener(new PressBPoint()); </p>&l

31、t;p><b>  }</b></p><p>  } class CalPanelR extends Panel {</p><p>  CalButton bAdd, bSub, bMul, bDiv,</p><p>  bSqrt, bSin, bCos, bYx,</p><p>  bInt, bEq

32、ual, bCE, bBack;</p><p>  CalPanelR(){</p><p>  setLayout(new GridLayout(4,3));</p><p>  setFont(new Font("TimesRoman",Font.BOLD,16)); </p><p>  bAdd = ne

33、w CalButton("+"); </p><p>  bSub = new CalButton("-"); </p><p>  bMul = new CalButton("*"); </p><p>  bDiv = new CalButton("/"); <

34、/p><p>  bSqrt = new CalButton("sqrt"); </p><p>  bSin = new CalButton("sin"); </p><p>  bCos = new CalButton("cos"); </p><p>  bYx = new

35、 CalButton("y^x"); </p><p>  bInt = new CalButton("int");</p><p>  bEqual = new CalButton("="); </p><p>  bCE = new CalButton("CE");

36、 </p><p>  bBack = new CalButton("1/x"); </p><p>  add(bDiv); bDiv.addActionListener(new PressBDiv()); </p><p>  add(bSqrt); bSqrt.addActionListener(new PressBSqrt());

37、 </p><p>  add(bInt); bInt.addActionListener(new PressBInt()); </p><p>  add(bMul); bMul.addActionListener(new PressBMul()); </p><p>  add(bSin); bSin.addActionListener(new Press

38、BSin()); </p><p>  add(bBack); bBack.addActionListener(new PressBBack()); </p><p>  add(bSub); bSub.addActionListener(new PressBSub()); </p><p>  add(bCos); bCos.addActionListene

39、r(new PressBCos()); </p><p>  add(bCE); bCE.addActionListener(new PressBCE()); </p><p>  add(bAdd); bAdd.addActionListener(new PressBAdd()); </p><p>  add(bYx); bYx.addActionList

40、ener(new PressBYx()); </p><p>  add(bEqual); bEqual.addActionListener(new PressBEqual()); </p><p><b>  }</b></p><p>  }//構(gòu)造函數(shù)定義結(jié)束</p><p>  class PressBA

41、dd implements ActionListener { </p><p>  public void actionPerformed(ActionEvent e) {</p><p>  actionPerformed(ActionEvent e)方法代碼</p><p><b>  try {</b></p><

42、;p>  d1 = Double.parseDouble(tf.getText());</p><p><b>  op = 0;</b></p><p>  tf.setText("");</p><p>  } catch(Exception ee) {}//檢測并處理異常</p><p>

43、<b>  }</b></p><p><b>  }</b></p><p>  class PressBSub implements ActionListener { </p><p>  public void actionPerformed(ActionEvent e) {</p><p

44、><b>  try {</b></p><p>  d1 = Double.parseDouble(tf.getText());</p><p><b>  op = 1;</b></p><p>  tf.setText("");</p><p>  } catch(E

45、xception ee) {}</p><p><b>  }</b></p><p><b>  }</b></p><p>  class PressBMul implements ActionListener { </p><p>  public void actionPerform

46、ed(ActionEvent e) {</p><p><b>  try {</b></p><p>  d1 = Double.parseDouble(tf.getText());</p><p><b>  op = 2;</b></p><p>  tf.setText("&quo

47、t;);</p><p>  } catch(Exception ee) {}</p><p><b>  }</b></p><p><b>  }</b></p><p>  class PressBDiv implements ActionListener { </p>&

48、lt;p>  public void actionPerformed(ActionEvent e) {</p><p><b>  try {</b></p><p>  d1 = Double.parseDouble(tf.getText());</p><p><b>  op = 3;</b></p>

49、;<p>  tf.setText("");</p><p>  } catch(Exception ee) {}</p><p><b>  }</b></p><p><b>  }</b></p><p>  class PressBYx implements

50、 ActionListener { </p><p>  public void actionPerformed(ActionEvent e) {</p><p><b>  try {</b></p><p>  d1 = Double.parseDouble(tf.getText());</p><p>&l

51、t;b>  op = 4;</b></p><p>  tf.setText("");</p><p>  } catch(Exception ee) {}</p><p><b>  }</b></p><p><b>  }</b></p>&

52、lt;p>  class PressBEqual implements ActionListener { </p><p>  public void actionPerformed(ActionEvent e) {</p><p><b>  try {</b></p><p>  double result = 0;</

53、p><p>  d2 = Double.parseDouble(tf.getText());</p><p>  switch(op) {</p><p><b>  case 0:</b></p><p>  result = d1 + d2; break;</p><p><b>  c

54、ase 1:</b></p><p>  result = d1 - d2; break;</p><p><b>  case 2:</b></p><p>  result = d1 * d2; break;</p><p><b>  case 3:</b></p>

55、<p>  result = d1 / d2; break;</p><p><b>  case 4:</b></p><p>  result = Math.pow(d1,d2); break;</p><p><b>  default:</b></p><p><b> 

56、 }</b></p><p>  tf.setText(String.valueOf(result));</p><p>  } catch(Exception ee) {}</p><p><b>  }</b></p><p><b>  }</b></p><p

57、>  class PressBSqrt implements ActionListener { </p><p>  public void actionPerformed(ActionEvent e) {</p><p>  try { double x = Double.parseDouble(tf.getText());</p><p><

58、b>  double y;</b></p><p>  y = Math.sqrt(x);</p><p>  tf.setText(y+"");</p><p>  } catch(Exception ee) {}</p><p><b>  }</b></p>&l

59、t;p><b>  }</b></p><p>  class PressBInt implements ActionListener { </p><p>  public void actionPerformed(ActionEvent e) {</p><p>  try { double x = Double.parseD

60、ouble(tf.getText());</p><p><b>  double y;</b></p><p>  y = Math.floor(x);</p><p>  tf.setText(y+"");</p><p>  } catch(Exception ee) {}</p>

61、<p><b>  }</b></p><p><b>  }</b></p><p>  class PressBSin implements ActionListener {</p><p>  public void actionPerformed(ActionEvent e) {</p>

62、<p>  try { double x = Double.parseDouble(tf.getText());</p><p><b>  double y;</b></p><p>  y = Math.sin(x);</p><p>  tf.setText(y+"");</p><p&

63、gt;  } catch(Exception ee) {}</p><p><b>  }</b></p><p><b>  }</b></p><p>  class PressBCos implements ActionListener {</p><p>  public void act

64、ionPerformed(ActionEvent e) {</p><p>  try { double x = Double.parseDouble(tf.getText());</p><p><b>  double y;</b></p><p>  y = Math.cos(x);</p><p>  tf.se

65、tText(y+"");</p><p>  } catch(Exception ee) {}</p><p><b>  }</b></p><p><b>  }</b></p><p>  class PressBBack implements ActionListene

66、r {</p><p>  public void actionPerformed(ActionEvent e) {</p><p>  try { double c= Double.parseDouble(tf.getText());</p><p>  tf.setText(""+1/c);</p><p>  } c

67、atch(Exception ee) {}</p><p><b>  }</b></p><p><b>  }</b></p><p>  class PressBCE implements ActionListener {</p><p>  public void actionPerfor

68、med(ActionEvent e) {</p><p>  tf.setText("");</p><p><b>  }</b></p><p><b>  }</b></p><p>  class PressBPN implements ActionListener {

69、</p><p>  public void actionPerformed(ActionEvent e) {</p><p>  try { String text = tf.getText();</p><p>  if (text != "") {</p><p>  if(text.charAt(0) == 

70、9;-')</p><p>  tf.setText(text.substring(1));</p><p>  else if(text.charAt(0) >= '0' && text.charAt(0) <= '9')</p><p>  tf.setText("-"+te

71、xt.substring(0));</p><p>  else if(text.charAt(0) == '.')</p><p>  tf.setText("-0"+text.substring(0));</p><p><b>  }</b></p><p>  } catch(

72、Exception ee) { }</p><p><b>  }</b></p><p><b>  }</b></p><p>  class PressBPoint implements ActionListener {</p><p>  public void actionPerfor

73、med(ActionEvent e) {</p><p>  String text = tf.getText();</p><p>  if(text.lastIndexOf(".") == -1)</p><p>  tf.setText(text+".");</p><p><b>  

74、}</b></p><p><b>  } </b></p><p>  class PressB0 implements ActionListener {</p><p>  public void actionPerformed(ActionEvent e) {</p><p>  String tex

75、t = tf.getText();</p><p>  tf.setText(text+"0");</p><p><b>  }</b></p><p><b>  }</b></p><p>  class PressB1 implements ActionListener

76、 {</p><p>  public void actionPerformed(ActionEvent e) {</p><p>  String text = tf.getText();</p><p>  tf.setText(text+"1");</p><p><b>  }</b><

77、/p><p><b>  }</b></p><p>  class PressB2 implements ActionListener {</p><p>  public void actionPerformed(ActionEvent e) {</p><p>  String text = tf.getText()

78、;</p><p>  tf.setText(text+"2");</p><p><b>  }</b></p><p><b>  }</b></p><p>  class PressB3 implements ActionListener {</p>&l

79、t;p>  public void actionPerformed(ActionEvent e) {</p><p>  String text = tf.getText();</p><p>  tf.setText(text+"3");</p><p><b>  }</b></p><p>

80、;<b>  }</b></p><p>  class PressB4 implements ActionListener {</p><p>  public void actionPerformed(ActionEvent e) {</p><p>  String text = tf.getText();</p><

81、;p>  tf.setText(text+"4");</p><p><b>  }</b></p><p><b>  }</b></p><p>  class PressB5 implements ActionListener {</p><p>  public

82、void actionPerformed(ActionEvent e) {</p><p>  String text = tf.getText();</p><p>  tf.setText(text+"5");</p><p><b>  }</b></p><p><b>  }<

83、;/b></p><p>  class PressB6 implements ActionListener {</p><p>  public void actionPerformed(ActionEvent e) {</p><p>  String text = tf.getText();</p><p>  tf.setTe

84、xt(text+"6");</p><p><b>  }</b></p><p><b>  }</b></p><p>  class PressB7 implements ActionListener {</p><p>  public void actionPerfo

85、rmed(ActionEvent e) {</p><p>  String text = tf.getText();</p><p>  tf.setText(text+"7");</p><p><b>  }</b></p><p><b>  }</b></p>

86、;<p>  class PressB8 implements ActionListener {</p><p>  public void actionPerformed(ActionEvent e) {</p><p>  String text = tf.getText();</p><p>  tf.setText(text+"8&

87、quot;);</p><p><b>  }</b></p><p><b>  }</b></p><p>  class PressB9 implements ActionListener {</p><p>  public void actionPerformed(ActionEvent

88、 e) {</p><p>  String text = tf.getText();</p><p>  tf.setText(text+"9");</p><p><b>  }</b></p><p><b>  }</b></p><p>  cl

89、ass Wclose extends WindowAdapter {</p><p>  public void windowClosing(WindowEvent e) {</p><p>  System.exit(0); </p><p><b>  }</b></p><p><b>  }</b

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論