




已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
編編 號 號 Z04500052 課課 程程 設(shè)設(shè) 計計 2014年年 6月月 15 日日 學(xué)學(xué) 號 號 201330410107 教教 學(xué)學(xué) 院院 計算機學(xué)院 課程名稱課程名稱 JAVA 課程設(shè)計 題題 目目時鐘程序 專專 業(yè)業(yè) 13 應(yīng)用技術(shù) 班班 級級 應(yīng)用技術(shù) 1 班 姓姓 名名 張琳 同組人員同組人員 劉敏 陳碧菲 周丹丹 田瓊玲 指導(dǎo)教師指導(dǎo)教師 伍紅華 課程設(shè)計 論文 1 目目 錄錄 一 問題分析和任務(wù)定義 2 二 邏輯設(shè)計 3 三 詳細設(shè)計 4 四 程序編碼 5 五 程序調(diào)試與測試 6 六 結(jié)果分析 7 七 附錄 8 八 參考文獻 9 課程設(shè)計 論文 2 一一 問題分析和任務(wù)定義問題分析和任務(wù)定義 1 1 問題分析問題分析 此次課程設(shè)計的題目為簡單的小時鐘程序設(shè)計 通過做鞏固所學(xué) Java 語言基本知識 增進 Java 語言編輯基本功 掌握 JDK 等開發(fā)工具的運用 拓寬常用類庫的應(yīng)用 運用了鼠標的監(jiān)聽和事件的監(jiān)聽以及偵聽的技術(shù)來時鐘的功能 時鐘可以分為 電子時鐘 數(shù)字時鐘 其中數(shù)字時鐘包括表盤 數(shù)字 指針 用 JPanel 類來指定布局管理器 同時新增一個 功能也是設(shè)計需求的功能 可以隨時的調(diào)時間 運用到鼠標和按鈕的監(jiān)聽效果來完成調(diào)時 間的功能 2 2 任務(wù)定義任務(wù)定義 基本功能基本功能 打開 java 工作界面 有很明顯的數(shù)字時鐘在界面上 并且指針在走動 數(shù) 字鐘的顯示以本地系統(tǒng)時間而定 一秒鐘跳動一次 若本地系統(tǒng)時間發(fā)生改變 則數(shù)字鐘 的時 分 秒也隨著改變 左上角并擁有與電腦同步的時間日期與星期用數(shù)字直接顯示出 來 基本實現(xiàn) 基本實現(xiàn) 定義窗口類繼承 import javax swing JFrame 類并實現(xiàn) ActionListener 接 口 在窗口類中定義成員變量 用于表示窗口中菜單 文本框 定義成員方法 actionPerformed 用于事件處理 3 3 任務(wù)分工任務(wù)分工 1 圖形界面設(shè)置關(guān)閉窗口 田瓊玲 2 顯示時鐘桌面 陳碧菲 3 實現(xiàn)接口 runnable 的方法 run 用來刷新時分秒三指針的度數(shù) 劉敏 4 方法重寫 繪制鐘面各元素 張琳 5 將電腦時間日期進行同步 并顯示出來 用 switch 語句實現(xiàn)多分支選擇結(jié)構(gòu) 周丹 丹 課程設(shè)計 論文 3 2 2 邏輯設(shè)計邏輯設(shè)計 1 1 包包 java awt 包 包含構(gòu)成抽象窗口的工具集 abstrsct window toolkit 的多個類 用來 構(gòu)建和管理應(yīng)用程序的圖形用戶界面 GUI java Swing 包 擴充和增強圖形用戶界面功能 java awt event 包 提供接口和類來處理不同類型的事件觸發(fā)的 AET 組件 java text 包 提供以與自然語言無關(guān)的方式來處理文本 日期 數(shù)字和消息的類和接口 java util 包 包含 collection 框架 遺留的 collection 類 事件模型 日期和時間 設(shè)施 國際化和各種實用工具類 字符串標記生成器 隨機數(shù)生成器和位數(shù)組 java awt event 包 提供處理由 AWT 組件所激發(fā)的各類事件的接口和類 javax swing event 包 供 Swing 組件觸發(fā)的事件使用 2 2 類的設(shè)計類的設(shè)計 1 Color 類 Color 類用來定義顏色 包括圖形背景的顏色 表盤的顏色 指針的顏色 數(shù)字的顏色 2 Data DateFormat SimpleDateFormat 該類是日期 時間格式化子類的抽象類 它 以與語言無關(guān)的方式格式化并解析日期或時間 單位是毫秒 其中 SimpleDateFormat 類是 對日期 時間格式化子類允許進行格式化 3 Calender 類 Calendar 類是一個抽象類 它為特定瞬間與一組諸如 YEAR MONTH DAY OF MONTH HOUR 等 日歷字段之間的轉(zhuǎn)換提供了一些方法 并為操作日 歷字段 例如獲得日期 提供了一些方法 瞬間可用毫秒值來表示 4 Date 類 Date 類用來表示特定的瞬間 時間精確到毫秒 5 JFrame 類 該類用來控制窗格和根窗格 6 JPanel 類 JPanel 是一般輕量級容器 可以用來指定布局管路器 7 JButton 類 該類定義按鈕 并且實現(xiàn)按鈕 8 ActionEvent 接口 指示發(fā)生了組件定義的動作的語義事件 當(dāng)特定的組件動作 比如被按下 發(fā)生時 由組件 比如 Button 生成此高級事件 事件被傳遞給每一個 課程設(shè)計 論文 4 ActionListener 對象 所以要實現(xiàn) ActionListener 的接口 9 Timer 類 在指定時間間隔觸發(fā)一個或多個 ActionEvent 它將 Timer 用作繪制其 幀的觸發(fā)器 10 JSpinner 該類用來讓用戶從一個有序序列中選擇一個數(shù)字或者一個對象值的單行 輸入字段 Spinner 通常提供一對帶小箭頭的按鈕以便逐步遍歷序列元素允許用戶在 spinner 中直接輸入合法值 3 3 主要內(nèi)容主要內(nèi)容 創(chuàng)建一個鐘表 借助 swing 類和接口內(nèi)部類的實現(xiàn) 在本程序中以實現(xiàn) Runnable 接口內(nèi)部類的形式創(chuàng) 建多線程對象 Runnable 接口只定義了一個 run 方法 所以調(diào)用 start 和 sleep 方法時 必須 創(chuàng)建 Thread 實例化對象 Interrupt 方法的作用是中斷線程 其作用方式是 多 線程對象 interrupt 4 4 整體流程整體流程 類的總體名字為 clock 實現(xiàn) ActionListener 接口 鼠標的監(jiān)聽器實現(xiàn)此程序 先運用構(gòu)造函數(shù)畫一個長和寬都為 300 的圓 并且設(shè)置顏色為黑色 固定其窗口調(diào)整為拉 動不可變定義 setVisible truetrue 就是調(diào)整窗口可保持不變 畫圓 畫完圓之后在圓上設(shè)置 12 個數(shù)字 運用 math 函數(shù)方法來繪制時間 并且把每個時間 的位置用函數(shù)關(guān)系調(diào)整好 在圓上設(shè)置時針 要用到 math 類 來繪制時針并且用函數(shù)來控制時針的走動和相對應(yīng) 的位置 color 類來控制顏色 這里定為青色 定義時針的變量類型為 string 類型的成員 變量 設(shè)置名稱為 Hour 在圓上設(shè)置分針 要用到 math 類 來繪制時針并且用函數(shù)來控制時針的走動和相對應(yīng) 的位置 color 類來控制顏色 這里定為藍色 定義時針的變量類型為 string 類型的成員 變量 設(shè)置名稱為 Minute 在圓上設(shè)置秒針 要用到 math 類 來繪制時針并且用函數(shù)來控制時針的走動和相對應(yīng) 課程設(shè)計 論文 5 的位置 color 類來控制顏色 這里定為紅色 定義時針的變量類型為 string 類型的成員 變量 設(shè)置名稱為 Second 在這些設(shè)置完后 需要對其進行監(jiān)控就要用到 ActionPerformed 方法 對事件的監(jiān)控 和 ActionEvent 接口并且遞給每一個 ActionListener 對象 所以還要創(chuàng)建一個類實現(xiàn) ActionListener 接口 最后編寫主函數(shù) 其中有三個成員變量 以圖的形式來展示 Clock 類成員變量 成員變量分類描述變量類型名稱 時針StringHour 分針StringMinute 秒針StringSecond 2 2 程序主流程圖程序主流程圖 開始 Main Clock repaint paint drawclock 課程設(shè)計 論文 6 三三 詳細設(shè)計詳細設(shè)計 程序主功能圖程序主功能圖 啟動時鐘 注冊界面 秒針走時分針走時時針走時關(guān)閉時鐘 本次實訓(xùn)上機操作中 我負責(zé)的為方法的 重寫 繪制鐘面各元素 方法的重寫極為子 類可繼承父類中的方法 而不需要重新編寫相同的方法 Public void paint Graphics g paint 就是一個畫筆方法 用來在屏幕上繪制你所需要繪制的東西 要是想屏幕上 繪制東西就得先用 Grapahics 把東西繪制到內(nèi)存里去再由 repaint 方法顯示到屏幕上 去 設(shè)置左上角的坐標為 0 0 并以半徑為 8 用黑色進行背景填充顏色 后又畫圓的輪 廓即為表盤的輪廓 再用三種顏色分別構(gòu)造不同長短大小的指針 最后利用兩個 for 循環(huán) 分別在表盤內(nèi)運用 g drawString 根據(jù)調(diào)用的函數(shù)算法在表盤內(nèi)相應(yīng)的坐標位置進行畫點與 數(shù)字的顯示 鐘面繪制各個元素 繪制 秒針 繪制 分針 繪制 時針 繪制 表盤 繪制 表盤數(shù)字 繪制 小點表示 刻度 課程設(shè)計 論文 7 四四 程序編碼程序編碼 個人任務(wù)個人任務(wù) 方法重寫方法重寫 繪制鐘面各元素繪制鐘面各元素 代碼代碼 public void paint Graphics g 清屏 super paint g g setColor Color BLACK 用黑色 g fillRect 0 0 r 3 r 3 填充一個黑色的矩形做為背景 畫圓 g setColor Color WHITE 用白色 g drawOval x y r 2 r 2 畫出表盤的輪廓 用紅色畫秒針 g setColor Color RED int x1 int r 10 Math sin rad s int y1 int r 10 Math cos rad s g drawLine x r y r x r x1 y r y1 用藍色畫分針 g setColor Color BLUE x1 int r r 2 5 Math sin rad m y1 int r r 2 5 Math cos rad m g drawLine x r y r x r x1 y r y1 用青色畫時針 g setColor Color CYAN x1 int r r 1 5 Math sin rad h y1 int r r 1 5 Math cos rad h g drawLine x r y r x r x1 y r y1 用黃色畫表盤上的數(shù)字 g setColor Color YELLOW int d 29 for int i 1 i 12 i x1 int r 10 Math sin rad d y1 int r 10 Math cos rad d g drawString i x r x1 4 x r y1 5 d 30 畫小點 表示刻度 課程設(shè)計 論文 8 d 0 for int i 0 i 60 i x1 int r 2 Math sin rad d y1 int r 2 Math cos rad d g drawString x r x1 1 x r y1 1 d 6 五五 程序調(diào)試與測試程序調(diào)試與測試 1 1 顯示指針時鐘效果顯示指針時鐘效果 2 2 顯示數(shù)字時鐘效果顯示數(shù)字時鐘效果 課程設(shè)計 論文 9 部分代碼 獲得時間 星期 日期 Calendar now1 new GregorianCalendar 獲得當(dāng)前的日期時間對象 int hour now1 get Calendar HOUR OF DAY 小時 獲得當(dāng)前的時刻 int minute now1 get Calendar MINUTE 分 同上 int second now1 get Calendar SECOND 秒 int year now1 get Calendar YEAR 年 int month now1 get Calendar MONTH 1 月 int date now1 get Calendar DAY OF MONTH 日 int week now1 get Calendar DAY OF WEEK 星期 System out println week 星期轉(zhuǎn)換字符串 String weekDay switch week case 1 weekDay 一 break case 2 weekDay 二 break case 3 weekDay 三 break case 4 weekDay 四 break case 5 weekDay 五 break case 6 weekDay 六 break case 0 weekDay 日 break default weekDay break 顯示時間 星期 日期 g2d setColor Color PINK g2d drawString hour 10 0 hour minute 10 0 minute second 10 0 second weekDay year month 10 0 month date 10 0 date 5 15 課程設(shè)計 論文 10 六六 結(jié)果分析結(jié)果分析 1 1 運行運行 Clock javaClock java 圖 2 查看實時時間 運行結(jié)果分析 課程設(shè)計 論文 11 本程序運行結(jié)果界面顯示為黑色 并加入了 12 個刻度 指針顏色設(shè)置上也都是不一樣 的 左上角的時間日期顯示與電腦上的進行了同步 并且運用了 switch 的星期轉(zhuǎn)換字符串 當(dāng)電腦上的時間發(fā)生改變的時候 鐘上的指針也會跟著發(fā)生改變 2 2 設(shè)計總結(jié)設(shè)計總結(jié) 通過本次 JAVA 的實訓(xùn) 我覺得學(xué)習(xí)基礎(chǔ)很重要 本次試驗的代碼 經(jīng)過了很多次 的驗證和修改 本來的只顯示表盤和指針的基礎(chǔ)上同步了電腦上的時間日期和星期 通過 線程實現(xiàn)了運行 時鐘程序雖然簡單 但為了弄懂了解清楚 我們組也是花費了一定時間 這個時鐘的設(shè)計上時鐘表面有 12 個刻度 指針也是不同顏色的 最上面的則為同 步的電腦時間與日期和星期 該時間與指針顯示的時間也為一致的 但并沒有實現(xiàn)對于時 間的重置 我想不斷地進行對該設(shè)計的完善 不僅能為該始終設(shè)置背景 以增加該時鐘的美 觀效果 也可以對始終到了一定的時間就可以報時 即鬧鐘功能的設(shè)置 為鬧鐘設(shè)置多種 不同的音樂 也可供選擇 這樣的話就不顯得單調(diào) 這樣一來該時鐘便可更方便實用 這次試驗也更讓我了解到同組之間配合的重要 通過相互之間的溝通說出自己的 想法也能增加別人的理解 從而學(xué)到更多的東西 本想在時鐘程序中添加鬧鐘功能和時間 修改的功能 但由于能力有限始鬧鐘功能只能將它單獨運行出來 而不能組合在一起 本次實驗中也遇到了許多的問題 有一些也都是以前沒學(xué)習(xí)過的 也有自己粗心 的問題 而制造出來的一些麻煩 但經(jīng)過看書 查找資料 同學(xué)之間的相互交流針對性的 對不懂的問題進行查詢 才讓他們逐步得到解決 在將思路進行整理 這次的實訓(xùn)也讓我理解到 JAVA 一些概念的重要性 我們自己本身也應(yīng)該建立一個 編程的思想 屬性 JAVA 開發(fā)的環(huán)境 學(xué)習(xí)也不能局限在上課認真聽講 還需自主學(xué)習(xí) 課 外時間多了解一些相關(guān)方面的知識 這樣才能加快自己對專業(yè)知識的理解 另外 對于不 懂的問題可以通過查閱資料或者咨詢同學(xué)老師 讓它得到解決 不能輕易地像代碼認輸 這樣的話 面對困難你就畏縮 以后一定會一事無成的 在以后的時間里 我會努力學(xué)習(xí) 課程設(shè)計 論文 12 認真聽課 深化知識 不斷創(chuàng)新 繼續(xù)強化自己的能力 這樣才不能枉費我們在大學(xué)里所 付出的時間和汗水 以及老師對于我們的教導(dǎo)與幫助 相信在以后的日子里 通過我們自 己的努力 我們一定可以成為一個有用的人 附錄附錄 import java awt Color import java awt Graphics import java awt event WindowAdapter import java awt event WindowEvent import java util Calendar import java util GregorianCalendar import javax swing JFrame import javax swing JPanel 時間類 public class ClockTest extends JFrame private static final long serialVersionUID 1L 無參數(shù)構(gòu)造器 public ClockTest ClockPaint cp new ClockPaint 150 150 90 this add cp this setSize 500 500 this setResizable false this setLocation 200 300 this setTitle 小時鐘 this setVisible true addWindowListener new WindowAdapter public void windowClosing WindowEvent e 課程設(shè)計 論文 13 System exit 0 public static void main String s new ClockTest 表盤類 繼承于JPanel 并實現(xiàn)Runnable接口 用于多線程 class ClockPaint extends JPanel implements Runnable private static final long serialVersionUID 1L private static final Graphics g2d null int x y r int h m s 小時 分鐘 秒 double rad Math PI 180 構(gòu)造器 初始化 public ClockPaint int x int y int r this x x 坐標x this y y 坐標y this r r 表盤的半徑 Calendar now new GregorianCalendar s now get Calendar SECOND 6 獲得秒轉(zhuǎn)換成度數(shù) m now get Calendar MINUTE 6 獲得分鐘 h now get Calendar HOUR OF DAY 12 30 now get Calendar MINUTE 12 6 獲得小時 Thread t new Thread this 創(chuàng)建一個線程 t start 表開始走動 畫表盤 public void paint Graphics g 清屏 super paint g g setColor Color BLACK 用黑色 g fillRect 0 0 r 8 r 8 填充一個黑色的矩形做為背景 畫圓 g setColor Color BLACK 用黑色 g drawOval x y r 7 r 7 畫出表盤的輪廓 用紅色畫秒針 g setColor Color RED int x1 int r 10 Math sin rad s int y1 int r 10 Math cos rad s g drawLine x r y r x r x1 y r y1 用藍色畫分針 g setColor Color BLUE 課程設(shè)計 論文 14 x1 int r r 2 5 Math sin rad m y1 int r r 2 5 Math cos rad m g drawLine x r y r x r x1 y r y1 用青色畫時針 g setColor Color CYAN x1 int r r 1 5 Math sin rad h y1 int r r 1 5 Math cos rad h g drawLine x r y r x r x1 y r y1 用黃色畫表盤上的數(shù)字 g setColor Color YELLOW int d 29 for int i 1 i 12 i x1 int r 10 Math sin rad d y1 int r 10 Math cos rad d g drawString i x r x1 4 x r y1 5 d 30 畫小點 表示刻度 d 0 for int i 0 i 60 i x1 int r 2 Math sin rad d y1 int r 2 Math cos rad d g drawString x r x1 1 x r y1 1 d 6 獲得時間 星期 日期 Calendar now1 new GregorianCalendar 獲得當(dāng)前的日期時間對象 int hour now1 get Calendar HOUR OF DAY 小時 獲得當(dāng)前的時刻 int minute now1 get Calendar MINUTE 分 同上 int second now1 get Calendar SECOND 秒 int year now1 get Calendar YEAR 年 int month now1 get Calendar MONTH 1 月 int date now1 get Calendar DAY OF MONTH 日 int week now1 get Calendar DAY OF WEEK 星期 System out println week 星期轉(zhuǎn)換字符串 String weekDay switch week case 1 weekDay 一 break case 2 weekDay 二 break case 3 weekDay 三 break case 4 weekDay 四 break case 5 weekDay 五 break case 6 weekDay 六 break 課程設(shè)計 論文 15 case 0 weekDay 日 break default weekDay break 顯示時間 星期 日期 g setColor Color PINK g drawString hour 10 0 hour minute 10 0 minu
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 氧化石與納米親水二氧化硅在流變性和攜砂能力中的作用研究
- 安全施工方案
- 智能時代個人信息保護自律機制構(gòu)建研究
- 基于PLC的機床電氣控制設(shè)計原理與應(yīng)用實例
- 聽覺視角下的文學(xué)作品深度解讀
- 構(gòu)建學(xué)習(xí)型社會:教育關(guān)系重構(gòu)與創(chuàng)新路徑探索
- 公務(wù)接待相關(guān)管理辦法
- 安全生產(chǎn)十四五
- 新媒體環(huán)境下播音主持話語表達的創(chuàng)新范式研究
- 儲運部工作總結(jié)
- 2025至2030中國中小型風(fēng)電行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 六大茶類培訓(xùn)
- 2025-2030中國油田化學(xué)品行業(yè)市場深度調(diào)研及行情監(jiān)測與投資前景研究報告
- 2025年烏魯木齊危險品駕駛員模擬試題
- 2025至2030中國質(zhì)子束治療系統(tǒng)行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 自主招生面試題及答案
- 深基坑監(jiān)測管理制度
- 2025年甘肅省民航機場集團校園招聘45人筆試參考題庫帶答案詳解
- 2025年高考真題-英語(全國一卷) 含答案
- 統(tǒng)編版高中政治必修三《政治與法治》期末復(fù)習(xí):選擇題刷題練習(xí)題(含答案解析)
評論
0/150
提交評論