2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、<p>  JAVA課程設(shè)計(jì)報(bào)告</p><p>  系 別: 計(jì) 算 機(jī) 系 </p><p>  班 級: 計(jì)本1119班 </p><p>  姓 名: </p><p>  學(xué) 號: </p><p>  指導(dǎo)教師:

2、 </p><p>  一、課程設(shè)計(jì)任務(wù)及要求</p><p><b> ?。?)設(shè)計(jì)任務(wù):</b></p><p>  編寫一個(gè)Java 萬年歷程序,實(shí)現(xiàn)日期和星期的查詢。</p><p><b> ?。?)設(shè)計(jì)要求:</b></p><p>  1、主界面采用邊

3、界布局,北面是一個(gè)設(shè)置年月的控制面板,中間是日歷繪制區(qū);</p><p>  2、單擊“月份”的下拉式菜單,可以顯示當(dāng)前月的上一月/下一月的日歷;</p><p>  3、單擊“年份”的下拉式菜單,可以顯示上一年/下一年的當(dāng)前日歷;二、需求分析</p><p>  對于萬年歷系統(tǒng),其主要功能是:查看當(dāng)日日期(年、月、日)、查看當(dāng)時(shí)時(shí)間、查看其他年月的月歷。主要使用流

4、程是:查看萬年歷系統(tǒng),查看其他月份或年份日歷,選中其他日期查看,查看當(dāng)日日期。主要功能的用例描述如下:</p><p><b> ?。?)查看萬年歷</b></p><p>  1、進(jìn)入萬年歷系統(tǒng);</p><p>  2、系統(tǒng)獲取當(dāng)日日期并設(shè)置日歷為當(dāng)月,紅框選中當(dāng)日日期;</p><p> ?。?)查詢當(dāng)月其他年份&

5、lt;/p><p>  改變年份的方法是選擇年份。</p><p><b>  下拉菜單選擇年份:</b></p><p>  1、點(diǎn)擊選擇年份的下拉菜單,選擇年份;</p><p>  2、系統(tǒng)獲取已選擇的年份;</p><p>  3、系統(tǒng)設(shè)置為已選年份當(dāng)月的月歷并顯示在界面顯示。</p&g

6、t;<p> ?。?)查詢當(dāng)年的其他月份</p><p>  改變月份的方法是選擇月份。</p><p><b>  下拉菜單選擇月份:</b></p><p>  1、點(diǎn)擊選擇月份的下拉菜單,選擇年份;</p><p>  2、系統(tǒng)獲取已選擇的月份;</p><p>  3、系統(tǒng)設(shè)

7、置已選月份為當(dāng)年的月歷并在界面顯示。</p><p> ?。?)選擇其他日期查看</p><p><b>  1、點(diǎn)擊其他日期;</b></p><p>  2、系統(tǒng)對所有日期的label進(jìn)行監(jiān)聽,判斷點(diǎn)擊的那個(gè)label;</p><p>  3、返回被點(diǎn)擊的label的數(shù)組下標(biāo);</p><p&g

8、t;  4、對該下標(biāo)的label設(shè)置藍(lán)色邊框,表示選中。</p><p><b>  三、設(shè)計(jì)思路</b></p><p>  本課設(shè)界面由邊界布局構(gòu)成,主要有北方部件和中央部件兩部分。</p><p> ?。?)北方部件上有查詢輸入部分和時(shí)間顯示部分:</p><p>  1、兩個(gè)下拉列表用于選擇的年份和月份,如改變年

9、份后系統(tǒng)用getShowYear()獲得組合框中的中文年份,getCombYear()轉(zhuǎn)換成英文格式,得到用戶選擇的年份,同時(shí)用getMonthDays()和getInitWeek()得到界面的設(shè)定,最終,用setDays()設(shè)置出用戶所要求的月歷,改變月份同理;</p><p>  2、四個(gè)button按鈕用于實(shí)現(xiàn)年—、年+、月—、月+,如摁了“年+”后,系統(tǒng)用getShowYear()和getCombYear

10、()獲得組合框中的年份,在其年份上加1,將改變的年份顯示在組合框里,計(jì)算出該年月日歷的安排,并用setDays()設(shè)置出用戶所要求得月歷,其他按鈕同理;</p><p>  3、一個(gè)button按鈕用于實(shí)現(xiàn)對今日日期的查找,當(dāng)用戶摁了“今日”后,系統(tǒng)用getNowYear()和getNowMonth()得到當(dāng)日年月,并調(diào)用setNowDay()將系統(tǒng)組合框內(nèi)年月設(shè)為當(dāng)日年月,顯示當(dāng)月月歷,同時(shí)系統(tǒng)用getNowD

