<noframes id="ixm7d"><noframes id="ixm7d"><rt id="ixm7d"><delect id="ixm7d"></delect></rt><noframes id="ixm7d"><rt id="ixm7d"><rt id="ixm7d"></rt></rt><rt id="ixm7d"></rt> <noframes id="ixm7d"><rt id="ixm7d"><delect id="ixm7d"></delect></rt><delect id="ixm7d"></delect><bdo id="ixm7d"></bdo><rt id="ixm7d"></rt><bdo id="ixm7d"></bdo><noframes id="ixm7d"><rt id="ixm7d"><rt id="ixm7d"></rt></rt><rt id="ixm7d"><rt id="ixm7d"></rt></rt><noframes id="ixm7d"><rt id="ixm7d"></rt><noframes id="ixm7d"><rt id="ixm7d"></rt> <noframes id="ixm7d"><rt id="ixm7d"></rt><noframes id="ixm7d"><noframes id="ixm7d"><noframes id="ixm7d"><rt id="ixm7d"></rt><noframes id="ixm7d"><noframes id="ixm7d"><noframes id="ixm7d"><rt id="ixm7d"></rt><noframes id="ixm7d"><rt id="ixm7d"></rt><noframes id="ixm7d"><rt id="ixm7d"></rt><noframes id="ixm7d">

java課程設計報告小組

2023-06-30

報告是日常生活與學習的常見記錄方式,報告有著明確的格式。在實際工作中,我們怎么樣正確編寫報告呢?以下是小編整理的關于《java課程設計報告小組》的相關內容,希望能給你帶來幫助!

第一篇:java課程設計報告小組

Java課程設計報告

《Java課程實習》報告

題目 學號 學生姓名

音樂播放器

201011621335 201011621329 200811621320

朱劍峰 薛文博 劉彬

聯系方式 13763009739 13726903356 15766274948 所在專業 所在班級 指導教師 成績 教師簽字

計算機科學與技術

1103 劉思鳳

課程設計時間:2013年6月1日 至 2013年6月25日 評語:

廣東海洋大學本科生課程設計報告

目 錄

摘要 ...................................................................................................................................... 2 1 緒論 .............................................................................................................................. 3 1.1 1.2 1.3 1.4 2 2.1 2.2 3 3.1 3.2 課題背景 .............................................................................................................. 3 課程設計目的 ...................................................................................................... 3 課程設計實驗環境.............................................................................................. 3 課程設計要求 ...................................................................................................... 4 程序界面布局設計.............................................................................................. 4 功能分析 .............................................................................................................. 4 系統功能結構圖.................................................................................................. 5 模塊功能設計 ...................................................................................................... 5 課程系統分析 .............................................................................................................. 4

系統設計與實現 .......................................................................................................... 5

3.2.1 “菜單欄”功能設計 ...................................................................................... 5 3.2.2 “動態音頻播放進度顯示”功能設計 .......................................................... 9 3.2.3 “歌曲搜索”功能實現 .................................................................................. 9 3.2.4 “歌曲播放/停止”功能實現 ...................................................................... 10 3.2.5 “列表展示”功能實現 ................................................................................ 11 4 系統優點與缺點 ........................................................................................................ 13 4.1 4.2 5 系統優點 ............................................................................................................... 13 系統缺點 ............................................................................................................... 13

系統開發過程 ............................................................................................................ 14 Myeclipse平臺開發版本 ............................................................................................... 14 NetBeans開發平臺版本 ................................................................................................ 15

6 設計總結 .................................................................................................................... 16

參考文獻 ............................................................................................................................. 17 附

錄 ................................................................................................................................. 18 關鍵代碼 .......................................................................................................................... 18

1、 音樂解碼函數(decodeMusic) ........................................................................ 18

2、 播放線程類(class PlayThread) ..................................................................... 20

3、 控制滾動條類(class RunSlider) ................................................................... 21

廣東海洋大學本科生課程設計報告

摘要

JAVA是目前最流行的軟件開發語言之一,稱為網絡上的“世界語”。JAVA適合開發基于多媒體、與平臺無關、用面向對象的方法進行的基于Internet、Intranet、Extranet的Applet和應用程序。它具有簡單高效、面向對象、不依賴于機器結構的特點,支持多線程、分布和并發機制。用JAVA開發的應用軟件在可移植性、健壯性、安全性等方面大大優于已存在的其他編程語言。

JAVA是一門包含多種知識的學科,提供了豐富的類庫,能最大限度地利用網絡。JAVA可廣泛用于面向對象的事件描述、處理面向對象的企業型的應用開發,還應用于Internet系統管理、Web頁面設計、Internet可視化軟件開發等方面。在學習的過程中我學到了許多以前沒有學到的概念和新鮮資訊。運用這些知識可以完成老師交給我的課程設計任務。這次老師讓我們自己擬訂題目,給了我們很大的想象空間。我們自選了一個音樂播放器的課程設計題目。

本小組之所以選擇做音樂播放器,全賴于本小組成員均對音樂有濃厚的興趣,雖熱衷于聽音樂,但現在網上流傳的音樂播放器還不能滿足我們這些發燒友,像高清音樂等,這些高品質的作品若在現流行的播放器上運行,這只能做普通音樂文件“享用”。話說如此,因本小組開發能力有限,課程比較多,時間所限,以至暫且把音樂播放器開發到version0.9。主要功能還未能達到我們想要的境界。

小結一下,本小組的播放器所具備的功能有如下,添加音樂,刪除音樂,搜索音樂,更換播放器皮膚,更改播放模式等。(詳見2.2節)

本次設計的播放器在具備基本功能的基礎上,還具有很強的擴展性,如歌詞導入,可播放音樂類型的增加等等這些還未實現的地方我們都提供了許多接口,以便日后做修改或增加功能所用。

能夠具備一個屬于自己的播放器確實是一件非常高興的事情,能夠一邊開發一邊享受音樂的熏陶更是一件難得可貴的經歷,愿此摘要能讓讀者感受得到筆者的興奮與成功。

廣東海洋大學本科生課程設計報告

音樂播放器

任務分工

系統設計與代碼實現:朱劍峰 系統測試與維護:薛文博 需求與功能分析:劉彬 指導教師:劉思鳳

1 緒論

1.1 課題背景

隨著社會電子音樂文件的與日俱增,作為現在最流行的音樂文件*.mp3,*.wav文件的數量和規模也在比以往的任何時候要多,不論是電臺DJ需要使用方便而有效地管理自己所使用的音樂文件,還是個人。在計算機日益普及的今天,若采用一套有效的音樂播放器。將自己所收藏的大量的音樂文件能隨時隨地的播放,這將方便于眾用戶聽音樂的需求。通過使用本音樂播放器能為音樂愛好者帶來意想不到的收獲。

1.2 課程設計目的

《應用軟件開發實習》是計算機相關專業的必修專業基礎課程,其實踐性、應用性很強。實踐教學環節是必不可少的一個重要環節。本課程的程序設計專題實際是計算機相關專業學生學習完《應用軟件開發實習》課程后,進行的一次全面的綜合訓練,程序設計的設計目的是加深對理論教學內容的理解和掌握,使學生較系統地掌握程序設計及其在網絡開發中的廣泛應用,基本方法及技巧,為學生綜合運用所學知識,利用軟件工程為基礎進行軟件開發、并在實踐應用方面打下一定基礎。

1.3 課程設計實驗環境

程序運行在安裝有windows操作系統的計算機上(臺式機和筆記本),兼容windows 2K/XP/Vista/7/8 計算機硬件基本要求(僅供參考): 1. 2. 3. CPU:1G; 內存:512M. ; 顯卡:256M顯存;

文件播放:需要安裝有聲卡、要求安裝有語音庫。

JAVA程序設計語言及相應的集成開發環境,Myeclipse和Netbeans開發工具。

廣東海洋大學本科生課程設計報告

1.4 課程設計要求

按課程設計指導書提供的課題,要求學生在自行完成各個操作環節,并能實現且達到舉一反三的目的,完成一個項目解決一類問題。要求學生能夠全面、深入理解和熟練掌握所學內容,并能夠用其分析、設計和解答類似問題;對此能夠較好地理解和掌握,能夠進行簡單分析和判斷;能編寫出具有良好風格的程序;掌握JAVA程序設計的基本技能和面向對象的概念和方法;了解多線程、安全和網絡等編程技術。同時培養學生進行分析問題、解決問題的能力;培養學生進行設計分析、設計方法、設計操作與測試、設計過程的觀察、理解和歸納能力的提高。

2 課程系統分析

2.1 程序界面布局設計

(1) 創建一個JFrame類,類名為MyPlayer類。

(2) 向對話框中添加JSlider控件、JList控件、JLabel控件、JJToggleButton控件、MenuBar菜單、JPanel容器、JToolBar容器以及JScrolPanel容器。

(3) 設置所添加的控件的屬性,以及使用Java的界面風格,本設計共使用了6種Java 的不同界面風格。

2.2 功能分析

MyPlayer播放器主要對常用Windows音頻格式的文件實現播放控制: ? 主界面功能

? 菜單欄功能

? 添加音樂;

添加音樂文件(即導入一個或多個音樂文件至列表當中); 添加音樂目錄(即導入文件夾中所有的音樂文件至列表當中); ? 控制;

