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

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  Java課程設(shè)計(jì)報(bào)告</p><p>  課程設(shè)計(jì)題目:萬(wàn) 年 歷</p><p>  指 導(dǎo) 老 師:**********</p><p>  學(xué) 生 姓 名:*********</p><p>  專 業(yè):**********</p><p>  學(xué) 號(hào):***

2、****</p><p>  Java課程設(shè)計(jì)-萬(wàn)年歷</p><p><b>  1、課程設(shè)計(jì)目的:</b></p><p>  這學(xué)期我們學(xué)習(xí)了Java語(yǔ)言,Java語(yǔ)言是面向?qū)ο蟮拈_(kāi)發(fā)方法是當(dāng)今世界最流行的開(kāi)發(fā)方法,是當(dāng)今流行的網(wǎng)絡(luò)編程語(yǔ)言。它具有面向?qū)ο?、跨平臺(tái)、分布應(yīng)用等特點(diǎn)。它不僅具有更貼近自然的語(yǔ)義,而且有利于軟件的維護(hù)和繼承。很

3、多程序開(kāi)發(fā)人員得第一選擇。</p><p>  為了進(jìn)一步鞏固課堂上所學(xué)到的知識(shí),深刻把握J(rèn)ava語(yǔ)言的重要概念及其面向?qū)ο蟮奶匦?,鍛煉學(xué)生熟練的應(yīng)用面向?qū)ο蟮乃枷牒驮O(shè)計(jì)方法解決實(shí)際問(wèn)題的能力,開(kāi)設(shè)了Java程序設(shè)計(jì)課程設(shè)計(jì)。讓學(xué)生自己動(dòng)手動(dòng)腦,將書(shū)本上得知識(shí)運(yùn)用到實(shí)踐當(dāng)中去,使知識(shí)能更好得融會(huì)貫通。</p><p>  為了達(dá)到這個(gè)目的,我們需要自己動(dòng)手做一個(gè)Java的課程設(shè)計(jì),在這個(gè)課

4、程設(shè)計(jì)里我們需要根據(jù)我們手中現(xiàn)有得軟件與知識(shí)基礎(chǔ),獨(dú)立得將它完成,只有這樣,我們才能把理論變成實(shí)踐,將知識(shí)真正得做到學(xué)以致用。</p><p>  這次課程設(shè)計(jì)我主要研究了利用已學(xué)的Java知識(shí)編輯一個(gè)電子萬(wàn)年歷。通過(guò)此次課程設(shè)計(jì),來(lái)鞏固所學(xué)Java語(yǔ)言基本知識(shí),增進(jìn)Java語(yǔ)言編輯基本功,掌握J(rèn)DK、JCreator等開(kāi)發(fā)工具的運(yùn)用,拓寬常用類庫(kù)的應(yīng)用。并通過(guò)自己動(dòng)手,自主得學(xué)習(xí),對(duì)Java這門課程有更深得了解

5、與認(rèn)識(shí)。</p><p><b>  2、需求分析:</b></p><p>  2.1、本程序要求:</p><p>  1、使用圖形用戶界面;</p><p>  2、本程序能夠?qū)崿F(xiàn)日期與星期查詢,同時(shí)顯示此時(shí)的時(shí)間。</p><p><b>  2.2、功能設(shè)計(jì):</b>

6、;</p><p>  本程序要構(gòu)建萬(wàn)年歷程序,其功能如下:</p><p>  (1)通過(guò)窗口形式運(yùn)行,實(shí)現(xiàn)界面功能;</p><p>  (2)以月歷的形式來(lái)顯示日期與星期;</p><p>  (3)為用戶提供年份與月份的下拉形式菜選擇年份與月份;</p><p>  (4)同時(shí)顯示查看時(shí)的時(shí)刻。</p&g

7、t;<p>  3、課程設(shè)計(jì)的基本算法</p><p>  public class wnl extends JFrame implements ActionListener,ItemListener{</p><p>  Date date = new Date(); </p><p>  private GregorianCalendar greg

8、orianCalendar = new GregorianCalendar();</p><p>  //定義中英文字符數(shù)組存儲(chǔ)星期信息,用于轉(zhuǎn)換顯示</p><p>  private String[] stringWeekEn = new String[] { "SUN", "MON", "TUE", "WED&qu

9、ot;,</p><p>  "THU", "FRI", "SAT" };</p><p>  private String[] stringWeekCn = new String[] { "星期日", "星期一", "星期二", "星期三",<

10、/p><p>  "星期四", "星期五", "星期六" };</p><p>  //定義存儲(chǔ)月份的信息數(shù)組,用于轉(zhuǎn)換顯示方式</p><p>  private String[] stringMonthEn = new String[] { "Jan", "Feb",

