C語(yǔ)言程序設(shè)計(jì)萬(wàn)年歷_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)萬(wàn)年歷_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì)萬(wàn)年歷_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì)萬(wàn)年歷_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì)萬(wàn)年歷_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、-10 -華東交通大學(xué)理工學(xué)院 C語(yǔ)言課程設(shè)計(jì)第18頁(yè)共17頁(yè)成績(jī):存檔資料華東交通大學(xué)理工學(xué)院課程設(shè)計(jì)報(bào)告書所屬課程名稱車C語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)題目萬(wàn)年歷查詢分院電信分院專業(yè)班級(jí)2013級(jí)電氣工程及其自動(dòng)化1班學(xué)號(hào)20130210470105學(xué)生姓名周利凱指導(dǎo)教師肖盛文2014年6月15日摘要通過(guò)C語(yǔ)言編程實(shí)現(xiàn)了一個(gè)萬(wàn)年歷,能實(shí)現(xiàn)基本的萬(wàn)年歷功能。通過(guò)本章的講解,使讀者能夠明白萬(wàn)年歷的實(shí)現(xiàn)原理和方法。萬(wàn)年歷的實(shí)現(xiàn)核心是要判斷閏年和根據(jù)給定的日期計(jì)算其對(duì)應(yīng)的星期,并按照合適的方式輸由日歷.這都是本章向讀者講述的重點(diǎn)。另外,在當(dāng)今社會(huì)萬(wàn)年歷在生活起著越來(lái)越重要的角色,它悄無(wú)聲息的走進(jìn)我們的生活,

2、還向讀者講述了怎樣突生顯示某個(gè)日期的方法,這會(huì)在實(shí)際應(yīng)用中經(jīng)常遇到。除了講述萬(wàn)年歷的實(shí)現(xiàn)方法外,本章還回顧了前面章節(jié)的知識(shí),如光標(biāo)定位、設(shè)置寄存器、產(chǎn)生中斷、輸由一個(gè)字符等,以及講述系統(tǒng)日期、屏幕輸生的方法等。關(guān)鍵字:C語(yǔ)言,函數(shù),歷法計(jì)算,萬(wàn)年歷,中斷。目錄1 .設(shè)計(jì)萬(wàn)年歷目的P42 .萬(wàn)年歷程序設(shè)計(jì)思路圖解及其講解P53 .萬(wàn)年歷程序清單與編碼P74 .萬(wàn)年歷的調(diào)試與分析P125 .萬(wàn)年歷的使用環(huán)境與說(shuō)明P146 .設(shè)計(jì)心得P157 .萬(wàn)年歷參考文獻(xiàn)P168 .致謝P171.設(shè)計(jì)萬(wàn)年歷的目的萬(wàn)年歷慢慢的走進(jìn)我們的生活,在我們生活中起著很重要的部分。雖然萬(wàn)年歷幾乎在每個(gè)電子產(chǎn)品中都能看到,我

3、們時(shí)時(shí)刻刻都在用著它,但是又有多少人知道萬(wàn)年歷真正的工作原理呢?所以一是了解萬(wàn)年歷真正的原理,二是完成學(xué)校給予我們這里機(jī)會(huì)來(lái)與她親密的接觸萬(wàn)年歷這個(gè)神奇的東西。同時(shí)通過(guò)顯示年日歷程序的設(shè)計(jì),可以培養(yǎng)和利用C+語(yǔ)言進(jìn)行程序設(shè)計(jì)的能力,加強(qiáng)函數(shù)的運(yùn)用及對(duì)軟件工程方法的初步認(rèn)識(shí),提高軟件系統(tǒng)分析能力和程序文檔建立、歸納總結(jié)的能力,培養(yǎng)利用系統(tǒng)提供的標(biāo)準(zhǔn)函數(shù)及典型算法進(jìn)行設(shè)計(jì)。出于興趣愛好,我們選擇做萬(wàn)年歷這個(gè)任務(wù),一是可以鍛煉我們獨(dú)立完成任務(wù)的本領(lǐng),提高自己的認(rèn)知能力。二是可以提高自己邏輯思維的嚴(yán)密性,因?yàn)镃語(yǔ)言本就是一門對(duì)邏輯考察很強(qiáng)的一門學(xué)科,多一個(gè)逗號(hào)都不能使函數(shù)成立,平臺(tái)就無(wú)法便以這個(gè)程序。

