版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1/6用控制語句實現(xiàn)萬年歷實驗題目用控制語句實現(xiàn)萬年歷控制語句在程序設(shè)計中非常重要,通過控制語句,程序可以轉(zhuǎn)向不同的流程。控制語句的應(yīng)用也是程序設(shè)計的基礎(chǔ),是必須要掌握的重要知識。程序主要實現(xiàn)3個功能:顯示某一年的每一個月的日歷、顯示某一年某一月的日歷以及查詢某一天是星期幾。程序功能結(jié)構(gòu)如下圖2.1所示。圖2.1實驗?zāi)康挠脩艨梢酝ㄟ^菜單選擇不同的選項實現(xiàn)不同的功能,通過輸入想要顯示的年份,可以輸出年的日歷;輸入年和月,可以輸出該月的日歷;輸入年、月以及日,可以查詢這一天是星期幾。實驗要求程序主要的設(shè)計要求如下:功能選擇可以用菜單來實現(xiàn)。例如:請選擇您的查詢內(nèi)容:顯示一年的日歷;顯示一月的日歷;顯示某一天是星期幾;退出;用戶通過輸入不同的數(shù)字進入不同的菜單。(2)每一月以日歷表格的形式顯示,表格的第一行顯示星期,表格的內(nèi)容是每一天。用戶可以很容易看到每一天是星期幾。設(shè)計思想說明功能1:要想輸出一年的日歷,首先得解決輸出一個月日歷的問題,然后用循環(huán)輸出十二月份的。首先提示由鍵盤輸入要顯示的年份,得到年份后開始進入循環(huán),定義月份變量month,并賦初值為1(從一月份開始),第一步,進入monthdays(intyear,intmonth)函數(shù)判斷月份天數(shù),然后根據(jù)進入void
printmonth(int
year,int
month)函數(shù)根據(jù)年月計算出該月一號是星期幾并輸出月份和每周的表頭,由循環(huán)空出一號前面空的部分,再由另一個循環(huán),加上前面該月天數(shù)的判斷,就能輸出該月的日歷,此時一個月的日歷輸出完畢,進入第二次循環(huán),輸出下一個月的日歷,知道十二個月份的日歷全部輸出,循環(huán)結(jié)束,第一個功能實現(xiàn)。功能2:第二個功能是第一個功能的一部分,只需要輸出一個月的日歷,這是月份不是由1開始,而是由鍵盤輸入的,日歷輸出方法與第一個功能中的方法相似。功能3:判斷這一天是星期幾,由蔡勒公式計算,得到的余數(shù)是從0到6,0對應(yīng)星期日,其他的正好對應(yīng)。系統(tǒng)結(jié)構(gòu)的說明流程圖:開始開始進入歡迎界面點任意鍵進入選擇功能界面1查詢某年的日歷2查詢某月的日歷3查詢某一天是星期幾0返回輸入所要查詢的年份輸入所要查詢的年月輸入所要查詢的年月日顯示結(jié)果程序清單intyeardays(intyear);intmonthdays(intyear,intmonth);voidprintyear();voidprintmonth(intyear,intmonth);voidfindday();#include<iostream>usingnamespacestd;intmain(intargc,char*argv[]){ cout<<"************************************"<<endl; cout<<"**********歡迎使用萬年歷!**********"<<endl; cout<<"************************************"<<endl; intflag=1; do {cout<<"hallo!請選擇您的查詢內(nèi)容:"<<endl; cout<<"1.顯示某一年的萬年歷"<<endl; cout<<"2.顯示某一月的萬年歷"<<endl; cout<<"3.查詢某一天是星期幾"<<endl; cout<<"0.退出"<<endl; intchoice; cin>>choice; if(choice!=0) {hh:switch(choice) {case1:printyear();//調(diào)用打印年份函數(shù) break; case2: { intyear,month; cout<<"請輸入年和月,如:20131"<<endl; cin>>year>>month; printmonth(year,month);//調(diào)用打印月份函數(shù) break; } case3:findday(); break; default:cout<<"輸入錯誤,請重新輸入:"<<endl; cin>>choice; gotohh; } } else { cout<<endl<<"感謝使用,再見!"<<endl<<endl; flag=0;//退出; } } while(flag); return0;}//判斷指定的年份是否為閏年以及每年的天數(shù)的函數(shù);intyeardays(intyear){ intyeardays=0; if(year%4==0&&year%100!=0||year%400==0)//判斷是否為閏年; yeardays+=366; else yeardays+=365; returnyeardays;}//判斷指定的年份每一個月的天數(shù)的函數(shù);intmonthdays(intyear,intmonth){ intdays_mon[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//用數(shù)組表示每個月的天數(shù); if(year%4==0&&year%100!=0||year%400==0) { days_mon[2]=29; } returndays_mon[month];}//顯示指定某一年的日歷的函數(shù)voidprintyear(){ intyear; inti; cout<<endl; cout<<"請輸入年份:"<<endl; cin>>year; for(i=1;i<13;i++) { printmonth(year,i); }}//顯示指定某年某一月的日歷的函數(shù)voidprintmonth(intyear,intmonth){ inti,d,days=1; char*dayss[]={"SUN","MON","TUE","WEN","THU","FRI","SAT"};//用數(shù)組元素代表星期幾; cout<<endl; for(i=0;i<month;i++) days+=monthdays(year,i);//計算總天數(shù) d=(year-1+(year-1)/4-(year-1)/100+(year-1)/400+days)%7;//用d=0.1.2…..6來表示星期一至日; cout<<year<<"年"<<month<<"月"<<endl;//輸出月歷部分; for(intj=0;j<7;j++) cout<<dayss[j]<<""; cout<<endl; for(i=0;i<d;i++) cout<<""; for(intk=1;k<=monthdays(year,month);k++) { if(k<10) cout<<k<<""; elsecout<<k<<""; if((k+d)%7==0) cout<<endl; } cout<<endl;}//顯示某一天是星期幾的函數(shù);voidfindday(){ char*dayss[]={"日","一","二","三","四","五","六"}; intyear,month,day,days,z=0; cout<<"請輸入年月日(如:201311)"<<endl; cin>>year>>month>>day;days=day; for(inti=0;i<month;i++) days+=monthdays(year,i); z=(year-1+(year-1)/4-(year-1)/100+(year-1)/400+days)%7; cout<<year<<"年"<<month<<"月"<<day<<"日"<<"是星期"<<dayss[z]<<endl;}測試結(jié)果如下圖:使用說明書根據(jù)提示選擇所要查詢的內(nèi)容,進入功能查詢界面,輸入所要查詢的內(nèi)容信息,查詢結(jié)果會自動顯示,如查詢完畢,輸入0退出,如還需繼
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度木結(jié)構(gòu)建筑設(shè)計與施工總承包合同8篇
- 國際貿(mào)易課件:WTO的反傾銷制度
- 2025年度數(shù)據(jù)中心承建與信息安全防護合同4篇
- 二零二五年度LED顯示屏產(chǎn)品安全認證合同3篇
- 2025版環(huán)保設(shè)施運營維護管理承包合同范本4篇
- 2025年度木材市場風(fēng)險管理與價格波動合同4篇
- 二零二五年度養(yǎng)老產(chǎn)業(yè)項目合伙人分紅及服務(wù)質(zhì)量保障合同
- 二零二五年度池塘水域漁業(yè)養(yǎng)殖技術(shù)培訓(xùn)與推廣協(xié)議
- 2025年度企業(yè)銷售團隊績效目標協(xié)議書
- 二零二五年度順豐快遞員勞動合同爭議解決機制
- 2024生態(tài)環(huán)境相關(guān)法律法規(guī)考試試題
- 有砟軌道施工工藝課件
- 兩辦意見八硬措施煤礦安全生產(chǎn)條例宣貫學(xué)習(xí)課件
- 40篇短文搞定高中英語3500單詞
- 人教版高中數(shù)學(xué)必修二《第九章 統(tǒng)計》同步練習(xí)及答案解析
- 兒科護理安全警示教育課件
- 三年級下冊口算天天100題
- 國家中英文名稱及代碼縮寫(三位)
- 人員密集場所消防安全培訓(xùn)
- 液晶高壓芯片去保護方法
- 拜太歲科儀文檔
評論
0/150
提交評論