




已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
C語言課程設(shè)計報告(3)題目萬年歷系統(tǒng)設(shè)計者馬杰(11數(shù)學(xué))學(xué)號2011061030l 問題的提出:在現(xiàn)代的社會生活中,擁有準確的時間變得十分重要,所以,日歷是人類社會生產(chǎn)時不可缺少的一個東西。當然,日歷并非僅僅具有查閱日期的功能,它還可以具有查閱星期、星座,判斷閏年等等的功能。以前的日歷都是紙質(zhì)版的,人們攜帶不是太方便,而且人手翻起來很麻煩,還浪費時間。其次,以前的日歷功能簡單,只能查閱當年的日期、星期以及農(nóng)歷,如果人們想知道該年是否為閏年,該年的屬相以及星座,他必須自己動腦子判斷或算。這就大大浪費了人們的時間,也就間接的降低了人們的工作效率。而且如果一個人不懂得怎樣去判斷或算,那他最終也就不會知道他應(yīng)該知道的一些信息。所以,編寫一個快捷、準確、方便、功能多樣化的日歷系統(tǒng),即“萬年歷系統(tǒng)”是我們現(xiàn)在必須要學(xué)會的。雖然編寫的過程中會遇到各種各樣的困難,但是,這是一次我鍛煉和檢驗自己的最好機會。所以,不管失敗與否,我都要參與編寫的過程。l 功能介紹:該萬年歷系統(tǒng)是以現(xiàn)實生活中的掛歷為基礎(chǔ),又增加一些新的功能。在系統(tǒng)中隨便輸入日期,不管是公歷的某年某月某日,就可以輸出該日是星期幾、什么星座、該年的屬相以及該日所屬哪個支干和對應(yīng)的農(nóng)歷日期。如果輸入的數(shù)據(jù)與現(xiàn)實情況不符合,比如:在輸入2012年5月20日,我們輸成了2012年15月32日,系統(tǒng)就會自動提醒我們數(shù)據(jù)輸入錯誤,并且讓我們檢查并重新輸入數(shù)據(jù)。在輸入正確的數(shù)據(jù)后按回車,系統(tǒng)就會輸出你想要的信息。在一次查詢結(jié)束之后,系統(tǒng)就會自動詢問,我們是否要繼續(xù)查詢,然后我們就可以根據(jù)自己的需要選擇了是繼續(xù)還是退出。l 本系統(tǒng)所涉及的知識點:本系統(tǒng)所涉及的知識點以C程序設(shè)計(第三版)為準:1. 程序的三種基本結(jié)構(gòu):順序、結(jié)構(gòu)、循環(huán)。2. 函數(shù)的定義、聲明、調(diào)用以及函數(shù)的返回值。3. 賦值語句的使用。4. 輸入和輸出語句的使用。5. 算數(shù)運算符、關(guān)系運算符以及邏輯運算符的應(yīng)用。6. 定義整型、字符型、指針變量、字符型數(shù)組以及指針數(shù)組。數(shù)組初始化和引用和指針的使用。7. 主要是函數(shù)的應(yīng)用。8. 在流程圖中,主要運用了判斷語句。l 算法設(shè)計.用switch語句設(shè)計主菜單:1. 輸入當前日期;2. 判斷是否為閏年;3. 求星期幾;4. 求星座;5. 求該日對應(yīng)的農(nóng)歷日期;(該功能失敗)6. 求該日支干;7. 求該年屬相;8. 查詢;9. 輸出;10. 如果繼續(xù)查詢返回1;11. 否則退出。萬年歷系統(tǒng)總的流程圖:否是是否輸入年輸入日分別進行判斷閏年、求星期幾、求星座、求干支、求屬相輸入月數(shù)據(jù)是否合理?輸出結(jié)果是否繼續(xù)查詢?結(jié)束開始.選擇2,用if語句判斷是否為閏年: .選擇3,用switch函數(shù)求星期幾:.選擇5,求該年的星座:.選擇6,求該日對應(yīng)的農(nóng)歷日期:(該功能失?。?選擇7,求該日支干:.選擇8,求該年屬相:l 總結(jié)與感想:在這次的程序設(shè)計過程中,對我的考驗相當大:第一個是怎樣充分的運用到書本上的知識,這就要求要對書本上的只是要十分熟悉,所以下課后就要大量的看書。在開始學(xué)習(xí)了一些知識后,可以簡單的并編寫一些程序了,但是在此次報告中,不知道要選哪種程序來編寫我的程序,所以在選擇上有了不穩(wěn)定性;第二是怎樣去連接這些分散的知識點。因為每個功能都是單獨的、互不聯(lián)系的,所以剛開始處理時有點困難,但是在學(xué)習(xí)了第八章,即函數(shù)后,一下子豁然開朗了;最后,因為自己的能力不足,對第五個功能,即“求該日對應(yīng)的農(nóng)歷日期”這項功能不能設(shè)計出來,導(dǎo)致萬年歷系統(tǒng)的效果與開始時的設(shè)想差了好多。(注:有超出該書知識范圍的為詢問師兄(姐)或查閱資料所得。)附錄:源代碼:#include int judgeday(int,int,int);int judgerun_y(int);int run(int);int month_day(int,int);int getmonth(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() int year,month,day; char ch; do do 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,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(month12)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; else flag=0;return flag;void printrun(int flag)if(flag)printf(閏年,);else printf(不是閏年,);int run(int flag)int days;if(flag=1)days=29; else if(flag=0) days=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 7: case 8: 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)+getmonth(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=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 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+1;elsey=4+2*shang-yushu;return y;void judge_week(int sum)int n;n=sum%7;switch(n)case 0:printf(星期天,);break;case 1:printf(星期一,); break;case 2:printf(星期二,);break;case 3:printf(星期三,);break;case 4:printf(星期四,);break;case 5:printf(星期五,);break;case 6:printf(星期六,);break;void judgexingzuo(int month,int day)int n;switch(month)case 1:if(day=19)n=12;elsen=1; break; case 2:if(day=18)n=1;elsen=2; break; case 3:if(day=20)n=2;elsen=3; break; case 4:if(day=19)n=3;elsen=4; break; case 5:if(day=20)n=4;elsen=5; break; case 6:if(day=21)n=5;elsen=6; break; case 7:if(day=22)n=6;elsen=7; break; case 8:if(day=22)n=7;elsen=8; break; case 9:if(day=22)n=8;elsen=9; break; case 10:if(day=23)n=9;elsen=10; break; case 11:if(day=22)n=10;elsen=11; break; case 12:if(day=21)n=11;elsen=12; break; printxingzuo(n);void printxingzuo(int n)switch(n)case 1:printf(水瓶座,);break;case 2:printf(雙魚座,);break;case 3:printf(白羊座,);break;case 4:printf(金牛座,);break;case 5:printf(雙子座,);break;case 6:printf(巨蟹座,);break;case 7:printf(獅子座,);break;case 8:printf(處女座,);break;case 9:printf(天枰座,);break;case 10:printf(天蝎座,);break;case 11:printf(射手座,);break;case 12: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);void judgeshuxiang(int m,int n)switch(m)case 0:if(n=1)printf(龍年,);elseprintf(辰年!n);break;case 1:if(n=1) printf(蛇年,);elseprintf(巳年!n);break;case 2:if(n=1) printf(馬年,);elseprintf(午年!n);break;case 3:if(n=1) printf(羊年,);elseprintf(未年!n);break;case 4:if(n=1) printf(猴年,);elseprintf(申年!n);break;case 5:if(n=1) printf(雞年,);elseprintf(酉年!n);break;case 6:if(n=1) printf
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 山西工程職業(yè)學(xué)院《催化劑導(dǎo)論》2023-2024學(xué)年第二學(xué)期期末試卷
- 北京經(jīng)濟技術(shù)職業(yè)學(xué)院《漢彝翻譯理論與實踐》2023-2024學(xué)年第二學(xué)期期末試卷
- 浙江舟山群島新區(qū)旅游與健康職業(yè)學(xué)院《汽輪機課程設(shè)計》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖北健康職業(yè)學(xué)院《土地資源管理學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 河北交通職業(yè)技術(shù)學(xué)院《建筑意匠》2023-2024學(xué)年第二學(xué)期期末試卷
- 青島職業(yè)技術(shù)學(xué)院《廣播理論與業(yè)務(wù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 西安城市建設(shè)職業(yè)學(xué)院《動物生產(chǎn)學(xué)牛羊》2023-2024學(xué)年第二學(xué)期期末試卷
- 山東科技大學(xué)《新聞采寫基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 景德鎮(zhèn)藝術(shù)職業(yè)大學(xué)《民法疑難案例評析》2023-2024學(xué)年第二學(xué)期期末試卷
- 南華大學(xué)《現(xiàn)當代文學(xué)史現(xiàn)代部分》2023-2024學(xué)年第二學(xué)期期末試卷
- 兒童行為干預(yù)效果評估的機器學(xué)習(xí)方法-洞察闡釋
- 區(qū)塊鏈考試試題及答案
- 2025-2030中國氟化工行業(yè)市場發(fā)展現(xiàn)狀及發(fā)展趨勢與投資前景研究報告
- 2025年保密觀知識競賽題庫附答案(黃金題型)含答案詳解
- 2024年呼和浩特市玉泉區(qū)消防救援大隊招聘真題
- 2025年山東省青島市萊西市中考一模英語試題(原卷版+解析版)
- 2025-2030中國傳染病體外診斷行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 低阻抗條件下構(gòu)網(wǎng)型變流器多機系統(tǒng)的建模與穩(wěn)定性分析
- 2025年糧油倉儲管理員職業(yè)技能競賽參考試題庫(含答案)
- (廣東二模)2025年廣東省高三高考模擬測試(二)語文試卷(含答案解析)
- 2025-2030白酒行業(yè)市場發(fā)展現(xiàn)狀及競爭形勢與投資前景研究報告
評論
0/150
提交評論