隨機播放; 順序播放; 單曲循環;

設置歌詞(有待開發); ? 更換皮膚;

默認、深海世界、迷人金屬、香韻咖啡、駭客帝國、浪漫滿屋(均為java的界面風格)

? 關于;

廣東海洋大學本科生課程設計報告

幫助(記錄作者的相關信息以及軟件開發的日期);

? 動態音頻播放進度顯示;

? 正在播放歌曲在頂層的顯示

? 播放歌曲的時間長度的顯示以及正在播放時間的長度的顯示 ? 滾動條隨播放狀態改變顯示 ? 歌曲搜索功能;

? 根據關鍵字搜索對應的歌曲; ? 歌曲播放/停止功能;

? 上一首;(播放上一首歌曲并根據播放模式來選擇) ? 下一首;(播放下一首歌曲并根據播放模式來選擇) ? 播放/停止;(播放或停止歌曲)

? 雙擊播放/雙擊停止;(在列表中對指定歌曲的操作) ? 列表展示功能;

? 隱藏/顯示列表; ? 移除單個音樂文件; ? 移除所有音樂文件;

? 顯示當前歌曲數目,播放模式,皮膚情況;

3 系統設計與實現

3.1 系統功能結構圖

MyPlayer播放器的功能結構圖如圖3-1。

主界面功能菜單欄功能動態音頻播放進度顯示歌曲搜索功能歌曲播放/停止功能列表展示功能

圖3-1 主界面功能圖

3.2 模塊功能設計 3.2.1 “菜單欄”功能設計

“菜單欄”功能結構圖如圖3-2-1。

廣東海洋大學本科生課程設計報告

菜單欄功能添加音樂添加音樂文件添加音樂目錄控制更換皮膚關于隨機播放順序播放單曲循環種皮膚圖3-2-1菜單欄功能結構

6幫助 3.2.1.1 “添加音樂”功能實現

當點擊“添加歌曲/文件夾”選擇“添加本地歌曲”或“添加本地歌曲文件夾”的時候,這時候會觸發這兩個JMenuItem事件,調用了open()函數(opendir()函數),即將選中的音樂文件(或文件夾內所有音樂文件)的信息(名稱與路徑)放入nameVector 和 urlVector 當中。并修改listCount的值,顯示歌曲的總數,最后將nameVector的所有內容放入list列表當中。如圖3-2-1-1。

圖3-2-1-1 (左上)選擇操作,(左下)選擇目錄,(右下)列表顯示

廣東海洋大學本科生課程設計報告

3.2.1.2 “控制”功能實現

當選擇“控制”功能的任意一項,則會使全局的chosenMethod整型變量的值根據選擇的項賦對應的值,值域為1(隨機播放)、2(順序播放)、3(單曲循環)。因播放器的播放功能是一個while(true)的循環,每當播放歌曲時候,播放前會由函數chooseNextSong()根據chosenMethod的值來選擇下一首歌是那一首。

如果值是1,則會由[0,listCount(列表歌曲總數)],獲取隨機數,再根據play()函數播放;如果值是2,則根據chosenIndex(當前播放歌曲號),直接加一,再根據play()函數播放;如果值是3,則chosenIndex(當前播放歌曲號)的值不再修改,再根據play()函數播放;如圖3-2-1-2。

圖3-2-1-2(左上)選擇操作;(左下)隨機播放后歌曲序號, (此處為后臺顯示),起始播放第1首歌,下一首歌為第295首歌曲; (右側)為列表顯示,指向對應歌曲,并且列表底下顯示“隨機播放”

3.2.1.3 “更換皮膚”功能實現

當選擇“更換皮膚”功能的任意一項,則會觸發對應事件的發生,調用函數loadskin1()或loadskin2()等等。此時會調用LookAndFeel的類,指定java包含的皮膚風格。Loadskin1()對應“默認”,loadskin2()對應“深海世界”等等。

選擇皮膚后,主界面底下會顯示對應的提示,如選擇了“浪漫滿屋”,地下就會顯示 “皮膚:浪漫滿屋”。如圖3-2-1-3所示。

廣東海洋大學本科生課程設計報告

圖3-2-1-3

(左)選項顯示,(右)換膚后主

界面情況。

3.2.1.4 “關于”功能實現

當選擇“幫助”功能時,則彈出信息窗口,提示本軟件的開發時間與開發人員相關信息。如圖3-2-1-4所示。

圖3-2-1-4

廣東海洋大學本科生課程設計報告

3.2.2 “動態音頻播放進度顯示”功能設計

當歌曲播放正在播放時,則頂層“正在播放”處會顯示歌曲的名稱,當歌曲名稱過長時候,超長部分會用省略號顯示。

同時會根據歌曲的格式,得到歌曲的長度,并顯示在歌曲的右側的JLabel fileTime中;另外會另起一個線程RunSlider來控制計時功能,每1秒鐘,滾動條左側JLabel runningTime 會根據播放的時間來修改,滾動條PlayerSlider則會每秒鐘根據runingTime的值來移動。如圖3-2-2所示

圖3-2-2

正在播放歌曲中的動態播放進度顯示。

3.2.3 “歌曲搜索”功能實現

在搜索欄中輸入關鍵字,在回車確認,系統就會調用seachMusic()來搜索與關鍵字吻合的歌曲,并將其放入臨時的Vector tmpName當中,并顯示其到list列表當中。如圖3-2-3-1

在臨時的列表中選擇所需要播放的歌曲,雙擊播放,同時臨時列表消失,回復原來的列表,即導入nameVector的數據到list當中。

當點擊“X”按鈕,若還在臨時列表當中,則會清除臨時列表并且恢復原來的列表;若已經恢復到臨時列表,則搜索框中會返回提示“請輸入搜索關鍵字...”。

圖3-2-3-1(上)搜索“陳奕迅”的歌曲

(下)取消搜索后,搜索框的內容

廣東海洋大學本科生課程設計報告

3.2.4 “歌曲播放/停止”功能實現

“歌曲播放/停止”功能結構圖如圖3-2-4。

歌曲播放/停止功能上一首下一首播放/停止雙擊播放/停止

圖3-2-4 “歌曲播放/停止”功能結構

3.2.4.1 “上一首”“下一首”功能實現

當點擊“上一首”的按鈕時,會根據按鈕事件,若chosenMethod(播放方式)的值為1(即隨機播放)則系統會調用chooseNextSong()來隨機選擇歌曲號來播放下一首歌;若chosenMethod不為1,則會調用previousMusic(),對chosenIndex(當前播放歌曲號)減一,再調用play()函數播放上一首歌曲。

當點擊“下一首”的按鈕時,會根據按鈕事件,若chosenMethod(播放方式)的值為1(即隨機播放)則系統會調用chooseNextSong()來隨機選擇歌曲號來播放下一首歌;若chosenMethod不為1,則會調用nextMusic(),對chosenIndex(當前播放歌曲號)加1,再調用play()函數播放下一首歌曲。

3.2.4.2 “播放/停止”“雙擊播放/停止”功能實現

當點擊“播放/停止”的按鈕時候,若點擊了“播放”,則會顯示“停止”,同時會對列表正在選中的歌曲進行播放。同時會觸發“動態音頻播放進度顯示”功能(3.2.2節所介紹),更改或增加播放信息;

若點擊了“停止”,則會顯示“播放”,同時會對當前播放的歌曲進行停止,同樣會觸發“動態音頻播放進度顯示”功能,清除對應的顯示。如圖3-2-4-2

廣東海洋大學本科生課程設計報告

圖3-2-4-2 (左)“播放”

(右)“停止”

3.2.5 “列表展示”功能實現

“列表展示”功能結構圖如圖3-2-5。

列表展示功能隱藏/顯示列表移除音樂文件顯示列表信息

圖3-2-5 “列表展示”功能結構

3.2.5.1 “隱藏/顯示列表”功能實現

當點擊“顯示列表/隱藏列表”的按鈕時候,若點擊了“顯示列表”,則會顯示“隱藏列表”,同時觸發該事件,將原來的JFrame大框架的長度減少440個單位;

若點擊了“隱藏列表”,則會顯示“顯示列表”,同時觸發該事件,將原來的JFrame大框架的長度增加440個單位。

隱藏與顯示列表這一功能雖然非常簡單,但其重要性不可忽視,對于現在許多用戶對音樂播放器的要求,就如自己的手機或著MP3一樣,小巧、靈活、精致,至此這一項功能對于本小組一開始的設計就算是一個亮點。如圖3-2-5-1所示。

廣東海洋大學本科生課程設計報告

圖3-2-5-1 (左)隱藏列表,(右)顯示列表

3.2.5.2 “移除歌曲”功能文件實現

當用鼠標對著列表的音樂文件右鍵的時候,會彈出兩個選項“移除歌曲/移除所有歌曲”。

當選擇“移除歌曲”,則對所選擇的音樂文件從列表中移除,即事件的觸發調用了deleteSingle()函數,將對應的項從列表中移除,從nameVector中移除,從urlVector中移除;

同理當選擇“移除所有歌曲”的時候,事件觸發調用deleteAll()函數,將列表清空,將nameVector中的元素清除。

以上兩者運行過后均會更新主界面底層“歌曲數目”,并且停止正在播放的歌曲。

