中南大學(xué)C 程序設(shè)計(jì)報(bào)告_第1頁
中南大學(xué)C 程序設(shè)計(jì)報(bào)告_第2頁
中南大學(xué)C 程序設(shè)計(jì)報(bào)告_第3頁
中南大學(xué)C 程序設(shè)計(jì)報(bào)告_第4頁
中南大學(xué)C 程序設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

C++程序設(shè)計(jì)報(bào)告

前言我認(rèn)為安排此次課程設(shè)計(jì)的目的,是讓同學(xué)們?cè)讵?dú)立完成設(shè)計(jì)、編寫、調(diào)試應(yīng)用程序及編寫文檔的任務(wù)的過程中,及時(shí)鞏固已學(xué)的知識(shí),補(bǔ)充未學(xué)但是非常重要的知識(shí),提高程序設(shè)計(jì)的能力。針對(duì)C++語言中的重點(diǎn)和難點(diǎn)內(nèi)容,如數(shù)組和函數(shù)等,進(jìn)行訓(xùn)練,并且能充分發(fā)揮獨(dú)立自主學(xué)習(xí)的能力,對(duì)于在程序設(shè)計(jì)和調(diào)試中遇到的問題,應(yīng)積極和同學(xué)交流,相互學(xué)習(xí),共同進(jìn)步

二、正文1.(1)題目:任意輸入一個(gè)正整數(shù),要求:(1)求它是幾位數(shù);(2)按逆序輸出各位數(shù)字;(3)求奇數(shù)位數(shù)字之和。(2)算法分析分離出每一末位數(shù)字,然后輸出;判斷是否為奇數(shù)位,將奇數(shù)位數(shù)字相加求和;利用循環(huán)結(jié)構(gòu)進(jìn)行編程,每位數(shù)字逐一進(jìn)行分離、判斷。(3)程序:程序要有詳盡注釋,如:各參數(shù)的含義、函數(shù)的功能等#include<iostream>usingnamespacestd;voidmain(){ intn,m,s=0,i=0;//定義變量 cout<<"請(qǐng)輸入一個(gè)正整數(shù)n"<<endl; cin>>n; do { m=n%10;//n對(duì)10取模,得到該數(shù)的最后一位數(shù)字 cout<<m;//逆序輸出每位數(shù)字 n/=10; i++; if(i%2==1)//判斷是否為奇數(shù)位 {s+=m;}//各奇數(shù)位數(shù)字之和 }while(n>0);//循環(huán)一次,計(jì)算一次,共循環(huán)i次cout<<"共有"<<i<<"位數(shù)字"<<endl;cout<<"奇數(shù)位之和是:"<<s<<endl;}(4)運(yùn)行結(jié)果(5)調(diào)試過程中出現(xiàn)過的問題和解決的方法2.(1)題目:輸入階數(shù)n(1≤n≤10),輸出對(duì)應(yīng)的n階旋轉(zhuǎn)矩陣。所謂旋轉(zhuǎn)矩陣,就是在n階矩陣中,起始數(shù)1置于方陣的左上角,然后從起始數(shù)開始依次遞增,按順時(shí)針方向從外向里旋轉(zhuǎn)填數(shù)而成。如:輸入n=5,輸出:12345161718196152425207142322218131211109(2)算法分析(3)程序:程序要有詳盡注釋,如:各參數(shù)的含義、函數(shù)的功能等#include<iostream>#include<iomanip>usingnamespacestd;voidmain(){intn=0,m=1,l,r,u,d,i=1,j=1,a[10][10];//定義變量和一個(gè)二維數(shù)組cout<<"inputthen:";cin>>n;l=1;r=n;u=1;d=n;while(l<=r&&u<=d)//循環(huán)一次輸出一圈{for(i=l;i<=r;i++)//從左到右對(duì)數(shù)組賦值a[j][i]=m++;u+=1;i-=1;for(j=u;j<=d;j++)//從上到下的a[j][i]=m++;r-=1;j-=1;for(i=r;i>=l;i--)//從右到左的a[j][i]=m++;d-=1;i+=1;for(j=d;j>=u;j--)//從下到上的a[j][i]=m++;l+=1;j+=1;}for(i=1;i<=n;i++)//輸出數(shù)組{for(j=1;j<=n;j++){cout<<setw(3)<<a[i][j];}cout<<'\n';}}(4)運(yùn)行結(jié)果(5)調(diào)試過程中出現(xiàn)過的問題和解決的方法

