《程序語言綜合課程設計》實驗報告_第1頁
已閱讀1頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  《程序語言綜合課程設計》</p><p><b>  設計報告</b></p><p> 學  院:信息工程學院</p><p> 專業(yè)班級:計算機112班</p><p> 學  號:</p><p> 姓  名:</p><p> 指導老師:<

2、;/p><p> 完成時間:2013.7.6</p><p><b>  目 錄</b></p><p>  題目一 計算器……………………1</p><p><b>  1 題目簡介1</b></p><p>  2 設計的內容、要求和目標1</p>&l

3、t;p><b>  3 總體設計1</b></p><p>  4 詳細設計及實現2</p><p>  4.1 操作界面設計3</p><p>  4.2 類成員變量及方法設計4</p><p>  4.3 源代碼分析7</p><p>  5 系統運行及使用說明13</

4、p><p>  題目二 學生信息管理系統15</p><p><b>  1 題目簡介15</b></p><p>  2 設計的內容、要求和目標15</p><p><b>  3 總體設計16</b></p><p>  3.1 功能模塊劃分15</p>

5、;<p>  3.2 功能模塊層次及劃分16</p><p>  3.3 相關類文件16</p><p>  4 數據庫設計18</p><p>  4.1 數據庫表設計18</p><p>  4.2 數據庫表間的關系19</p><p>  4.3 數據庫的MySQL(SQL)

6、實現19</p><p>  5 詳細設計及實現20</p><p>  5.1 操作界面設計20</p><p>  5.2 類成員變量及方法設計20</p><p>  5.4 源代碼分析21</p><p>  6 系統運行及使用說明22</p><p>  6.1 系統運

7、行22</p><p>  6.2 使用說明26</p><p><b>  總 結27</b></p><p><b>  附錄28</b></p><p>  A.1 題目一關鍵源碼28</p><p>  A.2 題目二關鍵源碼38</p>

8、<p><b>  題目一 計算器</b></p><p><b>  1 題目簡介</b></p><p>  本程序采用高級程序語言JAVA編寫,采用eclipse工具完成的一個簡單的計算器。</p><p>  2 設計的內容、要求和目標</p><p><b>  設計

9、內容:</b></p><p>  設計一個GUI簡易計算器,用戶可以通過鼠標依次輸入參加計算的數值,進行加減乘除,cos、sin等混合運算,設計幫助文檔。</p><p><b>  設計要求:</b></p><p>  要求所設計GUI界面計算器是一個使用方便的程序,能實現基本的加減乘除功能,同時實現退格、清零、sin、cos

10、等復雜運算并且設計菜單欄和幫助文檔。</p><p><b>  設計目標:</b></p><p>  添加運算和幫助主題,同時實現樹形結構表示幫助主題。</p><p><b>  3 總體設計</b></p><p>  1、 利用布局管理器設計計算器整體布局,整個系統采用borderlayo

11、ut布局,其中使用了6個面板,各面板分別放置。</p><p>  2、利用按鈕設計計算器的各個運算符和操作符,通過按鈕的事件處理實現按鈕計算功能。</p><p>  3、利用文本框顯示操作數字和運算結果。</p><p>  4、利用樹的結構設計幫助文檔。</p><p><b>  JTree樹:</b></

12、p><p>  JTree組件以樹結構顯示數據項,從中可選擇一個或多個數據項。JTree中數據項通常稱為節(jié)點。使用JTree組件需要多個接口和類的配合,除了JTree類之外,還需要Javax.swing.tree子包中的樹模型類、樹節(jié)點類,以及Javax.swing.event子包中的選擇時間接口和類等。</p><p>  DefaultMutableTreeNode默認可變樹節(jié)點類<

13、/p><p>  Javax.swing.tree.DefaultMutableTreeNode默認可變樹節(jié)點類聲明如下:</p><p>  DefaultMutableTreeNode root = new DefaultMutableTreeNode("幫助");</p><p>  DefaultMutableTreeNode t1=new