圖3-2-5-2右鍵列表后出現的選擇項

廣東海洋大學本科生課程設計報告

3.2.5.3 “顯示列表信息”功能實現

由“添加音樂”功能(3.2.1.1節)調用的open()、opendir()函數,會將保存在nameVector中的內容導入列表當中。當雙擊列表中的歌曲的時候,如果歌曲正在播放則會停止,如果播放器沒有進行播放,則雙擊后就進行播放。

當我們對著列表右鍵時,則會彈出列表,“移除歌曲/移除所有歌曲”,詳見(3.2.5.2節)

4 系統優點與缺點

4.1 系統優點

1、windows界面風格可選擇性,如上如所述,本音樂播放器具有6種皮膚可以更換。這大大滿足了一個娛樂性的軟件的需要,并且皮膚起名也符合用戶的感官需求,像“深海世界”、“浪漫滿屋”這些貼切而休閑的詞匯更能吸引用戶對播放器的使用。

2、播放方式可選擇性,對于喜歡聽音樂的用戶,會根據自己的需要選擇一定的順序來聽音樂。

3、列表隱藏的功能,符合大眾播放器的功能,將播放器的界面弄得小巧而精致,即使隱藏了列表也不妨礙主要的播放器功能。

4、搜索功能,隨著網絡的發達,音樂歌曲隨處下載,人均播放列表的歌曲數目數以百計,這時候搜索功能就顯得十分重要。本播放器根據關鍵字可以對列表進行搜索,并可以顯示搜索后的列表,同時臨時的列表不會縮減播放器功能。

4.2 系統缺點

1、本系統主要代碼均在一個文件當中MyPlayer.java當中,由于本小組是用netBeans7.2.1開發平臺開發的,對開發平臺尚未了解,故暫且沒有將代碼弄得更具有可讀性。

2、本播放器還缺少暫停功能,在開發的最后版本(Music_Player0.9fornetBeans)還在改進當中。期待1.0版本對此功能的實現。

3、本播放器對音樂文件的選擇,僅僅.mp3文件以及.wav文件可播放。針對decodeMusic()解碼函數的改善,尚未能解決。

4、本播放器缺少歌詞設置、顯示功能。由于本小組對播放器的主界面還未想到一個滿意的設計,所以歌詞的實現暫且沒有實現,待界面設計得靈活的時候,再添加歌詞的功能。

廣東海洋大學本科生課程設計報告

5 系統開發過程

Myeclipse平臺開發版本

Version 0.1

1、菜單欄

*文件包括“打開文件”“打開目錄”“退出程序” *控制 -隨機播放-順序播放-單曲循環-設置歌詞 *更換皮膚

*幫助-關于

2、上一首、下一首、停止/播放、隱藏列表4個button

3、幫助顯示-關于 消息框。

Version0.2

1、能打開文件,顯示文件名稱在下面的框內,多個文件顯示在框內!

2、文件-退出程序

實現

3、能夠顯示列表與隱藏列表

Version0.3

1、雙擊能夠播放

2、暫停 跟 繼續

新增

1、雙擊整個title 換成為歌曲名稱 問題

1、隱藏列表/顯示列表 list 會縮水

2、filedialog 沒有選擇任何文件 直接關閉會出現錯誤!(verson0.4中已解決)

3、雙擊空的列表也可以開始(version 0.6for netBeans 已經解決)

Version0.31 (Version0.3崩潰)

Version0.4

1、上一首,下一首 能夠在列表中顯示

2、上一首 下一首播放功能 新增:

1、打開文件可以多選

2、打開目錄 可以把整個目錄里面的MP

3、wav文件導出在列表中。

問題:

1、雙擊 第一次 是開始,第二次 是停止(相對于同一首歌,相對于其它歌會停止,

也不播放)(version 0.6for netBeans 已經解決)

2、播放完一首歌后,不能自動往下播放。(version 0.5forneatBeans 已經解決)

歌曲不能刪除(version 0.6for netBeans 已經解決) 修改:

1、“打開文件”“打開目錄”分別換成 添加本地歌曲,添加本地歌曲文件夾

Version0.5

1、皮膚(簡單的顏色或者圖片)

2、更換皮膚-可供選擇

修改:

1、項目已經轉至netbeans平臺上開發,并明明為Music_Player0.5forneatBeans 新增:

1、快捷鍵 添加歌曲/文件夾 添加了快捷鍵 和 關于 加了快捷鍵

廣東海洋大學本科生課程設計報告

Version 0.6

1、播放模式

2、刪除功能 問題:

1、播放列表可以拉出來,播放到名字比較長的歌曲,list會變寬!(已經完全解決,刪

除正在播放的label)

2、播放按鈕,雙擊 未解決(version0.6已經修復), 上一首

下一首 置頂時候,以及

隨機播放時候 下一首上一首序號問題!(version0.6已經修復)。

3、菜單項 選中后,沒有特別標志(解決辦法

1、換另外一種菜單項

2、選中菜單項后 字

體等改變)

selected 方法!是改變修改字體的!(version0.7添加1中 解決)

4、刪除 單首歌,序號不能改變(version0.7已經修復) NetBeans開發平臺版本

Version0.7 for netbeans

1、添加底下: 歌曲數目、播放模式、皮膚的顯示

2、歌曲名前面有序號

3、音樂時間,以及滾動條

4、”正在播放“顯示的問題 Version0.8 for netbeans

1、添加搜索模塊

2、添加搜索功能

3、搜索功能->搜索列表播放功能 Version0.9fornetbeans

1、修改播放器軟件運行時的圖標(將java的圖標換成“射手”圖標)

廣東海洋大學本科生課程設計報告

6 設計總結

JAVA是目前最流行的軟件開發語言之一,稱為網絡上的“世界語”。JAVA適合開發基于多媒體、與平臺無關、用面向對象的方法進行的基于Internet、Intranet、Extranet的Applet和應用程序。它具有簡單高效、面向對象、不依賴于機器結構的特點,支持多線程、分布和并發機制。用JAVA開發的應用軟件在可移植性、健壯性、安全性等方面大大優于已存在的其他編程語言。

JAVA是一門包含多種知識的學科,提供了豐富的類庫,能最大限度地利用網絡。JAVA可廣泛用于面向對象的事件描述、處理面向對象的企業型的應用開發,還應用于Internet系統管理、Web頁面設計、Internet可視化軟件開發等方面。在學習的過程中我學到了許多以前沒有學到的概念和新鮮資訊。運用這些知識可以完成老師交給我的課程設計任務。這次老師讓我們自己擬訂題目,給了我們很大的想象空間。我們自選了一個音樂播放器的課程設計題目。

課程設計的過程雖然是艱難而辛苦的,但是我卻從中感到了快樂與欣慰??鞓肥且驗槲乙郧皩τ贘AVA的知識可以說是孤陋寡聞,但是通過這次課程設計我使自己的知識更加的豐富了,加大了自己的知識面。讓自己的實力擴大了。所以我感到非常的快樂。欣慰是因為看著自己做出的課程設計得到了老師的認同,取得了成功。這次課程設計的整體過程是充實而滿足的。

廣東海洋大學本科生課程設計報告

參考文獻

[1] (美) ??藸?Eckel , B.)著,《Java編程思想》(第四版)陳昊鵬譯. 一北京: 機械工業出版社,2007.6

[2] 刁成嘉 著,《UML系統建模與分析設計》,機械工業出版社,2007.6

[3] 朱喜福 著,《Java程序設計》(第2版),清華大學出版社, 2009.10

[4] 辛運幃 著,《Java語言程序設計》(第1版) ,人民郵電出版社, 2009.10

[5] 葉核亞 著,《Java程序設計實用教程》 (第3版) ,電子工業出版社,2010.2

[6] 耿祥義,張躍平 編著,《Java面向對象程序設計》.一北京:清華大學出版社,2010.1

廣東海洋大學本科生課程設計報告

關鍵代碼

1、音樂解碼函數(decodeMusic)

解析:由于java applet播放聲音,對應的格式只有一些原始格式如.au、.Wav 、.Midi、 .rfm格式,因此一下的解碼函數就非常必要了,即將MP3等其它格式文件的音頻等格式修改成系統能夠實現的格式,并寫入內存由此來實現播放功能。詳細實現請閱讀如下代碼。

