




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1/6用控制語句實(shí)現(xiàn)萬年歷實(shí)驗(yàn)題目用控制語句實(shí)現(xiàn)萬年歷控制語句在程序設(shè)計(jì)中非常重要,通過控制語句,程序可以轉(zhuǎn)向不同的流程??刂普Z句的應(yīng)用也是程序設(shè)計(jì)的基礎(chǔ),是必須要掌握的重要知識。程序主要實(shí)現(xiàn)3個(gè)功能:顯示某一年的每一個(gè)月的日歷、顯示某一年某一月的日歷以及查詢某一天是星期幾。程序功能結(jié)構(gòu)如下圖2.1所示。圖2.1實(shí)驗(yàn)?zāi)康挠脩艨梢酝ㄟ^菜單選擇不同的選項(xiàng)實(shí)現(xiàn)不同的功能,通過輸入想要顯示的年份,可以輸出年的日歷;輸入年和月,可以輸出該月的日歷;輸入年、月以及日,可以查詢這一天是星期幾。實(shí)驗(yàn)要求程序主要的設(shè)計(jì)要求如下:功能選擇可以用菜單來實(shí)現(xiàn)。例如:請選擇您的查詢內(nèi)容:顯示一年的日歷;顯示一月的日歷;顯示某一天是星期幾;退出;用戶通過輸入不同的數(shù)字進(jìn)入不同的菜單。(2)每一月以日歷表格的形式顯示,表格的第一行顯示星期,表格的內(nèi)容是每一天。用戶可以很容易看到每一天是星期幾。設(shè)計(jì)思想說明功能1:要想輸出一年的日歷,首先得解決輸出一個(gè)月日歷的問題,然后用循環(huán)輸出十二月份的。首先提示由鍵盤輸入要顯示的年份,得到年份后開始進(jìn)入循環(huán),定義月份變量month,并賦初值為1(從一月份開始),第一步,進(jìn)入monthdays(intyear,intmonth)函數(shù)判斷月份天數(shù),然后根據(jù)進(jìn)入void
printmonth(int
year,int
month)函數(shù)根據(jù)年月計(jì)算出該月一號是星期幾并輸出月份和每周的表頭,由循環(huán)空出一號前面空的部分,再由另一個(gè)循環(huán),加上前面該月天數(shù)的判斷,就能輸出該月的日歷,此時(shí)一個(gè)月的日歷輸出完畢,進(jìn)入第二次循環(huán),輸出下一個(gè)月的日歷,知道十二個(gè)月份的日歷全部輸出,循環(huán)結(jié)束,第一個(gè)功能實(shí)現(xiàn)。功能2:第二個(gè)功能是第一個(gè)功能的一部分,只需要輸出一個(gè)月的日歷,這是月份不是由1開始,而是由鍵盤輸入的,日歷輸出方法與第一個(gè)功能中的方法相似。功能3:判斷這一天是星期幾,由蔡勒公式計(jì)算,得到的余數(shù)是從0到6,0對應(yīng)星期日,其他的正好對應(yīng)。系統(tǒng)結(jié)構(gòu)的說明流程圖:開始開始進(jìn)入歡迎界面點(diǎn)任意鍵進(jìn)入選擇功能界面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<<"輸入錯(cuò)誤,請重新輸入:"<<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;}//判斷指定的年份每一個(gè)月的天數(shù)的函數(shù);intmonthdays(intyear,intmonth){ intdays_mon[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//用數(shù)組表示每個(gè)月的天數(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);//計(jì)算總天數(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)容,進(jìn)入功能查詢界面,輸入所要查詢的內(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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 事業(yè)單位20251月份度輿情分析報(bào)告保密協(xié)議
- 電工安全培訓(xùn)知識
- 口腔炎的護(hù)理
- 貨物出售合同與貨物委托運(yùn)輸合同6篇
- 浙江專用2025版高考英語一輪復(fù)習(xí)組合練第11練閱讀理解七選五練習(xí)含解析
- 2024-2025學(xué)年高中生物第5章第1節(jié)第2課時(shí)酶的特性練習(xí)含解析新人教版必修1
- 2025版高考數(shù)學(xué)一輪復(fù)習(xí)第二章第八節(jié)函數(shù)與方程精練文
- 2024年高考數(shù)學(xué)考點(diǎn)分析與突破性講練專題03函數(shù)及其表示理
- 場地圍墻施工方案
- 康復(fù)病區(qū)安保方案范本
- 中西醫(yī)結(jié)合診療
- 數(shù)據(jù)庫系統(tǒng)原理教程-清華大學(xué)
- 中國東盟物流行業(yè)分析
- 2023文化傳媒公司股東協(xié)議書
- 三位數(shù)除以兩位數(shù)-有余數(shù)-豎式運(yùn)算300題
- 房建工程安全質(zhì)量觀摩會策劃匯報(bào)
- 播音主持-論脫口秀節(jié)目主持人的現(xiàn)狀及發(fā)展前景
- 曹培英講座《數(shù)學(xué)課程標(biāo)準(zhǔn)解讀》
- 食堂食材配送服務(wù)應(yīng)急保障方案
- 新時(shí)代高職英語(基礎(chǔ)模塊)Unit4
- 青島版五年級數(shù)學(xué)下冊一到四單元復(fù)習(xí)課件
評論
0/150
提交評論