3.(1)題目:將一個(gè)5×5矩陣中的最小元素放在中心,四個(gè)角分別放四個(gè)最大的元素(從左到右、從上到下的順序?yàn)閺拇蟮叫〈娣牛?,要求:?)輸出變換后的矩陣;(2)任意輸入一個(gè)數(shù),如果該數(shù)在矩陣中,確定該數(shù)的位置。(2)算法分析(3)程序:程序要有詳盡注釋,如:各參數(shù)的含義、函數(shù)的功能等#include<iostream>#include<iomanip>usingnamespacestd;voidmyswap(int&a,int&b){ intx; x=a;a=b;b=x;}constintmaxint=1992;voidmain(){ intmat[5][5],max[4]={-1*maxint,-1*maxint,-1*maxint,-1*maxint},maxi[4],maxj[4]; inti,j,k,n,min=maxint,mini,minj;//定義變量和一個(gè)二維數(shù)組cout<<"請(qǐng)輸入5×5矩陣:\n"; for(i=0;i<5;i++) { for(j=0;j<5;j++) { cin>>mat[i][j]; if(min>mat[i][j]) { min=mat[i][j];mini=i;minj=j; } into,oi,oj; o=mat[i][j];oi=i;oj=j; for(k=0;k<4;k++) { if(o>max[k]) {myswap(o,max[k]);myswap(oi,maxi[k]);myswap(oj,maxj[k]); } } } } myswap(mat[2][2],mat[mini][minj]); myswap(mat[0][0],mat[maxi[0]][maxj[0]]); myswap(mat[4][0],mat[maxi[1]][maxj[1]]); myswap(mat[0][4],mat[maxi[2]][maxj[2]]); myswap(mat[4][4],mat[maxi[3]][maxj[3]]); cout<<"\n調(diào)整后的數(shù)組為:\n"; for(i=0;i<5;i++) { for(j=0;j<5;j++)cout<<setw(4)<<mat[i][j]; cout<<"\n"; } cout<<"\n請(qǐng)輸入要查找的元素:"; cin>>n; cout<<"\n目標(biāo)元素的位置是:\n"; for(i=0;i<5;i++) for(j=0;j<5;j++) if(mat[i][j]==n)cout<<"第"<<i+1<<"行,第"<<j+1<<"列\(zhòng)n";}(4)運(yùn)行結(jié)果(5)調(diào)試過程中出現(xiàn)過的問題和解決的方法

4.(1)題目:有數(shù)列1/1+2/1+3/2+5/3+8/5+13/8+21/13+……。請(qǐng)觀察其規(guī)律,求出該數(shù)列的前n項(xiàng)之和,結(jié)果要求保留四位小數(shù)。(2)算法分析An=a1/b1bn=an-1an=an-1+bn-1Sn=Sn-1+An(3)程序:程序要有詳盡注釋,如:各參數(shù)的含義、函數(shù)的功能等#include<iostream>#include<iomanip>usingnamespacestd;intmain(){ inta=2,b=1;intn,t; doubles=1;//定義變量,數(shù)列和的初始值為1,即n=1,s=1 cout<<"求前n項(xiàng)的和:"; cin>>n; for(inti=1;i<=n-1;i++) { s=s+a/b;//Sn=Sn-1+An t=a;a=a+b;b=t;//求An }//循環(huán)n-1次,求和 cout<<setw(5)<<fixed<<setprecision(4);//設(shè)輸出結(jié)果域?qū)挒?個(gè)字符,保留4位小數(shù) cout<<s<<endl;return0; }(4)運(yùn)行結(jié)果(5)調(diào)試過程中出現(xiàn)過的問題和解決的方法首先找出數(shù)列各項(xiàng)的規(guī)律,然后按步驟編寫程序,這道題沒有遇到難以解決的問題。