public void decodeMusic(AudioInputStream in) {// 開始解碼 MP3

AudioFormat format = in.getFormat();

AudioFormat decodedFormat = new AudioFormat(

AudioFormat.Encoding.PCM_SIGNED,// 音頻編碼技術

format.getSampleRate(),// 每秒的樣本數

16,// 每個樣本中的位數

format.getChannels(),// 聲道數(單聲道 1 個,立體聲 2 個,等等)

format.getChannels() * 2,// 每幀中的字節數

format.getSampleRate(), false);// 每秒的幀數和是否以 big-endian // 字節順序存儲單個樣本中的數據

// 然后重新獲取一個新的輸入流,

AudioInputStream decodeIn = AudioSystem.getAudioInputStream(

decodedFormat, in); /**

* 源數據行是可以寫入數據的數據行。它充當其混頻器的源。 應用程序將音頻字節寫入源數據行,這樣可處理字節緩沖并將它們傳遞給混頻器。

* 混頻器可以將這些樣本與取自其他源的樣本混合起來,然后將該混合物傳遞到輸出端口之類的目標 (它可表示聲卡上的音頻輸出設備)。

* */ SourceDataLine sdl = null; // 然后

DataLine.Info info = new DataLine.Info(SourceDataLine.class,

decodedFormat); try {

/**

* AudioSystem :類充當取樣音頻系統資源的入口點。 此類允許查詢和訪問安裝在系統上的混頻器

* **/

sdl = (SourceDataLine) AudioSystem.getLine(info);

sdl.open(decodedFormat);

} catch (Exception e) {

廣東海洋大學本科生課程設計報告

e.printStackTrace(); } /** 指示該行是否支持特定類型的控件。 */ if (sdl.isControlSupported(FloatControl.Type.PAN)) {

// FloatControl 對象提供對浮點值范圍的控制

FloatControl pan = (FloatControl) sdl

.getControl(FloatControl.Type.PAN);

if (curPosition == Position.RIGHT) {

pan.setValue(1.0f);

} else if (curPosition == Position.LEFT) {

pan.setValue(-1.0f);

} }

sdl.start(); int nBytesRead = 0; byte[] abData = new byte[EXTERANAL_BUFFER_SIZE]; try {

while (nBytesRead != -1) {

// 文件流的讀寫

nBytesRead = decodeIn.read(abData, 0, abData.length);

if (nBytesRead >= 0) {

sdl.write(abData, 0, nBytesRead);

}

} } catch (Exception e) {

e.printStackTrace();

return ; } finally {

// 通過在清空數據行的內部緩沖區之前繼續數據 I/O,排空數據行中的列隊數據。

sdl.drain();

sdl.close(); }

}

廣東海洋大學本科生課程設計報告

2、播放線程類(class PlayThread)

解析:本播放器只使用一個線程來實現歌曲播放的功能,若用戶要更換歌曲或者停止音樂,則對線程重建,即殺死原線程再建立新的線程,其實現的效果還是跟原來線程一樣。同時此線程包含了許多子功能,如更改播放模式,對“上一首”“下一首”顯示“正在播放”等功能均在此線程上實現。詳細內容請閱讀如下代碼。

class PlayThread extends Thread{

public void run() {

while(true){

try {

setInitShowing();//初始化滾動條以及計時label 的值

isStop = true;//標志狀態,說明是停止了

filename = (String) nameVector.get(chosenIndex).toString();//取chosenIndex對應的歌曲名稱

filepath = (String) urlVector.get(chosenIndex).toString();////取chosenIndex對應的歌曲路徑

System.out.println("我在播放:"+chosenIndex+" "+filename); //后臺輸出檢測

/*設置“正在播放”的值,只輸出前23個字符,以免超出長度,后面補...*/

String showName = null;

if(filename.length()>23){

showName = filename.substring(0, 23) + "..";

}else{

showName = filename;

}

showTileOfMusic.setText("正在播放:"+showName);

File file = new File(filepath);

setTitle(filename);

list.setSelectedValue(nameVector.get(chosenIndex), true);

listIndex = chosenIndex;

stporplySongButton.setText("停止");//修改 停止/播放button的狀態值

AudioInputStream in = AudioSystem.getAudioInputStream(file);//去音樂文件

AudioFileFormat aff = AudioSystem.getAudioFileFormat(file);//去音樂文件的格式(為了得到歌曲長度)

musicLength = aff.getFrameLength()/aff.getFormat().getFrameRate();//取音樂文件的長度

System.out.println("我有那么長:"+musicLength);//后臺顯示,用于檢測

setShowingTime(musicLength,fileTime);//顯示總長度到fileTime label中

PlayerSlider.setMaximum((int)musicLength);//并且設置滾動條的最大值

isStop = false;//設置正在播放狀態

hasStop = false;//設置正在播放狀態

decodeMusic(in);//解碼并播放

isStop = true;//播放完畢后設置回非播放狀態

hasStop = true;

廣東海洋大學本科生課程設計報告

chooseNextSong();//選擇下一首歌返回while

} catch (Exception e) {

//e.printStackTrace();

System.out.println("剛才那首歌出錯了!");//如果出現錯誤,則顯示直接跳至下一首歌

nextMusic();

}

}

}

}

3、控制滾動條類(class RunSlider)

解析:此類雖然簡短,但其能動態實現滾動條以及播放時間的運動。其中setShowingTime()方法提供的接口十分靈活,能夠對不同空間進行時間的控制,本播放器只對播放時間的兩個JLabel實現了此功能,這大大提高了本播放器的可擴展性。詳細內容請閱讀如下代碼。

class RunSlider extends Thread{

public void run() {

try {

musicCouter = 0;

while(true){

Thread.sleep(1000);//每秒鐘滾動一次

musicCouter++;

PlayerSlider.setValue((int)musicCouter);

setShowingTime(musicCouter, runingTime);//轉換時間并顯示回去runingTime label

}

} catch (InterruptedException ex) {

Logger.getLogger(MyPlayer.class.getName()).log(Level.SEVERE, null, ex);

}

}

}

21

第二篇: Java期中課程設計報告

報告題目:ATM模擬程序

姓名:

學號:2009118246 學院:信息科學與技術學院

專業:計算機科學與技術

一、課程設計目的和內容

目的:課程設計的主要目的是結合面向對象程序設計課程,培養面向對象軟件開發的思維,初步了解軟件開發的一般流程,提高用JAVA編程的實際動手能力并增強大家對面向對象的了解。

內容:設計ATM取款機主要包括登錄頁面、選擇服務、存款、取款、查詢余額、修改密碼和退出等功能。注:各種按鈕的事件和功能簡單模擬ATM取款機的要求。

二、系統需求分析

1、功能需求分析 (1)模擬ATM柜員機程序;

(2)修改密碼。當用戶需要修改密碼時,可以用這個功能,新密碼長度不小于6位,不允許出現6位完全相同的情況,只有舊密碼正確,新密碼符合要求,且兩次輸入相同的情況下才可以成功修改密碼。 (3)取款。用戶根據自己需要取多少錢,輸入要取的金額,每次取款金額為100的倍數,總額不超過5000元,支取金額不允許透支。 (4)查詢余額。用戶需要知道自己帳戶還剩多少錢時,可以查詢自己帳戶的余額。

(5)存款。用戶可以存款,金額為100的倍數,不能出現負存款。 (6)鎖機。當用戶3次輸入密碼錯誤時,停止操作。

2、設計需求分析

A界面設計簡潔、友好、美觀大方。 B操作簡單、快捷方便。

1

C信息分類清晰、準確。 3.ATM功能模塊圖

4、約束條件 (1)設計工具

開發工具:NetBeans 運行環境:Windows 7 (2)界面要求

以Windows窗口形式顯示,標題欄為ATM自動取款機不同的窗口中有不同的按鈕和選擇菜單。

三、系統設計

1、功能結構模塊圖

2

我們所設計的ATM柜員機主要是由登錄頁面模塊還由選擇服務模塊組成,其中選擇服務模塊又由取款模塊、查詢余額模塊、修改密碼模塊、退卡模塊組成。其功能結構圖如下所示:

2、業務流程圖

3

四、詳細設計

1、界面設計概述

我設計的ATM機,主要應用java圖形用戶界面開發的知識,在netbeans上根據要求來創建窗體,窗體整個框架使用JFrame類構造,JFrame有自己的外邊框和自己的標題,創建JFrame時可以指定其窗口標題,在創建窗口時,好多代碼是自動生成,我只是在其基礎上添加一些約束條件的代碼,比如說每次輸入的取款金額必須為100的整數,當密碼輸入三次錯誤,便鎖卡等代碼需要自己編寫,這里我會主要說明自己編寫的那部分代碼,也是程序中比較重要的部分,其中有許多Swing組件重復應用,代碼相同,在報告中不重復說明,比如說數字“0-9”的代碼,“退卡”按鈕的代碼等。

1、各模塊界面設計與程序設計

4

主模塊設計:

主函數中定義了6個靜態變量:密碼(thePassword ),余額(balance),新密碼1(password1),新密碼2(password2),其中密碼為String類型,余額是double型,計數器(counter),用來記密碼的輸入次數,整型,初始化為0,dataStr是String類型,初始化為空字符串,還定義了FileWriter()和FileReader()方法分別用來寫和讀ATM在交易中的余額和密碼也就是dataStr,使用戶的余額和密碼變成變化后的值。在主方法中首先要調用一次FileReader()方法,獲取余額和密碼。 程序代碼如下:

