




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C語言課程設(shè)計(jì)報(bào)告書萬年歷系統(tǒng)設(shè)計(jì)學(xué)院:理學(xué)院專業(yè):信息與計(jì)算科學(xué) 姓名: 指導(dǎo)教師:序言 經(jīng)過一個(gè)學(xué)期對(duì)C程序設(shè)計(jì)的學(xué)習(xí),同學(xué)們都認(rèn)為真正的學(xué)到了有用知識(shí),可能有一些人學(xué)的不夠理想,但無論如何,這些知識(shí)都為我們的下一步學(xué)習(xí)打下了堅(jiān)實(shí)的基礎(chǔ)。做這么一個(gè)課程設(shè)計(jì),一方面是為了檢查我們一個(gè)學(xué)期來我們學(xué)習(xí)的成果,另一方面也是為了讓我們進(jìn)一步的掌握和運(yùn)用它,同時(shí)也讓我們認(rèn)清自己的不足之處和薄弱環(huán)節(jié),加以彌補(bǔ)和加強(qiáng)。 本程序是一個(gè)萬年歷程序,可以查詢1970年1月1日到2100年1月1日中任意一天是星期幾,只要在運(yùn)行程序時(shí)按照要求輸入年,月,日,程序就會(huì)把這一天是星期幾顯示子啊屏幕上;也可以輸入一個(gè)年份
2、和一個(gè)月份,程序就會(huì)把該月份的月歷顯示在屏幕上,使人一目了然。該程序能與目前天文學(xué)研究中所采用的各種日歷程序所能計(jì)算的結(jié)果相一致。還有許多功能等著你去探討。 這個(gè)程序花費(fèi)了很多時(shí)間,用了一天的時(shí)間去設(shè)計(jì)程序和調(diào)試程序,而在調(diào)試程序的過程中,經(jīng)常會(huì)出現(xiàn)一些不如意的地方,所以程序就要修改。所以這樣經(jīng)過一次又一次的修改之后,程序更顯得人性化。通過這一次程序的設(shè)計(jì),讓我深深的感受到程序員的辛苦。 2012年6月11日 【課程設(shè)計(jì)題目:萬年歷系統(tǒng)】【要求】1:程序的功能多樣;2:輸入日期能夠判斷該日期是星期幾;3:輸入一個(gè)年份能夠顯示出該年的全部月歷;4:輸入一個(gè)年月能夠顯示該月的月歷;5:輸入一個(gè)年份
3、能夠判斷該年是閏年還是平年;6:能夠退出。 進(jìn)入程序【系統(tǒng)總體功能設(shè)計(jì)框架】 1:日期查詢2:一年月歷查詢3:月歷查詢4:閏年判斷5:退出1、輸入年,月,日(1970,1-2100,1)2、輸入年(0-5000)3、輸入年,月(0,15000,12)4、輸入年(0-5000)閏、平年該月月歷12個(gè)月歷星期*屏幕顯示繼續(xù)Y,yN退出程序【系統(tǒng)功能模塊圖】主要功能模塊1:輸入year,month,day計(jì)算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: 輸入的年份 判斷從定義年到輸入的年份中每個(gè)年份是否為閏年是 否閏年每年為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上運(yùn)行結(jié)果輸出:分析:運(yùn)行后出現(xiàn)“菜單”,選項(xiàng)意思是:輸入1,則確定一個(gè)日期是星期幾。輸入2,則是查詢某年的12個(gè)月歷。輸入3,則是查詢某年某月的月歷。4,則是判斷輸入年是閏年還是平年。5,退出。2:選擇1后,再根據(jù)提示輸入*,*,*:2011,10,28 結(jié)果輸出:分析:輸入你要查詢的年月日后,程序會(huì)經(jīng)過計(jì)算輸出該日的星期號(hào)。然后,輸出結(jié)果后,系統(tǒng)會(huì)詢問你是否繼續(xù),輸入y或Y,繼續(xù);輸入N或n或其他字母都會(huì)直接退出
14、。3:選擇y后結(jié)果輸出:4:選擇2后,再根據(jù)提示輸入你想查詢的年份*:2012結(jié)果輸出:分析:輸入你要查詢的年份后,系統(tǒng)會(huì)經(jīng)過計(jì)算得出每月的月歷,然后輸出。但因?yàn)檩敵龃翱谙拗疲Y(jié)果只能看到部分。同樣的,輸出結(jié)果后,系統(tǒng)仍然會(huì)詢問是否繼續(xù)。5:選擇3后,再根據(jù)提示輸入你要查詢的月份*,*:2012,6結(jié)果輸出:分析:輸入你要查詢的月份后,系統(tǒng)會(huì)經(jīng)過計(jì)算得出該月的月歷圖,然后輸出。同樣的系統(tǒng)依然會(huì)詢問是否繼續(xù)。6:選擇4后,再根據(jù)提示輸入你要查詢的年份*:2100結(jié)果輸出:7:在程序成功測(cè)試之前出現(xiàn)主要的問題是:錯(cuò)誤:程序經(jīng)計(jì)算后得出的月歷的開頭第一行對(duì)不上下面的。分析:原因是在給每月的第一天的前
15、面空格時(shí)多空了一個(gè)位只要將“i=weekday;”改為“iweekday;”即可。【總結(jié)】經(jīng)歷了這次課程設(shè)計(jì)的設(shè)計(jì)和制作的整個(gè)過程,我才發(fā)現(xiàn)我知識(shí)的貧乏和知識(shí)面的狹窄,真實(shí)的感受到程序設(shè)計(jì)的困難性,只說時(shí)間上面,我總共花了二十幾個(gè)小時(shí)。這次作課程設(shè)計(jì)我也是收獲很大,首先,我對(duì)C語言有了更深的了解,使用起來也更加的熟練,原來有一些不知道和不熟悉的函數(shù),我學(xué)會(huì)用了。其次,我這一次找了不少的資料,找專業(yè)的書籍、上網(wǎng)找各方面的資料,也使我學(xué)到了一些書本中學(xué)不到的知識(shí),讓我長(zhǎng)了見識(shí)。同時(shí)我們同學(xué)之間也互相的探討,也增進(jìn)了我們同學(xué)之間的感情。這次作的這一個(gè)設(shè)計(jì),雖然我自己覺的很有的成就感,但是這必竟是我第一次作C語言的課程設(shè)計(jì),必然會(huì)有很多的不足之處有待改進(jìn),相信以后我一定會(huì)做的更好。對(duì)C語言在編寫程序時(shí)的用處有了更明確的認(rèn)識(shí),懂得了編寫C程序的一般法方
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 多樣化六年級(jí)語文學(xué)習(xí)經(jīng)驗(yàn)分享試題及答案
- 2024年汽車美容師企業(yè)運(yùn)營(yíng)管理試題及答案
- 核心客戶的管理與維護(hù)策略
- 云南省楚雄彝族自治州2023-2024學(xué)年八年級(jí)下學(xué)期英語期中試卷(含答案)
- 預(yù)測(cè)2024年二手車評(píng)估師考試趨勢(shì)試題及答案
- 二手車市場(chǎng)營(yíng)銷策略的評(píng)估與調(diào)整試題及答案
- 2024年公務(wù)員考試的行政能力測(cè)試分析試題及答案
- 寵物營(yíng)養(yǎng)師發(fā)展的法律環(huán)境考題及答案
- 為何選擇成為二手車評(píng)估師試題及答案
- 2024年小自考公共事業(yè)管理考察內(nèi)容及答案
- 生物學(xué)基因組學(xué)課件
- 兩帶來范文(通用十六篇)
- 綜合錄井儀工作原理演示教學(xué)課件
- 房建監(jiān)理大綱(共114)
- 國(guó)際工程招投標(biāo)流程圖
- 城市環(huán)境衛(wèi)生工作物資消耗定額
- 液化氣站三級(jí)安全教育培訓(xùn)試題
- 經(jīng)濟(jì)法實(shí)用教程(理論部分)(第八版)(何辛)案例分析及參考答案
- 532近代前夜的危機(jī)
- 病原微生物實(shí)驗(yàn)室生物安全備案專家意見表
- (精心整理)朱德熙_說 “的”
評(píng)論
0/150
提交評(píng)論