11、ay()獲得當(dāng)日日期,用labelDay[i].setBorder(border1)語句將當(dāng)日的日期用藍(lán)色的邊框框住表示選定;</p><p>  4、創(chuàng)建一個(gè)標(biāo)簽用于顯示時(shí)間,監(jiān)聽系統(tǒng)時(shí)間并顯示。</p><p>  (2)中央部件上添加系統(tǒng)的結(jié)果顯示部分:</p><p>  1、該部分最初顯示為當(dāng)日年月的月歷,改變年月后,獲得需要顯示的月份天數(shù)m和當(dāng)月1號是從

12、labelDay[n]開始后按順序從添加到labelDay[m+n],遇到周末用setForeground(Color.red)設(shè)定字體顯示為紅色;</p><p>  2、對labelDay標(biāo)簽進(jìn)行監(jiān)聽,如果鼠標(biāo)點(diǎn)擊某個(gè)label,判斷該標(biāo)簽的的序號,用setBorder()為該label設(shè)置藍(lán)色邊框并用setBordr(null)將上一個(gè)邊框清除。</p><p><b> 

13、 四、詳細(xì)設(shè)計(jì)</b></p><p><b>  (1)類設(shè)計(jì)</b></p><p>  本程序創(chuàng)建了一個(gè)MainFrame類,該類包括了改變年月對月歷界面顯示的改變和時(shí)間的顯示,主要包括函數(shù)如表1所示:</p><p><b>  MainFrame</b></p><p><

14、;b>  表 1</b></p><p><b>  表 1</b></p><p><b>  (2)界面設(shè)計(jì)</b></p><p>  界面如圖1所示該界面由上北面的輸入選擇部分和中央的結(jié)果顯示部分組成。輸入部分創(chuàng)建兩個(gè)下拉列表選擇年月及5個(gè)功能按鍵用于實(shí)現(xiàn)日歷的基本操作;結(jié)果顯示部分根據(jù)該月1號所

15、屬星期和該月的天數(shù)設(shè)置出該月月歷界面。</p><p>  for(int i=0;i<7;i++) </p><p><b>  {</b></p><p>  labelWeek[i] = new JLabel();</p><p>  labelWeek[i].setHorizontalAlign

16、ment(0);</p><p>  if(i==0||i==6)</p><p><b>  {</b></p><p>  labelWeek[i].setForeground(Color.red); //設(shè)置周末為紅色</p><p>  labelWeek[i].setFont(new Font("新

17、宋體",Font.BOLD,18));</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  labelWeek[i].setForeground(Color.BLACK);&

18、lt;/p><p>  labelWeek[i].setFont(new Font("新宋體",Font.PLAIN,18));</p><p><b>  }</b></p><p>  labelWeek[i].setText(stringWeekCn[i]); panel2.add(labelWeek[i]);</

19、p><p><b>  }</b></p><p>  ————————————加上日期的label—————————————</p><p>  for(int i= 0;i<42;i++) </p><p><b>  {</b></p><p>  labelDa

20、y[i] = new JLabel();</p><p>  labelDay[i].setHorizontalAlignment(0); //設(shè)置文本的水平對齊方式</p><p>  labelDay[i].setText("");</p><p>  panel2.add(labelDay[i]);</p><p>

21、  labelDay[i].addMouseListener(listener); //對label進(jìn)行監(jiān)聽</p><p><b>  }</b></p><p>  ————————————設(shè)置月歷————————————————</p><p>  public void setDays(int monthDays,int initWe

22、ek,int day) </p><p><b>  {</b></p><p>  setDateNull();</p><p>  for(int i=initWeek;i<initWeek+monthDays+1;i++) //initWeek 初始星期</p><p><b>  {

23、</b></p><p>  labelDay[i].setFont(new Font("黑體",Font.BOLD,18)); </p><p><b>  //設(shè)置日期的字體</b></p><p>  if((i-initWeek+1)==day) //如果日期為今天</p><p

24、><b>  {</b></p><p>  for(int j=0;j<42;j++)</p><p>  labelDay[j].setBorder(null);</p><p>  labelDay[i].setBorder(border1); //選中當(dāng)日日期</p><p><b>  

25、}</b></p><p>  if((i%7==0)||(i%7==6))</p><p>  labelDay[i].setForeground(Color.red);</p><p>  else labelDay[i].setForeground(Color.BLACK);</p><p>  labelDay[i].se

26、tText(String.valueOf(i-initWeek+1));</p><p><b>  }</b></p><p>  for(int i=initWeek+monthDays;i<42;i++)</p><p>  labelDay[i].setText("");</p><p>