import java.io.*; public class Atm {

/**

* @param args the command line arguments

*/

static String thePassword ;

static double balance ;

static int counter = 0;

static String password1;

static String password2;

static String filePath = "./temp.txt";

static File file = new File(filePath); static String dataStr = ""; //寫文件

static void FileWriter() {

String dataStr;

try{

if(!file.exists())

file.createNewFile();

dataStr = balance + "," + thePassword + ",";

byte[] data = dataStr.getBytes();

FileOutputStream fos = new FileOutputStream(file);

fos.write(data);

fos.close();

}

5

catch(Exception e){

e.printStackTrace();

}

}

//讀文件

static void FileReader(){

try{

if(!file.exists())

file.createNewFile();

byte[] data = new byte[64];

FileInputStream fis = new FileInputStream(file);

int rs = 0;

while((rs = fis.read(data)) > 0){

dataStr += new String(data,0,rs);

}

if(!dataStr.isEmpty()){

String[] sets = dataStr.split(",");

balance = Double.parseDouble(sets[0]);

thePassword = sets[1];

}

fis.close();

}

catch(Exception e){

e.printStackTrace();

}

}

public static void main(String args[]) {

FileReader();//調用讀文件

try {

for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {

if ("Nimbus".equals(info.getName())) {

javax.swing.UIManager.setLookAndFeel(info.getClassName());

break;

}

}

} catch (ClassNotFoundException ex) {

java.util.logging.Logger.getLogger(AtmWelcome.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

6

} catch (InstantiationException ex) {

java.util.logging.Logger.getLogger(AtmWelcome.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(AtmWelcome.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

} catch (javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(AtmWelcome.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

} AtmWelcome aw=new AtmWelcome(); aw.setSize(390,290);

aw.setVisible(true);

} }

1)待機界面

這個界面可以說是一個待機界面,點擊“插卡”按鈕,進入登陸界面,其過程相當于ATM讀取磁卡信息的過程,利用了Swing控件中的標簽和按鈕,在“插卡”按鈕添加鼠標點擊事件代碼如下:

private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

7

new AtmEnter().setVisible(true);//進入登陸界面

this.setVisible(false); }

2)登陸界面

這個登陸界面,用戶名和賬號在插卡時相當于系統已經讀取,所以下面這個界面只是密碼驗證,輸入正確的密碼,若正確,則進入主交易界面,若錯誤則進入密碼錯誤,重新輸入,若輸入3次錯誤,則進入鎖卡界面,具體界面和程序代碼如下所示:

“確定”按鈕的鼠標點擊事件代碼(用戶三次輸入錯誤判斷程序):

private void jButton11MouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

int l=jPasswordField1.getText().length();

if( l==6&&jPasswordField1.getText().equals(Atm.thePassword ))

{

new AtmEnterSuccess().setVisible(true);

this.setVisible(false);}

else if(Atm.counter<2)

{new AtmPasswordError().setVisible(true);

this.setVisible(false);

Atm.counter++;

}

8

else{new AtmLock().setVisible(true);

this.setVisible(false);

}

}

“數字0-9”按鈕的鼠標點擊事件代碼:

public void setNumber(String c){

jPasswordField1.setText(jPasswordField1.getText()+c);

} private void jButton4MouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here:

setNumber("1");

}

private void jButton1MouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here:

setNumber("2"); }

private void jButton5MouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here:

setNumber("3"); }

private void jButton3MouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here:

setNumber("4"); }

private void jButton2MouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here:

setNumber("5"); }

private void jButton6MouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here:

setNumber("6"); }

private void jButton7MouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

setNumber("7"); }

private void jButton8MouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

setNumber("8"); }

private void jButton9MouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

setNumber("9"); }

private void jButton12MouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

setNumber("0"); }

“退卡”按鈕的鼠標點擊事件代碼:

private void jButton10MouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

new AtmWelcome().setVisible(true);//返回到待機界面

this.setVisible(false); }

“更正”按鈕的鼠標點擊事件代碼:

private void jButton14MouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

int l = jPasswordField1.getText().length();

if(l != 0)

jPasswordField1.setText(jPasswordField1.getText().substring(0,l-1)); }

3)主交易界面

10

這個界面分別設計了“查詢余額”按鈕,“取款”按鈕,“修改密碼”按鈕等,點擊時分別進入相應的功能界面,具體代碼如下所示:“查詢余額”按鈕的鼠標點擊事件代碼:

private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

new AtmAccountBalance().setVisible(true);//進入顯示余額界面

this.setVisible(false); }

“取款”按鈕的鼠標點擊事件代碼:

private void jButton4MouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

new AtmWithdrawl().setVisible(true);//進入取款界面

this.setVisible(false); }

“存款”的鼠標點擊事件代碼:

private void jButton3MouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

new AtmDeposit().setVisible(true);//進入存款界面

this.setVisible(false); }

“修改密碼”的鼠標點擊事件代碼:

private void jButton6MouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

11

new AtmPasswordChange().setVisible(true);//進入密碼修改界面

this.setVisible(false); }

4)密碼錯誤界面

當在登錄界面登陸時,若密碼錯誤則出現密碼錯誤界面,這個界面上點擊“繼續” 按鈕則返回到登陸界面重新輸入密碼,具體代碼如下: “繼續”按鈕的鼠標點擊事件代碼:

private void jButton2MouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

new AtmEnter().setVisible(true);//返回到登陸界面

this.setVisible(false); }

5)鎖卡界面

12

密碼輸錯3次,卡鎖,代碼見登陸界面的“確定”按鈕點擊事件代碼。 6)余額查詢界面

點擊“繼續”則返回到主交易界面,具體的代碼如下: 顯示余額的代碼:

public AtmAccountBalance() {

initComponents();

java.awt.EventQueue.invokeLater(new Runnable() {

13

public void run() {

setVisible(true);

}

});

jLabel1.setText("當前余額:"+ Atm.balance);

Atm.FileWriter(); } “繼續”按鈕的鼠標點擊代碼如下:

private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

new AtmEnterSuccess().setVisible(true);//進入主交易界面

this.setVisible(false); }

7)取款界面

取款界面規定單次最多取款5000元,若所取金額在界面上有,則直接點擊相應按鈕,若沒有,則點擊“其他面額”按鈕,然后輸入自己想取得面額,具體事件代碼如下:

100,300,500,1000,2000按鈕的鼠標點擊事件代碼如下:

private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

if(Atm.balance>=Double.valueOf(jButton1.getText()))

{

14

new AtmWithdrawlSuccess().setVisible(true);//進入取款成功界面

this.setVisible(false);

Atm.balance=Atm.balance-Double.valueOf(jButton1.getText());

Atm.FileWriter();}

else{ new AtmBalanceNotEnough().setVisible(true);//進入余額不足界面

this.setVisible(false);

} }

private void jButton3MouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

if(Atm.balance>=Double.valueOf(jButton3.getText()))

{

new AtmWithdrawlSuccess().setVisible(true);//進入取款成功界面

this.setVisible(false);

Atm.balance=Atm.balance-Double.valueOf(jButton3.getText());

Atm.FileWriter();}

else{ new AtmBalanceNotEnough().setVisible(true);//進入余額不足界面

this.setVisible(false);

} }

private void jButton5MouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here

if(Atm.balance>=Double.valueOf(jButton5.getText()))

{

new AtmWithdrawlSuccess().setVisible(true);//進入取款成功界面

this.setVisible(false);

Atm.balance=Atm.balance-Double.valueOf(jButton5.getText());

Atm.FileWriter();}

else{ new AtmBalanceNotEnough().setVisible(true);//進入余額不足界面

this.setVisible(false);

} }

private void jButton4MouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

if(Atm.balance>=Double.valueOf(jButton4.getText()))

{

new AtmWithdrawlSuccess().setVisible(true);//進入取款成功界面

this.setVisible(false);

Atm.balance=Atm.balance-Double.valueOf(jButton4.getText());

Atm.FileWriter();}

else{ new AtmBalanceNotEnough().setVisible(true);//進入余額不足界面

15

this.setVisible(false);

} }

private void jButton6MouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

if(Atm.balance>=Double.valueOf(jButton6.getText()))

{

new AtmWithdrawlSuccess().setVisible(true);//進入取款成功界面

this.setVisible(false);

Atm.balance=Atm.balance-Double.valueOf(jButton6.getText());

Atm.FileWriter();}

else{ new AtmBalanceNotEnough().setVisible(true);//進入余額不足界面

this.setVisible(false);

} }

“其他面額”按鈕鼠標點擊事件代碼:

private void jButton2MouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

new AtmWithdrawlInput().setVisible(true);//輸入取款金額界面

this.setVisible(false); }

“返回”按鈕的鼠標點擊事件代碼:

private void jButton7MouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

new AtmEnterSuccess().setVisible(true);//返回主交易界面

this.setVisible(false); }

8)取款金額輸入界面

16

這個界面是當用戶所想取得金額在界面上沒有的時候,便需要用戶自己輸入,規定輸入的金額必須是100的倍數,且不大于5000元,具體事件代碼如下所示:(其中按鈕0-9的代碼,“退卡”按鈕等的代碼和前面相同)

“確定”按鈕的鼠標事件代碼:

private void jButton11MouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

double a=Double.valueOf(jTextField1.getText());

if(Atm.balance>=a&&a%100==0&&a<=5000.0){

new AtmWithdrawlSuccess().setVisible(true);//取款成功界面

this.setVisible(false);

Atm.balance=Atm.balance-Double.valueOf(jTextFiled1.getText());

Atm.FileWriter();

}

if(a%100!=0||a>5000){

new AtmWithdrawlInputError().setVisible(true);//取款金額輸入錯誤界面

this.setVisible(false);

}

else{

17

new AtmBalanceNotEnough().setVisible(true);//余額不足

this.setVisible(false);

}

}

“取消”按鈕的鼠標事件代碼:

private void jButton13MouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

