版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、C語言課程設(shè)計報告書萬年歷系統(tǒng)設(shè)計學(xué)院:理學(xué)院專業(yè):信息與計算科學(xué) 姓名: 指導(dǎo)教師:序言 經(jīng)過一個學(xué)期對C程序設(shè)計的學(xué)習(xí),同學(xué)們都認(rèn)為真正的學(xué)到了有用知識,可能有一些人學(xué)的不夠理想,但無論如何,這些知識都為我們的下一步學(xué)習(xí)打下了堅實的基礎(chǔ)。做這么一個課程設(shè)計,一方面是為了檢查我們一個學(xué)期來我們學(xué)習(xí)的成果,另一方面也是為了讓我們進(jìn)一步的掌握和運用它,同時也讓我們認(rèn)清自己的不足之處和薄弱環(huán)節(jié),加以彌補和加強。 本程序是一個萬年歷程序,可以查詢1970年1月1日到2100年1月1日中任意一天是星期幾,只要在運行程序時按照要求輸入年,月,日,程序就會把這一天是星期幾顯示子啊屏幕上;也可以輸入一個年份
2、和一個月份,程序就會把該月份的月歷顯示在屏幕上,使人一目了然。該程序能與目前天文學(xué)研究中所采用的各種日歷程序所能計算的結(jié)果相一致。還有許多功能等著你去探討。 這個程序花費了很多時間,用了一天的時間去設(shè)計程序和調(diào)試程序,而在調(diào)試程序的過程中,經(jīng)常會出現(xiàn)一些不如意的地方,所以程序就要修改。所以這樣經(jīng)過一次又一次的修改之后,程序更顯得人性化。通過這一次程序的設(shè)計,讓我深深的感受到程序員的辛苦。 2012年6月11日 【課程設(shè)計題目:萬年歷系統(tǒng)】【要求】1:程序的功能多樣;2:輸入日期能夠判斷該日期是星期幾;3:輸入一個年份能夠顯示出該年的全部月歷;4:輸入一個年月能夠顯示該月的月歷;5:輸入一個年份
3、能夠判斷該年是閏年還是平年;6:能夠退出。 進(jìn)入程序【系統(tǒng)總體功能設(shè)計框架】 1:日期查詢2:一年月歷查詢3:月歷查詢4:閏年判斷5:退出1、輸入年,月,日(1970,1-2100,1)2、輸入年(0-5000)3、輸入年,月(0,15000,12)4、輸入年(0-5000)閏、平年該月月歷12個月歷星期*屏幕顯示繼續(xù)Y,yN退出程序【系統(tǒng)功能模塊圖】主要功能模塊1:輸入year,month,day計算month與當(dāng)年的1月間隔了多少天rr=r+(year/4)*1461+(year%4)*365+dayr=r%7r=0r=1r=2r=3r=4r=5r=6SatSunMonTueWedThuF
4、irY或y返回菜單其他輸入均退出程序代碼:printf(please input the day you want(2100,1,1*,*,*1970,1,1):);scanf(%d,%d,%d,&year,&month,&day);for(b=0,r=0;b2006) days=(year-2006)*365+count_leap(year)+monthdays(month,year); weekday=days%7; else if(year2006) days=(2005-year)*365+count_leap(year)+monthdays(month,year); weekday=
5、7-days%7; else days=monthdays(month,year);weekday=days%7; for (i=1;iweekday+2;i+) printf (t); for (i=1;i=y;i+) if (i+weekday-1)%7=0) printf (nt%3dt,i); else printf (%3dt,i); 主要功能模塊3: 輸入的年份 判斷從定義年到輸入的年份中每個年份是否為閏年是 否閏年每年為366天 平年每年為365天 返回該年的天數(shù)程序代碼: int i; if (year%4=0&year%100!=0|year%400=0) i=1; else
6、 i=0; return i;【用到的語句】1., /*頭文件*/2.main() /*主函數(shù)*/3.printf(),4.scanf()5.a /*數(shù)組*/6.if 語句7.for 語句8.void /*要調(diào)用到的函數(shù)*/【源程序代碼】#include#include int main() /主函數(shù) int leap_year(int y); int count_leap(int year);int monthdays(int month,int year);void monthprint(int year,int month);int year,month,day,b,r,number;
7、/定義變量char choose;int a=0,31,28,31,30,31,30,31,31,30,31,30,31;printf(*mainMeun*n);printf( 1:ri qixing qi ji.n);printf( 2:yue li.n);printf( 3:ri li.n);printf( 4:run nian pan duan. n);printf( 5:exitn);printf(n);printf(*n);printf ( please input the number:);scanf(%d,&number);if(number=1)printf(please in
8、put the day you want(2100,1,1*,*,*1970,1,1):); scanf(%d,%d,%d,&year,&month,&day); /輸入要查詢的日期for(b=0,r=0;b*0):); scanf(%d,&year); /輸入要查詢的年份 for(month=1;month*,*1970,1):); scanf(%d,%d,&year,&month); /輸入要查詢的年,月 printf( %dyear %dmonthn,year,month); printf(*n); printf( Sun Mon Tue Wen Thu Fri Satn); month
9、print(year,month); / printf(n); printf(*n); choose=getchar(); printf(Continue?(y/n):nn); scanf(%c,&choose); if (choose=y|choose=Y) main(); else if(number=4) printf( please input a year5000*0:); scanf(%d,&year); /輸入要查詢的年份 if(leap_year(year)printf(This is runyear.n); else printf(This is pingyear.n);ch
10、oose=getchar(); printf(Continue?(y/n):nn);scanf(%c,&choose); if (choose=y|choose=Y) main(); else /選擇其他則退出return 0;int leap_year(int year) /判斷是否閏年 int i; if (year%4=0&year%100!=0|year%400=0) i=1; else i=0; return i;int count_leap(int year) int i=0,j,min,max; if(year2006) min=2006;max=year; else min=y
11、ear+1;max=2006; for(j=min;j=2006) static int t12=31,0,31,30,31,30,31,31,30,31,30,31; j=month-1; if(leap_year(year) t1=29; else t1=28; for(i=0;ij;i+) sum=sum+ti; else static int t112=31,30,31,30,31,31,30,31,30,31,0,31; j=12-month; if(leap_year(year) t110=29; else t110=28; for(i=0;i2006) days=(year-20
12、06)*365+count_leap(year)+monthdays(month,year); weekday=days%7; else if(year2006) days=(2005-year)*365+count_leap(year)+monthdays(month,year); weekday=7-days%7; else days=monthdays(month,year);weekday=days%7; for (i=1;iweekday+2;i+) /輸出該月第一天所在位置之前的空格 printf (t); for (i=1;i=y;i+) /輸出該月的月歷 if (i+weekd
13、ay-1)%7=0) printf (nt%3dt,i); else printf (%3dt,i);【調(diào)試及分析過程】1:在代碼編輯器上輸入以上程序代碼后,保存并f9到tc3.0上運行結(jié)果輸出:分析:運行后出現(xiàn)“菜單”,選項意思是:輸入1,則確定一個日期是星期幾。輸入2,則是查詢某年的12個月歷。輸入3,則是查詢某年某月的月歷。4,則是判斷輸入年是閏年還是平年。5,退出。2:選擇1后,再根據(jù)提示輸入*,*,*:2011,10,28 結(jié)果輸出:分析:輸入你要查詢的年月日后,程序會經(jīng)過計算輸出該日的星期號。然后,輸出結(jié)果后,系統(tǒng)會詢問你是否繼續(xù),輸入y或Y,繼續(xù);輸入N或n或其他字母都會直接退出
14、。3:選擇y后結(jié)果輸出:4:選擇2后,再根據(jù)提示輸入你想查詢的年份*:2012結(jié)果輸出:分析:輸入你要查詢的年份后,系統(tǒng)會經(jīng)過計算得出每月的月歷,然后輸出。但因為輸出窗口限制,結(jié)果只能看到部分。同樣的,輸出結(jié)果后,系統(tǒng)仍然會詢問是否繼續(xù)。5:選擇3后,再根據(jù)提示輸入你要查詢的月份*,*:2012,6結(jié)果輸出:分析:輸入你要查詢的月份后,系統(tǒng)會經(jīng)過計算得出該月的月歷圖,然后輸出。同樣的系統(tǒng)依然會詢問是否繼續(xù)。6:選擇4后,再根據(jù)提示輸入你要查詢的年份*:2100結(jié)果輸出:7:在程序成功測試之前出現(xiàn)主要的問題是:錯誤:程序經(jīng)計算后得出的月歷的開頭第一行對不上下面的。分析:原因是在給每月的第一天的前
15、面空格時多空了一個位只要將“i=weekday;”改為“iweekday;”即可?!究偨Y(jié)】經(jīng)歷了這次課程設(shè)計的設(shè)計和制作的整個過程,我才發(fā)現(xiàn)我知識的貧乏和知識面的狹窄,真實的感受到程序設(shè)計的困難性,只說時間上面,我總共花了二十幾個小時。這次作課程設(shè)計我也是收獲很大,首先,我對C語言有了更深的了解,使用起來也更加的熟練,原來有一些不知道和不熟悉的函數(shù),我學(xué)會用了。其次,我這一次找了不少的資料,找專業(yè)的書籍、上網(wǎng)找各方面的資料,也使我學(xué)到了一些書本中學(xué)不到的知識,讓我長了見識。同時我們同學(xué)之間也互相的探討,也增進(jìn)了我們同學(xué)之間的感情。這次作的這一個設(shè)計,雖然我自己覺的很有的成就感,但是這必竟是我第一次作C語言的課程設(shè)計,必然會有很多的不足之處有待改進(jìn),相信以后我一定會做的更好。對C語言在編寫程序時的用處有了更明確的認(rèn)識,懂得了編寫C程序的一般法方
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 照片濾鏡調(diào)色課程設(shè)計
- 二手車交易平臺營業(yè)員銷售總結(jié)
- 春游課程設(shè)計
- 家具設(shè)計師工作總結(jié)
- 風(fēng)險防控方案計劃
- 法律服務(wù)行業(yè)風(fēng)險防范方案
- 化工行業(yè)衛(wèi)生防護(hù)要點
- 物流運輸行業(yè)咨詢服務(wù)經(jīng)驗總結(jié)
- 藥店衛(wèi)生管理措施
- 金融領(lǐng)域的投資顧問職責(zé)
- 進(jìn)階練12 材料作文(滿分范文20篇)(解析版)-【挑戰(zhàn)中考】備戰(zhàn)2024年中考語文一輪總復(fù)習(xí)重難點全攻略(浙江專用)
- 骨質(zhì)疏松的中醫(yī)中藥治療
- 衛(wèi)浴銷售部門年終總結(jié)
- 2024年高考真題-化學(xué)(天津卷) 含解析
- 安徽省蕪湖市2023-2024學(xué)年高二上學(xué)期期末考試 物理 含解析
- 2024年招投標(biāo)培訓(xùn)
- 人教A版(新教材)高中數(shù)學(xué)選擇性必修第三冊學(xué)案2:7 1 1 條件概率
- 北京郵電大學(xué)《數(shù)據(jù)庫系統(tǒng)》2023-2024學(xué)年期末試卷
- 防火門工程施工組織設(shè)計方案
- 期末(試題)-2024-2025學(xué)年北師大版(三起)(2024)英語三年級上冊
- 2023-2024學(xué)年江蘇省徐州市九年級(上)期末物理試卷
評論
0/150
提交評論