課程設計論文 java記算器
《課程設計論文 java記算器》由會員分享,可在線閱讀,更多相關《課程設計論文 java記算器(22頁珍藏版)》請在裝配圖網上搜索。
1、秦皇島職業(yè)技術學院信息工程系 秦皇島職業(yè)技術學院 課程設計論文 設計題目: java記算器 學生姓名: 指導教師: 專業(yè)名稱:計算機應用技術專業(yè) 所在院系: 信息工程系 年 月 日 19 摘 要 該程序是一個圖形界面的java記事本,其界面主要采用了swing包, 程序實現了文本編輯器的基本功能有:新建文件、打開文件、文件保存、文件另存為、剪切
2、、復制、粘貼、刪除、查找/替換、改變字體大小,另外還利用Time類的schedule方法實現了文件的定時自動更新功能,并創(chuàng)建備份文件,由于Swing是一個用于開發(fā)Java應用程序用戶界面的開發(fā)工具包。它以抽象窗口工具包(AWT)為基礎使跨平臺應用程序可以使用任何可插拔的外觀風格。所以只用很少的代碼就可以利用Swing豐富、靈活的功能和模塊化組件來創(chuàng)建優(yōu)雅的用戶界面。 Java的早期版本以來,抽象窗口工具包為用戶界面組件提供了平臺獨立的API。在AWT中,每個組件都由一個原生的等同組件生成和控制,這個原生組件是由當前的圖形窗口系統(tǒng)決定的。 ???與此相對,Swing 組件經常被描述為輕量級
3、的,因為它們不需要操作系統(tǒng)本身所帶窗口工具包的原生資源來生成。 Swing API 的大部分是AWT的補充擴展而不是直接的代替。Swing用來繪制輕量級組件的核心渲染功能是由Java2D提供的,這是AWT的一部分。然而,輕量級和重量級組件在同一個應用中使用會導致Z-order不兼容。 標準器件工具包 是一個最初由IBM開發(fā)的工具包,現在由Eclipse基金會維護。 SWT的實現同重量級的組件AWT有更多的共同之處。這樣的好處是運行開銷同所在平臺的原生窗口工具包更為接近。 關鍵字:java 程序 編輯器 記事本 目 錄 第1章 概要設計 1 1.1查找
4、資料 1 1.2選題 1 1.3總結數據、明確任務 2 1.4本次設計的重大意義 2 1.5本章小節(jié) 3 第2章 程序整體設計說明 4 2.1程序框架圖 4 2.2程序部分源代碼及注釋 5 2.3程序運行效果 8 2.4本章小節(jié) 8 第3章 設計中遇到的重點及難點 12 3.1設計中遇到的重點 12 3.2設計中的遇到的難點 12 3.3本章小節(jié) 13 第4章 本次設計中存在不足與改良方案 14 4.1本次設計中存在的不足 14 4.2本次設計的改良方案 14 4.3本章小節(jié) 14 結 論 15 參考文獻 16 致 謝 17 指導教師評語
5、18 答辯委員會評語 19 第1章概要設計 1.1查找資料 21世紀,隨著社會經濟的迅速發(fā)展和科學技術的全面進步,人類社會已進入信息和網絡時代。計算機正以其前所未有的驚人速度向前發(fā)展,新的研究成果、新的實用軟件不斷涌現。計算機應用也普及到各行各業(yè)、深入到人類各種社會活動和生產中。為了便于對大量信息的處理,運用計算機軟件實現自動管理成為了必然的趨勢?!坝浭卤尽笔且粋€用來創(chuàng)建簡單的文檔的基本的文本編輯器?!坝浭卤尽弊畛S脕聿榭椿蚓庉嬑谋?(.txt) 文件,也可以作為創(chuàng)建 Web 頁的簡單工具。所以我們需要開發(fā)一個記事本系統(tǒng)來實現大量信息的管理。開發(fā)工具是完成整個設計的重要基礎
6、,沒有工具我們就無法進行開發(fā)和設計工作,所以開發(fā)工具的選擇也就成為了我們開發(fā)過程中很關鍵的一步。我們選用了Java來完成記事本系統(tǒng)的設計,并運用Jcreator LE集成開發(fā)環(huán)境。 Java 語言具有簡單、面向對象、分布式、解釋執(zhí)行、可移植性、多線程以及動態(tài)性的特點使我們可以開發(fā)出功能強大的應用程序 1.2選題 Java程序編輯器是:圖形界面、線程、流與文件等技術的綜合應用。 圖形界面的實現:考慮到簡單、實用、高效等特點,就選擇了AWT來完成實現,在選擇組件上,文本編輯區(qū)就選用了TaxtArea作為主要的部件。 線程實現文件自動保存:在相關的參考書上查閱到在Time類中有一個sched
7、ule方法可以在后臺自動完成一定的功能,而且調用起來相當簡單,于是就用了Time類中的schedule方法來實現文件自動保存及備份功能。 文件操作的實現:利用了字符文件流FileReader和FileWriter類來實現。 由于Java的特性,可能用任何一個編輯器來編輯,于是就將Windows中的記事本作為模仿對象,根據實現情況刪減了其中的一些功能,如自動換行,設置字體,打印等功能。 在設計類的時候,考慮到簡單明了,就用了兩個類,一個主類和一個默認屬性類作為程序的整體框架,所有的對象和方法都是在默認屬性類中創(chuàng)建和實現的,以及為各組件注冊事件監(jiān)聽程序也是在默認屬性類中實現的。主類完成對象的
8、實例化及顯示。這們設計的優(yōu)點是:條理清晰,容易理解,容易修改。這樣設計的缺點是:不利于共享類中的方法。 1.3 總結數據、明確任務 1.3.1總結數據 (1)程序易懂 編寫代碼的過程中,應時刻意識到所編寫的代碼不僅要能夠在機器中運行,還要使別人容易看懂。機器能夠運行而別人無法理解的程序,不是好程序,為此要盡量遵循原則,寫簡單明了的代碼。 (2)先設計,后編碼 在編碼之前作好程序的設計工作,可以減少以后重復修改代碼的工作量,作到事倍功半。因此在真正開始編程前,花一定時間搞清楚怎樣寫代碼,將來可能花更少的時間編寫代碼,而且會減少將來大量修改代碼的機會。 (3)保持代碼簡潔 復雜代碼
9、寫后不易理解,在修改和重寫上難度比較大,使工作更加復雜,所以編寫代碼時應保持代碼的簡潔易懂。 (4)功能實現 在整個設計中要保持完整性,能夠實現記事本中最基本的功能,如打開、保存等。所寫內容的字體可以自由設置,顏色也可隨意更改。 1.3.2明確任務 用java編寫一個簡單的記事本,使其能夠實現最基本的功能,如文件的打開、新建、保存、退出,編輯的刪除、全選、剪切、復制、粘貼,格式的字體、顏色設置等等。 1.4 本次設計的重大意義 這次編寫的java記事本是用來查看文本文件的,也是一個用來創(chuàng)建簡單的文檔的基本的文本編輯器。它具有簡單方便的特點,是人們在運用計算機時必不可少的一個查看和手
10、寫文本的工具。 1.5 本章小結 通過第一章我們可以了解到這次java課程設計的一個總的概況。掌握了java程序編輯器、圖形界面以及文件操作的實現。這次程序設計在設計類的時候??紤]到了簡單明了。這們設計的優(yōu)點是:條理清晰,容易理解,容易修改。 第2章程序整體設計說明 程序框架圖為應用程序提供一個圖形化的界面本次設計運行出的程序框架圖如圖2-1所示 新建 文件 打開 保存 另存為 頁面設置 打印 退出 編輯 撤消 重做 剪切 復制 粘貼 刪除 全選 時間/日期 格式 自動換行 字體 設置顏色 字體
11、顏色 查看 狀態(tài)欄 幫助 幫助主題 關于記事本 背景顏色 圖2-1程序框架圖 2.2 程序部分源代碼及注釋 2.2.1程序中所用包說明 //import java packages import java.awt.*; //包含用于創(chuàng)建用戶界面和繪制圖形圖像的所有類 import java.awt.event.*; //提供處理由 AWT 組件所激發(fā)的各類事件的接口和類。 import java.text.*;
12、//提供以與自然語言無關的方式來處理文本、日期、數字和消息的類和接口。 import java.util.*; //包含集合框架、遺留的 collection 類、事件模型、日期和時間設施、國際化和各種實用工具類(字符串標記生成器、隨機數生成器和位數組)。 import java.io.*; //通過數據流、序列化和文件系統(tǒng)提供系統(tǒng)輸入和輸出。 import javax.swing.undo.*; //允許開發(fā)人員為應用程序(例如文本編輯器)中的撤消/恢復提供支持。 import javax
13、.swing.border.*; //提供圍繞 Swing 組件繪制特殊邊框的類和接口。 import javax.swing.*; //提供一組“輕量級”(全部是 Java 語言)組件,盡量讓這些組件在所有平臺上的工作方式都相同。 import javax.swing.text.*; //提供類 HTMLEditorKit 和創(chuàng)建 HTML 文本編輯器的支持類。 import javax.swing.event.*; //供 Swing 組件觸發(fā)的事件使用。 import j
14、ava.awt.datatransfer.*; //提供在應用程序之間和在應用程序內部傳輸數據的接口和類。 import java.awt.print.*; //啟動并執(zhí)行打印機作業(yè)的抽象類。 import javax.print.attribute.*; //為打印機請求屬性(即:實現接口 PrintRequestAttribute 的打印屬性)的集合指定接口。 2.2.2程序中所用到的變量 (1)定義類變量 JMenu //定義菜單 JMenu
15、Item //菜單中項的實現 JMenuBar //菜單欄的實現。將 JMenu 對象添加到菜單欄以構造菜單。 JCheckBoxMenuItem //可以被選定或取消選定的菜單項。如果被選定,菜單項的旁邊通常會出現一個復選標記。如果未被選定或被取消選定,菜單項的旁邊就沒有復選標記 JtextArea //JTextArea 是一個顯示純文本的多行區(qū)域。 JLabel
16、 //用于短文本字符串或圖像或二者的顯示區(qū)。標簽不對輸入事件作出反應。因此,它無法獲得鍵盤焦點。但是,標簽可以為具有鍵盤替換功能卻無法顯示的鄰近組件方便地顯示其鍵盤替換功能 JPopupMenu //彈出菜單的實現,彈出菜單是一個可彈出并顯示一系列選項的小窗口。JPopupMenu 用于用戶在菜單欄上選擇項時顯示的菜單。它還用于當用戶選擇菜單項并激活它時顯示的“右拉式 (pull-right)”菜單。最后,JPopupMenu 還可以在想讓菜單顯示的任何其他位置使用。例如,當用戶在指定區(qū)域中右擊時。
17、 Toolkit //java.awt中的類此類是 Abstract Window Toolkit 的所有實際實現的抽象超類。 Clipboard //java.awt.datatransfer中的類,此類實現一種使用剪切/復制/粘貼操作傳輸數據的機制。 Font //Font類表示字體,用來以可見方式呈現文本。 UndoManager //ja
18、vax.swing.undo中的類可以充當 UndoableEditListener的 CompoundEdit的具體子類,并合并來自各種源的UndoableEditEvents,并且一次執(zhí)行一個撤消或恢復操作。 (2)其它變量 boolean isNewFile=true; //是否新文件(未保存過的) File currentFile; //當前文件名 String oldValue; //存放編輯區(qū)原來的內容,用于比較文本是否有改動 JButto
19、n fontOkButton; //字體設置里的"確定"按鈕 2.2.3程序中所用到的代碼 構造函數 public Notepad() { super("記事本"); Container container=getContentPane(); //獲取容器 //創(chuàng)建菜單條 JMenuBar menuBar = new JMenuBar(); //菜單欄的實現。將JMenu對象添加到菜單欄以構造菜單。 //創(chuàng)建文件菜單及菜單項 JMenu fileMenu = new JMenu("文件(F)", true);
20、 fileMenu.setMnemonic('F'); //設置快捷鍵Alt+F從類javax.swing繼承的方法設置此按鈕的鍵盤助記符(快捷鍵或加速器)。 fileMenu_New = new JMenuItem("新建(N)", 'N');// 創(chuàng)建帶有指定文本和鍵盤助記符的 JMenuItem。 fileMenu_New.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, InputEvent.CTRL_MASK)); //設置組合鍵,它能直接調用菜單項的操作偵聽器而不必顯示菜單的層
21、次結構。UI 負責安裝正確的操作。注意,當鍵入鍵盤加速器時,不管目前是否顯示菜單,它都會運行。 fileMenu_Open = new JMenuItem("打開(O)...", 'O'); //文件菜單中的打開項 fileMenu_Open.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_MASK)); 文件菜單中還有保存、另存為、頁面設置、打印、退出等菜單項。此菜單項功能與前面所列出的新建、打開功能一樣,另外在編輯菜單中有編輯、重做、剪切、復制、粘貼、刪除、全選、時間/日期等菜單項,它們的功能
22、同上面創(chuàng)建文件菜單及菜單項的功能等同。在此就不做詳細的介紹了。 //創(chuàng)建格式菜單及菜單項 JMenu formatMenu = new JMenu("格式(O)", true); formatMenu_LineWrap = new JCheckBoxMenuItem("自動換行(W)"); formatMenu_LineWrap.setState(true); //設置菜單項的選定狀態(tài) formatMenu_Font = new JMenuItem("字體(F)...",'F'); formatMenu_Color = new JMenu("設置顏色"); for
23、matMenu_Color_FgColor=new JMenuItem("字體顏色"); formatMenu_Color_BgColor=new JMenuItem("背景顏色"); //創(chuàng)建查看菜單及菜單項 JMenu viewMenu = new JMenu("查看(V)", true); viewMenu_Status = new JCheckBoxMenuItem("狀態(tài)欄(S)"); viewMenu_Status.setState(true); //設置菜單項的選定狀態(tài) JMenu helpMenu = new JMenu("幫助(H)", true)
24、; helpMenu_HelpTopics = new JMenuItem("幫助主題(H)",'H'); helpMenu_HelpTopics.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F1,0)); helpMenu_About = new JMenuItem("關于記事本(A)",'A'); menuBar.add(fileMenu); fileMenu.add(fileMenu_New); fileMenu.add(fileMenu_Open); fileMenu.add(fileMenu_Save); fil
25、eMenu.add(fileMenu_SaveAs); fileMenu.addSeparator(); //分隔線 fileMenu.add(fileMenu_PageSetup); fileMenu.add(fileMenu_Print); fileMenu.addSeparator(); //分隔線 fileMenu.add(fileMenu_Exit); 向菜單條添加"編輯"菜單及菜單項、向菜單條添加"格式"菜單及菜單項、向菜單條添加"查看"菜單及菜單項、向菜單條添加"幫助"菜單及菜單項、向窗口添加菜單條同上面的向菜單條添加“文件“菜單及菜單項一樣
26、。 2.3 程序運行效果 (1)程序運行主要界面如下: a.打開文件對話框 圖2-2打開文件對話框 c.保存文件對話框 圖2-3保存文件對話框 d.另存為對話框 圖2-4另存為對話框 e.打印對話框 圖2-4打印對話框 d.字體對話框 圖2-5字體對話框 2.4本章小結 本章主要介紹了用java創(chuàng)建記事本的主要代碼以及運行后的效果圖。運行java記事本以后出現的那個框架圖就是我們所說的java圖形用戶界面(GUI),它是程序與用戶進行交流的圖像窗口,為應用程序提供一個圖形化的界面,程序通過GUI與用戶交互,GUI通過事件機制響應用戶和
27、程序的交互。如當用戶單擊某個按鈕時就會產生動作事件,要處理產生的事件,需要在特定的方法中編寫處理事件的程序。這樣,當產生某種事件時就會調用處理這種事件的方法,從而實現用戶與程序的交互。另外GUI能使一個應用程序具有與眾不同的“外觀”與“感覺”。有了GUI,用戶就不用花很多時間去記憶各個鍵盤序列的功能,從而把更多的時間投入到有效地使用應用程序本身上。 第3章設計中遇到的重點及難點 3.1設計中遇到的重點 在這次設計中,遇到的重點有以下兩點: (1)Java記事本在新建文件時,打開文件時,保存文件、另存為文件時處理IOException異常。處理方法是在
28、遇到異常時用try,catch方法對異常進行捕獲。 (2)java記事本中還用到了繼承 繼承是面向對象方法中一個十分重要的的概念,并且是提高軟件開發(fā)效率的重要原因之一。繼承實際上是存在于面向對象程序中的兩個類之間的一種關系。 繼承的實現主要有以下幾個步驟。 (1)確定父類。根據將創(chuàng)建的子類需要選擇一個相應的類作為繼承父類。新定義的子類可以從父類那里自動繼承所有非私有的屬性和方法作為自己的成員。選擇一個恰當的父類可以達到事半功倍的效果。 (2)定義子類。Java中的繼承是通過extends關鍵字來實現的,在定義類時使用extends關鍵字指明新定義類的父類,就在兩個類之間建立了繼承關系
29、。 (3)實現子類的功能。子類具體要實現的功能由類體中相應的域和方法來實現,其編寫和一般的類是完全相同的。 通過繼承,子類擁有父類的所有非私有成員。使用繼承具有以下的好處:降低了代碼編寫中的冗余度,更好地實現了代碼復用的功能,從而提高了程序編寫的效率;由于降低了代碼的冗余度,使得程序在維護時就變得非常的方便。 3.2設計中遇到的難點 在編寫java記事本文件中的新建、打開、保存、另存為時有異常出現。異常是這次設計中的重點也是一個難點。 任何計算機語言的程序都難免有漏洞,捕獲錯誤最理想的是在編譯期間,最好在試圖運行程序以前。Java支持的異常處理功能比其他語言提供的更靈活。當java程
30、序執(zhí)行中發(fā)生錯誤時,錯誤事件對象可能導致的程序運行錯誤稱為異常,異常會輸出錯誤消息,使其知道該如何正確地處理遇到的問題。 當java運行系統(tǒng)在得到一個異常對象時,它將會尋找處理這一異常的代碼,找到能夠處理這種類型異常的方法后,運行時系統(tǒng)把當前異常對象交給這個方法進行處理,這一過程稱為捕獲(catch)異常。如果java運行時系統(tǒng)找不到可以捕獲異常的方法,則運行時系統(tǒng)將會終止,相應的java程序也將退出。這次在java記事本程序用到的就是try,catch來捕獲的異常。 3.3本章小結 通過這一章我們了解到了繼承和異常的處理。在面向對象的程序設計中,通過采用繼承的機制來組織、設計系統(tǒng)中的類
31、,可以提高程序的抽象程序,使之更接近于人類的思維方式,同時也可以提高程序開發(fā)效率,降低維護的工作量。我們還知道了一些異常處理的情況,異常是在運行時發(fā)生的錯誤,使用java異常處理子系統(tǒng),就可以用一種結構化的可控方式來處理運行時的錯誤。在使用try, catch來捕獲異常時。這兩個關鍵字要一起使用,只有try而沒有catch,或者是只有catch而沒有try都是不可以的。當try描述的代碼段遇到異常發(fā)生時,計算機控制權由try轉移到catch異常處理代碼塊。當拋出一個異常時,異常會由相應的catch語句來捕獲并處理。 第4章本次設計存在不足與改良方案 4.1 本次設計中存
32、在的不足 在本次設計中主要有以下幾個方面是不完善的。 (1)頁面設置的不足 頁面設置尚未添加,只有一個框架,不能實現其功能如圖4-1所示: 圖4-1頁面設置 (2)查找與替換的不足 我花費了近兩個多星期的時間,查閱了許多相關的資料,終于把這個Java記事本程序基本實現了該課程設計的基本要求。但由于自己水平有限,使得程序還有不是很完善,首先,最重要的一點是該設計的查找替換功能沒有實現。 4.2本次設計的改良方案 ①整體結構合理,風格一致,模塊化結構,界面清晰,接口靈活,操作簡便。 ②開發(fā)方法,文檔規(guī)范化,便于管理,可擴充。 ③添加上查找與替換的功能,使程序更加完善。 4
33、.3本章小結 通過對本程序的改良,這個程序將會更加完善,問題都是我們自己發(fā)現的,只要我們多做,就會發(fā)現問題,只有發(fā)現問題還會去想怎樣去解決問題。這樣系統(tǒng)就會不斷的改善,不斷的提高。 結 論 通過此次課程設計,將我本學期所學的JAVA知識得到鞏固和應用,在設計的過程中我遇到了很到問題,不過在老師和同學們的幫助和自己的思考下還是很好的完成了。這此課程設計還讓我懂得了寫程序不能閉門造車,要努力拓寬知識面,開闊視野,拓展思維。它還讓我學會了在網上查閱那些無限的資料。我深刻地體會到自己所學知識得淺薄,當課程結束以后感覺自己已經掌握了Java的真諦,但是在課程設計中我才發(fā)現自己僅僅握了一點皮毛
34、而已,存在的一些問題全暴露出來了。 參考文獻 [1] Bruce Ecle,《java編程思想》,機械工業(yè)出版社.2002.3 [2] 朱戰(zhàn)立,沈偉,《java程序設計實用教程》,電子工業(yè)出版社. 2000.1 [3] 吳曉東,《java程序設計基礎》,清華大學出版社. 2005.6 [4] 朱喜福,林建民,《java程序設計》,人民郵電出版社,2001 [5] 印旻,《Java與面向對象程序設計教程》,高等教育出版社,2004.4 [6] 林智揚,范明,《Java Swing程序設計》,中國鐵道出版社,2005.5
35、 致 謝 論文完成的前提是老師給我提供了舒適的工作、學習環(huán)境,并給予我悉心的關懷與指導。在些表示衷心地感謝。老師認真負責的工作態(tài)度、嚴謹的治學風格,使我深受啟發(fā);開發(fā)的同時,和同學們之間的相互探討也使我獲益匪淺。半年時間內,我除基本學會開發(fā)java程序外更重要的是學到了兢兢業(yè)業(yè),奮發(fā)向上的精神,這種精神是我今后人生前進道路上的一種力量。所以我再次感謝老師和我的同學們。在本次Java課程設計中,首先要感謝我的指導老師李旺彥老師教給了我很多的Java的編程知識,編程思想,還有要感謝我的同學,是他們在我遇到困難時給了我指導 指導教師評語 指導教師: 年 月 日 答辯委員會評語 答辯委員會簽字: 年 月 日
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。