new AtmEnterSuccess().setVisible(true);//返回到主交易界面

this.setVisible(false); }

9)存款界面

和取款界面類似,具體的代碼如下所示: 100,300,500,1000,2000按鈕的鼠標事件代碼:

private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

new AtmDepositSuccess().setVisible(true);//存款成功界面

this.setVisible(false);

Atm.balance=Atm.balance+Double.valueOf(jButton1.getText());

Atm.FileWriter(); }

private void jButton3MouseClicked(java.awt.event.MouseEvent evt) {

18

// TODO add your handling code here:

new AtmDepositSuccess().setVisible(true);

this.setVisible(false);

Atm.balance=Atm.balance+Double.valueOf(jButton3.getText());

Atm.FileWriter(); }

private void jButton5MouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

new AtmDepositSuccess().setVisible(true);

this.setVisible(false);

Atm.balance=Atm.balance+Double.valueOf(jButton5.getText());

Atm.FileWriter(); }

private void jButton4MouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

new AtmDepositSuccess().setVisible(true);

this.setVisible(false);

Atm.balance=Atm.balance+Double.valueOf(jButton4.getText());

Atm.FileWriter(); }

private void jButton6MouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

new AtmDepositSuccess().setVisible(true);

this.setVisible(false);

Atm.balance=Atm.balance+Double.valueOf(jButton6.getText());

Atm.FileWriter(); }

“其他面額”按鈕的鼠標事件代碼:

private void jButton2MouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

new AtmDepositInput().setVisible(true);//輸入存款金額界面

this.setVisible(false); }

10)輸入存款金額界面

19

和存款界面2類似,具體的事件代碼如下: “確定”按鈕的鼠標事件點擊代碼:

private void jButton11MouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

String cs=jTextField1.getText();

if(Double.valueOf(cs)%100==0&&Double.valueOf(cs)>0){

new AtmDepositSuccess().setVisible(true);

this.setVisible(false);

Atm.balance=Atm.balance+Double.valueOf(cs);

Atm.FileWriter();}

else{new AtmDepositInputError().setVisible(true);//存款金額輸入錯誤界面

this.setVisible(false);

} }

11)密碼修改界面

本來修改密碼是要輸入原密碼的,但我們在使用ATM時,一開始就輸入了密碼,否則也不能進入修改密碼界面,所以在這里直接輸入新密碼,連續兩次輸入,且兩次輸入的密碼相同,且6位密碼不完全相同,則修改密碼成功,否則失敗,具體代碼如下: “確定”按鈕的鼠標事件代碼:

private void jButton11MouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

String a=jPasswordField1.getText();

Atm.password1=a;

new AtmPasswordInAgain().setVisible(true);//進入密碼確認界面

this.setVisible(false); }

“返回”按鈕的鼠標事件代碼:

private void jButton10MouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

new AtmEnterSuccess().setVisible(true);

this.setVisible(false); }

12)密碼修改確認界面

21

第二次輸入新密碼,具體代碼如下: “確定”按鈕的鼠標事件代碼:

private boolean Samechars(String str) //若6位密碼相同,則返回false {

if(str.equals("000000") ==true || str.equals("111111") ==true || str.equals("222222") ==true || str.equals("333333") ==true || str.equals("444444") ==true || str.equals("555555") ==true || str.equals("666666") ==true || str.equals("777777") ==true || str.equals("888888") ==true || str.equals("999999") ==true)

return true;

else

return false; }

private void jButton11MouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

String b= jPasswordField1.getText();

Atm.password2=b;

int i = jPasswordField1.getText().length();

if(i== 6 && Atm.password1.equals(b)&& Samechars(b)==false)

{

Atm.thePassword = b;

Atm.FileWriter();

new AtmPasswordChangeSuccess().setVisible(true);//進入修改成功界面

this.setVisible(false);

22

}

else

{ new AtmPasswordUnsucc().setVisible(true);//進入失敗界面

this.setVisible(false);}

} 13)密碼修改成功界面

當兩次輸入的密碼相同,則彈出密碼修改成功界面,點擊“繼續”按鈕返回到主交易界面,退出系統則點擊“退卡”按鈕。代碼略。 14)密碼修改失敗界面

23

點擊“確定”按鈕,則返回到修改密碼界面,若放棄修改點擊“退卡”按鈕,若還想進行其他交易,則點擊“確定”后,再點擊修改密碼界面的“返回”按鈕。

“確定”按鈕的鼠標點擊事件代碼:

private void jButton2MouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

new AtmPasswordChange().setVisible(true);//返回到密碼修改界面

this.setVisible(false); }

15)存款成功界面

24

點擊“繼續”則返回到主交易界面,“退出”則退出交易。 16)存款失敗界面

當所存金額不是100的整數時,則存款失敗,同樣點擊“返回”按鈕則返回到主交易界面,點擊“退卡”則退出交易。 17)取款成功界面

25

當索取金額不大于5000,且是100的整數,當前余額不小于索取金額時,則取款成功。

18)取款失敗界面(余額不足)

當輸入的金額大于當前余額,輸入的金額不大于5000且是100的倍數,則彈出余額不足界面。 19)取款失敗界面(輸入金額錯誤)

26

當輸入的金額不是100的倍數且大于5000時,出現此界面。

五、參考文獻

《Java應用案例教程》張紅梅,姜曉剛等著

清華大學出版社

六、心得體會

在這次的期中課程設計中,我主要運用了Java語言的圖形用戶界面設計、異常處理、Swing控件,輸入輸出流等,綜合運用了Java語言。我深刻感受到了面向對象語言中類庫的強大功能,掌握了運用Java中的類實現某些基本功能,在完成設計的同時培養了自己的編程思維,為以后做別的設計打下基礎。

剛開始做ATM機課程設計的時候,我簡直一點頭緒也沒有,我想著自己編程一直都那么差,怎么可能完成這么難的設計,但是這是期中考試設計,肯定得交啊,所以我不得不圖書館借書看,邊看邊做,在做的過程中,我才知道java不只是寫代碼,還有許多其他的功能,我發現我對專業課不像以前那么的排斥了,還有感覺通過自己查詢相關書籍去實踐以及和同學交流獲取的知識更鞏固,我不再那么討厭編程了,我覺得無論什么事情,只要自己愿意去嘗試,并且盡自己最大努力去做,總會有所收獲的。本來一直認為這門專業對女生來說學起來很吃力,很困難,但是現在又有了信心,差的人可以付出更多的努

27

力去彌補自己的不足,這樣就可以不被落下了。在以后的學習中,我會更加努力,我覺得java學習一定要理論與實踐相結合,才能更好地掌握知識。

28

第三篇:人事管理系統Java課程設計報告

湖南科技大學計算機科學與工程學院

數據庫課程設計報告

題目:人事管理管理系統

學 號:1005030221 姓 名:艾向兵 指導教師:張黎

完成時間:2012年1月4日 組員:蘇勇,成佳裕,艾向兵

企業人事管理系統主要用于員工個人資料的錄入,職務變動的記錄和管理。使用人事管理系統,便于公司領導掌握人員的動向,及時調整人才的分配 1.1系統功能需求分析

人事管理系統主要有以下幾項功能要求: .新員工資料的輸入。

.自動分配員工編號,并且設置初始的用戶密碼: .人事變動的記載,包括崗位和部門的調整。 .員工信息的查詢和修改,包括員工個人信息和密碼 1.2 系統功能模塊設計

根據系統功能要求,可以將系統分解成幾個模塊來分別設計應用程序界面,如圖,

人事資源管理 包括:新員工檔案輸入,人事變更,員工檔案查詢

1.3 與其它系統的關系

本關系是公司管理信息系統的基礎部分,為其他子系統,如考勤管理系統,工資管理系統和員工培訓系統,提供員工的基本信息。同時為其他系統提供了員工登錄的密碼認證和權限分配。 1.4數據庫設計 數據庫需求分析:

員工信息:員工號,密碼,權限,姓名,性別,生日,專業,通訊地址,電話,Email,當前狀態,其他。

人事變動:記錄號,員工,變動,詳細描述

部門設置:部門編號,名稱

員工變動代號表

員工信息表

員工職位代碼表

管理員登陸界面

信息查詢,修改,刪除主界面

查詢單個員工的界面

總 結

這次的課程設計,是在學習了Java以后通過閱讀課本及在圖書館借閱相關書籍同嚴景、孟珍三人共同完成的。在開發這個系統的過程中,碰到很多或大或小的問題,我們一起思考,一起努力,最后大部分都解決了,得到了現在的這個簡單的人事管理系統。

在編制過程中,我們首先考慮到了界面的友好性,并在界面設計時不采用煩瑣的細節,使界面簡單、清晰,便于操作。一開始我們是想做個登錄界面,實現用戶的登錄權限管理,但試了幾次都沒有達到預期的效果,最后不得不放棄。

通過這次課程設計,我知道了什么事情都不那么簡單,只有努力去做了,你才會有收獲,不管收獲大小,付出的過程總是有的。有些事情只有親身感受,你才知道它的價值有多大。同時在遇到困難的時候要沉著冷靜,首先要冷靜分析問題,對于很難解決的問題要學會請教他人,還可以與別人合作。

