版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、C語言課程設(shè)計(jì)報(bào)告(3)題目萬年歷系統(tǒng)設(shè)計(jì)者馬杰(11數(shù)學(xué))學(xué)號問題的提出:在現(xiàn)代的社會生活中,擁有準(zhǔn)確的時間變得十分重要,所以,日歷是人類社會生產(chǎn) 時不可缺少的一個東西。當(dāng)然,日歷并非僅僅具有查閱日期的功能,它還可以具有 查閱星期、星座,判斷閏年等等的功能。以前的日歷都是紙質(zhì)版的,人們攜帶不是 太方便,而且人手翻起來很麻煩,還浪費(fèi)時間。其次,以前的日歷功能簡單,只能 查閱當(dāng)年的日期、星期以及農(nóng)歷,如果人們想知道該年是否為閏年,該年的屬相以 及星座,他必須自己動腦子判斷或算。這就大大浪費(fèi)了人們的時間,也就間接的降 低了人們的工作效率。而且如果一個人不懂得怎樣去判斷或算,那他最終也就不會 知道他
2、應(yīng)該知道的一些信息。所以,編寫一個快捷、準(zhǔn)確、方便、功能多樣化的日 歷系統(tǒng),即“萬年歷系統(tǒng)”是我們現(xiàn)在必須要學(xué)會的。雖然編寫的過程中會遇到各 種各樣的困難,但是,這是一次我鍛煉和檢驗(yàn)自己的最好機(jī)會。所以,不管失敗與 否,我都要參與編寫的過程。功能介紹:該萬年歷系統(tǒng)是以現(xiàn)實(shí)生活中的掛歷為基礎(chǔ),又增加一些新的功能。在系統(tǒng)中隨便 輸入日期,不管是公歷的某年某月某日,就可以輸出該日是星期幾、什么星座、該 年的屬相以及該日所屬哪個支干和對應(yīng)的農(nóng)歷日期。如果輸入的數(shù)據(jù)與現(xiàn)實(shí)情況不 符合,比如:在輸入2012年5月20日,我們輸成了 2012年15月32日,系統(tǒng)就會 自動提醒我們數(shù)據(jù)輸入錯誤,并且讓我們檢查
3、并重新輸入數(shù)據(jù)。在輸入正確的數(shù)據(jù) 后按回車,系統(tǒng)就會輸出你想要的信息。在一次查詢結(jié)束之后,系統(tǒng)就會自動詢問, 我們是否要繼續(xù)查詢,然后我們就可以根據(jù)自己的需要選擇了是繼續(xù)還是退出。本系統(tǒng)所涉及的知識點(diǎn):本系統(tǒng)所涉及的知識點(diǎn)以C程序設(shè)計(jì)(第三版)為準(zhǔn):程序的三種基本結(jié)構(gòu):順序、結(jié)構(gòu)、循環(huán)。函數(shù)的定義、聲明、調(diào)用以及函數(shù)的返回值。賦值語句的使用。輸入和輸出語句的使用。算數(shù)運(yùn)算符、關(guān)系運(yùn)算符以及邏輯運(yùn)算符的應(yīng)用。定義整型、字符型、指針變量、字符型數(shù)組以及指針數(shù)組。數(shù)組初始化和引用和指針的使用。主要是函數(shù)的應(yīng)用。在流程圖中,主要運(yùn)用了判斷語句。算法設(shè)計(jì)I .用switch語句設(shè)計(jì)主菜單:輸入當(dāng)前日期;
4、判斷是否為閏年;求星期幾;求星座;求該日對應(yīng)的農(nóng)歷日期;(該功能失?。┣笤撊罩Ц?;求該年屬相;查詢;輸出;如果繼續(xù)查詢返回 1;否則退出。萬年歷系統(tǒng)總的流程圖:n .選擇2,用if語句判斷是否為閏年:田.選擇3,用switch函數(shù)求星期幾:.選擇5,求該年的星座:.選擇6,求該日對應(yīng)的農(nóng)歷日期:(該功能失?。┘?選擇7,求該日支干:m.選擇8,求該年屬相:總結(jié)與感想:在這次的程序設(shè)計(jì)過程中,對我的考驗(yàn)相當(dāng)大:第一個是怎樣充分 的運(yùn)用到書本上的知識,這就要求要對書本上的只是要十分熟悉,所以下課后就要 大量的看書。在開始學(xué)習(xí)了一些知識后,可以簡單的并編寫一些程序了,但是在此 次報(bào)告中,不知道要選哪
5、種程序來編寫我的程序,所以在選擇上有了不穩(wěn)定性;第 二是怎樣去連接這些分散的知識點(diǎn)。因?yàn)槊總€功能都是單獨(dú)的、互不聯(lián)系的,所以剛開始處理時有點(diǎn)困難,但是在學(xué)習(xí)了第八章,即函數(shù)后,一下子豁然開朗了;最后,因?yàn)樽约旱哪芰Σ蛔?,對第五個功能,即“求該日對應(yīng)的農(nóng)歷日期”這項(xiàng)功能不能設(shè)計(jì)出來,導(dǎo)致萬年歷系統(tǒng)的效果與開始時的設(shè)想差了好多。(注:有超出該書知識范圍的為詢問師兄(姐)或查閱資料所得。)附錄: 源代碼:#include int judgeday(int,int,int);int judgerun_y(int);int run(int);int month_day(int,int);int getm
6、onth(int);int Getyear(int);int getyear(int);void printjudgeday(int,int,int);void printrun(int);void week(int,int,int);void judge_week(int);void printxingzuo(int);void judgexingzuo(int,int);/void nongli(int,int);void shuxiang(int,int);void judgeshuxiang(int,int);void TGDZ(int);void judgeTG(int);main(
7、)int year,month,day;char ch;dodo TOC o 1-5 h z printf( 請輸入年:);scanf(%d,&year);printf( 請輸入月:);scanf(%d,&month);printf( 請輸入日:);scanf(%d,&day);printjudgeday(year,month,day);while(judgeday(year,month,day);printf(%d 年 %d 月 %d 日是 ,year,month,day);printrun(judgerun_y(year);printf( 本月有 %d 天, ,month_day(year
8、,month);week(year,month,day);judgexingzuo(month,day);shuxiang(year,1);TGDZ(year);printf(請問你要繼續(xù)查詢嗎?是( Y/y )否(N/n):);scanf( %c,&ch);while(ch=Y|ch=y);void printjudgeday(int year,int month,int day)if(judgeday(year,month,day)printf( 您輸入的數(shù)據(jù)有誤,請重新輸入!n);int judgeday(int year,int month,int day)int flag;if(mo
9、nth12)flag=1;else if(daymonth_day(year,month)flag=1;elseflag=0;return flag;int judgerun_y(int year)int flag;if(year%4=0&year%100!=0)|(year%400=0)flag=1;elseflag=0;return flag;void printrun(int flag)if(flag)printf( 閏年, );elseprintf( 不是閏年,);int run(int flag)int days;if(flag=1)days=29;else if(flag=0)da
10、ys=28;return days;int month_day(int year,int month)int days;switch(month)case 2:days=run(judgerun_y(year);break;case 4:case 6:case 9:case 11:days=30;break;case 1:case 3:case 5:case 10:case 12:days=31;break;return days;void week(int year,int month,int day)int sum=0;if(year2000)sum=Getyear(year)+getmo
11、nth(month)+day+judgerun_y(year);else if(year2000)sum=getyear(year)+getmonth(month)+day+judgerun_y(year);else if(year=2000)sum=getmonth(month)+day+judgerun_y(year)+4;judge_week(sum);int getmonth(int month)int n;switch(month)case 1:n=1;break;case 2:n=4;break;case 3:n=4;break;case 4:n=7;break;case 5:n=
12、2;break;case 6:n=5;break;case 7:n=7;break;case 8:n=3;break;case 9:n=6;break;case 10:n=1;break;case 11:n=4;break;case 12:n=6;break;return n;int Getyear(int year)int cha,shang,yushu,y;cha=year-2000;shang=cha/4;yushu=cha%4;if(judgerun_y(year)y=4-2*shang+yushu;elsey=4-2*shang+yushu+1;return y;int getyea
13、r(int year)int cha,shang,yushu,y;cha=year-2000;shang=cha/4;yushu=cha%4;if(judgerun_y(year)y=4+2*shang-yushu+1;elsey=4+2*shang-yushu;return y;void judge_week(int sum)int n;n=sum%7;switch(n)case 0: TOC o 1-5 h z printf( 星期天,);break;printf( 星期一,);break;printf( 星期二,);break;printf( 星期三,);break;printf( 星期
14、四,);break;printf( 星期五,);break;printf( 星期六,);break;void judgexingzuo(int month,int day)int n;switch(month)if(day=19)n=12;elsen=1;break;if(day=18)n=1;elsen=2;break;if(day=20)n=2;elsen=3;break;if(day=19)n=3;elsen=4;break;if(day=20)n=4;elsen=5;break;if(day=21)n=5;elsen=6;break;if(day=22)n=6;elsen=7;brea
15、k;if(day=22)n=7;elsen=8;break;if(day=22)n=8;elsen=9;break;if(day=23)n=9;elsen=10;break;if(day=22)n=10;elsen=11;break;if(day=21)n=11;elsen=12;break;printxingzuo(n);void printxingzuo(int n)switch(n) TOC o 1-5 h z printf( 水瓶座,);break;printf( 雙魚座,);break;printf( 白羊座,);break; TOC o 1-5 h z printf( 金牛座,);
16、break;printf( 雙子座,);break;printf( 巨蟹座,);break;printf( 獅子座,);break;printf( 處女座,);break;printf( 天枰座,);break;printf( 天蝎座,);break;printf( 射手座,);break;printf( 摩羯座,);break;/*void nongli(int,int)int*/void shuxiang(int year,int n)int m,cha;cha=(year-2012)%12;if(cha0)cha=12+cha;m=cha%12;judgeshuxiang(m,n);vo
17、id judgeshuxiang(int m,int n)switch(m)case 0:if(n=1)printf( 龍年,);elseprintf( 辰年!n);break;if(n=1)printf( 蛇年, );elseprintf( 巳年! n);break;if(n=1)printf( 馬年, );elseprintf( 午年! n);break;if(n=1)printf( 羊年, );elseprintf( 未年! n);break;if(n=1)printf( 猴年, );elseprintf( 申年! n);break;if(n=1)printf( 雞年, );elsepr
18、intf( 酉年! n);break;if(n=1)printf( 狗年, );elseprintf( 戌年! n);break;if(n=1)printf( 豬年, );elseprintf( 亥年! n);break;if(n=1)printf( 鼠年, );elseprintf( 子年! n);break;if(n=1)printf( 牛年, );elseprintf( 丑年! n);break;if(n=1)printf( 虎年, );elseprintf( 寅年! n);break;if(n=1)printf( 兔年, );elseprintf( 卯年! n);break;void TGDZ(int year)int x,n=0;x=year%10;
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 住宅小區(qū)鉆孔樁施工協(xié)議
- 水庫水質(zhì)凈化施工合同
- 物流行業(yè)工作與休息安排
- 廈門市民宿衛(wèi)生防疫措施
- 學(xué)?;顒影褪孔赓U服務(wù)合同
- 影視作品授權(quán)合同
- 互聯(lián)網(wǎng)行業(yè)產(chǎn)品經(jīng)理培訓(xùn)大綱
- 住宅小區(qū)配電房施工協(xié)議
- 運(yùn)動器材公司著作權(quán)保護(hù)
- 2025年安防設(shè)備進(jìn)出口貿(mào)易合同范本6篇
- 房屋退還協(xié)議書范本
- 天皰瘡臨床分期與治療方案研究
- 江蘇省南京市選調(diào)生考試(行政職業(yè)能力測驗(yàn))綜合能力題庫含答案
- 幼兒園勞動教育國內(nèi)外研究現(xiàn)狀
- 2021-2022學(xué)年江蘇省無錫市惠山區(qū)蘇教版四年級上冊期末測試數(shù)學(xué)試卷
- 軍事理論-綜合版-知到答案、智慧樹答案
- 綜合技能訓(xùn)練實(shí)訓(xùn)報(bào)告學(xué)前教育
- 光伏發(fā)電技術(shù)項(xiàng)目投標(biāo)書(技術(shù)標(biāo))
- 2024年上海海洋大學(xué)馬克思主義基本原理概論(期末考試題+答案)
- 社會實(shí)踐-形考任務(wù)四-國開(CQ)-參考資料
- 軍事理論智慧樹知到期末考試答案2024年
評論
0/150
提交評論