14、DefaultMutableTreeNode("幫助信息”);</p><p>  DefaultMutableTreeNode t1_1 = new DefaultMutableTreeNode("說明");</p><p>  DefaultMutableTreeNode t2 = new DefaultMutableTreeNode("簡介&q

15、uot;);</p><p>  5、功能模塊圖見圖1.1</p><p>  圖1.1 功能模塊圖</p><p><b>  4 詳細設計及實現</b></p><p>  4.1 操作界面設計</p><p>  1、首先是設計一個大小為(100,50,528,258)的窗口,界面布局應用了

16、borderlayout布局。將六個面板組合好添加到窗體里面。其中將文本框放置在窗體的上部,顯示按鈕的值。窗體的西部放置了計算器的功能按鈕,將數字鍵安置在窗體的中間,而東部則是放置了顯示運算過程面板和功能按鈕。,并設置saveButton=new JButton("保存");</p><p>  copyButton=new JButton("復制");</p>

17、<p>  clearButton=new JButton("清除");三個按鈕。</p><p><b>  主界面:</b></p><p>  2、幫助文檔樹的設計:</p><p>  (1)、采用JFrame類設計圖形用戶界面,框架左邊使用一個自定義組件MutableJTree以樹結果顯示幫助文檔;M

18、utableJTree組件響應選擇事件,當選擇樹中一個接點時,將該節(jié)點的所有孩子節(jié)點的對象值顯示在右邊的Jlist組件中。</p><p> ?。?)、各個節(jié)點為DefaultMutableTreeNode默認可變樹節(jié)點類。</p><p><b>  圖1.2 樹的結構</b></p><p>  4.2 類成員變量及方法設計</p&g

19、t;<p>  計算器主類聲明主要是聲明各個組件。</p><p>  菜單項包括幫助主題和關于計算器。</p><p>  功能鍵定義區(qū)設置好sin,cos,tan,exp等按鍵的布局。</p><p>  數字鍵定義區(qū)設置好數字鍵的布局。</p><p>  計算方法區(qū)主要是定義按鈕操作事件,實現計算功能。</p>

20、;<p>  1、首先聲明一個主類CalculatorWindow,在主類中定義各個組件包括:功能鍵定義區(qū)設置好sin、cos、tan、exp等按鍵的布局、數字鍵定義區(qū)設置好數字鍵的布局、計算方法區(qū)主要是定義按鈕操作事件,實現計算功能、菜單項包括幫助和查看。</p><p>  2、主類中通過調用HandleSin、HandleCos、HandleDigit、HandleExp等方法實現Sin、co

21、s、數字鍵、exp等功能。</p><p><b>  3、各個類名:</b></p><p>  HandleDigit handleDigit; //負責處理ActionEvent事件</p><p>  HandleOperation handleOperation ; 實現加、減、乘、除運算</p><p> 

22、 HandleBack handleBack; 實現退格事件</p><p>  HandleClear handleClear; 實現清零事件</p><p>  HandleEquality handleEquality; 實現等號事件</p><p>  HandleDot handleDot; 實現小數點事件</p><p

23、>  HandlePOrN handlePOrN; 實現正負號事件</p><p>  HandleSin handleSin; 實現sin按鈕事件</p><p>  HandleCon handleCos; 實現cos按鈕事件</p><p>  HandleTan handleTan; 實現Tan按鈕事件</p><p>

24、;  HandleLog handleLog 實現log按鈕事件</p><p><b>  ;</b></p><p>  HandleExp handleExp; 實現exp操作</p><p>  HandleOff handleOff; 關閉</p><p><b>  系統流程圖</b

25、></p><p><b>  圖1.3系統流程圖</b></p><p><b>  4.3 源代碼分析</b></p><p>  1、主要功能實現涉及的類及方法:</p><p>  import java.awt.*;</p><p>  import java

26、.awt.event.*;</p><p>  import javax.swing.*;</p><p>  import javax.swing.border.*;</p><p>  import java.util.LinkedList;</p><p>  import java.io.*;</p><p>

