![](https://static.zsdocx.com/FlexPaper/FileRoot/2019-6/5/21/5bd8b6f4-fafb-4b6c-9e50-ff83db314b11/5bd8b6f4-fafb-4b6c-9e50-ff83db314b11pic.jpg)
![java萬(wàn)年歷課程設(shè)計(jì)報(bào)告_第1頁(yè)](https://static.zsdocx.com/FlexPaper/FileRoot/2019-6/5/21/5bd8b6f4-fafb-4b6c-9e50-ff83db314b11/5bd8b6f4-fafb-4b6c-9e50-ff83db314b111.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 課 程 設(shè) 計(jì)</b></p><p> 題 目萬(wàn)年歷</p><p> 學(xué) 院</p><p> 專 業(yè)信電分院計(jì)算機(jī)科學(xué)與技術(shù)</p><p> 班 級(jí)</p><p> 姓 名</p><p> 指導(dǎo)教師&l
2、t;/p><p><b> 目 錄</b></p><p> 一.概述…………………………………………………………………………..1</p><p> 二.總體方案設(shè)計(jì)…………………………………………………………………2</p><p> 三.詳細(xì)設(shè)計(jì)………………………………………………………………………3&
3、lt;/p><p> 四.最終輸出………………………………………………………………………7</p><p> 五.課程設(shè)計(jì)總結(jié)………………………………………………………………….8</p><p> 參考文獻(xiàn)…………………………………………………………………………...9</p><p><b> 一、概述</b&g
4、t;</p><p><b> 課程設(shè)計(jì)的目的</b></p><p> 通過(guò)顯示年日歷程序的設(shè)計(jì),培養(yǎng)學(xué)生綜合利用java語(yǔ)言進(jìn)行程序設(shè)計(jì)的能力,加強(qiáng)函數(shù)的運(yùn)用及學(xué)生對(duì)軟件工程方法的初步認(rèn)識(shí),提高軟件系統(tǒng)分析能力和程序文檔建立、歸納總結(jié)的能力。</p><p> 通過(guò)本項(xiàng)課程設(shè)計(jì),可以培養(yǎng)獨(dú)立思考、 綜合運(yùn)用所學(xué)有關(guān)相應(yīng)知識(shí)的能力,能更
5、好的鞏固《java語(yǔ)言程序設(shè)計(jì)》課程學(xué)習(xí)的內(nèi)容,掌握 工程軟件設(shè)計(jì)的基本方法,強(qiáng)化上機(jī)動(dòng)手編程能力,闖過(guò)理論與實(shí)踐相結(jié)合的難關(guān)!更加了解了java語(yǔ)言的好處和其可用性!</p><p><b> 課程設(shè)計(jì)的要求</b></p><p><b> 2.1</b></p><p> 輸入查詢的年份與月份,單擊“更新”按扭
6、,則可得到相應(yīng)的日歷。本實(shí)驗(yàn)是對(duì)圖形用戶界面,布局管理器的綜合運(yùn)用。要掌握APPLET容器中添加組件的方法,理解JAVA的事件處理機(jī)制,編寫?yīng)毩⒌倪\(yùn)行窗口。</p><p><b> 2.2 輸出形式</b></p><p> 使用獨(dú)立的運(yùn)行窗口進(jìn)行顯示。界面主要由兩部分組成——查詢輸入部分和結(jié)果顯示部分。查詢輸入部分包括兩個(gè)文本域,一個(gè)用于輸入年份:一個(gè)用于選擇
7、月份:一個(gè)更新按扭,用來(lái)觸發(fā)查詢事件。</p><p><b> 二 總體方案設(shè)計(jì)</b></p><p><b> 程序開(kāi)發(fā)環(huán)境</b></p><p> 開(kāi)發(fā)環(huán)境:eclipse</p><p> 系統(tǒng)環(huán)境:windows xp/7</p><p> 設(shè)計(jì)工具
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> 三.詳細(xì)設(shè)計(jì)</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)聽(tīng)器</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);//獲得每個(gè)月日期</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è)計(jì)總結(jié)</b></p><p> 在最初設(shè)計(jì)這個(gè)程序的時(shí)候走了不少?gòu)澛?,一開(kāi)始對(duì)Applet程序沒(méi)有深入理解,就把初始化部分寫到構(gòu)造函數(shù)里去了,后來(lái)在老師的提醒下,自己修改過(guò)來(lái)了。我認(rèn)為這個(gè)程序并的難點(diǎn)有兩個(gè):一個(gè)是如何將萬(wàn)年歷漂亮的排版出來(lái),一個(gè)是算出某年某月第一天是星期幾。<
30、;/p><p> 處理排版我時(shí)想到了Applet程序里的drawString()方法,通過(guò)設(shè)置X軸的位置來(lái)顯示日期位置,每7天換一行。至于算出某年某月第一天是星期幾,我第一個(gè)想到是和1900年1月1日去比較,先查出該天是星期幾,再算出輸入的日期比該天晚多少天就可以很輕松的知道想要的答案。但是如果輸入的時(shí)間早于1900年,那就要出問(wèn)題了。于是我在上網(wǎng)查資料的時(shí)候發(fā)現(xiàn)了有setDay()和getDay()這兩個(gè)方法,可
31、以直接用來(lái)獲取每月第一天,這樣就大大方便了我的編程。</p><p> 另外,在編這個(gè)程序也有比較遺憾的地方,比如輸入是字母的話程序會(huì)出錯(cuò),我本想用拋出異常來(lái)解決,但是每個(gè)方法都沒(méi)法throws我自己寫的異常,不知道怎么解決,只能放棄。</p><p><b> 附錄一: 參考文獻(xiàn)</b></p><p> [1] Java程序設(shè)計(jì)之網(wǎng)絡(luò)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- java萬(wàn)年歷課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)報(bào)告---萬(wàn)年歷
- java萬(wàn)年歷課程設(shè)計(jì)
- java課程設(shè)計(jì)--萬(wàn)年歷
- java課程設(shè)計(jì)--萬(wàn)年歷設(shè)計(jì)
- java萬(wàn)年歷課程設(shè)計(jì)報(bào)告 (2)
- java超級(jí)萬(wàn)年歷課程設(shè)計(jì)
- 萬(wàn)年歷課程設(shè)計(jì)報(bào)告
- 萬(wàn)年歷課程設(shè)計(jì)報(bào)告
- 萬(wàn)年歷課程設(shè)計(jì)--萬(wàn)年歷電子時(shí)鐘
- 萬(wàn)年歷課程設(shè)計(jì)
- 萬(wàn)年歷課程設(shè)計(jì)
- 萬(wàn)年歷課程設(shè)計(jì)
- 萬(wàn)年歷課程設(shè)計(jì)
- 萬(wàn)年歷課程設(shè)計(jì)
- 萬(wàn)年歷課程設(shè)計(jì)
- 萬(wàn)年歷課程設(shè)計(jì)
- 數(shù)字萬(wàn)年歷課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)報(bào)告--電子萬(wàn)年歷
- 萬(wàn)年歷系統(tǒng)課程設(shè)計(jì)報(bào)告
評(píng)論
0/150
提交評(píng)論