萬年歷c語言課程設計_第1頁
已閱讀1頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  目錄</b></p><p>  第一章 課程設計的目的和要求1</p><p>  第二章 課程設計內容及要求2</p><p>  第三章 設計說明3</p><p>  第四章 課程設計心得體會5</p><p>  附錄1:參考文獻6</p

2、><p>  附錄2:程序代碼7</p><p>  第一章 課程設計的目的和要求</p><p>  C語言課程設計的主要目的是培養(yǎng)學生綜合運用C語言程序設計課程所學到的知識,編寫C程序解決實際問題的能力,以及嚴謹的工作態(tài)度和良好的程序設計習慣。</p><p>  通過課程設計的訓練,學生應該能夠了解程序設計的基本開發(fā)過程,掌握編寫、調

3、試和測試C語言程序的基本技巧,充分理解結構化程序設計的基本方法。</p><p>  C語言程序設計的主要任務是要求學生遵循軟件開發(fā)過程的基本規(guī)范,運用結構化程序設計的方法,按照課程設計的題目要求,分析、設計、編寫、調試和測試C語言程序及編寫設計報告。</p><p><b>  本課程設計的目標</b></p><p>  1鞏固和加深學生對

4、c++語言課程的基本知識的理解和掌握</p><p>  2 掌握c++語言編程的和程序調試的基本技能</p><p>  3 掌握利用c++語言進行程序軟件設計的方法</p><p>  4 提高書寫程序設計說明文檔的能力</p><p>  5 提高運用c語言解決實際問題得能力</p><p><b> 

5、 基本要求</b></p><p>  1 分析課程設計題目得要求</p><p>  2 對系統功能模塊進行分析,寫出詳細設計說明文檔</p><p>  3 編寫程序代碼,調試程序使能正確運行</p><p>  4 設計完成的軟件要便于操作和使用 </p><p>  5 設計完成后提交課程設計報告&

6、lt;/p><p>  第二章 課程設計內容及要求</p><p><b>  設計背景:</b></p><p>  隨著高科技時代的到來,人們越來越享受著電子信息技術給人生活帶來的便捷與高效。人們也漸漸不能滿足于傳統的掛式日歷。傳統掛式日歷得使用方式較為繁瑣,而且每天都要去手動翻頁。因此電子萬年歷漸漸地興起了。</p><p

7、><b>  設計要求:</b></p><p>  模仿現實生活中的掛歷,以當前頁系統當前日期的月份為準顯示當前月的每一天(顯示出日及對應的星期幾)。前系統日期變到下一月時,系統自動翻頁到下一個月。</p><p><b>  第三章 設計說明</b></p><p><b>  系統模塊圖</b&

8、gt;</p><p><b>  流程圖:</b></p><p><b>  運行某次截圖如下:</b></p><p>  圖3.3某次程序運行圖</p><p>  第四章 課程設計心得體會</p><p>  進過三周的課程設計,我獨立完成了一個較大的C語言程序的設

9、計,以及認真完成了課程設計的設計報告。</p><p>  回憶著三周的時間,我的收獲很大。首先,通過這次課程設計,我熟練的掌握并運用了所學的知識進行了編程,而且取得了成功,這大大激發(fā)了我對編程的興趣;其次,在涉及的過程中所遇到的困難,我都認真的去思考,和同學以及老師交流,或者利用網上資源來獲取幫助,了解解決辦法。通過各種渠道,完善所學到的東西。最后,我了解到了軟件開發(fā)的答題過程和各個必要的步驟,這對我將來的學習

10、和應用都是很有幫助的。</p><p>  對于計算機專業(yè)的大學生來說,積累實戰(zhàn)經驗是一項極其重要的內容,很可能成為將來就業(yè)的敲門磚。而程序設計綜合課程設計就是積累實戰(zhàn)經驗的一個過程,雖然程序的規(guī)模不是很大,但是能夠讓我們盡早的認識軟件開發(fā)的重要性和必要性,為將來的就業(yè)打下堅實的基礎。</p><p><b>  附錄1:參考文獻</b></p><

