Java語言課程設計任務書及題目(tcl)
《Java語言課程設計任務書及題目(tcl)》由會員分享,可在線閱讀,更多相關《Java語言課程設計任務書及題目(tcl)(26頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、Java語言課程設計任務書及題目 一、 Java語言課程設計目的和要求 1、目的: Java語言程序設計課程是一門實踐性很強的課程。 JAVA課程設計以軟件工程的思想為導向,從可行性研究開始,經(jīng)過系統(tǒng)分析、系統(tǒng)設計、系統(tǒng)實施等主要階段的過程,通過課程設計可以培養(yǎng)學生綜合運用理論知識,解決工程實際問題,受到系統(tǒng)軟件設計的初步訓練。是鞏固學生所學理論知識、培養(yǎng)學生動手能力并使理論與實際相結合的重要實踐環(huán)節(jié)。提高和訓練學生面向對象的編程能力。本課程設計的目的是通過學生用Java語言設計一個完整的應用程序,使學生綜合應用所學知識完成軟件的分析、設計、調(diào)試和總結,可加深和鞏固對理論教學
2、和實驗教學內(nèi)容的掌握,使學生進一步掌握所學的面向對象技術完整系統(tǒng)開發(fā)的方法。培養(yǎng)其靈活運用所掌握的Java語言的綜合應用能力解決實際工程問題的能力、項目開發(fā)中團隊合作精神、創(chuàng)新意識,養(yǎng)成良好的編程習慣。 2、要求: 本次課程設計是對前面學過的所有面向對象的編程思想以及編程方法的一個總結、回顧和實踐,因此,開始設計前學生一定要先回顧以前所學的內(nèi)容,明確本次作業(yè)設計所要用到的技術點并到網(wǎng)上搜索以及查閱相關的書籍來搜集資料。通過編寫一個基于JAVA的應用系統(tǒng)綜合實例,來掌握Java語言編程技巧。 1)對系統(tǒng)進行功能模塊分析、控制模塊分析正確,符合課題要求,實現(xiàn)相應功能;可以加以其他功能
3、或修飾,使程序更加完善、合理; 2)系統(tǒng)設計要實用,編程簡練,可用,功能全面 3)說明書、流程圖要清楚 4)記錄設計情況(備查,也為編寫設計說明書作好準備); 5)要求采用模塊化程序設計方法,及鋸齒型書寫格式,要求上機調(diào)試通過和按設計報告格式。( 界面要求:盡量使用圖形界面實現(xiàn),要符合日常軟件使用規(guī)范來設計菜單和界面。如果無法實現(xiàn)圖形界面,則在命令行方式下也需要提供菜單,方便用戶操作。代碼要求:標識符命名遵循java命名規(guī)范。能夠考慮各種異常處理,注重提高程序運行效率。) 6)設計上交內(nèi)容:設計報告一份(按格式書寫);源程序文件。 3、課程設計步驟 1)分析項目要求: 每個課程
4、設計項目都有其相關的設計要求,其中對項目實現(xiàn)的功能做了詳細定義。如果某些知識面掌握的不是很好,可以再返回去重新熟悉與掌握。 2)自學新知識:每個課程設計項目都涉及一些新的知識面(老師沒有在課堂上講解的內(nèi)容),在開始設計前,首先要查閱相關資料,學習和掌握項目中涉及的新知識,提高自學能力。 3)界面設計:本次課程設計都是圖形界面程序,所以在實現(xiàn)程序功能前,可以先完成圖形界面設計(建議采用swing組件或第三方swt組件)。在部分項目運行效果示例中,抓取了運行結果界面。項目圖形界面所涉及了容器、組件、布局知識,在設計圖形界面前,可以再回顧下以上知識(建議采用較智能的開發(fā)工具如:Netbean、e
5、clipse、Jbuilder等)。 4)項目功能實現(xiàn):每種功能其實就是相應控件的響應事件,所以要根據(jù)課程設計要求把各種功能轉換成相應組件的響應事件。如動作事件(ActionEvent)、鍵盤事件(KeyEvent)、鼠標事件(MouseEvent)、焦點事件(FocusEvent)。對于比較復雜的功能,先要設計該功能實現(xiàn)的算法和程序流程圖,然后再用程序語句去實現(xiàn)。 5)項目測試與擴展:項目程序設計完以后,運行該項目,一一測試所有項目功能,如有不合要求的話,重新修改程序以達到項目要求。如有時間的話,可以在項目要求的基礎上擴展創(chuàng)新一些功能,根據(jù)其創(chuàng)新情況可以給予適當?shù)募臃帧? 二、Ja
6、va語言課程設計選題如下: 1、課題:算術運算測試 功能要求:該程序用字符界面實現(xiàn)十道100以內(nèi)加減法數(shù)學題,能根據(jù)題目計算出答案,與輸入答案對比,判斷做題是否正確,最后計算分數(shù)。 界面要求:用字符界面實現(xiàn)、也可用圖形界面實現(xiàn)。 2、課題:猜數(shù)游戲 功能要求:計算機產(chǎn)生隨機數(shù),猜中即勝,猜不中,提示是大了還是小了,繼續(xù)猜,直至猜到,給出所用時間和評語。 界面要示:用字符界面實現(xiàn)、也可用圖形界面實現(xiàn)。 3、學生成績管理 功能要求: 1) 輸入十個同學的學號,姓名,四科成績(應用數(shù)學、大學英語、Java程序設計、計算機應用基礎) 2) 計算出平均成績。以平均成績降序輸出成績表。
7、 3) 輸出全組各科平均分,最高分和最低分。 4) 輸入姓名查詢成績 界面要示:用字符界面實現(xiàn)、也可用圖形界面實現(xiàn)。 4、計算器模擬程序 功能要求:該程序顯示GUI用戶界面,能實現(xiàn)整數(shù)的加、減、乘、除四則運算。 界面要示:用圖形界面實現(xiàn)??蓞⒖枷聢D。 圖1 計算器模擬程序界面 5、畫隨機的圓 功能要求:實現(xiàn)簡單的動畫。具體要求:自動出現(xiàn)由小到大變換的圓,位置與顏色隨機,變到150直徑時擦除,重新再出現(xiàn)圓;變換速度有HTML文件傳入的參數(shù)控制(控制sleep時間)。 界面要求:用Java Applet實現(xiàn)。 6、用菜單和按鈕來控制繪圖 功能要求:實現(xiàn)簡單繪圖功能,具體
8、要求:畫直線,畫空心或實心橢圓、畫空心或實心矩形、畫多邊形(圖形的位置和大小可在程序中設定)。 界面要求:用圖形界面實現(xiàn)。可參考圖2、圖3和圖4。 圖2 初始界面 圖3 使用菜單繪圖 圖5 使用按鈕繪圖 三、設計時間 一周,具體安排如下: 第一階段: 1.班級分組,選定課題,查閱相關資料 1天 2.劃分模塊、小組成員分工,編制源程序 3天 第二階段:上機調(diào)試,修改、完善系統(tǒng) 2天 第三階段:撰寫、上交課程設計說明書(1份/人),
9、上交課程設計作品源程序(每課題組一份),作品答辯。 1天 四、設計方式和安排 1. 分組選題:最多3人為一組(盡量一人一題),每組一個課題(可根據(jù)課題工作量大小,合理分配人數(shù)),每組設組長一名,負責該組設計工作的協(xié)調(diào)、分工等。 2. 設計過程: 1) 分析設計準備階段(按組討論、對系統(tǒng)功能進行分析,確定算法,并進行明確分工); 2) 編程調(diào)試階段(繪制流程圖,編制源程序;上機調(diào)試,修改程序) 3) 總結報告和書寫說明書階段(撰寫上交相關資料) 。 五、考核內(nèi)容和方式 1、在設計期間,學生要按時上機,設計結束根據(jù)記錄的設計材料整
10、理成設計說明書。設計說明書中應寫下設計中的主要收獲,要求對問題有一定的分析,文字簡短明確流暢。 2、通過設計答辯方式,并結合學生的動手能力,獨立分析解決問題的能力和創(chuàng)新精神,設計成績由指導教師根據(jù)考勤、設計說明書質量、答辯表現(xiàn)以及學習態(tài)度按五級分制綜合評定。 成績分優(yōu)、良、中、及格和不及格五等。 其他參考題目: 1、編寫一個記事本程序 要求: 用圖形用戶界面實現(xiàn)。 能實現(xiàn)編輯、保存、另存為、查找替換等功能。 提示:使用文件輸入輸出流。 2、模擬龜兔賽跑 要求: 用圖形用戶界面實現(xiàn)。 能設置比賽時間,馬匹的數(shù)量等等。 在任意時間段內(nèi)馬匹的速度是隨
11、機的。 開始比賽之后以動畫顯示賽馬過程。 提示:使用多線程 3、學生信息管理系統(tǒng) 要求: 使用圖形用戶界面 用數(shù)據(jù)庫建立1或2個學生信息表。(不限使用哪種數(shù)據(jù)庫) 能連接數(shù)據(jù)庫并實現(xiàn)查詢、增、刪、改等功能。 4、圖書信息管理系統(tǒng) 要求: 使用圖形用戶界面 用數(shù)據(jù)庫建立1或2個圖書信息表。(不限使用哪種數(shù)據(jù)庫) 能連接數(shù)據(jù)庫并實現(xiàn)查詢、增、刪、改等功能。 5、聊天小程序 要求: 使用圖形用戶界面。 能實現(xiàn)一個聊天室中多人聊天。 可以兩人私聊。 提示:使用socket通信 6、ATM柜員機模擬程序 要求:使用圖形用戶界面。當輸入給定的卡號和
12、密碼(初始卡號和密碼為123456)時,系統(tǒng)能登錄ATM柜員機系統(tǒng),用戶可以按照以下規(guī)則進行: 1、查詢余額:初始余額為10000元 2、ATM取款:每次取款金額為100的倍數(shù),總額不超過5000元,支取金額不允許透支。 3、ATM存款:不能出現(xiàn)負存款。 4、修改密碼:新密碼長度不小于6位,不允許出現(xiàn)6位完全相同的情況,只有舊密碼正確,新密碼符合要求,且兩次輸入相同的情況下才可以成功修改密碼。 7、超市收銀系統(tǒng) 要求:使用圖形用戶界面。 由收銀員輸入顧客的會員卡卡號(若有卡)、所購商品的貨號等。從數(shù)據(jù)庫中取出有關價格信息,再把這些信息返回給收銀臺。同時把該收銀臺的銷售總量和
13、有關種類商品的剩余量以及該持卡顧客的消費情況交數(shù)據(jù)庫存儲以供查詢。 另外,對沒有卡的消費情況不記錄該顧客的消費情況等個人信息。如果一個未持卡顧客一次購物滿200元,可為其發(fā)放一張會員卡,以后在該商場購物可向9折優(yōu)惠。 8、萬年歷 要求: 使用圖形用戶界面。 實現(xiàn)日期與星期的查詢 9、網(wǎng)絡監(jiān)聽程序 要求: 使用圖形用戶界面。 有服務器和客戶端,服務器監(jiān)聽客戶端的登陸。即:如果A客戶端登陸服務器,則服務器界面上的A字母對應的紅燈變成綠色。 綠燈表示連接,紅燈表示斷線。 提示:socket的監(jiān)聽方法 10、全球通計費程序 要求: 使用圖形用戶界面。 使用真實
14、的全球通資費標準,模擬統(tǒng)計一個特定號碼的一個月的實時話費。 能根據(jù)輸入實現(xiàn)各種用戶的話費的計算并顯示月實時帳單。 提示:使用接口和多個子類實現(xiàn)分別表示金卡、銀卡等各種套餐的話費計算。 11.日歷記事本 要求:帶有日程提醒功能的日歷。 1、顯示信息:用戶可以向前翻頁查詢前一個月的日期,也可以向后翻頁查詢下一個月的日期。 2、定時提醒:用戶可以針對某一天來添加,刪除和編輯這一天的日程提醒信息,當系統(tǒng)時間和提醒時間相吻合時,給出具有提示信息的對話框。 3、查詢信息:用戶可以查詢到某個月的所有的提示信息。 12.電子英漢詞典 要求: 能夠編輯詞典庫中的信息 能夠實現(xiàn)英譯漢
15、,漢譯英。(要考慮一詞多義) 13.加密與解密 要求:采用圖形用戶界面 1、給定任意一個文本文件,進行加密,生成另一個文件。 2、對加密后的文件還原。 14.小游戲 要求:。 程序隨機產(chǎn)生20—50根火柴,由人與計算機輪流拿,每次拿的數(shù)量不超過3根,拿到最后一根為勝。(使用圖形界面) 15.敏感詞匯分析 要求: 任意選擇一個文本文件,分析該文件,如果存在敏感詞匯(這些詞匯保存在sentive.txt文件中,每個詞占一行),報告每個詞出現(xiàn)的次數(shù)。 16、猜數(shù)字游戲 要求:計算機產(chǎn)生隨機數(shù),猜中即勝,猜不中,提示是大了還是小了,繼續(xù)猜,直至猜到,給出所用時間
16、和評語。 要求提交Application和Applet兩個版本的程序。 17、小學算術運算測試程序 要求:制作一個可供小學數(shù)學運算程序:10以內(nèi)加減法,能根據(jù)輸入題數(shù)出題,判斷做題是否正確,最后計算分數(shù)。 要求提交Application和Applet兩個版本的程序。 18、模擬科學計算器 要求:界面模擬Windows中的計算器程序。 實現(xiàn)基本數(shù)學運算、函數(shù)等功能:加、減、乘、除、階乘、正弦、余弦和指數(shù)運算。 實現(xiàn)要點:添加相關組件并進行按鈕事件處理。 要求提交Application和Applet兩個版本的程序。 19、模擬畫圖 要求:模擬Windows中的畫圖
17、程序,實現(xiàn)圖形圖像的編輯、修改、保存等功能。 20、模擬時鐘 要求:通過多線程技術,重繪界面,界面包括表盤和指針。并用數(shù)字表顯示時間。 實現(xiàn)要點:多線程技術,圖形的繪制。 21、打字訓練測試軟件 要求:設計一個英文打字測試軟件。從文件中調(diào)入英文錄入材料,最后可以給出錯誤率,平均錄入速度。 22、ip地址、手機歸屬地查詢 實現(xiàn)要點:數(shù)據(jù)庫查詢。 23、五子棋 功能要求:可兩人對下(用鼠標操作),判斷勝負。 界面要求:美觀簡潔,有簡單操作說明。 24、電話號碼查詢系統(tǒng)。 要求:有電話錄入,修改,增加,刪除,按姓名查詢,按電話號碼查詢,按部門查詢,按部門顯
18、示,顯示所有電話號碼信息,打印等功能。 25、?其他題目: 如掃雷、紅心大戰(zhàn)等游戲程序的設計; 作業(yè)管理系統(tǒng),具有對本學期所有作業(yè)管理、運行的管理系統(tǒng); 學生成績管理系統(tǒng); 學生信息管理系統(tǒng); 試題管理系統(tǒng); 動畫制作,根據(jù)所學知識編制一些動畫程序; 及媒體播放器等等自擬題目。 普通題 題目 計算器 設計內(nèi)容 設計一個圖形界面(GUI)的計算器應用程序,完成簡單的算術運算、 設計要求 設計的計算器應用程序可以完成家法、減法、乘法、除法和取余運算。且有小數(shù)點、正負號、求倒數(shù)、退格和清零功能。 學習要點 本程序主要練習使用布局管理器設計一個計算器的界面,
19、并練習使用事件監(jiān)聽器處理數(shù)據(jù)的輸入,并完成相關的計算。 設計思路 本應用程序繼承自框架類(Frame),此程序使用Frame布局管理器BorderLayout,將單行文本框加入到“North”區(qū)域,包含各種按鈕的面板Panel p加入到”Center”區(qū)域。 包含各種按鈕的面板Panel p 采用4行5列的網(wǎng)格布局,然后將數(shù)字按鈕和運算符按鈕以及控制按鈕添加到面板中。同時注冊按鈕事件監(jiān)聽器。如: Button b=new Button(); b.addActionListener(事件監(jiān)聽器); 事件監(jiān)聽器中的事件處理方法void actionPerformed(Act
20、ionEvent evt)完成主要的按鈕事件的處理。事件處理分以下幾種情況:數(shù)字按鈕事件(”0”,”1”,”2”…”8”,”9”)、運算符按鈕事件(”+”,”-“,”*”,”/”,”%”)、正負號按鈕事件(”+/-“)、小數(shù)點按鈕事件(”.”)、等號按鈕事件(”=”)、求倒按鈕事件(”1/x”)、退格按鈕事件(”退格”)、清楚按鈕事件(“C”)。 在事件處理。 觸發(fā)按鈕事件時,要進一步分析,是重新開始計算時觸發(fā)的按鈕事件還是計算中間觸發(fā)的按鈕事件。 計算器完成的是一個數(shù)學表達式,如:3+2,所以可以采用一個鏈表(LinkedList類)來存儲數(shù)字或字符,如3,+,2分別存儲在鏈表中,最后
21、運算時,可以一一取出來進行運算。 本應用程序中的數(shù)字按鈕和運算符按鈕可以分別定義以下兩個類的對象組件 數(shù)字按鈕NumberButton類如下: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class NumberButton extends Button { int number; public NumberButton(int number) { super(""+number); this.number=number; set
22、Foreground(Color.blue); } public int getNumber() { return number; } } 運算符按鈕OperationButton類如下 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class OperationButton extends Button { String 運算符號; public OperationButton(String s) { sup
23、er(s); 運算符號=s; setForeground(Color.red); } public String get運算符號() { return 運算符號; } } 相關學習資料 LinkedList類: LinkedList類在Java標準類庫的java.util包定義,它提供域數(shù)組類似的服務,包括可以插入或刪除元素。與數(shù)組不同的是,LinkList對象可以根據(jù)需要,動態(tài)地改變大小。LinkList對象中存儲的是對Object類的一系列引用,對任何類型對象的引用都可以被添加倒LinkList對象中。LinkedL
24、ist類中有以下方法 public LinkedList() //構造方法 public Object getFirst() //返回鏈表中的第一個元素 public Object getLast() //返回鏈表中的最后一個元素 public Object removeFirst() 刪除并返回第一個鏈表元素 public Object removeLast() 刪除并返回最后一個鏈表元素 public void addFirst(Object o) //插入一個元素在為鏈表的第一個元素
25、 public void addLast(Object o) //插入一個元素為鏈表的最后一個元素 public boolean contains(Object o) //是否存在該元素 public int size() //返回鏈表元素個數(shù) public boolean add(Object o) //添加元素o public boolean remove(Object o)//刪除元素o public boolean addAll(Collection c) //添加一個對象集 c
26、 public void clear() //清除列表中的所有元素 public Object get(int index) //返回指定位置(index)的鏈表元素 public Object set(int index, Object element)//設定指定位置(index)的鏈表元素為元素element public void add(int index, Object element) //在鏈表特定位置(index)上插入鏈表元素 public Object remove(int index)//刪除指定位置(index)上
27、的鏈表元素 下面舉例應用LinkedList類 import java.awt.*; import java.awt.event.*; import java.util.LinkedList; public class UseLinkedList extends Frame { Public static void main(String args[]) { String opertation1[]={“+”,”-“,”*”,”/”,”%”}; String ipe0,ope1,ope2,ope3,ope4; Int n; LinkedList list
28、1;
For(int I=0;I 29、;
System.out.println(“ope0-ope4分別為”+ope0+ope1+ope2+ope3+ope4);
}
}
運算結果為:3
+ - &
運行效果示例:
題目 簡單投票管理系統(tǒng)
設計要求
設計一個如圖1所示的投票管理系統(tǒng)界面,要求輸入候選人名單后,點擊確認按鈕實現(xiàn)使用選擇框代表候選人,計選擇框的名字就是候選人的名字。點擊取消按鈕候選人輸入框為空,重新輸入候選人名單。選中候選人的選擇框時,表示給該候選人投一票。點擊確定按鈕時表示產(chǎn)生一張選票。點擊刷新按鈕回到程序的初始界面重新設置候選人。根據(jù)選擇框的狀態(tài)變化統(tǒng)計出候選人的最后得 30、票數(shù),并可按票選取多少點擊排序按鈕對候選人進行排序。(其中,最多從候選人中選取3人,如果一張選票選取多于3人,該票就作廢票處理。如果一個也沒投票,就作棄權處理。程序能顯示一共統(tǒng)計了多少選票,并能統(tǒng)計出廢票和棄權票的票數(shù)。
學習要點
本程序主要學習窗口的布局以及按鈕事件的觸發(fā)。
設計思路
定義幾個類變量來記錄投票相關記錄如:
Checkbox checkbox[] //選擇框數(shù)組,代表候選人
TextField personVote[] //文本條數(shù)組,顯示每個人的得票情況
int coun 31、t[] //記錄每個人的得票數(shù)
int totalVote=0, //總票數(shù)
int peopleNumber=0; //候選人個數(shù)
int 有效人數(shù)=3,廢票數(shù)=0,棄權票數(shù)=0;
在輸入候選人名單時是輸入一串名字,所以要從這一串名字中單個的提取出來并統(tǒng)計出候選人個數(shù),在完成這項功能時要用到StringTokenizer類。點擊確認按鈕后,根據(jù)候選人個數(shù)添加單選按鈕,并以候選人名字作為單選按鈕的標簽名。然后通 32、過確定按鈕事件分別給以上定義的各變量賦值。把結果顯示出來,同時可以根據(jù)peopleNumber的值對各候選人文本框排序,即調(diào)整候選人文本框中的內(nèi)容。
相關學習資料
StringTokenizer類
有時我們需要分析字符串并將字符串分解成可被獨立使用的單詞,這些單詞叫做語言符號。例如,對于字符串We are Students,如果我們把空格作為該字符串的分隔符,那么該字符串有3個單詞(語言符號)。而對于字符串WE,are,Student,如果我們把逗號作為了該字符串的分隔符,那么該字符串有3個單詞(語音符號)。
當我們分析一個字符串并將字符串分解成可別獨立使用的單詞時,可以使 33、用java.util包中的StringTokenizer類,改類有兩個常用的構造方法:
StringTokenizer(String s)為字符串s構造一個分析器。使用默認的分隔符集合,即空格符(若干個空格被看作一個空格)、換行符、回車符、Tab符、進紙符。
StringTokenizer(String sString delim)為字符串s構造一個分析器。參數(shù)delim中的字符被作為分隔符。
例如:StringTokenlizer fenxi=new StringTokenizer(“We are student”);
StringTokenlizer fenxi=new Strin 34、gTokenizer(“We,are;student”,”,”);
我們把一個StringTokenzier對象作一個字符串分析器。一個分析器可以使用nextToken()方法逐個獲取字符串中的語言符號(單詞),每當調(diào)用nextToken()時,都將在字符串中活得下一個語言符號。通常用while循環(huán)來逐個獲取語言符號,為了控制循環(huán),我們可以使用
StringTokenizer類中的hasMoreTokens()方法,只要字符串中還有語言符號,該方法就返回true,否則返回false。另外我們還可以調(diào)用countTokens()方法得到字符串一共有多少個語言符號。
運行效果示例
35、
圖1
題目:華容道-一個傳統(tǒng)的智利游戲
設計要求 編寫一個按鈕的子類,使用該子類創(chuàng)建的對象代表華容道中的人物。通過焦點事件控制人物顏色,當人物獲得焦點時顏色為藍色,當失去焦點時顏色為灰色。通過鍵盤事件和鼠標事件來實現(xiàn)曹操、關羽等人物的移動。當人物上發(fā)生鼠標事件或鍵盤事件時,如果鼠標指針的位置是在人物的下方(也就是組件的下半部分)或按下鍵盤的“↓“鍵,該人物向下移動。向左、向右和向上的移動原理類似。
學習要點 本程序主要練習使用布局管理器設計一個華容道游戲界面,并練習使用事件監(jiān)聽器(鼠標事件、鍵盤事件和焦點事件)實現(xiàn)按鈕的移動。
設計思路 首先是界面設計,該界面主要 36、包括十個人物按鈕(馬、曹操、關羽等)以及旁邊的四個邊框按鈕和重新開始按鈕。對于人物按鈕,我們可以創(chuàng)建Button按鈕的子類,在該類中定義按鈕的一些新的屬性和焦點事件監(jiān)聽器,如:按鈕的標簽名、按鈕的顏色、按鈕的排號(如這里有十個人物按鈕,從1排到十,在程序中可以依靠這個屬性區(qū)分人物按鈕)、按鈕顏色、按鈕獲得或失去焦點事件。同時在設計該界面時要考慮到各個按鈕的位置、大小等情況。在這給出了各按鈕的位置和大小參數(shù):(其中Person為繼承Button按鈕的人物按鈕類)
String name[]={"曹操","關羽","張","劉","馬","許","兵","兵","兵","兵"};
f 37、or(int i=0;i 38、,154,100,50);
person[2].setBounds(54,154,50,100);
person[3].setBounds(204,154,50,100);
person[4].setBounds(54,54,50,100);
person[5].setBounds(204,54,50,100);
person[6].setBounds(54,254,50,50);
person[7].setBounds(204,254,50,50);
person[8].setBounds(104,204,50,50);
39、
person[9].setBounds(154,204,50,50);
四個邊框按鈕的位置和大小參數(shù)為:
left.setBounds(49,49,5,260);
right.setBounds(254,49,5,260);
above.setBounds(49,49,210,5);
below.setBounds(49,304,210,5);
其次我們是對界面上的各人物按鈕添加相應的相應事件(鼠標事件、鍵盤事件),通過這兩種事件去完成界面上各人物按鈕的移動。對重新開始按鈕定義動作事件(ActionEvent)完成界面初始化功能(也就是各人物按 40、鈕重新歸位)。
相關學習資料
該程序主要涉及到鼠標事件和鍵盤事件及焦點事件三個方面的新知識。
1、 觸發(fā)焦點事件
組件可以觸發(fā)焦點事件。組件可以使用
public void addFocusListener(FocusListener Listener)
增加焦點事件監(jiān)視器如:button1.addFocusListener(事件監(jiān)聽器)
當組件具有焦點監(jiān)視器后,如果組件從無輸入焦點變成有輸入焦點或從有輸入焦點到無輸入焦點都會觸發(fā)FocusEvent事件。創(chuàng)建監(jiān)視器的類必須要實現(xiàn)FocusListener接口,該接口有兩個方法:
public void focusGained( 41、FocusEvent e) //獲得焦點觸發(fā)
public void focusLost(FocusEvent e) //失去焦點觸發(fā)
當組件從無輸入焦點變成有輸入焦點并觸發(fā)FocusEvent事件時,監(jiān)視器調(diào)用類實現(xiàn)的接口方法focusGained(FocusEvent e);當組件從有輸入焦點變成無輸入焦點并觸發(fā)FocusEvent事件時,監(jiān)視器調(diào)用類實現(xiàn)方法focusLost(FocusEvent e)。
方法 public Boolean requestFocusInwindow()方法可以獲得輸入焦點:如Button1.requestFocusInwindow 42、()
2、 鼠標事件
組件是可以觸發(fā)鼠標事件的事件源。
如:鼠標指針進入組件,退出、停留組件上方單擊鼠標、拖動鼠標、按下、釋放、移動。
鼠標事件的類型是MouseEvent,即組件觸發(fā)鼠標時,MouseEvent類自動創(chuàng)建一個事件對象。Java分別使用MouseListener接口與MouseMotionListener接口來處理鼠標事件。MouseListener接口可以處理5種鼠標事件:單擊、按下、釋放、進入和退出。MouseMotionListener接口可以處理2種鼠標事件:拖動、移動。
3、 鍵盤事件
當按下、釋放或敲擊鍵盤上一個鍵時就發(fā)生了鍵盤事件,如:當一個組件 43、處于激活狀態(tài)時(獲得焦點),敲擊鍵盤上一個鍵就導致了這個組件發(fā)生了鍵盤事件。事件源使用addKeyListener方法獲得監(jiān)視器。KeyEvent為鍵盤事件的類型,KeyListener是事件監(jiān)視器實現(xiàn)的接口,其中有三種相應事件:按鍵、釋放鍵、按下和釋放的組合事件。
Public void KeyPressed(KeyEvent e)
Public void KeyTyped(KeyEvent e)
Public void KeyReleased(KeyEvent e)
用KeyEvent類的public int getKeycode()方法和public char getKeycha 44、r()判斷哪個鍵被按下、敲擊或釋放。如:
public void keyPressed(KeyEvent e)
{
Person man=(Person)e.getSource();//返回事件源
if(e.getKeyCode()==KeyEvent.VK_DOWN) //判斷是否按下了向下箭頭
{
goDown(man);
}
if(e.getKeyCode()==KeyEvent.VK_UP) //判斷是否按下了向下箭頭
{
goUp(man);
}
if(e.getK 45、eyCode()==KeyEvent.VK_LEFT) //判斷是否按下了向下箭頭
{
goLeft(man);
}
if(e.getKeyCode()==KeyEvent.VK_RIGHT) //判斷是否按下了向下箭頭
{
goRight(man);
}
}
運行效果示例
題目: 在Applet畫面中實現(xiàn)y=a*x2+b*x+c 函數(shù)曲線的繪制
設計要求: 1、通過Applet參數(shù)傳遞a,b,c值;
??? 2、通過Applet參數(shù)控制曲線的粗細;
?????3、曲線的顏色通過顏色對話框 46、選?。ㄍㄟ^一個顏色按鈕控制)。
4、 繪制一個小人沿曲線軌跡運動,到終點由頭重新開始。
題目 編寫一個記事本程序
設計要求
1、 用圖形用戶界面實現(xiàn)。
2、 能實現(xiàn)編輯、保存、另存為、查找替換等功能。
3、 提示:使用文件輸入輸出流。
題目 電子英漢詞典
設計要求
1. 用圖形用戶界面實現(xiàn)。
2. 能夠編輯詞典庫中的信息
3. 能夠實現(xiàn)英譯漢,漢譯英。(要考慮一詞多義)
題目 加密與解密
設計要求
1. 采用圖形用戶界面
2. 給定任意一個文本文件,進行加密,生成另一個文件。
3. 對加密后的文件還原。
提高題
題目:標準 47、化考試系統(tǒng)
內(nèi)容:
本系統(tǒng)可以進行任何標準化考試,具有選擇試題,查看得分、考試計時等功能。
設計要求:
1. 用戶可以選擇一套標準化考試試題。
2. 每套試題的考試用時由試題文件(.txt)給出。
3. 開始讀取試題后,計時器開始計時,用戶提交答案后,可以讀取下一道題目。
4. 一個提示欄顯示所剩余的考試時間,當規(guī)定時間用盡后,用戶將不能再讀取任何題目。
5. 為了增加模擬考試練習的靈活性,用戶也可以選擇暫停計時。
6. 用戶答完一個題目后,可以查看該題目的正確答案和目前的分數(shù)。
運行效果圖:
題目:Hannoi塔
設計內(nèi)容
設計GUI界面的Han 48、noi塔,用戶可以通過拖動鼠標移動各個塔上的盤子,程序也可以自動演示盤子的移動過程。
設計要求
1. 有三個表示塔的對象,分別命名為A、B和C。A塔上有若干個盤子,盤子的大小不等,并按著大小順序依次擺放在A塔上,大盤在下,小盤在上。用戶可以用鼠標拖動盤子,把A 塔上的盤子全部移動到另外兩個塔中的任何一個塔上。要求每次只能移動一個盤子,在任何時候不允許大盤壓在小盤的上面。
2. 用戶也可以選擇讓程序自動演示。選擇自動演示后,程序將以動畫形式演示把A塔上的盤子全部移到C塔的過程,并將移動過程以文本形式顯示在一個文本區(qū)中。
運行效果圖
題目 學籍管理系統(tǒng)
設計內(nèi)容
設 49、計基于文件結構的學籍管理系統(tǒng)。
設計要求
1錄入學生基本信息的功能
2修改學生基本信息的功能
3查詢學生基本信息的功能
4刪除學生基本信息的功能
運行結果圖
題目 制作一個圖形編輯系統(tǒng)
設計要求:1、能用拖橡皮筋的手法繪制各類圖形(直線、橢圓、矩形、文字)
??? 2、支持畫筆顏色、文字大小設置;
??? 3、能將畫面中的所有圖形存儲到文件中;
??? 4、能從文件讀取圖形進行增補;
??? 5、采用對話框獲取圖形文件名。
??? 6、思考如何利用鼠標選取圖形,刪除。
題目 圖書信息管理系統(tǒng)
設計要求:
1. 使用圖形用戶界面
2 50、. 用數(shù)據(jù)庫建立1或2個圖書信息表。(不限使用哪種數(shù)據(jù)庫)
3. 能連接數(shù)據(jù)庫并實現(xiàn)查詢、增、刪、改等功能。
題目 ATM柜員機模擬系統(tǒng)
設計要求:
使用圖形用戶界面。
需求:
當輸入給定的卡號和密碼(初始卡號和密碼為123456)時,系統(tǒng)能登錄ATM柜員機系統(tǒng),用戶可以按照以下規(guī)則進行:
1、查詢余額:初始余額為10000元
2、ATM取款:每次取款金額為100的倍數(shù),總額不超過5000元,支取金額不允許透支。
3、ATM存款:不能出現(xiàn)負存款。
4、修改密碼:新密碼長度不小于6位,不允許出現(xiàn)6位完全相同的情況,只有舊密碼正確,新密碼符合要求,且兩次輸入相同的情況 51、下才可以成功修改密碼。
題目 一個簡單的萬年歷
功能要求:
1. 能夠顯示實現(xiàn)1800-2100年的日期,包括公歷、農(nóng)歷、星期、二十四節(jié)氣。
2. 能夠按照月份格式顯示,或按照星期格式顯示。
3. 能夠顯示系統(tǒng)時間。
4. 能夠設置鬧鐘。
5. 能夠查詢?nèi)舾蓢H大城市(分布在不同時區(qū))的時間。
題目 學生成績管理信息系統(tǒng)
數(shù)據(jù)庫要求:
1. 建立的數(shù)據(jù)庫中包含如下信息:學生學號、姓名、班級,語文、數(shù)學、英語成績。
2. 至少要有5個班級,每個班級要有10名以上學生。
3. 使用.txt格式文本表示各種表。
功能需求: 52、
1. 能夠實現(xiàn)根據(jù)以下關鍵字查詢:學生姓名 、學號、班級、課程名稱。
2. 能夠實現(xiàn)按照單科成績、總成績、平均成績、學號排序。
3. 能夠實現(xiàn)學生信息的插入、刪除和修改。
4. 能夠查詢每個課程的最高分、最低分及相應學生姓名、班級和學號。
5. 能夠查詢每個班級某門課程的優(yōu)秀率(90分及以上)、不及格率,并進行排序。
題目 聊天小程序
設計要求
1. 使用圖形用戶界面。
2. 能實現(xiàn)一個聊天室中多人聊天。
3. 可以兩人私聊。
4. 提示:使用socket通信
挑戰(zhàn)題
題目:記憶測試系統(tǒng)
設計內(nèi)容:
記憶測試系統(tǒng)通過回 53、憶法測試記憶,分為初級、中級、高級三個級別,并通過記憶榜存儲每個級別的成績。
設計要求:
1. 單擊“記憶測試”菜單可以選擇初級/中級/高級,也可以查看初級記憶榜/中級記憶榜或高級記憶榜。
2. 選擇級別后,將顯示相應級別的測試區(qū)域。測試區(qū)域由若干個方塊組成,每個方塊都有一個圖標,但該圖標默認情況下不可見。用鼠標單擊測試區(qū)中的任何一個方塊,則計時器開始啟動,同時該方塊上的圖標將顯示出來。對于初級級別,用戶必須用鼠標連續(xù)單擊出6個圖標相同的方塊,也就是說,如果用戶已經(jīng)用鼠標連續(xù)單擊出n(n<6)個圖標相同的方塊,單擊另一個房塊時,如果該方塊的圖標和上一個相同,那么該方塊的圖標和前n 次單擊 54、出的方塊的圖標仍然可見,否則,前n次單擊出的方塊的圖標都變?yōu)椴豢梢姟?
3. 連續(xù)單擊出該級別所要求的若干個圖彪相同的方塊后,將顯示保存成績對話框,成績按所用時間排序。用戶可以通過該對話框選擇是否將自己的成績保存到成績表中。
運行效果圖:
題目 超市收銀系統(tǒng)
設計要求:
使用圖形用戶界面。
需求:
由收銀員輸入顧客的會員卡卡號(若有卡)、所購商品的貨號等。從數(shù)據(jù)庫中取出有關價格信息,再把這些信息返回給收銀臺。同時把該收銀臺的銷售總量和有關種類商品的剩余量以及該持卡顧客的消費情況交數(shù)據(jù)庫存儲以供查詢。
另外,對沒有卡的消費情況不記錄該顧客的消費情況等個 55、人信息。如果一個未持卡顧客一次購物滿200元,可為其發(fā)放一張會員卡,以后在該商場購物可向9折優(yōu)惠。
題目 算法演示程序
功能要求:
1. 選擇一個算法(提供選擇見下),利用各種方法(圖形、動畫等)演示算法的演示過程。
2. 可以進行手動演示,也可以自動步進式演示。
3. 允許用戶設置算法的各個輸入?yún)?shù),以及自動步進式演示中的時間間隔。
4. 不同的算法輸入要求見下。
參考算法:
1. 最小生成樹算法:Prim算法、Kruskal算法。允許以下方式輸入一個圖形:繪制圖形、輸入鄰接矩陣、輸入邊及其關聯(lián)的頂點。要求在圖形方式下進行演示算法執(zhí)行 56、步驟。
2. 單源最短路算法:Dijkstra算法。允許以下方式輸入一個圖形:繪制圖形、輸入鄰接矩陣、輸入邊及其關聯(lián)的頂點。要求在圖形方式下進行演示算法執(zhí)行步驟。
3. 最優(yōu)編碼算法:Huffman編碼算法。允許用戶輸入一段英文文字,或者打開一個txt文檔(英文內(nèi)容),據(jù)此文檔內(nèi)容進行編碼。要求動態(tài)列出每個字符的出現(xiàn)概率統(tǒng)計結果以及對應編碼。
5. 其他可供演示的具有一定難度的算法,如關鍵路徑問題、有向圖的極大連通分支等。
題目 網(wǎng)絡聊天程序
功能要求:
1. 實現(xiàn)類似與飛鴿的功能,自動偵測局域網(wǎng)內(nèi)部啟動該軟件的用戶,并顯示在用戶列表中。
2. 可以進行兩個人之間的私聊。
3. 可以群聊。
4. 可以發(fā)送文件。
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。