在這次數據庫系統課程設計中,我主要進行的是界面的設計,以及進行進行整合操作,界面是我學習Java以來第一次做,以前不怎么用的JTabel等,現在都已經熟練的應用了,特別是這次的彈出窗口,我在做這個的時候可謂是一竅不通,因為把按鈕JButton定義為了局部變量而在時間響應中而得不到另一個窗口的彈出。

還有就是在整個過程中的ID傳遞讓我不知怎么辦,一個簡單的參數傳遞才得以搞定,基礎知識還是不夠牢靠。在得到修改表的數據庫內容后未把值傳給表格。

雖然這次課程設計付出了大量的時間,但是我知道我得到的收獲遠遠不是這些時間可以衡量的,它將給我今后的學習和工作帶來更多的收益。通過對此課題的開發,使我對用Java開發系統有了一個比較清楚的認識,體會到理論和實踐的重要性。由于自己的分析設計和程序經驗不足,該系統設計和實現過程中,還有許多沒有完善的地方,比如沒有設置登錄界面,沒有考慮到異常等多方面問題,這些都有待進一步完善和提高。對于文中出現的不足和系統中出現的問題敬請老師指導。

彈出登錄程序的界面程序

public void actionPerformed(ActionEvent e){

if(e.getSource()==okButton){

String userID=text.getText(); String passWD=String.valueOf(passwd.getPassword()); if(userID.equals("1")&&passWD.equals("1")){

JOptionPane.showMessageDialog(null, "登陸成功!", "消息", JOptionPane.INFORMATION_MESSAGE);

new UserWindow2().userWindow2();//彈出第二個窗體

} else{

JOptionPane.showMessageDialog(null, "對不起您的用戶名或密碼錯誤!", "錯誤",JOptionPane.ERROR_MESSAGE);

text.setText(""); passwd.setText(""); } } if(e.getSource()==deleButton){

text.setText(""); passwd.setText(""); }

} 進行信息查詢,修改,刪除的程序響應代碼:

