版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 《C++語言程序設計》課程設計(論文)</p><p> 題目: 萬年歷 </p><p> 院(系): 軟 件 學 院 </p><p> 專業(yè)班級: 軟件工程 </p><p> 課程設計(論文)任務及評語</p
2、><p> 院(系):軟件學院 教研室:軟件教研室</p><p><b> 目 錄</b></p><p> 第1章 課程設計目的與要求1</p><p><b> 1.1設計目的1</b></p><
3、;p><b> 1.2實驗環(huán)境1</b></p><p><b> 1.3預備知識1</b></p><p><b> 1.4設計要求1</b></p><p> 第2章 課程設計內容2</p><p> 2.1 課題描述2</p>&l
4、t;p> 2.2 系統(tǒng)設計2</p><p> 2.2.1功能分析2</p><p> 2.2.2面向對象設計2</p><p> 2.2.2類成員描述2</p><p><b> 2.3程序實現(xiàn)2</b></p><p> 2.3.1源碼分析2</p>
5、<p> 2.3.2運行結果2</p><p><b> 第3章 總結3</b></p><p><b> 參考文獻4</b></p><p> 第1章 課程設計目的與要求</p><p><b> 1.1設計目的</b></p>&l
6、t;p> 將理論教學中涉及到的知識點貫穿起來,對不同的數(shù)據(jù)類型、程序控制結構、數(shù)據(jù)結構作一比較和總結,結合設計題目進行綜合性應用,對所學知識達到融會貫通的程度。</p><p> 通過課程設計,學生在下述各方面的能力應該得到鍛煉:</p><p> (1)進一步鞏固、加深學生所學專業(yè)課程《C++語言教程》的基本理論知識,理論聯(lián)系實際,進一步培養(yǎng)學生綜合分析問題,解決問題的能力。
7、</p><p> ?。?)全面考核學生所掌握的基本理論知識及其實際業(yè)務能力,從而達到提高學生素質的最終目的。</p><p> ?。?)利用所學知識,開發(fā)小型應用系統(tǒng),掌握運用C++語言編寫調試應用系統(tǒng)程序,訓練獨立開發(fā)應用系統(tǒng),進行數(shù)據(jù)處理的綜合能力。</p><p> (4)對于給定的設計題目,如何進行分析,理清思路,并給出相應的數(shù)學模型。</p>
8、;<p> (5)掌握面向對象程序設計的方法。</p><p> ?。?)熟練掌握C++語言的基本語法,靈活運用各種數(shù)據(jù)類型。</p><p> ?。?)進一步掌握在集成環(huán)境下如何調試程序和修改程序。</p><p><b> 1.2實驗環(huán)境</b></p><p> 硬件要求能運行Windows 操
9、作系統(tǒng)的微機系統(tǒng)。C++語言應用程序開發(fā)軟件使用:VC++ 系統(tǒng),或其他C++語言應用程序開發(fā)軟件。</p><p><b> 1.3預備知識</b></p><p> 熟悉C++語言程序設計的基本知識及VC++編輯器的使用方法。</p><p><b> 1.4設計要求</b></p><p&g
10、t; 1.仔細分析設計題目,畫出程序流程圖,編寫程序源代碼。</p><p> 2.積極上機調試源程序,增強編程技巧與調程能力。</p><p> 3.認真書寫課程設計預習報告,課程設計說明書。</p><p> 4.遵守課程設計要求和機房管理制度,服從指導教師的安排,確保課程設計的順利完成課程設計內容。</p><p> 第2章
11、課程設計內容</p><p><b> 2.1 課題描述</b></p><p> 輸入任一年的年份后,</p><p><b> 如何打印該年的年歷</b></p><p><b> 2.2 系統(tǒng)設計</b></p><p><b>
12、; 輸入記錄 </b></p><p> 輸入源程序,并對各部分有一個詳細的解釋,說明各個部分的功能,</p><p> 將這個問題模塊化,分成幾個部分的輸入。</p><p><b> 程序中數(shù)據(jù)的設計</b></p><p> 大月小月的判斷,閏年非閏年的</p><p
13、> 判斷以及年歷的排列方式都得用數(shù)據(jù)的形式給表示出來,所以數(shù)據(jù)的的</p><p> 設計也是比較多的,具體如下: </p><p> int i,c,day,year,k,a[50]; </p><p> 具體說明如下:i(此變量是用來排列年歷的),c(c是和year變量是一</p><p> 樣的,是從計算機中輸入
14、的),day(day變量是是相差的天數(shù)),k(k是</p><p><b> 用來輸出星期的)。</b></p><p><b> 程序的函數(shù)設計 </b></p><p> C++是函數(shù)驅動的,所以很多的功能是需要用函數(shù)來完成的。本題我們共</p><p> 有6個函數(shù),其中有5個自
15、定義函數(shù)和一個主函數(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ù)。各個函數(shù)的功能是: </p><p> f1:判斷1號之前的天數(shù)并全部用空格填上。 <
16、;/p><p> f2:用來判斷大小月的。 </p><p> f3:用來判斷并輸出閏年的二月的。 </p><p> f4:用來判斷并輸出非閏年二月的。 </p><p> g:用來輸出日歷表的。 </p><p> 數(shù)據(jù)結構說明 本系統(tǒng)數(shù)據(jù)結構較簡單,只有一個結構數(shù)組,預定50個元素。定義結構<
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面向對象設計</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號前均為
20、空格 </p><p> for(i=k;i<31+k;i++) </p><p> a[i]=a[i-1]+1; </p><p><b> } </b></p><p> 主要運用了數(shù)組的循環(huá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)語句進行對小月的定義。</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> 3{ </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> 用兩個函數(shù)定義了在閏年與非閏年時,二月的不同定
29、義。這主要運用到變量的不同</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> 在此運用了C++中函數(shù)的運算,計算出該年的每月每日的不同。還有一年的輸入和輸</p><p> 出。在C++語言中,函數(shù)的運算又分為很多種,此次用的是 <
33、/p><p> 在輸出時,閏年與非閏年二月的輸出法的定義 </p><p> if((year%4==0&&year%100!=0)||year%400==0) //閏年二月 </p><p><b> { </b></p><p> 4 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> 此處主要運用了if語句來對閏年與非閏年的二月的不同定義的輸出。if語句一種</p><p><b> 2.3程序實現(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號前均為空格 </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運行結果</b></p&
70、gt;<p><b> 第3章 總結</b></p><p> 通過實踐的學習,我認到學好計算機要重視實踐操作,不僅僅是學習C++,還是其它的語言,</p><p> 以及其它的計算機方面的知識都要重在實踐,所以后在學習過程中,我會更加注視實踐操作,使自己更好地學好計算機知識。</p><p><b> 參考文
71、獻</b></p><p> 1.譚浩強 著.《C++面向程序程序設計》.北京:清華大學出版社,2006.7 </p><p> 2.錢能 著.《C++程序設計教程(修訂版)——設計思想與實現(xiàn)》.北京:清華大學</p><p> 出版社,2009.7 </p><p> 3.周玉龍 劉璟 著.《高級語言C++程序
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論