27、;<b>  }</b></p><p><b>  (3)功能實(shí)現(xiàn)</b></p><p>  該系統(tǒng)主要實(shí)現(xiàn)的功能如圖2所示</p><p><b>  圖 2</b></p><p>  1、當(dāng)用戶需要查詢指定年月的日歷時(shí),用戶將選擇框內(nèi)年月改變,系統(tǒng)獲取信息并設(shè)置月歷,

28、具體流程如圖3所示</p><p><b>  圖3</b></p><p>  2、用戶用鼠標(biāo)點(diǎn)擊選擇一個(gè)日期后,系統(tǒng)可用藍(lán)色方框框住該日期,表示系統(tǒng)已選擇該日,具體流程如圖5所示</p><p><b>  圖4</b></p><p>  五、運(yùn)行調(diào)試與分析討論</p><

29、p> ?。?)運(yùn)行結(jié)果和分析</p><p>  圖5為系統(tǒng)初始界面,系統(tǒng)自動(dòng)設(shè)置為當(dāng)日年月的月歷,并且用紅色框住當(dāng)日日期。</p><p><b>  圖5</b></p><p><b>  (2)改進(jìn)想法</b></p><p>  該萬年歷程序只能顯示陽歷,可在其基礎(chǔ)上加上陰歷的顯示,

30、當(dāng)鼠標(biāo)點(diǎn)擊了某一日的日期時(shí),該日期被框住并且顯示出其陰歷日期;</p><p>  每年一些固定的節(jié)日如“五一”、“十一”可在日歷上用紅色數(shù)字顯示出來;</p><p>  月歷上其他未填日期的空白label可用加上上個(gè)月和下個(gè)月的部分日期,用灰色表示方便區(qū)。</p><p><b>  六、設(shè)計(jì)體會與小結(jié)</b></p><

31、;p>  Java 語言是解釋執(zhí)行的高級編程語言,是面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,功能強(qiáng)大,它是解釋執(zhí)行的,能跨平臺使用。具有較高的性能和高度的安全性,Java程序的三級代碼安全檢查機(jī)制可以有效的防止非法代碼的入侵,阻止對內(nèi)存的越權(quán)訪問,能夠避免病毒的侵害,成為Internet上最安全的技術(shù)之一。并且支技多線程,可使用戶程序并行執(zhí)行,即有內(nèi)存垃圾自動(dòng)收集機(jī)制。Java語言是一種“直譯”式語言,即用Java編寫的程序首先被編譯成字節(jié)碼,再

32、通過JVM解釋成機(jī)器碼,字節(jié)碼是Java 專有的一種中間碼,必須通過JVM來解釋才能運(yùn)行。經(jīng)過了一個(gè)學(xué)期對《Java程序設(shè)計(jì)》的學(xué)習(xí),我們學(xué)習(xí)了理論知識,了解了Java語言程序設(shè)計(jì)的思想,這些知識都為我們的下一步學(xué)習(xí)打下了堅(jiān)實(shí)的基礎(chǔ)。</p><p>  經(jīng)過這次課程設(shè)計(jì)使我對JAVA圖形用戶界面的有關(guān)知識有了更深入了解,如幾種布局管理器的使用方法,事件的處理機(jī)制,SWING的基本體系結(jié)構(gòu),SWING組件的使用方

33、法,多媒體的實(shí)現(xiàn)手段等知識。完成了簡單的萬年歷功能,本次課程設(shè)計(jì)的主要內(nèi)容就是設(shè)計(jì)一個(gè)可以查詢?nèi)掌诘某绦?,通過選擇下拉列表中的年份以及月份來實(shí)現(xiàn)日期的查詢,及按鍵改變年月通過它可以查詢到日期的一些具體信息,可以查詢所選日期是星期幾,還對星期六與星期日有特殊顏色的標(biāo)記,方便查看。此外,還可以實(shí)現(xiàn)顯示數(shù)字時(shí)間的功能,簡單實(shí)用。通過課程設(shè)計(jì),能夠達(dá)到全面、深入理解和掌握所學(xué)內(nèi)容,能夠進(jìn)行簡單的分析和判斷。這次課程設(shè)計(jì),雖說在設(shè)計(jì)過程中遇到了很

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論