public void actionPerformed(ActionEvent e){

if(e.getSource()==button1){

new UserWindow3();

} if(e.getSource()==button2){

UserWindow7 u= new UserWindow7(); u.userWindow7(); } if(e.getSource()==button3){ UserWindow5 u=new UserWindow5();

u.userWindow5(); }

public void actionPerformed(ActionEvent e){

if(e.getSource()==button){ int id= Integer.parseInt(text0.getText());//得到用戶編號

String name=text1.getText();//得到用戶姓名

String sex=text2.getText(); //得到性別

String birthDay=text3.getText(); //得到生日 String department=text4.getText();//得到所在部門 String job =text5.getText();//得到職位

String education=text6.getText();//得到教育程度 String spcialty=text7.getText();//專業技能 String address=text8.getText();//得到地址 String tel=text9.getText();//得到電話

String email=text10.getText();//得到電子郵箱 String state=text11.getText();//得到員工狀態 String remark=text12.getText();//得到備注 Insert in=new Insert();//

boolean b;

b=in.insert(id,name,sex,birthDay,department,job,education,spcialty,address,tel,email,state,remark); if(b){ JOptionPane.showMessageDialog(null, "數據保存成功!", "消息", JOptionPane.INFORMATION_MESSAGE); }

} }

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

id = Integer.parseInt(text.getText());

if(e.getSource()==button){ UserWindow8 us = new UserWindow8(); us.userWindow8(id);

}

Container container=this.getContentPane(); container.setLayout(new BorderLayout());

JPanel pan =new JPanel(); JLabel lab = new JLabel("請輸入工號:"); JTextField text=new JTextField(10); JButton button =new JButton("查詢"); JButton button1=new JButton("刪除"); pan.add(lab); pan.add(text); pan.add(button); pan.add(button1); container.add(pan);

String []titles={"員工編號","姓名","性別","生日","部門","職務","教育程度","專業技能","家庭住址","聯系電話","電子郵箱"};

String [][]userInfo={};

JTable table =new JTable(userInfo,titles); table.isCellEditable(2,2); JScrollPane scrollpane

=new

JScrollPane(taboooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo......................le);

container.add(scrollpane,BorderLayout.SOUTH);

第四篇:Java web課程設計實訓報告

我們進行了為期一周的Java web的課程實訓。在這次實訓中,我覺得我學到了很多東西。這次,老師給我們安排了一個項目,是關于商店購物的。首先,我們劃分了幾個小組,每組4-6人,每個人有每個人的工作,每個人的工作完成后整合到一起,這個項目就完成了。我在我們小組的工作是寫一段刪除商品的Java代碼。因為我的基礎比較差,所以我分擔的工作比較少,下面是我做的一段代碼:

public void deleteProduct(String id) {

Statement stmt = null;

connectTODB();

int tempid =

Integer.parseInt(id);

try {

stmt =

this.con.createStatement();

stmt.execute("delete from

shop_info where product_id=" + tempid);

} catch (Exception e) {

e.printStackTrace();

} finally {

close(this.con, stmt, null); }}

總而言之,這次實訓對我的幫助很大,我工作會很有從中學到了什么是團隊協作,正所謂團結就是力量,不僅如此,我還學到了很多的專業知識,積累了一些經驗。我想,對于我以后的工作會很有幫助,希望還能有更多像這樣的機會讓我能夠鍛煉我自己。

第五篇:Java課程設計

Java及J2EE課程設計題目

1、文件檔案管理

文件檔案管理系統主要對外來文件、下發文件和需要抄送的文件進行統一管理。劃分為以下三個模塊:收文管理、發文管理、抄送文件。

1. 收文文件增加、刪除和修改,其字段有:收文編號、收件日期、文件標題、內容、發文單位、簽發人

2. 發文文件增加、刪除和修改,其字段有:發文編號、發件日期、文件標題、內容、收文單位、發件人

3. 抄送文件增加、刪除和修改,其字段有:文件編號、發件日期、文件標題、內容、抄送單位、發件人

4. 查詢條件是發文類型(收文、發文還是抄送)、文件標題、內容進行模糊查詢。

應用工具:jsp+struts+jdbc

題目等級:A

2、運動員檔案管理

運動員檔案管理系統是對運動員的基本信息及參加比賽的情況進行管理維護。分為兩個模塊:運動員建檔、比賽記錄。

5. 運動員建檔增加、刪除和修改,其字段有:學生編號、姓名、出生日期、性別、民族、政治面貌、主修項目、聯系方式

6. 對運動員的檔案進行模糊查詢,查詢條件有:學生編號、學生姓名、性別、主修項目

7. 對比賽記錄進行增加、刪除、修改,其字段有:學生編號、姓名、時間、地點、比賽名稱、參加項目、成績、名次

8. 對比賽記錄進行模糊查詢,查詢條件有:學生編號、學生姓名、比賽名稱、參加項目、成績 應用工具:jsp+struts+jdbc

題目等級:A

3、信息發布系統

信息發布系統是將最新信息、以最快的方式展示給用戶。提供信息的維護管理功能。信息主要字段:發布時間、標題、內容、有效期開始時間、結束時間、發布人、是否閱讀,完成對信息的發布、修改、刪除操作,對信息進行模糊查詢,其查詢條件為標題、內容、發布人

應用工具:jsp+struts+jdbc

題目等級:A

4、通訊錄管理

通訊錄管理系統是方便用戶管理自己的聯系人,查找相應的聯系方式。根據類別的不同對聯系人進行分類管理。聯系人信息有:姓名、性別 、職務、辦公電話、手機、宅電 、電子郵件、通訊地址,完成對聯系人的增加、刪除、修改操作,提供對通訊錄進行模糊查詢,其條件為姓名、性別、職務、通訊地址字段

應用工具:jsp+struts+jdbc

題目等級:A

5、備忘錄管理

備忘錄管理系統是記錄每天需要做的事情,起到一個提醒的作用。提供對這些信息的維護功能。備忘錄中的內容主要有:日期、標題、內容這三個數據項,完成對其的增加、刪除、修改操作,并可以按日期和標題、內容進行模糊查詢

應用工具:jsp+struts+jdbc

題目等級:A

6、會議管理

會議管理系統是記錄會議的基本信息,開完會后記錄會議的討論結果,進行備案,供以后查詢使用。會議的基本信息:會議主題、會議類型 (周會、報告會、考務會……)、會議狀態 (準備中、進行中、已結束三種)、會議時間、會議地址 、參與者 、會議主要內容,完成對其會議基本信息的增加、刪除、修改操作,并要記錄會議結果,會議記錄結果主要記錄的是會議討論結果 、領導簽字兩個數據項。 應用工具:jsp+struts+jdbc

題目等級:A

7、日程管理

日程管理要記錄每天的工作日程安排,主要內容包括:記錄時間、名稱、內容、地點、日程的開始

和結束時間,完成對基本信息的增加、刪除、修改操作,并對日程的信息進行查詢,查詢條件有:名稱、內容

應用工具:jsp+struts+jdbc

題目等級:A

8、日志管理

日志管理要記錄每一天完成工作的情況,記錄的信息有時間、上午工作記錄、下午工作記錄、記錄人,完成對這些信息的維護,并對日期進行查詢

應用工具:jsp+struts+jdbc

題目等級:A

9、用戶管理

為了方便網站管理者對用戶進行身份確認,或者是用戶購買以后進行配送等服務,必須要有用戶管理系統。用戶管理系統應該具有用戶注冊、用戶登錄、用戶修改和用戶注銷等功能。

1. 用戶注冊(1)

2. 用戶登錄(1)

3. 用戶信息修改(1)

4. 用戶注銷(1)

應用工具:jsp+struts+jdbc

題目等級:A

10、數據查詢

網上購物的一個優勢是可以在商品中進行查詢。

1. 生成查詢記錄集(1)

2. 分頁顯示功能(1)

3. 查看商品詳細信息(1)

應用工具:jsp+struts+jdbc

題目等級:A

11、購物車

1.添加到購物車(1)

2.查看購物車(1)

3.購物車操作(1)

4.結帳(1)

應用工具:jsp+struts+jdbc

題目等級:A

12.新聞管理系統

題目:當今社會是一個信息社會,人們通過信息了解社會情況,進行社會活動,而新聞作為企事業單位宣

傳自己,發布信息的主要形式,而在網絡新聞的宣傳是一個新興事務,并且發展很快,已經成為一個重要信息發布媒體。所以現要求你設計一個用于新聞管理的信息系統,實現新聞的編輯與發布。

功能要求:本系統要求可以完成新聞在線發布,在線編輯,新聞分類,圖片新管理等功能,技術上要求

使用JSP技術。

題目等級:B

13.在線考試系統

題目:考試作為學員學習效果的檢驗的主要方式一直被采用,而且考試形式也有許多方式,如筆試,面

試等,在線測試作為一種新的考試形式,得到越來越快的發展。所以現要求你設計一個在線考試系統,實現在線測試。

功能能要求:實現在線測度,在線評測,隨機出題,試題編輯等功能,技術上采用JSP+JavaBean實現。題目等級:A

14.網上書店系統

題目:圖書是人們了解知識,掌握知識的主要手段,傳統的書店都店面形式,人們需要去書店才能夠購

買,花費大量的時間也不一定得到一本滿意的書籍。而網上書店就是利用網絡為人們提供一個足不出戶就可以買到一本理想的書籍的方式。所以要求你設計一個網絡書店系統,實現書籍的在線銷售,在線閱讀。

功能要求:實現圖書在線閱覽,在線選購,新書推薦等功能,技術上要求采用JSP +JavaBean實現。 題目等級:A

15.學生學籍系統

題目:學生學籍管理是一個學校管理的重要組成部分,學生學籍管理也是最麻煩的一項管理,所以實現

學生學籍管理的信息化是一種簡化管理的主要途徑?,F要求你設計一個實現學生學籍管理的系統,實現學生學籍管理的信息化。

功能要求:學生學籍注冊,查詢,更新,學生獎懲,學籍變動等功能。技術上要求采用JSP技術實現。 題目等級:B

16.留言本

題目:留言本是網站中用于與管理員進行信息交流的主要方式,是網站中的一個重要功能之一,現要求

你設計一個留言本,實現在線留言。

功能要求:留言發布,留言回復,留言置頂,留言驗證等功能,技術采用JSP實現。

題目等級:C

17.在線投票問卷管理系統

題目:在線調查是調查了解對某件事情人們反映的主要方式,是目前比要流行的一種調查方式?,F要求

實現一個在線投票調查系統,并可以進行結果統計,結果評測等功能。

功能要求:在線投票,在線答卷,在線統計,在線評測等功能,技術上采用JSP實現。

題目等級:C

18.員工檔案管理系統

題目:員工檔案是一個企業人才建設管理的重要資源,好的員工檔案管理,對提高員工工作積極性,

提高企業效益的重要方式。所以要求設計一個員工檔案管理系統,實現員工檔案管理的信息化管理。

功能要求:員工檔案注冊,員工考核,員工調動等功能,技術上采用JSP+JavaBean實現。

題目等級:A

19.文本編輯器

題目:參照Windows記事本程序設計一個文本編程器,可以進行文本的格式編輯。

功能要求:要求有菜單,工具欄,文本編輯功能所需要的功能,技術上采用Java圖形窗口技術實現。題目等級:C

20.計算器

題目:參照Windows計算器程序設計一個計算器,可以實現數學計算。

功能要求:要求功能上要與Windows計算器功能類似。

題目等級:C

21. HANNOI-塔

題目:運用多線程與圖形接口技術設計一個HANNOI-塔演示程序,要求增加簡易圖形界面。功能要求:能夠至少演示5級HANNOI-塔。

題目等級:B

22.挖雷游戲

題目:運用多線程程序與圖形接口技術設計一個挖雷游戲程序,要求有簡易的圖形界面。

功能要求:功能上與Windows掃雷游戲類似。

題目等級:A

23.動態時鐘

題目:運用Applet和多線程技術設計鐘表程序,以實現當前時鐘的顯示。

功能要求:要求有表盤,可以調整時間。

題目等級:B

24.音樂播放器

題目:運用Applet技術設計一個可以播放音樂的播放器。

功能要求:可以播放音樂,可以添加樂曲等功能。

題目等級:C

25.實驗室網上簽到系統

題目:要求實現一個實驗在線簽到系統,學生可以在上實驗時完成簽到。

功能要求:課程設置,新建簽到,學生簽到列表,學生在線簽到等功能。技術上采用JSP+JavaBean技

術實現。

題目等級:B

26.用戶管理系統

題目:要求實現用戶管理系統,可以實現用戶注冊,用戶權限管理等功能。

功能要求:用戶注冊,用戶極限分配,用戶登錄等功能。技術采用JSP技術實現。、

題目等級:C

27.圖書館管理系統

題目:要求實現圖書館的在線管理,學生可以在線借書,在線閱覽等功能。

功能要求:在線圖書管理。在線閱讀,在線借書,還書等功能。技術上采用JSP+JavaBean實現。題目等級:B

28.求職招聘系統

題目:網上求職是當今人才流動,人才引進的重要途徑,但對于成百萬的簡歷的管理,職位的發布的

管理如果采用人工的方式會花費大量的人力、物力,但如果實現計算機網絡化 管理就顯得容易一些,所以現要求你設計一個求職招聘管理系統,實現人才交流的信息化處理。。

功能要求:職位發布,在線投簡,在線應聘等功能。技術上采用JSP+JavaBean技術實現。題目等級:B

29.倉庫管理系統

題目:倉庫管理是一個非常煩瑣,但是很重要的工作。如果能夠實現倉庫管理的計算機處理,對于提

高工作效率,降低工作成本,能夠起到非常重要的作用,所以現要求實現一個倉庫管理系統,實現倉庫的信息化管理。

功能要求:實現貨物的出庫,入庫,庫存統計,庫存預警等功能。技術上采用JSP+JavaBean技術實現。題目等級:B

30企業網站管理系統

題目:網站對企業宣傳工作的開展提供一個非常的好的效果,產生很好的效益,這就說明網站已經成

為企業宣傳自己的重要手段,網站管理的好壞直接影響這個網站的應用,所以現要求為某企業網站設計一個管理系統,實現網站的后臺管理。

功能要求:產品發布,用戶管理,信息發布等功能。技術上采用JSP+JavaBean技術實現。題目等級:A

31.流量統計系統

題目:網絡流量是反映一個網站受關注度情況的重要表現,是網站調整版面信息的參考,訪問流量高

的網站證明其效益非常好,是一個非常理想的網站,但流量低的網站就需要進行信息的更新和版面的修改,以提高網站的訪問量,這樣網站流量的時時統計能夠給網站管理員提供一個網站運行情況信息參考,為其更好的管理網站提供幫助?,F要求你設計一個網站訪問流量的統計系統,時時統計網站訪問流量。

功能要求:顯示在線人數,當前訪問者IP,歷史訪問人數,最高流量時間等功能。技術上采用JSP技

術實現。

題目等級:C

其它可選題目

以上題目的等級全都為C,所選工具應為jsp+jdbc,都要完全相應的增、刪、改、查等功能

(1) 酒店管理信息系統

(2) 客房管理信息系統

(3) 藥品管理信息系統

(4) 學籍管理信息系統

(5) 成績管理信息系統

(6) 宿舍管理信息系統

(7) 圖書管理信息系統

(8) 財務處理信息系統

(9) 固定資產核算信息系統

(10) 工資管理信息系統

(11) 材料管理信息系統

(12) 成本管理信息系統

(13) 房地產產權產籍管理信息系統的開發

(14) 住宅小區物業管理信息系統的開發

(15) 建設工程報價管理信息系統的開發

(16) 建設工程預算系統的開發

(17) 項目材料管理信息系統的開發

(18) 工程材料采購管理信息系統的開發

(19) 工程成本管理信息系統的開發

(20) 機械設備租賃管理系統的開發

(21) 工程圖檔管理信息系統的開發

(22) 企業人力資源管理信息系統的開發

(23) 企業職工培訓管理信息系統的開發

(24) 企業職工醫療保險信息系統的開發

(25) 商品銷售管理信息系統的開發

本文來自 99學術網(www.gaojutz.com),轉載請保留網址和出處

上一篇:讀書筆記大全600字下一篇:h7n9禽流感的學習教案

91尤物免费视频-97这里有精品视频-99久久婷婷国产综合亚洲-国产91精品老熟女泄火