c語言綜合練習打印日歷教程附完整源程序.doc

c語言綜合練習打印日歷教程附完整源程序.doc

ID:50364977

大?。?64.01 KB

頁數:14頁

時間:2020-03-08

c語言綜合練習打印日歷教程附完整源程序.doc_第1頁
c語言綜合練習打印日歷教程附完整源程序.doc_第2頁
c語言綜合練習打印日歷教程附完整源程序.doc_第3頁
c語言綜合練習打印日歷教程附完整源程序.doc_第4頁
c語言綜合練習打印日歷教程附完整源程序.doc_第5頁
資源描述:

《c語言綜合練習打印日歷教程附完整源程序.doc》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。

1、綜合練習打印日歷練習的功能是:由用戶輸入一個年后,然后就可以分月輸出當年的年歷。例如輸入2010,則輸出2010年的年歷。如圖,圖中顯示的年歷的一部分:學習目標:繼續(xù)熟悉數組的使用;繼續(xù)熟悉函數的使用了解程序算法設計及N-S流程圖;綜合使用函數和數組完成設計任務一分析程序算法圖2算法分析圖先來分析要解決的問題,如圖2程序算法分析如下:1.整個程序大致可以分為兩個主要部分:輸入年份;打印該年的日歷,如圖2①所示。2.打印日歷時,為了清楚的知道打印的是哪一年的日歷,先打印年份,接著從1月~12月,分別打印個月份的名

2、稱(英文縮寫),然后打印星期的名稱(英文縮寫),最后在打印當月的日歷,如圖2②所示。3.要打印某月的日歷,首先必須生成當月日歷,然后在打印,如圖2③所示。4.生成每個月的日歷,需要知道當月有多少天,當月每一天是星期幾,然后生成當月日歷并保存,如圖2④所示。5.要知道每月有多少天是比較容易的,除了2月份外,其它月份的天數都是確定的,關鍵就是確定2月份有幾天,如圖2⑤所示。6.如果當年是閏年,則2月份有29天,否則為28天。如圖2⑥所示。7.要想確定當月每一天是星期幾,需要知道當年第一天是星期幾,然后類推,每7天一

3、個周期,如圖2⑦所示。1.經過以上的4~7步,可以生成日歷,然后設計存儲格式,保存日歷。2.設計好輸出格式,打印已生成的日歷即可,如圖2⑧所示。將圖2加以綜合和細化,最終可以得到整個程序的N-S流程圖,如圖3所示。圖3算法分析N-S流程圖二、按功能劃分函數經過上面的分析,發(fā)現在這個程序設計中有幾個關鍵部分:①確定每月有多少天,關鍵是確定當年是否為閏年。②確定每天是星期幾,關鍵是確定當年1月1日是星期幾。③設計數據的存儲格式和打印格式。對于較復雜的程序,可以把功能分解,每個小功能用一個函數實現,使程序的總體結構更

4、加清晰。在這個程序中,應考慮使用以下4個函數。函數1:intleapyear(intyear),判斷year年是否是閏年。函數2:voidprint2(intmonth,intt),按月打印日歷。函數3:voidcalendar(intyear),按月生成日歷。函數4:main()函數。任務二確定每個月的天數除了閏年外,每個月有多少天是確定的,所以首相確定非閏年每個月有多少天,然后判斷當年是否是閏年,就可以確定當年的2月份有幾天。一、確定非閏年每年有多少天可以使用一維整型數組monthday[]來存放每個月的天

5、數,代碼如下:intmonthday[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};數組長度定義為13,是因為這樣定義賦值后“monthday[1]=31”,表示1月份的天數是31天,比較符合我們的日常習慣,元素monthday[0]沒有使用。一、確定當年2月有多少天如果是閏年,則2月份29天,閏年的規(guī)定:凡是年份能夠被4整除、且不能被100整除的是閏年;凡是年份能被400整除的也是閏年;除此以外的年份都不是閏年。程序段如下:if((year%4==0)&&(year%

6、100!=0)

7、

8、(year%400==0))monthday[2]=29;為了提高程序的可讀性,實現程序的模塊化設計,對閏年的判斷設計成函數leapyear();閏年判斷函數intleapyear(intyear){if((year%4==0)&&(year%100!=0)

9、

10、(year%400==0))return1;elsereturn0;}任務三確定當年的每天是星期幾確定每天是星期幾,關鍵是確定當年的1月1日是星期幾。在公元日歷的編排中,公元元年幾0001年1月1日是星期一,對于輸入的年號year,ye

11、ar年的1月1日是星期幾可以用下列公式計算:todayweek=[year+(year-1)/4-(year-1)/100+(year-1)/400]%7注:此算法可以見另一附件“計算每年的第一天星期幾”文檔。當年第一天是星期幾判斷出來了,就可以一次推算以后的日子是星期幾。任務四設計數據存儲格式,生成各月日歷必須為所有需要存儲的數據設計存儲結構,有了存儲結構就可以存儲生成的每個月的日歷。一、設計數據的存儲格式①使用一維整型數組monthday存放每個月的天數。intmonthday[13]={0,31,28,3

12、1,30,31,30,31,31,30,31,30,31};②使用二維字符數據monthname存放每個月的英文名稱。charmonthname[13][6]={“”,”JAN”,”FEB”,”MAR”,”APR”,”MAY”,”JUNE”,”JULY”,“AUG”,”SEP”,”O(jiān)CT”,”NOV”,”DEC”};①使用二維數字符數組weekday存放一周每一天的星期的英文名稱。ch

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯系客服處理。