11、;p>  譚浩強:C程序設計,清華大學出版社,2005年7月第三版</p><p>  譚浩強:C++程序設計,清華大學出版社,2004年6月第一版</p><p><b>  附錄2:程序代碼</b></p><p>  #include<iostream></p><p>  #include<

12、;malloc.h></p><p>  #include<string.h></p><p>  #include<stdlib.h></p><p>  typedef struct</p><p><b>  {</b></p><p>  unsigned c

13、har day;</p><p>  unsigned char month;</p><p>  unsigned short year;</p><p><b>  }</b></p><p>  T_MFW_DATE;</p><p>  typedef struct</p>

14、<p><b>  {</b></p><p>  T_MFW_DATE date; /*記錄的日期*/</p><p><b>  }</b></p><p>  t_cldrecord;</p><p>  typedef struct</p><p><

15、;b>  {</b></p><p>  T_MFW_DATE today_date; </p><p>  T_MFW_DATE cursor_date;</p><p>  int days_map[6][7]; /*日期地圖*/</p><p><b>  }</b></p>

16、<p>  t_cldmain_data;</p><p>  t_cldmain_data *cldmain_data;</p><p>  void cldmain_get_days_map(void);</p><p>  void main(void)</p><p><b>  {</b></p

17、><p><b>  int i,j;</b></p><p>  cldmain_data = (t_cldmain_data*)malloc(sizeof(t_cldmain_data));</p><p>  cldmain_data->cursor_date.day = 20;</p><p><b>

18、;  while(1)</b></p><p><b>  {</b></p><p>  char buf[20];</p><p><b>  char *p;</b></p><p>  memset(buf,0,20);</p><p>  printf(

19、"year month:");</p><p>  gets(buf);</p><p>  if(buf[0] == 'q')break;</p><p>  cldmain_data->cursor_date.year = strtod(buf,&p);</p><p><b>

20、  p ++;</b></p><p>  cldmain_data->cursor_date.month = strtod(p,&p);</p><p>  printf("yea%d\nmonth%d\n",(cldmain_data->cursor_date.year),(cldmain_data->cursor_date.m

21、onth));</p><p>  cldmain_get_days_map();</p><p>  printf(" mo tu w th fr sa su\n");</p><p>  for(j = 0; j < 6; j ++)</p><p><b>  {</b></p>

22、;<p>  printf("\t");</p><p>  for(i = 0; i < 7; i ++)</p><p><b>  {</b></p><p>  printf("%i\t",cldmain_data->days_map[j][i]);</p>

23、<p><b>  }</b></p><p>  printf("\n");</p><p><b>  }</b></p><p><b>  }</b></p><p>  getchar();</p><p>&l

24、t;b>  }</b></p><p>  /*檢查日期是否合法合法返回1,否則返回0*/</p><p>  int check_date(T_MFW_DATE date)</p><p><b>  {</b></p><p>  char month_days[] = {31,29,31,30,3

25、1,30,31,31,30,31,30,31};</p><p>  /*大于2000年,小于2100年,月份合法*/</p><p>  if(date.year < 2000 || date.year >= 2100 || date.month < 1 || date.month > 12)</p><p><b>  {<

26、;/b></p><p><b>  return 0;</b></p><p><b>  }</b></p><p><b>  /*day合法*/</b></p><p>  if(date.day < 1)return 0;</p><p

27、>  if(date.day > month_days[date.month - 1])return 0;</p><p>  if(date.month == 2)</p><p><b>  {</b></p><p>  if(date.year % 4 != 0)</p><p><b> 

28、 {</b></p><p>  if(date.day == 29)return 0;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  return 1;</b></p><p>

29、<b>  }</b></p><p>  /*功能:得到每個月第一天是星期幾星期 一 二 三 四 五 六 日</p><p>  返回值:1 2 3 4 5 6 7如果返回為0,則出錯*/</p><p>  int get_weekday_of_month(T_MFW_DATE cursor_date)</p>&

30、lt;p><b>  {</b></p><p><b>  int day;</b></p><p>  /*參照1997年1月1日,參數cursor_date從2000年1月1日到2099年1月1日*/</p><p>  char month_days[] = { 31, 28, 31, 30, 31, 3

31、0, 31, 31, 30, 31, 30, 31};</p><p>  int this_year_days[] ={ 0, 31, 59, 90, 120, 151,181, 212, 243, 273, 304, 334};</p><p>  int cursor_year_days = this_year_days[cursor_date.month - 1] +

32、(cursor_date.day = 1);</p><p>  int comp_days = (cursor_date.year - 1997)*365 + cursor_year_days;</p><p>  int i = (cursor_date.year - 1997)/4;</p><p>  comp_days = comp_days + i *

33、1;</p><p>  if(cursor_date.month > 2)</p><p><b>  {</b></p><p>  if( cursor_date.year % 4 == 0 )</p><p><b>  {</b></p><p>  comp

34、_days += 1;</p><p><b>  }</b></p><p><b>  }</b></p><p>  if(cursor_date.day > 2098)return 0;</p><p>  day = comp_days % 7;</p><p&g

35、t;  /*1997年1月1日是星期三*/</p><p>  day = (day + 2) % 7;</p><p>  if(day == 0)day = 7;</p><p>  return day;</p><p><b>  }</b></p><p>  /*根據參數的值,得到該年

36、該月有多少天.返回值:該月的天數*/</p><p>  int count_days_of_month(T_MFW_DATE cursor_date)</p><p><b>  {</b></p><p>  char month_days[] = {31,28,31,30,31,30,31,31,30,31,30,31};</p&g

37、t;<p>  unsigned char day = cldmain_data->cursor_date.day;</p><p>  unsigned char month = cldmain_data->cursor_date.month;</p><p>  unsigned short year = cldmain_data->cursor_dat

38、e.year;</p><p>  if(month != 2)</p><p><b>  {</b></p><p>  return month_days[month -1];</p><p><b>  }</b></p><p><b>  else<

39、;/b></p><p><b>  {</b></p><p>  if(year%4 != 0)</p><p><b>  {</b></p><p>  return 28;</p><p><b>  }</b></p>&

40、lt;p>  if(year%4 == 0)</p><p><b>  {</b></p><p>  if(year%100 == 0)</p><p><b>  {</b></p><p>  if(year %400 == 0)</p><p><b&g

41、t;  {</b></p><p>  return 29;</p><p><b>  }</b></p><p>  return 28;</p><p><b>  }</b></p><p>  return 29;</p><p>

42、;<b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  /*得到日期地圖,保存到全局結構變量cldmain_data的成員數組變量days_map中.*/</p><p>  void cldmain_get

43、_days_map(void)</p><p><b>  {</b></p><p><b>  int i;</b></p><p><b>  int day;</b></p><p>  T_MFW_DATE cursor_date = cldmain_data->

44、;cursor_date;</p><p>  int *map_p = cldmain_data->days_map[0];</p><p>  int days_count;</p><p>  int weekday;</p><p>  for(i = 0; i < 6*7; i++)</p><p&g

45、t;<b>  {</b></p><p>  map_p[i] = 0;</p><p><b>  }</b></p><p>  if(check_date(cldmain_data->cursor_date) == 0)return;</p><p>  days_count = co

46、unt_days_of_month(cldmain_data->cursor_date);</p><p>  weekday = get_weekday_of_month(cldmain_data->cursor_date);</p><p><b>  day = 1;</b></p><p>  for(i = weekday

47、-1; i < days_count + weekday - 1; i++)</p><p><b>  {</b></p><p>  map_p[i] = day;</p><p><b>  day ++;</b></p><p><b>  }</b></p

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論