編寫一萬年歷系統(tǒng)_第1頁
編寫一萬年歷系統(tǒng)_第2頁
編寫一萬年歷系統(tǒng)_第3頁
編寫一萬年歷系統(tǒng)_第4頁
編寫一萬年歷系統(tǒng)_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

_一、課程設計的內容要求: 模仿現實生活中的掛歷.當前頁以系統(tǒng)當前日期的月份為準顯示當前月的每一天(顯示出日及對應的星期幾).精品文檔放心下載當系統(tǒng)日期變到下一月時,系統(tǒng)自動翻頁到下一月二、課程設計的要求與數據1、進一步掌握和利用C語言進行程設計的能力;2、進一步理解和運用結構化程序設計的思想和方法;3、初步掌握開發(fā)一個小型實用系統(tǒng)的基本方法;4、學會調試一個較長程序的基本方法;5、學會利用流程圖或N-S圖表示算法;6、掌握書寫程序設計開發(fā)文檔的能力。三、課程設計應完成的工作1、編寫完成相應題目的程序;2、編寫課程設計報告,課程設計報告的內容應包括以下6個部分:精品文檔放心下載需求分析:包括設計題目、設計要求以及系統(tǒng)功能需求分析;謝謝閱讀總體設計:包括系統(tǒng)總體設計框架和系統(tǒng)功能模塊圖;詳細設計:包括主要功能模塊的算法設計思路以及對應的工作流程圖;精品文檔放心下載調試分析過程描述:包括測試數據、測試輸出結果,以及對程序調試過程中存在問題的思考(列出主要問題的出錯現象、出錯原因、解決方法及效果等,適當的包含結果截圖);謝謝閱讀總結:課程設計完成了哪些功能,有沒有什么擴展功能?還有哪些地方需要改進?課程設計過程中的學習體會與收獲、對本次課程設計的認識以及自己的建議等內容;謝謝閱讀附錄:主要源程序代碼,含必要的注釋。3、答辯:在實驗室建立程序運行的環(huán)境,并在指導教師的監(jiān)督下,獨立解感謝閱讀決問題、運行程序和回答教師提出的問題。_四、課程設計進程安排序號 設計各階段內容 地點 起止日期實 驗1下達任務書,說明設計要求;收集資料3#5176.18實 驗2 總體方案設計、詳細設計 3#517 6.19實 驗3 編寫程序,調試分析 3#517 6.20實 驗4 撰寫報告并上交,答辯 3#517 6.21五、應收集的資料及主要參考文獻譚浩強.C程序設計(第三版)[M],北京:清華大學出版社,2005.9謝謝閱讀譚浩強.C程序設計題解與上機指導(第三版)[M],北京:清華大學出版社,2005.7感謝閱讀劉振安孫忱劉燕君.C程序設計課程設計.北京:機械工業(yè)出版社,2004.9謝謝閱讀發(fā)出任務書日期:2007年6月18日 指導教師簽名:謝謝閱讀計劃完成日期: 2007年6月22日 基層教學單位責任人簽章:感謝閱讀主管院長簽章:_目 錄設計目的與要求………………4精品文檔放心下載總體設計………………………4謝謝閱讀詳細設計………………………5-7精品文檔放心下載調試分析……………………8-10精品文檔放心下載總結……………10謝謝閱讀附錄…………11-12謝謝閱讀6答辯記錄(正文處請留出適當空白)………12-13謝謝閱讀7指導教師意見(正文處請留出十行空白)…………………13感謝閱讀目的與要求課程設計的目的課程設計為學生提供了一個既動手又動腦,獨立實踐的機會,將課本上的理論知識和實精品文檔放心下載際應用問題進行有機結合,鍛煉學生分析、解決實際問題的能力,提高學生項目開發(fā)及程謝謝閱讀序調試能力。課程設計的內容及要求利用學到的編程知識和編程技巧,通過設計編寫一個萬年歷系統(tǒng),幫助熟悉程序編寫,精品文檔放心下載及時查究錯誤,獨立完成。_要求: 模仿現實生活中的掛歷.當前頁以系統(tǒng)當前日期的月份為準顯示當前月的每一天(顯示出日及對應的星期精品文檔放心下載幾).當系統(tǒng)日期變到下一月時,系統(tǒng)自動翻頁到下一月總體設計主程序獲取系統(tǒng)日期計算出當天是星期幾換算出本月第1天是星期幾打印輸出本月月歷詳細設計1.由于要以系統(tǒng)當前日期的月份為準顯示當前月的每一天,所以用如下精品文檔放心下載”獲取系統(tǒng)當前日期”并分別賦值給變量year,month,day:精品文檔放心下載time_ttoday;structtm*p;time(&today);_p=localtime(&today);year=p->tm_year+1900;month=p->tm_mon+1;day=p->tm_mday;注意1,由于返回的是1900到現在的秒數,所以year后面要加上1900,又起始是1月,精品文檔放心下載所以mon要加1;注意2,頭文件#include<time.h>不能忘了.精品文檔放心下載2.對得到的系統(tǒng)日期進行處理,算出當天是星期幾if(year>=0) //由于已知公元元年1月1日為星期一,所以以改日為基準計算精品文檔放心下載for(i=0;i<year;i++){ if((i%4==0&&i%100!=0)||i%400==0) //判斷是否為閏年謝謝閱讀days=days+366;elsedays=days+365;}if((year%4==0&&year%100!=0)||year%400==0) //判斷是否為閏年精品文檔放心下載for(j=0;j<month-1;j++){days=days+m2[j];m=m2[month]; //算出當月天數}elsefor(j=0;j<month-1;j++)精品文檔放心下載_{days=days+m1[j];m=m1[month]; //算出當月天數}days=days+day-2; //元年1月1日為星期一,days得出與之前的那個星期天相差感謝閱讀的天數n=days%7; //余數n為0為星期天,1為星期一…..謝謝閱讀elseprintf(“日期錯誤\n”)流程圖:N打印日期year>=0錯誤Y