4、2.萬(wàn)年歷程序設(shè)計(jì)思路圖解1萬(wàn)年歷總程序大體圖解在本次的程序中,我們由淺及深,我們將年份賦值給y,判斷y的值是否符合要求,y的值要大于1,否則結(jié)束程序。等y的值大于1時(shí),我們將打印出輸入年份的日歷。2 .萬(wàn)年歷分步程序圖解判斷輸入的年份是否為閏年閏年與平年的元旦的計(jì)算判斷每月的第一天 判斷每月的天數(shù)輸入表頭設(shè)置三個(gè)月打印成一排計(jì)算日期輸出此為程序的的分步驟,因?yàn)橛羞@些分步驟的模切配合,總程序才能得以順利的進(jìn)行。在這里我們運(yùn)用了判斷年份是否為閏年的重要公式:(a%400=0|a%100!=0&&a%4=0),與閏年平年和閏年一年第一天元旦的計(jì)算!3 .萬(wàn)年歷程序清單1源程序:#i

5、nclude<stdio.h>intfdyear(inta)if(a%400=0|a%100!=0&&a%4=0)/判斷是不是閏年return(a-1+a/4-a/100+a/400)%7;閏年元旦計(jì)算elsereturn(a+a/4-a/100+a/400)%7;平年元旦計(jì)算intmain()intn,i,y,fdmonth12;printf("*歡迎使用周利凱設(shè)計(jì)萬(wàn)年歷*n,);printf("本程序來(lái)至電氣1班周利凱,請(qǐng)愉快使用!n");printf(”請(qǐng)輸入年份:”);scanf("%d",&y);i

6、f(y<1)printf("輸入的是錯(cuò)誤年份。n");elsen=(y%400=0|y%100!=0&&y%4=0);char*month12="Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"charweek="日

7、一二三四五六"intdaysmonth12=31,28+n,31,30,31,30,31,31,30,31,30,31;/輸入年份每個(gè)月的總天數(shù)printf("%d年的日歷nn",y);for(i=0;i<12;i+)/計(jì)算個(gè)月每個(gè)月的第一天staticintday=0;fdmonthi=(day+fdyear(y)%7;day=day+daysmonthi;for(i=0;i<12;i+=3)/每三個(gè)月弁排打印printf("%s%s'n”,%smonthi,monthi+1,monthi+2);%schars="&quo

8、t;printf("%-3s%s”,s,week,s,week,s,week);for(intj=0;j<6;j+)/for(intd=i;d<i+3;d+)/行printf("");for(intn=0;n<7;n+)/intk=1-fdmonthd+n+7*j;if(k<1|k>daysmonthd)printf("");elseprintf("%-3d”,k);/%-3s%s%-3s每個(gè)月最多占行三個(gè)月弁排打印每一每一行有日計(jì)算日期輸入printf("n");printf(&qu

9、ot;n");2.編碼1判斷閏年與平年if(a%400=0|a%100!=0&&a%4=0)/判斷是不是閏年return(a-1+a/4-a/100+a/400)%7;閏年元旦計(jì)算elsereturn(a+a/4-a/100+a/400)%7;/平年元旦計(jì)算2打印表頭的制作intmain()intn,i,y,fdmonth12;printf("*歡迎使用周利凱設(shè)計(jì)萬(wàn)年歷*肝);printf("本程序來(lái)至電氣1班周利凱,請(qǐng)愉快使用!n");printf("請(qǐng)輸入年份:");3判斷年分是否符合要求并算每月的第一天是周幾?s

10、canf("%d",&y);if(y<1)printf("輸入的是錯(cuò)誤年份。n");elsen=(y%400=0|y%100!=0&&y%4=0);char*month12="Jan","Feb","Mar","ApJ"May","Jun","Jul","Aug","Sep","Oct","Nov","Dec

11、"charweek口="日一二三四五六"輸入年份每個(gè)月的總天數(shù)printf("%d年的日歷nn", y);intdaysmonth12=31,28+n,31,30,31,30,31,31,30,31,30,31;/for(i=0;i<12;i+)/計(jì)算個(gè)月每個(gè)月的第一天staticintday=0;fdmonthi=(day+fdyear(y)%7;day=day+daysmonthi;4 .設(shè)計(jì)三月成為一排與打印萬(wàn)年歷for(i=0;i<12;i+=3)/每三個(gè)月并排打印printf("%s%s%sn",mon

12、thi,monthi+1,monthi+2);chars口=""printf("%-3s%s%-3s%s%-3s%s",s,week,s,week,s,week);每個(gè)月最多占行三個(gè)月并排打印每一行每一行有日計(jì)算日期輸入for(intj=0;j<6;j+)/for(intd=i;d<i+3;d+)/printf("");for(intn=0;n<7;n+)/intk=1-fdmonthd+n+7*j;if(k<1|k>daysmonthd)printf("");elseprintf(&

13、quot;%-3d",k);/printf("n");printf("n");4.萬(wàn)年歷的調(diào)試與分析1.程序在剛開始運(yùn)行時(shí)2我們?nèi)我廨斎胍粋€(gè)年份如“2013”和“2014”3.輸入不正確的格式如0”4.輸入“aaa”5 .年歷的使用環(huán)境與說(shuō)明鄙人設(shè)計(jì)的萬(wàn)年歷適合在在Visual6.00環(huán)境下使用C+畸言編譯后運(yùn)行實(shí)現(xiàn)。在剛使用時(shí)可以看到居中的兩行大字“歡迎使用周利凱設(shè)計(jì)萬(wàn)年歷”與“本程序來(lái)自電氣1班周利凱,歡迎使用!”。當(dāng)輸入小于1的年份時(shí),程序會(huì)自動(dòng)退出,當(dāng)輸入不符合年份的關(guān)鍵詞時(shí)也會(huì)出現(xiàn)自動(dòng)退出,如當(dāng)輸入“AA'時(shí)也會(huì)退出程序,自由

14、當(dāng)輸入正確的年份時(shí),就會(huì)打印出對(duì)應(yīng)年份的日期與周數(shù)。6 .設(shè)計(jì)心得通過(guò)本次課程設(shè)計(jì)我第一次通過(guò)自己的實(shí)踐對(duì)書本上的知識(shí)進(jìn)行了與生活相關(guān)的運(yùn)用。在這個(gè)程序中,主要應(yīng)用了這學(xué)期所學(xué)習(xí)的循環(huán),條件語(yǔ)句,數(shù)組與調(diào)用函數(shù)。這些知識(shí)的的應(yīng)用使我對(duì)課本內(nèi)容的認(rèn)識(shí)得到了加深。在編寫程序的過(guò)程中,也出現(xiàn)了很多錯(cuò)誤。比如程序語(yǔ)句錯(cuò)誤導(dǎo)致檢測(cè)時(shí)連續(xù)報(bào)錯(cuò);函數(shù)語(yǔ)句編寫錯(cuò)誤導(dǎo)致輸出結(jié)果與實(shí)際不相符合等。出現(xiàn)這些情況后,通過(guò)對(duì)一些新知識(shí)的學(xué)習(xí)和對(duì)網(wǎng)上相關(guān)資料的閱讀,我發(fā)現(xiàn)了自己程序的問(wèn)題所在并進(jìn)行了改正。最后的到正確的結(jié)果。在程序編寫完成后,我想對(duì)程序進(jìn)行進(jìn)一步的拓展。在輸出年歷的同時(shí)增加農(nóng)歷生肖功能,但是由于程序過(guò)于復(fù)雜,最終沒(méi)有規(guī)定的時(shí)間內(nèi)完成調(diào)試成功。7 .萬(wàn)年歷設(shè)計(jì)參考文獻(xiàn)【1】.楊文君,楊柳C語(yǔ)言程序設(shè)計(jì)教程【MU清華大學(xué)出版社【2】.譚浩強(qiáng),C語(yǔ)言程序設(shè)計(jì)【M。清華大學(xué)出版社2007.6【3】.程【4】.C程序設(shè)計(jì)教程.北京:

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論