版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 《C++語言程序設(shè)計(jì)》課程設(shè)計(jì)(論文)</p><p> 題目: 萬年歷 </p><p> 院(系): 軟 件 學(xué) 院 </p><p> 專業(yè)班級(jí): 軟件工程 </p><p> 課程設(shè)計(jì)(論文)任務(wù)及評(píng)語</p
2、><p> 院(系):軟件學(xué)院 教研室:軟件教研室</p><p><b> 目 錄</b></p><p> 第1章 課程設(shè)計(jì)目的與要求1</p><p><b> 1.1設(shè)計(jì)目的1</b></p><
3、;p><b> 1.2實(shí)驗(yàn)環(huán)境1</b></p><p><b> 1.3預(yù)備知識(shí)1</b></p><p><b> 1.4設(shè)計(jì)要求1</b></p><p> 第2章 課程設(shè)計(jì)內(nèi)容2</p><p> 2.1 課題描述2</p>&l
4、t;p> 2.2 系統(tǒng)設(shè)計(jì)2</p><p> 2.2.1功能分析2</p><p> 2.2.2面向?qū)ο笤O(shè)計(jì)2</p><p> 2.2.2類成員描述2</p><p><b> 2.3程序?qū)崿F(xiàn)2</b></p><p> 2.3.1源碼分析2</p>
5、<p> 2.3.2運(yùn)行結(jié)果2</p><p><b> 第3章 總結(jié)3</b></p><p><b> 參考文獻(xiàn)4</b></p><p> 第1章 課程設(shè)計(jì)目的與要求</p><p><b> 1.1設(shè)計(jì)目的</b></p>&l
6、t;p> 將理論教學(xué)中涉及到的知識(shí)點(diǎn)貫穿起來,對不同的數(shù)據(jù)類型、程序控制結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)作一比較和總結(jié),結(jié)合設(shè)計(jì)題目進(jìn)行綜合性應(yīng)用,對所學(xué)知識(shí)達(dá)到融會(huì)貫通的程度。</p><p> 通過課程設(shè)計(jì),學(xué)生在下述各方面的能力應(yīng)該得到鍛煉:</p><p> ?。?)進(jìn)一步鞏固、加深學(xué)生所學(xué)專業(yè)課程《C++語言教程》的基本理論知識(shí),理論聯(lián)系實(shí)際,進(jìn)一步培養(yǎng)學(xué)生綜合分析問題,解決問題的能力。
7、</p><p> (2)全面考核學(xué)生所掌握的基本理論知識(shí)及其實(shí)際業(yè)務(wù)能力,從而達(dá)到提高學(xué)生素質(zhì)的最終目的。</p><p> ?。?)利用所學(xué)知識(shí),開發(fā)小型應(yīng)用系統(tǒng),掌握運(yùn)用C++語言編寫調(diào)試應(yīng)用系統(tǒng)程序,訓(xùn)練獨(dú)立開發(fā)應(yīng)用系統(tǒng),進(jìn)行數(shù)據(jù)處理的綜合能力。</p><p> ?。?)對于給定的設(shè)計(jì)題目,如何進(jìn)行分析,理清思路,并給出相應(yīng)的數(shù)學(xué)模型。</p>
8、;<p> ?。?)掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的方法。</p><p> ?。?)熟練掌握C++語言的基本語法,靈活運(yùn)用各種數(shù)據(jù)類型。</p><p> (7)進(jìn)一步掌握在集成環(huán)境下如何調(diào)試程序和修改程序。</p><p><b> 1.2實(shí)驗(yàn)環(huán)境</b></p><p> 硬件要求能運(yùn)行Windows 操
9、作系統(tǒng)的微機(jī)系統(tǒng)。C++語言應(yīng)用程序開發(fā)軟件使用:VC++ 系統(tǒng),或其他C++語言應(yīng)用程序開發(fā)軟件。</p><p><b> 1.3預(yù)備知識(shí)</b></p><p> 熟悉C++語言程序設(shè)計(jì)的基本知識(shí)及VC++編輯器的使用方法。</p><p><b> 1.4設(shè)計(jì)要求</b></p><p&g
10、t; 1.仔細(xì)分析設(shè)計(jì)題目,畫出程序流程圖,編寫程序源代碼。</p><p> 2.積極上機(jī)調(diào)試源程序,增強(qiáng)編程技巧與調(diào)程能力。</p><p> 3.認(rèn)真書寫課程設(shè)計(jì)預(yù)習(xí)報(bào)告,課程設(shè)計(jì)說明書。</p><p> 4.遵守課程設(shè)計(jì)要求和機(jī)房管理制度,服從指導(dǎo)教師的安排,確保課程設(shè)計(jì)的順利完成課程設(shè)計(jì)內(nèi)容。</p><p> 第2章
11、課程設(shè)計(jì)內(nèi)容</p><p><b> 2.1 課題描述</b></p><p> 輸入任一年的年份后,</p><p><b> 如何打印該年的年歷</b></p><p><b> 2.2 系統(tǒng)設(shè)計(jì)</b></p><p><b>
12、; 輸入記錄 </b></p><p> 輸入源程序,并對各部分有一個(gè)詳細(xì)的解釋,說明各個(gè)部分的功能,</p><p> 將這個(gè)問題模塊化,分成幾個(gè)部分的輸入。</p><p><b> 程序中數(shù)據(jù)的設(shè)計(jì)</b></p><p> 大月小月的判斷,閏年非閏年的</p><p
13、> 判斷以及年歷的排列方式都得用數(shù)據(jù)的形式給表示出來,所以數(shù)據(jù)的的</p><p> 設(shè)計(jì)也是比較多的,具體如下: </p><p> int i,c,day,year,k,a[50]; </p><p> 具體說明如下:i(此變量是用來排列年歷的),c(c是和year變量是一</p><p> 樣的,是從計(jì)算機(jī)中輸入
14、的),day(day變量是是相差的天數(shù)),k(k是</p><p><b> 用來輸出星期的)。</b></p><p><b> 程序的函數(shù)設(shè)計(jì) </b></p><p> C++是函數(shù)驅(qū)動(dòng)的,所以很多的功能是需要用函數(shù)來完成的。本題我們共</p><p> 有6個(gè)函數(shù),其中有5個(gè)自
15、定義函數(shù)和一個(gè)主函數(shù)。分別是:void f1(int </p><p> x) ,void f2(int x),void f3(int x) ,void f4(int x) ,void g(int </p><p> y[],int z) 和main函數(shù)。各個(gè)函數(shù)的功能是: </p><p> f1:判斷1號(hào)之前的天數(shù)并全部用空格填上。 <
16、;/p><p> f2:用來判斷大小月的。 </p><p> f3:用來判斷并輸出閏年的二月的。 </p><p> f4:用來判斷并輸出非閏年二月的。 </p><p> g:用來輸出日歷表的。 </p><p> 數(shù)據(jù)結(jié)構(gòu)說明 本系統(tǒng)數(shù)據(jù)結(jié)構(gòu)較簡單,只有一個(gè)結(jié)構(gòu)數(shù)組,預(yù)定50個(gè)元素。定義結(jié)構(gòu)<
17、;/p><p><b> 類型如下: </b></p><p> for( i=0;i<50;i++) </p><p><b> a[i]=33;</b></p><p><b> 2.2.1功能分析</b></p><p> 輸入任一
18、年的年份后,打印該年的年歷</p><p> 2.2.2面向?qū)ο笤O(shè)計(jì)</p><p> 2.2.2類成員描述</p><p> 各功能模塊(函數(shù))的算法處理</p><p> 1、大月和小月的定義 </p><p> void f1(int x) //大月 </p&
19、gt;<p><b> { </b></p><p> for( i=0;i<50;i++) </p><p> a[i]=33; </p><p> for(i=k-1;i>=0;i--) </p><p> a[i]='\000'; //1號(hào)前均為
20、空格 </p><p> for(i=k;i<31+k;i++) </p><p> a[i]=a[i-1]+1; </p><p><b> } </b></p><p> 主要運(yùn)用了數(shù)組的循環(huán)語句進(jìn)行對大月的定義。 </p><p> void f2(int x)
21、 //小月 </p><p><b> { </b></p><p> for( i=0;i<50;i++) </p><p> a[i]=33; </p><p> for(i=k-1;i>=0;i--) </p><p> a[i]=&
22、#39;\000'; </p><p> for(i=k;i<30+k;i++) </p><p> a[i]=a[i-1]+1; </p><p><b> } </b></p><p> 依然用數(shù)組的循環(huán)語句進(jìn)行對小月的定義。</p><p> 閏年與非閏年二月
23、的定義 </p><p> void f3(int x) //閏年二月 打印一年日歷Void f</p><p> Void q 主函數(shù) 大月 </p><p><b> 小月 閏年二月</b></p><p> 輸出日歷表一月的定義 閏二月的定義 </p>
24、<p><b> 非閏二月的定</b></p><p><b> 三月</b></p><p> 四月 五月 六月 七月 </p><p><b> 八月 </b></p><p><b> 九月 </b></p>
25、<p><b> 十月 十一月 </b></p><p> 十二月 非閏年二月</p><p><b> ?。硔 </b></p><p> for( i=0;i<50;i++) </p><p> a[i]=33; </p><p>
26、 for(i=k-1;i>=0;i--) </p><p> a[i]='\000'; </p><p> for(i=k;i<29+k;i++) </p><p> a[i]=a[i-1]+1; </p><p><b> } </b></p><p&g
27、t; void f4(int x) //非閏年二月 </p><p><b> { </b></p><p> for( i=0;i<50;i++) </p><p> a[i]=33; </p><p> for(i=k-1;i>=0;i--) <
28、;/p><p> a[i]='\000'; </p><p> for(i=k;i<28+k;i++) </p><p> a[i]=a[i-1]+1; </p><p><b> } </b></p><p> 用兩個(gè)函數(shù)定義了在閏年與非閏年時(shí),二月的不同定
29、義。這主要運(yùn)用到變量的不同</p><p> 定義。從而分辨出它們的不同,使可打印出任一年的日歷。 </p><p> 3、日歷表的輸出 </p><p> int s,count=0; </p><p> cout<<"請輸入年份:"; </p><p> cin&
30、gt;>year; </p><p> cout<<endl; </p><p><b> c=year; </b></p><p> for(s=1;s<=year;s++) </p><p> if(((s-1)%4==0&&(s-1)%100!=0)||(s-
31、1)%400==0) </p><p> count++; </p><p> day=365*c+count; //相差天數(shù) </p><p> cout<<"*********************"<<year<<"年日歷******
32、***************"; </p><p> cout<<endl<<endl<<endl<<endl; </p><p> 在此運(yùn)用了C++中函數(shù)的運(yùn)算,計(jì)算出該年的每月每日的不同。還有一年的輸入和輸</p><p> 出。在C++語言中,函數(shù)的運(yùn)算又分為很多種,此次用的是 <
33、/p><p> 在輸出時(shí),閏年與非閏年二月的輸出法的定義 </p><p> if((year%4==0&&year%100!=0)||year%400==0) //閏年二月 </p><p><b> { </b></p><p> ?。?k=((day+31)%7+6)%7+1;
34、</p><p> cout<<"二月"<<endl<<endl; </p><p><b> f3(k); </b></p><p> g(a,50); </p><p> day=day+31+29; </p><p>
35、<b> } </b></p><p> else //非閏年二月 </p><p><b> { </b></p><p> k=((day+31)%7+6)%7+1; </p><p> cout<<
36、"二月"<<endl<<endl; </p><p><b> f4(k); </b></p><p> g(a,50); </p><p> day=day+31+28; </p><p><b> } </b></p>
37、<p> 此處主要運(yùn)用了if語句來對閏年與非閏年的二月的不同定義的輸出。if語句一種</p><p><b> 2.3程序?qū)崿F(xiàn)</b></p><p><b> 2.3.1源碼分析</b></p><p> #include<iostream> </p><p> #
38、include<cmath> </p><p> using namespace std; </p><p> int i,c,day,year,k,a[50]; </p><p> void f1(int x) //大月 </p><p><b> { </b><
39、/p><p> for( i=0;i<50;i++) </p><p><b> a[i]=33; </b></p><p> for(i=k-1;i>=0;i--) </p><p> a[i]='\000'; //1號(hào)前均為空格 </p><p>
40、for(i=k;i<31+k;i++) </p><p> a[i]=a[i-1]+1; </p><p><b> } </b></p><p> void f2(int x) //小月 </p><p><b> { </b></p>&
41、lt;p> for( i=0;i<50;i++) </p><p><b> a[i]=33; </b></p><p> for(i=k-1;i>=0;i--) </p><p> a[i]='\000'; </p><p> for(i=k;i<30+k;i++) &
42、lt;/p><p> a[i]=a[i-1]+1; </p><p><b> } </b></p><p> void f3(int x) //閏年二月 </p><p><b> { </b></p><p> for( i=0;i&l
43、t;50;i++) </p><p><b> a[i]=33; </b></p><p> for(i=k-1;i>=0;i--) </p><p> a[i]='\000'; </p><p> for(i=k;i<29+k;i++) </p><p>
44、a[i]=a[i-1]+1; </p><p><b> } </b></p><p> void f4(int x) //非閏年二月 </p><p><b> { </b></p><p> for( i=0;i<50;i++) </p&g
45、t;<p><b> a[i]=33; </b></p><p> for(i=k-1;i>=0;i--) </p><p> a[i]='\000'; </p><p> for(i=k;i<28+k;i++) </p><p> a[i]=a[i-1]+1; &l
46、t;/p><p><b> } </b></p><p> void g(int y[],int z) // 輸出日歷表 </p><p><b> { </b></p><p> cout<<"日"<<'\t&
47、#39;<<"一"<<'\t'<<"二"<<'\t'<<"三"<<'\t'<<"四"<<'\t'<<"五"<<'\t'<<&qu
48、ot;六"<<endl; </p><p> for(i=0;i<50;i++) </p><p><b> { </b></p><p> if(a[i]==0) </p><p> cout<<(char)a[i]<<'\t'; </p
49、><p> if(a[i]!=0&&a[i]!=33) </p><p> cout<<a[i]<<'\t'; </p><p><b> else ; </b></p><p> if(i%7==0) </p><p> cout&l
50、t;<endl; </p><p><b> } </b></p><p> cout<<endl<<endl<<endl; </p><p><b> } </b></p><p> int main() </p><p>
51、<b> { </b></p><p> int s,count=0; </p><p> cout<<"請輸入年份:"; </p><p> cin>>year; </p><p> cout<<endl; </p><p>&
52、lt;b> c=year; </b></p><p> for(s=1;s<=year;s++) </p><p> if(((s-1)%4==0&&(s-1)%100!=0)||(s-1)%400==0) </p><p><b> count++; </b></p><p&
53、gt; day=365*c+count; //相差天數(shù) </p><p> cout<<"*********************"<<year<<"年日歷*********************"; </p><p> cout<<endl&l
54、t;<endl<<endl<<endl; </p><p> k=(day%7+6)%7+1; </p><p> cout<<"一月"<<endl<<endl; </p><p><b> f1(k); </b></p><p>
55、;<b> g(a,50); </b></p><p> if((year%4==0&&year%100!=0)||year%400==0) //閏年二月 </p><p><b> { </b></p><p> k=((day+31)%7+6)%7+1; </p><
56、p> cout<<"二月"<<endl<<endl; </p><p><b> f3(k); </b></p><p><b> g(a,50); </b></p><p> day=day+31+29; </p><p>&
57、lt;b> } </b></p><p> else //非閏年二月 </p><p><b> { </b></p><p> k=((day+31)%7+6)%7+1; </p><p> cout<<"
58、;二月"<<endl<<endl; </p><p><b> f4(k); </b></p><p><b> g(a,50); </b></p><p> day=day+31+28; </p><p><b> } </b><
59、;/p><p> k=(day%7+6)%7+1; </p><p> cout<<"三月"<<endl<<endl; </p><p><b> f1(k); </b></p><p><b> g(a,50); </b></p&g
60、t;<p> k=((day+31)%7+6)%7+1; </p><p> cout<<"四月"<<endl<<endl; </p><p><b> f2(k); </b></p><p><b> g(a,50); </b></p&g
61、t;<p> k=((day+31+30)%7+6)%7+1; </p><p> cout<<"五月"<<endl<<endl; </p><p><b> f1(k); </b></p><p><b> g(a,50); </b></
62、p><p> k=((day+31+30+31)%7+6)%7+1; </p><p> cout<<"六月"<<endl<<endl; </p><p><b> f2(k); </b></p><p> g(a,50); </p><p
63、> k=((day+31+30+31+30)%7+6)%7+1; </p><p> cout<<"七月"<<endl<<endl; </p><p><b> f1(k); </b></p><p><b> g(a,50); </b></p&g
64、t;<p> k=((day+31+30+31+30+31)%7+6)%7+1; </p><p> cout<<"八月"<<endl<<endl; </p><p><b> f1(k); </b></p><p><b> g(a,50); </b
65、></p><p> k=((day+31+30+31+30+31+31)%7+6)%7+1; </p><p> cout<<"九月"<<endl<<endl; </p><p><b> f2(k); </b></p><p><b>
66、g(a,50); </b></p><p> k=((day+31+30+31+30+31+31+30)%7+6)%7+1; </p><p> cout<<"十月"<<endl<<endl; </p><p><b> f1(k); </b></p>&
67、lt;p><b> g(a,50); </b></p><p> k=((day+31+30+31+30+31+31+30+31)%7+6)%7+1; </p><p> cout<<"十一月"<<endl<<endl; </p><p><b> f2(k); &
68、lt;/b></p><p><b> g(a,50); </b></p><p> k=((day+31+30+31+30+31+31+30+31+30)%7+6)%7+1; </p><p> cout<<"十二月"<<endl<<endl; </p><
69、;p><b> f1(k); </b></p><p><b> g(a,50); </b></p><p> return 0; </p><p><b> }</b></p><p><b> 2.3.2運(yùn)行結(jié)果</b></p&
70、gt;<p><b> 第3章 總結(jié)</b></p><p> 通過實(shí)踐的學(xué)習(xí),我認(rèn)到學(xué)好計(jì)算機(jī)要重視實(shí)踐操作,不僅僅是學(xué)習(xí)C++,還是其它的語言,</p><p> 以及其它的計(jì)算機(jī)方面的知識(shí)都要重在實(shí)踐,所以后在學(xué)習(xí)過程中,我會(huì)更加注視實(shí)踐操作,使自己更好地學(xué)好計(jì)算機(jī)知識(shí)。</p><p><b> 參考文
71、獻(xiàn)</b></p><p> 1.譚浩強(qiáng) 著.《C++面向程序程序設(shè)計(jì)》.北京:清華大學(xué)出版社,2006.7 </p><p> 2.錢能 著.《C++程序設(shè)計(jì)教程(修訂版)——設(shè)計(jì)思想與實(shí)現(xiàn)》.北京:清華大學(xué)</p><p> 出版社,2009.7 </p><p> 3.周玉龍 劉璟 著.《高級(jí)語言C++程序
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c++課程設(shè)計(jì)--萬年歷
- 萬年歷c++課程設(shè)計(jì)
- 《c++課程設(shè)計(jì)》萬年歷
- 萬年歷c++課程設(shè)計(jì)
- c++課程設(shè)計(jì)報(bào)告---萬年歷系統(tǒng)
- c語言課程設(shè)計(jì)--萬年歷
- c語言課程設(shè)計(jì)--萬年歷
- 萬年歷c語言課程設(shè)計(jì)
- c語言課程設(shè)計(jì)--萬年歷
- 萬年歷課程設(shè)計(jì)--萬年歷電子時(shí)鐘
- 萬年歷課程設(shè)計(jì)
- 萬年歷課程設(shè)計(jì)
- 萬年歷課程設(shè)計(jì)
- 萬年歷課程設(shè)計(jì)
- 萬年歷課程設(shè)計(jì)
- 萬年歷課程設(shè)計(jì)
- 萬年歷課程設(shè)計(jì)
- c語言課程設(shè)計(jì)萬年歷系統(tǒng)
- C語言課程設(shè)計(jì)--萬年歷.doc
- c語音電子萬年歷課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論