11、 "Mar", "Apr",</p><p>  "May", "Jun", "Jul", "Aug", "Sept", "Oct", "Nov", "Dec" };</p><p>  pr

12、ivate String[] stringMonthCn = {"1月","2月","3月","4月","5月","6月",</p><p>  "7月","8月","9月","10月","11月"

13、;,"12月"};</p><p>  private String[] sysNowTime = new String[6];//sysNowTime 用于存儲(chǔ)系統(tǒng)時(shí)間的變量</p><p>  private String[] sysRunTime = new String[6]; </p><p>  private JLabel []la

14、belWeek = new JLabel[7]; </p><p>  private JLabel []labelDay = new JLabel[42];</p><p>  private JLabel labelTime = new JLabel();</p><p>  private JPanel panel1 = new JPanel()

15、;</p><p>  private JPanel panel2 = new JPanel();</p><p>  private JPanel panel3 = new JPanel();</p><p>  private JComboBox combo1 = new JComboBox();</p><p>  private JC

16、omboBox combo2 = new JComboBox();</p><p>  private JButton buttonToday = new JButton();</p><p>  private Border border = BorderFactory.createRaisedBevelBorder();</p><p>  private B

17、order border1 = BorderFactory.createLineBorder(Color.cyan,3);</p><p>  public wnl (String title) {</p><p>  super(title);</p><p>  for (int y = 1900; y < 2200; y++) {</p>

18、<p>  combo1.addItem(" "+ new Integer(y).toString()+"年"); </p><p><b>  }</b></p><p>  for (int m = 0;m<12;m++){</p><p>  combo2.addItem(&quo

19、t; "+stringMonthCn[m]);</p><p><b>  }</b></p><p>  buttonToday.setText("現(xiàn)在時(shí)刻");</p><p>  setLayout(new FlowLayout());</p><p>  add(panel1);&

20、lt;/p><p>  add(panel2);</p><p>  add(panel3);</p><p>  panel1.setLayout(new GridLayout(2,3,10,2));</p><p>  panel1.add(combo1); </p><p>  combo1.addItemListe

21、ner(this); </p><p>  panel1.add(combo2);</p><p>  combo2.addItemListener(this);</p><p>  panel1.add(buttonToday);</p><p>  // buttonToday.addActionListener(this);&

22、lt;/p><p>  labelTime.setFont(new Font("宋體",Font.PLAIN,16));</p><p>  labelTime.setForeground(Color.red);</p><p>  panel1.add(labelTime);</p><p>  Timer time = n

23、ew Timer(1000,new TimerListener());</p><p>  time.addActionListener(new TimerListener());</p><p>  //time.setRepeats(true); </p><p>  time.start();</p><p>  //la

24、belTime.addAncestorListener(new TimerListener());</p><p>  panel2.setLayout(new GridLayout(7,7,10,10));</p><p>  panel2.setBackground(Color.white);</p><p>  for(int i=0;i<7;i++){

25、</p><p>  labelWeek[i] = new JLabel();</p><p>  labelWeek[i].setHorizontalAlignment(0);</p><p>  if(i==0||i==6){</p><p>  labelWeek[i].setBackground(Color.blue);</p&

26、gt;<p>  labelWeek[i].setForeground(Color.RED);</p><p>  labelWeek[i].setFont(new Font("黑體",Font.BOLD,14));</p><p><b>  }</b></p><p><b>  else{<

27、;/b></p><p>  labelWeek[i].setForeground(Color.BLACK);</p><p>  labelWeek[i].setFont(new Font("新宋體",Font.PLAIN,14));</p><p><b>  }</b></p><p> 

28、 labelWeek[i].setText(stringWeekCn[i]);</p><p>  panel2.add(labelWeek[i]);</p><p><b>  }</b></p><p>  for(int i= 0;i<42;i++){</p><p>  labelDay[i] = new

29、JLabel();</p><p>  labelDay[i].setHorizontalAlignment(0);</p><p>  labelDay[i].setText("");</p><p>  panel2.add(labelDay[i]);</p><p><b>  }</b><

30、;/p><p>  addWindowListener(new WindowAdapter(){ </p><p>  public void windowClosing(WindowEvent e){ </p><p>  System.exit(0); </p><p><b>  } </b></p>&

31、lt;p><b>  }); </b></p><p>  setSize(300,300); </p><p>  setBounds(250, 200, 400, 360);</p><p>  setVisible(true);</p><p>  setResizable(false);</p>

32、<p>  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);</p><p>  getSysDate();</p><p>  setNowDate();</p><p><b>  } </b></p><p>  public void actionPer

33、formed(ActionEvent ae){</p><p>  if(ae.getSource()==buttonToday){</p><p>  setNowDate();</p><p><b>  }</b></p><p><b>  }</b></p><p>

34、;  public void itemStateChanged(ItemEvent aa){</p><p>  setChangeDate();</p><p><b>  }</b></p><p>  public int turnWeek(String week){</p><p><b>  int

35、i;</b></p><p>  for(i=0;i<7;i++)</p><p>  if(week.equalsIgnoreCase(stringWeekEn[i]))</p><p><b>  break;</b></p><p>  return i; </p><

36、p><b>  }</b></p><p>  public int turnMonth(String month){</p><p><b>  /**</b></p><p>  *int turnMonth(String month)</p><p>  *@month 系統(tǒng)日期中的月,

37、諸如Jan\Feb</p><p>  *@return int</p><p>  *返回一個(gè)整數(shù)值,用于尋找stringMonthCn[]數(shù)組中對(duì)應(yīng)的中文月份</p><p><b>  */</b></p><p><b>  int i;</b></p><p>  

38、for(i=0;i<12;i++)</p><p>  if(month.equalsIgnoreCase(stringMonthEn[i]))</p><p><b>  break;</b></p><p>  return i; </p><p><b>  }</b></

39、p><p><b>  /**</b></p><p>  *setNowDate()</p><p><b>  *設(shè)置當(dāng)前系統(tǒng)日期</b></p><p><b>  */</b></p><p>  public void setNowDate(){&

40、lt;/p><p>  setSysDate(getNowYear(),getNowMonth());</p><p>  getSysRunDate(); </p><p>  setDateNull();</p><p>  combo1.setSelectedIndex(getShowYear() - 1900);</p>

41、;<p>  combo2.setSelectedIndex(getShowMonth());</p><p>  setDays(getMonthDays(getNowYear(),getNowMonth()),getInitWeek(sysRunTime[0]),getNowDay());</p><p>  labelTime.setText(sysNowTime[3]

42、);</p><p>  labelTime.setHorizontalAlignment(0); </p><p><b>  }</b></p><p>  /**Integer getShowYear()</p><p>  *獲取組合框中應(yīng)該顯示的年份</p><p><b> 

43、 */</b></p><p>  public void setSysDate(int year,int month){</p><p>  gregorianCalendar.set(year,month,1);</p><p><b>  }</b></p><p>  public void setD

44、ateNull(){</p><p>  for(int i=0;i<42;i++){</p><p>  labelDay[i].setText(" ");</p><p><b>  }</b></p><p><b>  }</b></p><p&

45、gt;  public void setChangeDate(){</p><p>  setSysDate(getComboYear(),getComboMonth());</p><p>  getSysRunDate();</p><p>  setDateNull();</p><p>  setDays(getMonthDays(g

46、etComboYear()+1,getComboMonth()+1),getInitWeek(sysRunTime[0]),-1);</p><p><b>  /**</b></p><p>  *返回所選年月的天數(shù),因?yàn)閿?shù)組中的數(shù)值從0開(kāi)始,所以各月必須加1.</p><p>  *而2月,經(jīng)過(guò)是否為閏年判斷,選擇返回28或29天.<

47、/p><p>  *其余月份為大月,返回31天.</p><p><b>  **/</b></p><p><b>  }</b></p><p>  public int getMonthDays(int year, int month) {</p><p>  switch

48、 (month) {</p><p><b>  case 4:</b></p><p><b>  case 6:</b></p><p><b>  case 9:</b></p><p><b>  case 11:</b></p>&

49、lt;p>  return 30;//小月返回30天</p><p><b>  case 2:</b></p><p>  if (gregorianCalendar.isLeapYear(year)) {</p><p>  //isLeapYear(year)確定當(dāng)前紀(jì)元中的指定年份是否為閏年。</p><p&g

50、t;  return 29;</p><p><b>  } else {</b></p><p>  return 28;</p><p>  }//閏年的二月返回29天,平年返回28天</p><p><b>  default:</b></p><p>  return

51、 31;</p><p><b>  //大月返回31天</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  /**</b></p><p>  *int getCom

52、boYear()</p><p>  *獲取組合框中的年份</p><p><b>  */</b></p><p>  public void getSysDate(){</p><p>  date = gregorianCalendar.getTime();</p><p>  sysNow

53、Time = (date.toString()).split(" ");</p><p><b>  }</b></p><p>  public void getSysRunDate(){</p><p>  date = gregorianCalendar.getTime();</p><p> 

54、 sysRunTime = (date.toString()).split(" ");</p><p><b>  }</b></p><p>  public int getComboYear(){</p><p>  return combo1.getSelectedIndex()+1900;</p>&l

55、t;p><b>  }</b></p><p>  /***int getComboMonth()</p><p>  *獲取月組合框中的整數(shù)值,</p><p><b>  */</b></p><p>  public int getComboMonth(){</p><

56、;p>  return combo2.getSelectedIndex();</p><p><b>  }</b></p><p>  public int getInitWeek(String initWeek){</p><p><b>  /**</b></p><p>  *getW

57、eekNow(String initWeek)</p><p>  *@para nowWeek 系統(tǒng)日期中的星期</p><p>  *返回當(dāng)月中的1號(hào)是從星期幾開(kāi)始</p><p><b>  */</b></p><p>  int nowWeek = 0 ;</p><p>  for(i

58、nt i = 0;i<7;i++){</p><p>  if(initWeek.equalsIgnoreCase(stringWeekEn[i])){</p><p>  nowWeek = i;</p><p><b>  break;</b></p><p><b>  }</b><

59、;/p><p><b>  }</b></p><p>  return nowWeek;</p><p><b>  }</b></p><p>  public int getNowYear(){</p><p>  return Integer.parseInt(sysNo

60、wTime[5]);</p><p><b>  }</b></p><p>  public int getNowMonth(){</p><p>  int nowMonth=0;</p><p>  for(int i=0;i<12;i++){</p><p>  if(sysNowT

61、ime[1].equalsIgnoreCase(stringMonthEn[i]));</p><p>  nowMonth=i;</p><p><b>  break;</b></p><p><b>  }</b></p><p>  return nowMonth; </p&

62、gt;<p><b>  }</b></p><p>  public int getNowDay(){</p><p>  return Integer.parseInt(sysNowTime[2]);</p><p><b>  }</b></p><p>  public Int

63、eger getShowYear(){</p><p>  return Integer.parseInt(sysNowTime[5]); </p><p><b>  }</b></p><p>  public Integer getShowMonth(){</p><p><b>  /**<

64、;/b></p><p>  *Integer getShowMonth()</p><p>  *獲取在組給框中顯示的中文格式月份:如七月\八月等</p><p><b>  */</b></p><p>  return turnMonth(sysNowTime[1]);</p><p>

65、;<b>  }</b></p><p>  public void setDays(int monthDays,int initWeek,int day){</p><p><b>  /**</b></p><p>  *void setDays(int monthDays,int initWeek,int day)&

66、lt;/p><p>  *@para monthDays 本月天數(shù)</p><p>  *@para initWeek 初始星期</p><p>  *@para day 今天日</p><p><b>  *設(shè)置月歷</b></p><p><b>  */</b></

67、p><p>  setDateNull();</p><p>  for(int i=initWeek;i<initWeek+monthDays+1;i++){</p><p>  if((i-initWeek+1)==day){</p><p>  labelDay[i].setBorder(border1);</p>&l

68、t;p>  labelDay[i].setForeground(Color.BLUE);</p><p>  labelDay[i].setFont(new Font("黑體",Font.BOLD,20));</p><p>  }else if((i%7==0)||(i%7==6))</p><p>  labelDay[i].setFo

69、reground(Color.RED);</p><p><b>  else{</b></p><p>  labelDay[i].setForeground(Color.BLACK);</p><p><b>  }</b></p><p>  labelDay[i].setText(Strin

70、g.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><b> 

71、 }</b></p><p>  class TimerListener implements ActionListener{</p><p>  //AdapterDemo var=new AdapterDemo("萬(wàn)年歷");</p><p>  public void actionPerformed(ActionEvent e)

72、 {</p><p>  GregorianCalendar g = new GregorianCalendar();</p><p>  String clock = new String((g.getTime().toString().split(" "))[3]); </p><p>  labelTime.setText(cloc

73、k);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  4、運(yùn)行結(jié)果:</b></p><p>  在安裝有JRE平臺(tái)的環(huán)境下,雙擊生成的萬(wàn)年歷.jar運(yùn)行:</p><p>  說(shuō)明:簡(jiǎn)潔而明

74、晰的運(yùn)行結(jié)果,足以證明實(shí)驗(yàn)的正確性 </p><p><b>  5、體會(huì)心得:</b></p><p>  經(jīng)過(guò)短暫的一周的Java程序設(shè)計(jì),使我又學(xué)到了很多的知識(shí),尤其是運(yùn)用Java知識(shí)去解決實(shí)際問(wèn)題的能力又得到了很大的提高。盡管所設(shè)計(jì)的程序比較簡(jiǎn)單,但是程序中的每個(gè)功能的實(shí)現(xiàn)都經(jīng)過(guò)了自己的一定認(rèn)真的思考。由于把所學(xué)的知識(shí)做到很靈活的運(yùn)用在實(shí)際中,對(duì)于現(xiàn)在的我還有

75、一定的難度,故而,在設(shè)計(jì)的每個(gè)的環(huán)節(jié)中,都會(huì)多多少少的遇到一些問(wèn)題,這就促使我去查閱各種資料,或者請(qǐng)教老師和同學(xué),極大的提高我的專業(yè)素養(yǎng),同時(shí)對(duì)在有些書(shū)上的理論知識(shí)在實(shí)際的運(yùn)用,以及應(yīng)該注意的問(wèn)題有了比較深刻的認(rèn)識(shí)。當(dāng)然,仍然有些理論問(wèn)題不是很好的去運(yùn)用,或者是了解的不深刻。這就使的在實(shí)踐中的所設(shè)計(jì)的程序有些功能不是自己所想的那樣的完美。不過(guò),既然發(fā)現(xiàn)了問(wèn)題的所在,我就不會(huì)放棄的,直至問(wèn)題得到解決。這些也同時(shí)反映出了平時(shí)運(yùn)用知識(shí)去實(shí)踐這

76、方面做的太少。太缺乏經(jīng)驗(yàn)。對(duì)所設(shè)計(jì)中將所面臨的問(wèn)題認(rèn)識(shí)不夠。是Java課程設(shè)計(jì)讓我認(rèn)識(shí)到了這些問(wèn)題的存在。同時(shí)給我提供了去面對(duì)這些問(wèn)題的平臺(tái)。也使我充分的認(rèn)識(shí)到在以后也應(yīng)該怎樣去實(shí)踐,怎樣去學(xué)習(xí)一門計(jì)算機(jī)語(yǔ)言,以及如何去運(yùn)用這門語(yǔ)言去解決實(shí)際問(wèn)題等等。</p><p>  總之,在經(jīng)過(guò)這次Java的課程設(shè)計(jì),使我認(rèn)識(shí)到了自己很多的缺點(diǎn),同時(shí),也是我學(xué)到新知識(shí)和新方法的一個(gè)機(jī)會(huì)。這給我在以后繼續(xù)學(xué)習(xí)好這門語(yǔ)言指明了

77、方向。</p><p><b>  6、參考文獻(xiàn):</b></p><p>  [1]《Java2從入門到精通》,印旻編、許偉編著,清華大學(xué)出版社</p><p>  [2]《Java編程思想》,周文龍等著,青年出版社</p><p>  [3]《Java學(xué)習(xí)指南》,寒露、王梅等著,教育出版社</p>&l

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論