_Y判斷是否為閏年 days=days+366Ndays=days+365i=i+1Yi<yearNYYj<mo判斷是否為閏年days=days+m2[j]j=j+1nth-1Nm=m2[month]days=days+m1[j]Nm=m1[month]j=j+1Yj<month-1Ndays=days+day-2n=days%73.由當天是星期幾換算成該月第一天是星期幾:if(day>1)k=(7-(day-n+6)%7)%7; //此月第一天是星期幾謝謝閱讀elseif(day==1)k=n;流程圖: Nday>1 k=nYk=7-(day-n+6)%74.打印輸出本月當前月歷:printf("sunmontuewenthufrisat\n");謝謝閱讀for(o=0;o<k;o++)printf(" ");for(o=k;o<k+m;o++){printf("%4d",o-k+1);if(o%7==6)printf("\n");}流程圖printf(" sun mon tuewenthufrisat\n")NYo<kprintf("")Yo<k+m printf("%4d"

o=o+1Y

_printf( o=o,o-k+1)N結束

o%7==6 "\n") +1N_調試分析1,在當天的系統(tǒng)時間(06年7月21號)運行后;謝謝閱讀2,為了驗證是否是日期跳到下個月是自動跳換的,我改了系統(tǒng)時間,設定為07年7月精品文檔放心下載21號,運行結果如下:_3,由于上面兩次試運行都成功了,所以我把系統(tǒng)時間設定為過去的06年6月,考察看是感謝閱讀否還能正常運行:可以看到,幾次試運行都是成立的,而且根據設計,這個萬年歷可以顯示的月歷可以謝謝閱讀到公元元年!_當然調試過程中也遇到了一些問題,如:發(fā)現這是k被賦予了7的結果,所以我就在k=7-(day-n+6)%7;的基礎上做了修改:感謝閱讀k=(7-(day-n+6)%7)%7;所以遇到的問題就解決了!謝謝閱讀還有一個想法就是定義了days是整型,理論上可能導致超出整型的范圍,所以應該精品文檔放心下載可以考慮使用long型,不過必要性不是很大所以忽略.謝謝閱讀5總結基本完成了設計的要求內容(模仿顯示生活中的掛歷,當前頁以系統(tǒng)當前日期的月份感謝閱讀為準顯示當前月的沒一天(顯示出日期對應的星期幾),當系統(tǒng)日期變到下一月時,系統(tǒng)自精品文檔放心下載動翻頁到下一月),不過顯示頁面有待改進,可以更加人性化一些。還有的問題就是現在的感謝閱讀是獲取系統(tǒng)時間自動換頁顯示日歷,不過沒有實現人工換頁的功能,如果實現的話,應該精品文檔放心下載_要定義變量year,month,day;為可以直接賦值的,那樣的話便可以隨意查詢任意一個感謝閱讀月的日歷了!在本次課程設計中,我體會到了很多C語言學習中的心得,我深深體會到查找資料的感謝閱讀重要性,因為本次設計需要比較全面的C語言知識,需要從書本查找大量的幫助資料,所謝謝閱讀以很考大家自我學習提高的能力。在此設計前,我都不敢想象自己可以用學到的C語言做出這樣的程序出來,總覺得自感謝閱讀信不夠,但通過這次設計,經過了幾夜鏖戰(zhàn)最后把程序運行出來時,內心的喜悅是難以言謝謝閱讀表的。這次的成功不僅給了我學號C語言用好C語言的動力,也給了我更加深入的學習C精品文檔放心下載語言的動力,C語言確實是一門很實際的計算機語言!通過這次設計也使自己對C語言的掌握提高到了一個新的水平,能夠利用C語言編寫感謝閱讀出一個實用的程序,很大程度提高了程序綜合設計能力、分析能力和編程能力,以及自我感謝閱讀動手能力等等。這對以后學習和工作中遇到問題也是很有幫助的,畢竟我曾經戰(zhàn)勝過它!感謝閱讀7.附錄#include<stdio.h>#include<time.h>intmain(void){intyear,month,day;_intdays=0,i,j,n,m,k,o;intm1[]={31,28,31,30,31,30,31,31,30,31,30,31};感謝閱讀intm2[]={31,29,31,30,31,30,31,31,30,31,30,31};精品文檔放心下載time_ttoday;structtm*p;time(&today);p=localtime(&today); //轉換成本地時間的日期謝謝閱讀year=p->tm_year+1900;month=p->tm_mon+1;day=p->tm_mday;printf(" %4d-%02d\n",year,month); //打印出年月精品文檔放心下載if(year>=0) //由于已知公元元年1月1日為星期一,所以以改日為基準計算感謝閱讀for(i=0;i<year;i++){ if((i%4==0&&i%100!=0)||i%400==0) //判斷是否為閏年謝謝閱讀days=days+366;elsedays=days+365;}if((year%4==0&&year%100!=0)||year%400==0) //判斷是否為閏年謝謝閱讀for(j=0;j<month-1;j++){days=days+m2[j];_m=m2[month]; //算出當月天數}elsefor(j=0;j<month-1;j++)感謝閱讀{days=days+m1[j];m=m1[month]; //算出當月天數}days=days+day-2; //元年1月1日為星期一,days得出與之前的那個星期天相差謝謝閱讀的天數n=days%7; //余數n為0代表為星期天,1代表為星期一…..謝謝閱讀elseprintf(“日期錯誤\n”);if(day>1)k=(7-(day-n+6)%7)%7; //通過轉換算出此月第一天是星期幾精品文檔放心下載elseif(day==1

溫馨提示

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

最新文檔

評論

0/150

提交評論