5.(1)題目:采用二分法求解方程f(x)=x3-x-1=0在區(qū)間[1.0,1.5]內(nèi)的一個(gè)實(shí)根。要求精確到小數(shù)點(diǎn)后的第2位。二分法的基本思想,就是將方程根所在的區(qū)間平分為兩個(gè)小區(qū)間,再判斷根屬于哪個(gè)小區(qū)間;把有根的小區(qū)間再平分為二,再判斷根所在的更小的區(qū)間,對(duì)分;重復(fù)這一過程,最后求出所要的近似值。(2)算法分析二分法的基本思路是:任意兩個(gè)點(diǎn)a和b,判斷區(qū)間(a,b)內(nèi)有無一個(gè)實(shí)根,如果f_a與f_c符號(hào)相反,則說明有一實(shí)根。接著?。╝,b)的中點(diǎn)c,檢查f_c和f_b是否同號(hào),如果不同號(hào),說明實(shí)根在(c,b)之間,如果同號(hào),在比較(a,c),這樣就將范圍縮小一半,然后按上述方法不斷的遞歸調(diào)用,直到區(qū)間相當(dāng)?。ㄕ页龈鶠橹梗?3)程序:程序要有詳盡注釋,如:各參數(shù)的含義、函數(shù)的功能等#include<iostream>#include<iomanip>usingnamespacestd;doubled(double);voidmain(){ doublea=1.0,b=1.5,c; doublef_a,f_b,f_c; f_a=d(a); f_b=d(b); do { c=(a+b)/2;//求a,b的中點(diǎn) f_c=d(c); if(f_a*f_c<0)//確保輸入的a,b使得f_a,f_c符號(hào)相反do b=c; else { a=c; f_a=f_c; } } while(f_c>0.01||f_c<-0.01); cout<<"f(x)=x*x*x-x-1=0"<<endl; cout<<"x="<<setiosflags(ios::fixed)<<setprecision(2)<<c<<endl;//setprecision(2)與setiosflags(ios::fixed)合用,可以控制小數(shù)點(diǎn)右邊的數(shù)字個(gè)數(shù)為2,即保留兩位小數(shù)}doubled(doublex){ doublef; f=x*x*x-x-1; returnf;}(4)運(yùn)行結(jié)果(5)調(diào)試過程中出現(xiàn)過的問題和解決的方法第一次調(diào)試程序后,顯示結(jié)果為x=1.324718,沒有保留兩位小數(shù),經(jīng)過檢查,確定輸出語句cout<<"x="<<setiosflags(ios::fixed)<<setprecision(2)<<c<<endl;是正確的,但是不知道為什么沒起作用。后來和同學(xué)討論后,發(fā)現(xiàn)前面沒加#include<iomanip>,因此結(jié)果只能輸出c++默認(rèn)的輸出流有效位數(shù)。

三、收獲與體會(huì)程序,最主要的是實(shí)踐。通過這一次集中的強(qiáng)化訓(xùn)練,我不僅鍛煉了自己的結(jié)構(gòu)化程序設(shè)計(jì)思想,更提高了邏輯思維能力,理解了如何用c++語言來表達(dá)"面向?qū)ο?,使自己的程序設(shè)計(jì)能力上一臺(tái)階,同時(shí)使自己的各種綜合能力得到提高。經(jīng)過一學(xué)期的學(xué)習(xí)以及兩周的程序設(shè)計(jì)實(shí)踐,我學(xué)習(xí)C++最

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論