版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 課 程 設(shè) 計</b></p><p> 題 目萬年歷</p><p> 學(xué) 院</p><p> 專 業(yè)信電分院計算機科學(xué)與技術(shù)</p><p> 班 級</p><p> 姓 名</p><p> 指導(dǎo)教師&l
2、t;/p><p><b> 目 錄</b></p><p> 一.概述…………………………………………………………………………..1</p><p> 二.總體方案設(shè)計…………………………………………………………………2</p><p> 三.詳細設(shè)計………………………………………………………………………3&
3、lt;/p><p> 四.最終輸出………………………………………………………………………7</p><p> 五.課程設(shè)計總結(jié)………………………………………………………………….8</p><p> 參考文獻…………………………………………………………………………...9</p><p><b> 一、概述</b&g
4、t;</p><p><b> 課程設(shè)計的目的</b></p><p> 通過顯示年日歷程序的設(shè)計,培養(yǎng)學(xué)生綜合利用java語言進行程序設(shè)計的能力,加強函數(shù)的運用及學(xué)生對軟件工程方法的初步認識,提高軟件系統(tǒng)分析能力和程序文檔建立、歸納總結(jié)的能力。</p><p> 通過本項課程設(shè)計,可以培養(yǎng)獨立思考、 綜合運用所學(xué)有關(guān)相應(yīng)知識的能力,能更
5、好的鞏固《java語言程序設(shè)計》課程學(xué)習(xí)的內(nèi)容,掌握 工程軟件設(shè)計的基本方法,強化上機動手編程能力,闖過理論與實踐相結(jié)合的難關(guān)!更加了解了java語言的好處和其可用性!</p><p><b> 課程設(shè)計的要求</b></p><p><b> 2.1</b></p><p> 輸入查詢的年份與月份,單擊“更新”按扭
6、,則可得到相應(yīng)的日歷。本實驗是對圖形用戶界面,布局管理器的綜合運用。要掌握APPLET容器中添加組件的方法,理解JAVA的事件處理機制,編寫?yīng)毩⒌倪\行窗口。</p><p><b> 2.2 輸出形式</b></p><p> 使用獨立的運行窗口進行顯示。界面主要由兩部分組成——查詢輸入部分和結(jié)果顯示部分。查詢輸入部分包括兩個文本域,一個用于輸入年份:一個用于選擇
7、月份:一個更新按扭,用來觸發(fā)查詢事件。</p><p><b> 二 總體方案設(shè)計</b></p><p><b> 程序開發(fā)環(huán)境</b></p><p> 開發(fā)環(huán)境:eclipse</p><p> 系統(tǒng)環(huán)境:windows xp/7</p><p> 設(shè)計工具
8、:Microsoft office 2003</p><p><b> 整體流程圖</b></p><p><b> 圖1 流程圖</b></p><p><b> 功能模塊圖</b></p><p><b> 圖2 結(jié)構(gòu)圖</b></p&
9、gt;<p><b> 三.詳細設(shè)計</b></p><p><b> 3.1導(dǎo)入的包</b></p><p> import java.applet.*;</p><p> import java.awt.*;</p><p> import java.awt.event.
10、*;</p><p> import java.util.*;</p><p> Applet的初始化</p><p> public void init(){</p><p> Label L1 = new Label("輸入年份");</p><p> Label L2 = new L
11、abel("輸入月份");</p><p> TextField F1 = new TextField(5);</p><p> TextField F2 = new TextField(5);</p><p> Button B1 = new Button("查詢");</p><p> in
12、t arr = new int[12];</p><p><b> add(L1);</b></p><p><b> add(F1);</b></p><p><b> add(L2);</b></p><p><b> add(F2);</b>
13、</p><p><b> add(B1);</b></p><p> Date date = new Date();</p><p> F1.setText(String.valueOf(date.getYear() + 1900));</p><p> F2.setText(String.valueOf(da
14、te.getMonth() + 1));</p><p> B1.addActionListener(this);</p><p> arr[0] = arr[2] = arr[4] = arr[6] = arr[7] = arr[9] = arr[11] = 31;</p><p> arr[3] = arr[5] = arr[8] = arr[10] =
15、30;</p><p> date.setDate(1);//設(shè)置每月第一天</p><p> var = date.getDay();//得到每月最后一天</p><p><b> }</b></p><p><b> 3.3監(jiān)聽器</b></p><p> pu
16、blic void actionPerformed(ActionEvent e) {</p><p> int x = Integer.parseInt(F1.getText()), i = Integer.parseInt(F2</p><p> .getText()) - 1, s = 0;</p><p> if(F1.getText().isEmpty
17、()||F2.getText().isEmpty())</p><p><b> {</b></p><p> JOptionPane.showMessageDialog(null,"輸入不能為空!");</p><p><b> }</b></p><p> Date
18、date = new Date();</p><p> date.setYear(x - 1900);</p><p> date.setMonth(i);</p><p> date.setDate(1);</p><p> var = date.getDay();</p><p> repaint();&
19、lt;/p><p><b> }</b></p><p><b> paint()</b></p><p> public void paint(Graphics g) {</p><p> int xpos, ypos;</p><p> //arr[0] = arr
20、[2] = arr[4] = arr[6] = arr[7] = arr[9] = arr[11] = 31;</p><p> //arr[3] = arr[5] = arr[8] = arr[10] = 30;</p><p> int x = Integer.parseInt(F1.getText()), i = Integer.parseInt(F2</p>&l
21、t;p> .getText()) - 1;</p><p> if ((x % 4 == 0 && x % 100 != 0) || (x % 400 == 0))</p><p> arr[1] = 29;</p><p><b> else</b></p><p> arr[1] =
22、28;</p><p> g.drawString("星期一", 50, 50);</p><p> g.drawString("星期二", 100, 50);</p><p> g.drawString("星期三", 150, 50);</p><p> g.drawStr
23、ing("星期四", 200, 50);</p><p> g.drawString("星期五", 250, 50);</p><p> g.drawString("星期六", 300, 50);</p><p> g.drawString("星期日", 350, 50);<
24、/p><p> ARR = new String[arr[i]];</p><p> int j = 0, k = 1;</p><p> while (k <= arr[i]) {</p><p> ARR[j] = String.valueOf(k);//獲得每個月日期</p><p><b>
25、 k ++;</b></p><p><b> j ++;</b></p><p><b> }</b></p><p> int line = 0;</p><p> for (int m = 0 ; m < ARR.length ; m ++) {</p>
26、<p> //設(shè)置日期顯示的位置</p><p> ypos = 50 + 50 * (line + 1);</p><p> xpos = (var * 50 + 50 * (m % 7)) % 350;</p><p> if (xpos == 0) {</p><p> xpos = 350;</p>
27、<p><b> line ++;</b></p><p><b> }</b></p><p> g.drawString(ARR[m], xpos, ypos);</p><p><b> }</b></p><p><b> }</
28、b></p><p><b> }</b></p><p><b> 四.最終輸出</b></p><p><b> 1.輸入年月界面</b></p><p><b> 2.顯示界面</b></p><p><b
29、> 輸入為空情況</b></p><p><b> 五.課程設(shè)計總結(jié)</b></p><p> 在最初設(shè)計這個程序的時候走了不少彎路,一開始對Applet程序沒有深入理解,就把初始化部分寫到構(gòu)造函數(shù)里去了,后來在老師的提醒下,自己修改過來了。我認為這個程序并的難點有兩個:一個是如何將萬年歷漂亮的排版出來,一個是算出某年某月第一天是星期幾。<
30、;/p><p> 處理排版我時想到了Applet程序里的drawString()方法,通過設(shè)置X軸的位置來顯示日期位置,每7天換一行。至于算出某年某月第一天是星期幾,我第一個想到是和1900年1月1日去比較,先查出該天是星期幾,再算出輸入的日期比該天晚多少天就可以很輕松的知道想要的答案。但是如果輸入的時間早于1900年,那就要出問題了。于是我在上網(wǎng)查資料的時候發(fā)現(xiàn)了有setDay()和getDay()這兩個方法,可
31、以直接用來獲取每月第一天,這樣就大大方便了我的編程。</p><p> 另外,在編這個程序也有比較遺憾的地方,比如輸入是字母的話程序會出錯,我本想用拋出異常來解決,但是每個方法都沒法throws我自己寫的異常,不知道怎么解決,只能放棄。</p><p><b> 附錄一: 參考文獻</b></p><p> [1] Java程序設(shè)計之網(wǎng)絡(luò)
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- java萬年歷課程設(shè)計報告
- java課程設(shè)計報告---萬年歷
- java萬年歷課程設(shè)計
- java課程設(shè)計--萬年歷
- java課程設(shè)計--萬年歷設(shè)計
- java萬年歷課程設(shè)計報告 (2)
- java超級萬年歷課程設(shè)計
- 萬年歷課程設(shè)計報告
- 萬年歷課程設(shè)計報告
- 萬年歷課程設(shè)計--萬年歷電子時鐘
- 萬年歷課程設(shè)計
- 萬年歷課程設(shè)計
- 萬年歷課程設(shè)計
- 萬年歷課程設(shè)計
- 萬年歷課程設(shè)計
- 萬年歷課程設(shè)計
- 萬年歷課程設(shè)計
- 數(shù)字萬年歷課程設(shè)計報告
- 課程設(shè)計報告--電子萬年歷
- 萬年歷系統(tǒng)課程設(shè)計報告
評論
0/150
提交評論