版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 課程設(shè)計(jì)任務(wù)書</b></p><p> 2010 —2011 學(xué)年第 一 學(xué)期</p><p> 計(jì)算機(jī)與通信 學(xué)院(系、部) 通信工程 專業(yè) 班級(jí)</p><p> 課程名稱: 面向?qū)ο蟪绦蛟O(shè)計(jì)
2、 </p><p> 設(shè)計(jì)題目: 日歷(基于控制臺(tái)) </p><p> 完成期限:自 2011 年 01 月 03日至 2011 年 01 月 08 日共 1 周</p><p> 指導(dǎo)教師(簽字):
3、 年 月 日</p><p> 系(教研室)主任(簽字): 年 月 日</p><p> 面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)</p><p><b> 設(shè)計(jì)說明書</b></p><p> 起止
4、日期: 2011年 01 月 03日 至 2011年 01月 08 日</p><p><b> 計(jì)算機(jī)與通信學(xué)院</b></p><p> 2011年 01 月 08 日</p><p><b> 問題描述</b></p><p> 顯示日歷中的陽歷及對(duì)應(yīng)的星期,每一個(gè)月分開顯示
5、。</p><p> 可以連續(xù)查詢多個(gè)年份的日歷。</p><p><b> 需求分析</b></p><p> 需要建立日歷類及知道判斷平潤(rùn)年的方法;設(shè)置循環(huán)條件。</p><p><b> 概要設(shè)計(jì)</b></p><p><b> 詳細(xì)設(shè)計(jì)<
6、;/b></p><p> 建立日歷類,設(shè)置判斷函數(shù),顯示函數(shù),接收函數(shù),輸出格式調(diào)用。</p><p> 判斷函數(shù)根據(jù)1900年元旦是星期一,記錄每一年多出的天數(shù),從而</p><p> 推算出某一年的元旦是星期幾。記錄上一個(gè)月最后一天的星期數(shù),從而</p><p> 得出下一個(gè)月第一天的星期數(shù)。</p><
7、;p><b> 編碼實(shí)現(xiàn)</b></p><p> 編譯,連接都已實(shí)現(xiàn)。源程序:</p><p> #include <iostream> </p><p> #include <iomanip> </p><p> #include<string></p>
8、;<p> using namespace std; </p><p> class Data </p><p><b> { </b></p><p> private: </p><p> int year; </p><p><b> public
9、: </b></p><p> int getyear(); //提示用戶輸入想要查詢的年份 </p><p> int ioleapyear(); //判斷該年是不是閏年 </p><p> int weekday(); //判斷該年的元旦是星期幾 </p><p> void setweek(); </
10、p><p> int monthday(int i); //該年每個(gè)月的天數(shù) </p><p> void disp(); //顯示結(jié)果。 </p><p><b> }; </b></p><p> char* weekd[7]={"MON","TUE","W
11、EN","THU","FRI","STA","SUN"}; //記錄星期一到星期天 </p><p> int Data::getyear() </p><p> { cout<<"請(qǐng)輸入要想查詢的年份:"<<endl; </p>
12、<p> cout<<"年份范圍大于1900,小于8000;"<<endl;</p><p> cin>>year; </p><p> if(year<1900||year>8000)</p><p><b> {</b></p><p
13、> cout<<"輸入有誤:"<<endl;</p><p> getyear();}</p><p><b> else</b></p><p> return year;} </p><p> int Data::ioleapyear() </p&g
14、t;<p><b> { </b></p><p> if(year%4==0&&year%100!=0||year%400==0) </p><p> return 1; </p><p><b> else </b></p><p> return
15、 0; </p><p><b> } </b></p><p> int Data::weekday() </p><p><b> { </b></p><p> int n=1; </p><p> for(int z=1900;z<year;
16、z++)</p><p> if(z%4==0&&z%100!=0||z%400==0) </p><p><b> n=n+2; </b></p><p><b> else </b></p><p><b> n=n+1; </b></p
17、><p><b> n=n%7; </b></p><p><b> if(n==0)</b></p><p><b> return 7;</b></p><p><b> else</b></p><p> return
18、n; //返回輸入的年份的元旦是星期幾 </p><p><b> } </b></p><p> int Data::monthday(int i) </p><p><b> { </b></p><p> if(i==1||i==3||i==5||i==7||i==8||i=
19、=10||i==12) </p><p> return 31; </p><p> else if (i==2) </p><p> if(ioleapyear()) </p><p> return 29; </p><p> else return 28; </p><p
20、><b> else </b></p><p> return 30; </p><p><b> } </b></p><p> void Data::disp() </p><p><b> { </b></p><p>&
21、lt;b> int i; </b></p><p> int n=weekday(); </p><p> for(i=1;i<=12;i++) //總共的月份 12 </p><p> { int lemp=1; </p><p> cout<<endl<<setw(5)&l
22、t;<i<<"月份"<<endl; </p><p> cout<<"-------------------------------------------"<<endl; </p><p> for(int j=0;j<7;j++) </p><p>
23、cout<<setw(5)<<weekd[j]; </p><p> cout<<endl<<"-------------------------------------------"<<endl; </p><p> for(int k=1;k<n;k++,lemp++) //輸入每月第一天的起
24、始位置,用空格補(bǔ)充 </p><p> cout<<setw(5)<<" "; </p><p> for(int d=1;d<=monthday(i);d++,lemp++) </p><p><b> { </b></p><p> cout<&
25、lt;setw(5)<<d; </p><p> if(lemp==7) //控制一行輸出到星期天,如果到星期天則重新計(jì)數(shù) </p><p><b> { </b></p><p> cout<<endl; </p><p><b> lemp=0; </b>
26、;</p><p><b> } </b></p><p><b> } </b></p><p> n=lemp%7; //當(dāng)輸出完一個(gè)月后,記錄這個(gè)月的最后一天在哪,尋找下個(gè)月的 </p><p> if(n==0) //第一天的起始位置 </p><p>
27、;<b> n=7; </b></p><p> cout<<endl<<"-------------------------------------------"<<endl<<endl<<endl; </p><p><b> } </b></p
28、><p><b> } </b></p><p> int main() </p><p><b> { </b></p><p><b> Data a; </b></p><p> cout<<setw(45)<<
29、"萬年歷查詢"<<endl; </p><p> cout<<"-------------------------------------------------------------------------------" </p><p><b> <<endl; </b><
30、;/p><p> a.getyear(); </p><p> a.disp(); </p><p><b> char ch;</b></p><p> cout<<"按1退出 按其它鍵繼續(xù);"<<endl;</p><p><
31、b> cin>>ch;</b></p><p> if(ch!='1')</p><p><b> main();</b></p><p><b> else</b></p><p><b> return 0;</b>&
32、lt;/p><p><b> }</b></p><p><b> 調(diào)試與測(cè)試</b></p><p><b> 設(shè)計(jì)總結(jié)</b></p><p> 先要進(jìn)行總體框架的構(gòu)思與設(shè)計(jì);其次要具體的設(shè)置函數(shù)去實(shí)現(xiàn)要求的功能;最后</p><p> 修改,
33、調(diào)試和測(cè)試直到實(shí)現(xiàn)了所要求的全部功能。需要細(xì)心,努力地一步一步完成。</p><p><b> 附錄或參考資料</b></p><p> 電子檔一份;1. 羅建軍.C/C++語言程序設(shè)計(jì)案例教程[M].北京:機(jī)械工業(yè)出版社,2010.</p><p> 2. 劉恒洋,楊宏雨.面向?qū)ο蟪绦蛟O(shè)計(jì)案例教程[M].北京:機(jī)械工業(yè)出版社,2010.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- java課程設(shè)計(jì)--日歷
- 電子日歷課程設(shè)計(jì)報(bào)告
- 數(shù)字日歷電路課程設(shè)計(jì)
- java課程設(shè)計(jì)簡(jiǎn)單日歷
- 電子日歷的制作-課程設(shè)計(jì)
- 課程設(shè)計(jì)-- 網(wǎng)上日歷系統(tǒng)
- 電子日歷的制作-課程設(shè)計(jì)
- 課程設(shè)計(jì)--數(shù)字日歷鐘表的設(shè)計(jì)
- 電子日歷表課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)_日歷
- java課程設(shè)計(jì)--日歷記事本
- c語言日歷顯示課程設(shè)計(jì)報(bào)告
- 單片機(jī)課程設(shè)計(jì)報(bào)告-日歷
- 電子日歷課程設(shè)計(jì)實(shí)訓(xùn)報(bào)告
- java課程設(shè)計(jì)日歷記事本
- java課程設(shè)計(jì)--日歷記事本
- 電子日歷表課程設(shè)計(jì) (2)
- 日歷記事本-java課程設(shè)計(jì)
- 日歷記事本java課程設(shè)計(jì)
- java課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告--java日歷設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論