27、  import java.lang.Object;</p><p>  public class CalculatorWindow extends JFrame implements ActionListener{</p><p>  NumberButton numberButton[]; </p><p>  Operatio

28、nButton operationButton[]; </p><p>  JButton 小數點操作,正負號操作,退格操作,等號操作,清零操作,sin,cos,tan,log,exp,off;</p><p>  JMenuBar bar;</p><p>  JMenu help,view;</p><p>  J

29、MenuItem about,exit,information;</p><p>  JTextField resultShow; //顯示計算結果</p><p>  JTextField showComputerProcess; //顯示當前計算過程</p><p>  JTextArea saveComputerProcess; //顯示計

30、算步驟</p><p>  JButton saveButton,copyButton,clearButton;</p><p>  LinkedList<String> list; //鏈表用來存放第一個運算數、運算符號和第二個運算數</p><p>  HandleDigit handleDigit; //負責處理ActionEvent事件&l

31、t;/p><p>  HandleOperation handleOperation ;</p><p>  HandleBack handleBack;</p><p>  HandleClear handleClear;</p><p>  HandleEquality handleEquality;</p><p>

32、  HandleDot handleDot;</p><p>  HandlePOrN handlePOrN;</p><p>  HandleSin handleSin;</p><p>  HandleCos handleCos;</p><p>  HandleTan handleTan;</p><p>  H

33、andleLog handleLog;</p><p>  HandleExp handleExp;</p><p>  HandleOff handleOff;</p><p>  public CalculatorWindow(){</p><p>  在主類中定義各個組件、方法。主類中通過調用各個方法進行運算:</p>&

34、lt;p>  2、HandleCos方法:實現cos鍵運算功能:</p><p>  import java.util.LinkedList;</p><p>  import javax.swing.*;</p><p>  import java.awt.event.*;</p><p>  public class HandleC

35、os implements ActionListener{</p><p>  LinkedList<String> list;</p><p>  JTextField resultShow,showComputerProcess; </p><p>  JTextArea saveComputerProcess; </p>

36、;<p>  HandleCos(LinkedList<String> list,JTextField t1,JTextField t2,</p><p>  JTextArea t3){</p><p>  this.list=list;</p><p>  resultShow=t1;</p><p>  sho

37、wComputerProcess=t2; </p><p>  saveComputerProcess=t3;</p><p><b>  }</b></p><p>  public void actionPerformed(ActionEvent e){</p><p>  if(list.size()==1||li

38、st.size()==2){</p><p>  String numOne=list.getFirst();</p><p>  try{ double x=Double.parseDouble(numOne);</p><p>  double result=Math.cos(x);</p><p>  String str=Strin

39、g.valueOf(result);</p><p>  list.set(0,str);</p><p>  resultShow.setText(str);</p><p>  String proccess="sin("+numOne+")="+result;</p><p>  showComp

40、uterProcess.setText(proccess);</p><p>  saveComputerProcess.append(" "+proccess+"\n");</p><p>  if(list.size()==2)</p><p>  list.removeLast(); //移掉運算符號 </p>

41、;<p><b>  }</b></p><p>  catch(Exception ee){}</p><p><b>  } </b></p><p>  else if(list.size()==3){</p><p>  String numTwo=list.getLast()

42、;</p><p>  try{ double x=Double.parseDouble(numTwo);</p><p>  double result=Math.cos(x);</p><p>  String str=String.valueOf(result);</p><p>  list.set(0,str);</p>

43、;<p>  resultShow.setText(str);</p><p>  String proccess="cos("+numTwo+")="+result;</p><p>  showComputerProcess.setText(proccess);</p><p>  saveComputerP

44、rocess.append(" "+proccess+"\n");</p><p>  list.removeLast(); //移掉第2個運算數 </p><p>  list.removeLast(); //移掉運算符號 </p><p><b>  }</b></p><p>

45、;  catch(Exception ee){}</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  3、help類:實現幫助文檔:</p><p>  import

46、 java.awt.*;</p><p>  import java.awt.event.*;</p><p>  import javax.swing.*;</p><p>  import javax.swing.event.*;</p><p>  import javax.swing.tree.*;</p><p&

47、gt;  import java.io.*;</p><p>  public class Help implements TreeSelectionListener{</p><p>  JEditorPane editorPane;</p><p>  public Help() {</p><p>  JFrame help = new

48、 JFrame("計算器");</p><p>  Container contentPane = help.getContentPane();</p><p>  DefaultMutableTreeNode root = new DefaultMutableTreeNode("幫助");</p><p>  Default

49、MutableTreeNode t1 = new DefaultMutableTreeNode("幫助信息 ");</p><p>  DefaultMutableTreeNode t1_1 = new DefaultMutableTreeNode("說明");</p><p>  DefaultMut

50、ableTreeNode t2 = new DefaultMutableTreeNode("簡介");</p><p>  root.add(t1);</p><p>  root.add(t2);</p><p>  t1.add(t1_1);</p><p>  JTree tree = new JTree(root)

51、;</p><p>  tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);</p><p>  tree.addTreeSelectionListener(this);</p><p>  JScrollPane scrollPane1 = new

52、JScrollPane(tree);</p><p>  editorPane = new JEditorPane();</p><p>  JScrollPane scrollPane2 = new JScrollPane(editorPane);</p><p>  JSplitPane splitPane = new JSplitPane(JSplitPane

53、.HORIZONTAL_SPLIT,true, scrollPane1, scrollPane2);</p><p>  contentPane.add(splitPane);</p><p>  help.pack();</p><p>  help.setBounds(100,50,600,400);</p><p>  help.set

54、Visible(true);</p><p><b>  }</b></p><p>  public void valueChanged(TreeSelectionEvent e) {</p><p>  JTree tree = (JTree) e.getSource();</p><p>  DefaultMuta

55、bleTreeNode selectionNode = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();</p><p>  String nodeName = selectionNode.toString();</p><p>  if (selectionNode.isLeaf()) {</p>&

56、lt;p>  String filepath = "file:" + System.getProperty("user.dir")+ System.getProperty("file.separator") + nodeName+".txt";</p><p><b>  try {</b></p&g

57、t;<p>  editorPane.setPage(filepath);</p><p>  } catch (IOException ex) {</p><p>  System.out.println("找不到此文件");</p><p><b>  }</b></p><p>&

58、lt;b>  }</b></p><p>  else editorPane.setText(null);</p><p><b>  }</b></p><p><b>  }</b></p><p>  4、HandleDot類:實現小數點事件:</p><

59、p>  import java.util.LinkedList;</p><p>  import javax.swing.*;</p><p>  import java.awt.event.*;</p><p>  public class HandleDot implements ActionListener{</p><p> 

60、 LinkedList<String> list;</p><p>  JTextField resultShow,showComputerProcess; </p><p>  HandleDot(LinkedList<String> list,JTextField t1,JTextField t2){</p><p> 

61、 this.list=list;</p><p>  resultShow=t1;</p><p>  showComputerProcess=t2; </p><p><b>  }</b></p><p>  public void actionPerformed(ActionEvent e){</p>

62、<p>  String dot=e.getActionCommand(); </p><p>  if(list.size()==1){ </p><p>  String num=list.getFirst();</p><p>  String s=null;</p><p>  if(num.indexOf(dot)==-

63、1){ </p><p>  s=num.concat(dot); </p><p>  list.set(0,s); </p><p><b>  }</b></p><p><b>  else</b></p>

64、<p><b>  s=num; </b></p><p>  list.set(0,s);</p><p>  resultShow.setText(s);</p><p>  showComputerProcess.setText(""+list.get(0));</p><p>

65、<b>  }</b></p><p>  else if(list.size()==3){</p><p>  String num=list.getLast();</p><p>  String s=null;</p><p>  if(num.indexOf(dot)==-1){</p><p

66、>  s=num.concat(dot); </p><p>  list.set(2,s);</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  s=num;</b></p><p>

67、  resultShow.setText(s); </p><p>  showComputerProcess.setText(""+list.get(0)+""+list.get(1)+</p><p>  ""+list.get(2));</p><p><b>  } </b>&

68、lt;/p><p><b>  }</b></p><p><b>  }</b></p><p>  5 系統運行及使用說明</p><p><b>  1、系統運行結果</b></p><p>  采用eclipse工具對程序進行編譯運行;運行結果:&l

69、t;/p><p><b>  圖1.4 主界面</b></p><p><b>  圖1.5 查看退出</b></p><p><b>  使用說明文檔:</b></p><p><b>  圖1.6 幫助文檔</b></p><p>

70、<b>  2、使用說明:</b></p><p>  您可以使用計算器進行如加、減、乘、除這樣簡單的運算。計算器還提供了編程計算器、科學型計算器和統計信息計算器的高級功能。</p><p>  可以單擊計算器按鈕來執(zhí)行計算,或者使用鍵盤鍵入進行計算。通過按 Num Lock,您還可以使用數字鍵盤鍵入數字和運算符。</p><p>  題目二 

71、學生管理系統</p><p><b>  1 題目簡介</b></p><p>  本系統是應用java語言,在eclipse環(huán)境下,調用SQL數據庫設計的一個簡易學生管理系統,系統中包含學號,姓名,性別,專業(yè),,年級,出生,學生六個基本信息。學生管理系統,是為老師和學生提供一個學生管理的平臺。長期以來,學?;径际鞘褂脗鹘y人工的方式管理學生信息,效率低、保密性差,隨

72、著計算機和網絡技術的發(fā)展,使用計算機來管理學生信息已經成為發(fā)展趨勢。因此,基于java的學生管理系統已成為作為學校管理者不可缺少的部分,應為使用者提供充足的信息和快捷的查詢、刪除、插入、修改手段。</p><p>  2 設計的內容、要求和目標</p><p><b>  設計內容:</b></p><p>  建立學生信息數據庫,學生管理系統

73、調用數據庫進行登錄判斷和四個基本信息進行查詢,添加,修改,刪除等操作。將查詢出來的信息應用表格顯示出來,在添加信息面板中,設置該信息的各個組件,要求用戶填入數據實現添加功能。修改刪除面板中創(chuàng)建該信息的各個組件,從數據庫中將該信息顯示在組件中,再手動修改數據,實現修改刪除功能。</p><p><b>  設計要求:</b></p><p>  用SQL或者mysql設

74、置數據庫。</p><p>  要能夠鏈接上數據庫。</p><p>  3 .在主界面中利用菜單項進行操作。</p><p>  4.能夠重置學生的信息</p><p><b>  5.設置歡迎界面。</b></p><p><b>  設計目標:</b></p>

75、;<p>  通過對數據庫的操作,則進入管理系統的主界面,可以通過主界面提供的菜單,可以實現對學生管理系統的基本添加、查詢、刪除,修改等操作。</p><p><b>  3 總體設計</b></p><p><b>  3.1功能模塊劃分</b></p><p>  1、學生管理系統需要實現查詢、修改、刪除

76、、插入學生的個人信息功能。</p><p>  2、在主界面上進行操作。</p><p><b>  功能模塊圖如下:</b></p><p>  圖2.1 功能模塊劃分圖</p><p>  3.2 功能模塊層次及調用關系</p><p><b>  1、功能模塊層次</b>

77、;</p><p>  圖2.2 功能模塊層次及調用關系</p><p><b>  2、調用關系</b></p><p>  從圖2.2知,菜單選項通過調用四個功能函數來實現對數據庫的管理。</p><p><b>  3.3 相關類文件</b></p><p>  首先

78、聲明一主類Managerwindow,在主類中定義各個組件;還包括:對各個類的調用以及對Frame類的調用。</p><p>  Inquest類:主要實現查詢功能模塊;</p><p>  Delete類:主要實現刪除功能模塊;</p><p>  ModifySituation類:主要實現修改功能模塊;</p><p>  InputSt

79、udent類:主要實現插入功能模塊;</p><p>  通常包括功能模塊劃分、功能模塊層次及調用關系、相關類文件,可分小節(jié)介紹。</p><p><b>  4 數據庫設計</b></p><p>  主要闡述數據庫的各表、視圖、觸發(fā)器等的結構(表名、各字段名、類型、寬度、精度、是否允許空、是否主鍵、外鍵、缺省值)。如果設計題目未涉及數據庫則

80、本節(jié)省略。。。。。</p><p>  4.1 數據庫表設計</p><p>  1、使用Microsoft Office Access 新建一數據庫student,設計6個字段Sno、Sname、Ssex、Sspec、Sgrade、Sborn。</p><p>  2、在字段下面添加數據:</p><p>  4.2 數據表之間關系<

81、/p><p>  4.3 數據庫的MySQL(SQL)實現</p><p>  1、這里用的是SQL2000 數據庫,數據庫名稱為:stu</p><p><b>  2、連接數據庫:</b></p><p><b>  創(chuàng)建數據源:</b></p><p><b> 

82、 5 詳細設計及實現</b></p><p>  5.1 操作界面設計</p><p>  程序首先運行時彈出登陸界面,在登陸界面中提供菜單選項</p><p>  在菜單選項中添加基本信息錄入;基本信息修改;基本信息查詢;基本信息刪除;歡迎界面。點擊分別彈出錄入、修改、查詢、刪除功能框。</p><p>  登錄界面大小為(60

83、0*580),定義一個面板p將背景圖片。 </p><p>  闡述軟件的運行及用戶操作的界面方案,包括窗口大小、控件布局、文字顏色、字體及操作邏輯等。。。。。。</p><p>  5.2 類成員及方法設計</p><p>  1、ManagerWindow.Java</p><p>  ManagerWindow 類繼承了Frame類之間

84、組合關系</p><p><b>  成員變量:</b></p><p>  1.JTextField mz 單行文本對象,用于輸入學號和顯示文本信息。。</p><p>  2.JMenu filemenu 單按鈕對象,用于設置菜單按鈕。</p><p>  3.JMenuItem 錄入,修改,查詢,刪除,歡迎界

85、面子菜單按鈕。</p><p>  4、(JPanel) contentPane 容器</p><p>  5、( JMenuBar) jMenuBar1用于添加下拉菜單</p><p><b>  方法:</b></p><p>  1.ManagerWindow()類的構造方法,為所有組件設置布局,添加組件。

86、 </p><p>  2.actionPerformed(ActionEvent e)處理用戶判定事件方法。</p><p>  2、Inquest類、Inputstudent類、ModifySituation類、delete類。</p><p>  分別實現對學生管理系統進行查詢、插入、修改、刪除的功能、</p><p>  詳

87、細闡述各個類的成員變量及方法的實現細節(jié),詳細闡述算法邏輯。主要程序應繪制N-S流程圖。。。。。。。</p><p><b>  5.3 源代碼分析</b></p><p>  1、主類ManagerWindow:</p><p>  public void actionPerformed(ActionEvent e){</p>&

88、lt;p>  if(e.getSource()==錄入){</p><p>  card.show(pCenter,"錄入界面");</p><p><b>  }</b></p><p>  else if(e.getSource()==修改){</p><p>  基本信息修改.clearM

89、ess();</p><p>  card.show(pCenter,"修改界面");</p><p><b>  }</b></p><p>  else if(e.getSource()==查詢){</p><p>  基本信息查詢.clearMess();</p><p>

90、;  基本信息查詢.setLocation(getBounds().x+getBounds().width,getBounds().y);</p><p>  基本信息查詢.setVisible(true);</p><p><b>  }</b></p><p>  else if(e.getSource()==刪除)</p>

91、<p>  card.show(pCenter,"刪除界面");</p><p>  else if(e.getSource()==歡迎界面)</p><p>  card.show(pCenter,"歡迎界面");</p><p><b>  }</b></p><p>

92、;  public static void main(String args[]){</p><p>  new ManagerWindow();</p><p><b>  }</b></p><p><b>  }</b></p><p>  實現對各個功能函數的調用</p>&l

93、t;p>  6系統運行及使用說明</p><p><b>  6.1系統運行:</b></p><p><b>  1.主界面</b></p><p><b>  2、查詢功能:</b></p><p><b>  3、插入功能:</b></p

94、><p><b>  4、修改功能:</b></p><p><b>  5、刪除功能:</b></p><p><b>  6.2 使用說明</b></p><p>  本系統是應用java語言,在eclipse環(huán)境下,調用SQL數據庫設計的一個簡易學生管理系統。</p&g

95、t;<p>  點擊運行程序,進入主界面,點擊菜單選項進入功能選項:</p><p>  選擇你要進行的功能,查詢、修改、插入、刪除等學生信息。</p><p>  對復雜軟件系統,說明其安裝、運行環(huán)境配置要求。寫出簡要使用說明書。。。。。。</p><p><b>  總 結</b></p><p>  

96、對幾個星期來的課程設計進行全面總結。為期四周的java課程設計馬上就要結束,在這四個星期的設計中我學會了許多,剛開始我對java課程設計是茫然的,雖然在上個學期學過java,但是我還從來沒有花精力去編寫java程序。</p><p>  剛開始我對老師給的題目無從下手,對上學期學習的java知識忘得差不多了,后來我慢慢看課本,漸漸拾起了對java的記憶,并參照著網上計算器的例子終于能夠獨立的編寫出來了。</

97、p><p>  第二個程序是學生管理系統,這個程序對于我來說是一個比較大的程序這就要求對類與類之間的關系有一個很好的掌握,通過這個程序的編寫,讓我更加深入的了解了java的結構。</p><p><b>  附錄</b></p><p>  A.1 題目一關鍵源碼</p><p>  (1) 類的CalculatorWind

98、ow方法</p><p>  import java.awt.*;</p><p>  import java.awt.event.*;</p><p>  import javax.swing.*;</p><p>  import javax.swing.border.*;</p><p>  import jav

99、a.util.LinkedList;</p><p>  import java.io.*;</p><p>  import java.lang.Object;</p><p>  public class CalculatorWindow extends JFrame implements ActionListener{</p><p>

100、  NumberButton numberButton[]; </p><p>  OperationButton operationButton[]; </p><p>  JButton 小數點操作,正負號操作,退格操作,等號操作,清零操作,sin,cos,tan,log,exp,off;</p><p>

101、;  JMenuBar bar;</p><p>  JMenu help,view;</p><p>  JMenuItem about,exit,information;</p><p>  JTextField resultShow; //顯示計算結果</p><p>  JTextField showComputer

102、Process; //顯示當前計算過程</p><p>  JTextArea saveComputerProcess; //顯示計算步驟</p><p>  JButton saveButton,copyButton,clearButton;</p><p>  LinkedList<String> list; //鏈表用來存放第一個運算數、運算

103、符號和第二個運算數</p><p>  HandleDigit handleDigit; //負責處理ActionEvent事件</p><p>  HandleOperation handleOperation ;</p><p>  HandleBack handleBack;</p><p>  HandleClear handleC

104、lear;</p><p>  HandleEquality handleEquality;</p><p>  HandleDot handleDot;</p><p>  HandlePOrN handlePOrN;</p><p>  HandleSin handleSin;</p><p>  HandleCo

105、s handleCos;</p><p>  HandleTan handleTan;</p><p>  HandleLog handleLog;</p><p>  HandleExp handleExp;</p><p>  HandleOff handleOff;</p><p>  public Calcul

106、atorWindow(){</p><p>  setTitle("計算器");</p><p>  JPanel panelLeft,panelRight; </p><p>  list=new LinkedList<String>();</p><p>  resultShow=new JTextFiel

107、d(10);</p><p>  resultShow.setHorizontalAlignment(JTextField.RIGHT);</p><p>  resultShow.setForeground(Color.blue);</p><p>  resultShow.setFont(new Font("TimesRoman",Font.

108、BOLD,16));</p><p>  resultShow.setBorder(new SoftBevelBorder(BevelBorder.LOWERED));</p><p>  resultShow.setEditable(false);</p><p>  resultShow.setBackground(Color.white);</p>

109、<p>  showComputerProcess=new JTextField();</p><p>  showComputerProcess.setHorizontalAlignment(JTextField.CENTER);</p><p>  showComputerProcess.setFont(new Font("Arial",Font.BO

110、LD,16));</p><p>  showComputerProcess.setBackground(Color.cyan);</p><p>  showComputerProcess.setEditable(false);</p><p>  saveComputerProcess=new JTextArea();</p><p> 

111、 saveComputerProcess.setEditable(false);</p><p>  saveComputerProcess.setFont(new Font("宋體",Font.PLAIN,16));</p><p>  numberButton=new NumberButton[10];</p><p>  handleDig

112、it=new HandleDigit(list,resultShow,showComputerProcess);</p><p>  for(int i=0;i<=9;i++){</p><p>  numberButton[i]=new NumberButton(i);</p><p>  numberButton[i].setFont(new Font(&

113、quot;Arial",Font.BOLD,20));</p><p>  numberButton[i].addActionListener(handleDigit);</p><p><b>  }</b></p><p>  operationButton=new OperationButton[4];</p>&

114、lt;p>  handleOperation=new HandleOperation(list,resultShow,</p><p>  showComputerProcess,saveComputerProcess);</p><p>  String 運算符號[]={"+","-","*","/"}

115、; </p><p>  for(int i=0;i<4;i++){</p><p>  operationButton[i]=new OperationButton(運算符號[i]);</p><p>  operationButton[i].setFont(new Font("Arial",Font.BOLD,20));</p&g

116、t;<p>  operationButton[i].addActionListener(handleOperation);</p><p><b>  }</b></p><p>  bar=new JMenuBar();</p><p>  help=new JMenu("幫助");</p>

117、<p>  view=new JMenu("查看");</p><p>  about=new JMenuItem("關于");</p><p>  exit=new JMenuItem("退出");</p><p>  help.add(about);</p><p> 

118、 view.add(exit);</p><p>  bar.add(help);</p><p>  bar.add(view);</p><p>  setJMenuBar(bar);</p><p>  exit.addActionListener(this);</p><p>  about.addAction

119、Listener(this);</p><p>  小數點操作=new JButton(".");</p><p>  handleDot=new HandleDot(list,resultShow,showComputerProcess);</p><p>  小數點操作.addActionListener(handleDot);</p&

120、gt;<p>  正負號操作=new JButton("+/-"); </p><p>  handlePOrN=new HandlePOrN(list,resultShow,showComputerProcess);</p><p>  正負號操作.addActionListener(handlePOrN);</p><p>  

121、等號操作=new JButton("=");</p><p>  handleEquality=new HandleEquality(list,resultShow,</p><p>  showComputerProcess,saveComputerProcess);</p><p>  等號操作.addActionListener(handl

122、eEquality); </p><p>  sin=new JButton("sin");</p><p>  handleSin=new HandleSin(list,resultShow,</p><p>  showComputerProcess,saveComputerProcess);</p><p>  si

123、n.addActionListener(handleSin);</p><p>  cos=new JButton("cos");</p><p>  handleCos=new HandleCos(list,resultShow,</p><p>  showComputerProcess,saveComputerProcess);</p

124、><p>  cos.addActionListener(handleCos);</p><p>  tan=new JButton("tan");</p><p>  handleTan=new HandleTan(list,resultShow,</p><p>  showComputerProcess,saveComp

125、uterProcess);</p><p>  tan.addActionListener(handleTan);</p><p>  log=new JButton("log");</p><p>  handleLog=new HandleLog(list,resultShow,</p><p>  showCompu

126、terProcess,saveComputerProcess);</p><p>  log.addActionListener(handleLog);</p><p>  off=new JButton("off");</p><p>  handleOff=new HandleOff(list,resultShow,showComputerP

127、rocess);</p><p>  off.addActionListener(handleOff);</p><p>  exp=new JButton("exp");</p><p>  handleExp=new HandleExp(list,resultShow,</p><p>  showComputerPr

128、ocess,saveComputerProcess);</p><p>  exp.addActionListener(handleExp);</p><p>  退格操作=new JButton("退格");</p><p>  handleBack=new HandleBack(list,resultShow,showComputerProc

溫馨提示

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

評論

0/150

提交評論