計算機(jī)科學(xué)與技術(shù)第5次實驗報告_第1頁
計算機(jī)科學(xué)與技術(shù)第5次實驗報告_第2頁
計算機(jī)科學(xué)與技術(shù)第5次實驗報告_第3頁
計算機(jī)科學(xué)與技術(shù)第5次實驗報告_第4頁
計算機(jī)科學(xué)與技術(shù)第5次實驗報告_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、哈爾濱工程大學(xué)程序設(shè)計基礎(chǔ)實驗報告基礎(chǔ)實踐一姓 名: 班 級: 學(xué) 號: 實驗時間: 2018 年 5 月 10 日成績哈爾濱工程大學(xué)計算機(jī)基礎(chǔ)課程教學(xué)中心實驗題目1:輸入兩個整數(shù)數(shù)組,每個數(shù)組有五個整數(shù),將兩者和并并排列輸出。設(shè)計思想:定義三個數(shù)組,將兩組數(shù)據(jù)存儲到第三個數(shù)組中,再用冒泡排序?qū)ζ溆纱蟮叫∨判虿⑤敵?。實驗代碼及注釋:#include #include #define N 10/宏定義int main() int a5,b5,cN;/第一組數(shù)據(jù),第二組,合并數(shù)組 int i,j,t;/循環(huán)變量,中間變量 printf(輸入第一組數(shù)據(jù):n);/輸入數(shù)據(jù) for(i=0;i5;i+)

2、 scanf(%d,&ai); printf(輸入第二組數(shù)據(jù):n); for(i=0;i5;i+) scanf(%d,&bi); for(i=0;i5;i+) ci=ai;/兩組數(shù)據(jù)合并 ci+5=bi; for(i=0;iN-1;i+)/冒泡排序從大到小 for(j=0;jN-i-1;j+) if(cjcj+1) t=cj; cj=cj+1; cj+1=t; printf(合并并由大到小排列后數(shù)據(jù)為:n); for(i=0;i10;i+) printf(%dt,ci); /排序:冒泡,選擇, return 0;驗證與結(jié)論:總結(jié)與心得體會:數(shù)組合并比較簡單但要防止數(shù)組越界,數(shù)組存儲數(shù)據(jù)是從第0

3、位開始,故要多加注意。冒泡選擇是最基礎(chǔ)的排序算法必須掌握。實驗題目2:某公司生成5種產(chǎn)品,每周記錄生產(chǎn)的每種產(chǎn)品數(shù)量和銷售數(shù)量。每個月月末,公司將對其生產(chǎn)規(guī)劃進(jìn)行評估。該評估需要以下一個或多個信息。每周生成和銷售的數(shù)量;所有生產(chǎn)產(chǎn)品的總量;所有銷售產(chǎn)品的總量;每種產(chǎn)品生產(chǎn)和銷售的總量。假設(shè)生產(chǎn)和銷售的產(chǎn)品和銷售分別用二維數(shù)組M和S表示,如下所示。其中Mij表示第i周生產(chǎn)第j種產(chǎn)品的數(shù)量。Sij表示第i周銷售第j種產(chǎn)品的數(shù)量。假設(shè)使用一維數(shù)組C來表示每種產(chǎn)品的價格。其中,Cj表示第j種產(chǎn)品的價格。數(shù)組M、S和C的值都在程序中輸入。設(shè)計思想:聲明四個數(shù)組函數(shù):每周生成和銷售的數(shù)量,所有生產(chǎn)產(chǎn)品的總

4、量,所有銷售產(chǎn)品的總量,每種產(chǎn)品生產(chǎn)和銷售的總量。然后直接調(diào)用使其對主函數(shù)中數(shù)組值直接改變,最后用循環(huán)輸出。實驗代碼及注釋:#include #include void money(double mva56,double m56,double c6);/函數(shù)聲明void sum1(double sweek5,double m56);void sum2(double mpr6,double m56);double sum3(double m5);int main() int i,j;/行,列 double M56,S56,C6;/第幾周生產(chǎn)第幾種產(chǎn)品的數(shù)量,第幾周銷售第幾種產(chǎn)品的數(shù)量,每種產(chǎn)品的

5、價格 double Mvalue56,Svalue56,Mweek5,Sweek5,Mproduct6,Sproduct6; double Mtotal,Stotal; for(i=1;i=4;i+) for(j=1;j=5;j+) printf(請輸入第%d周生產(chǎn)第%d種產(chǎn)品的數(shù)量:,i,j); scanf(%lf,&Mij); printf(請輸入第%d周銷售第%d種產(chǎn)品的數(shù)量:,i,j); scanf(%lf,&Sij); printf(n); for(j=1;j=5;j+) printf(請輸入第%d種產(chǎn)品的價格:,j); scanf(%lf,&Cj); printf(n); mone

6、y(Mvalue,M,C);/調(diào)用函數(shù) money(Svalue,S,C); sum1(Mweek,Mvalue); sum1(Sweek,Svalue); sum2(Mproduct,Mvalue); sum2(Sproduct,Svalue); Mtotal=sum3(Mweek); Stotal=sum3(Sweek); for(i=1;i=4;i+) for(j=1;j=5;j+) printf(第%d周生產(chǎn)第%d種產(chǎn)品的價值%.2lfn,i,j,Mvalueij); printf(第%d周銷售第%d種產(chǎn)品的價值%.2lfn,i,j,Svalueij); printf(在本月里生成第%

7、d種產(chǎn)品的價值%.2lfn,j,Mproductj); printf(在本月里銷售第%d種產(chǎn)品的價值%.2lfn,j,Sproductj); printf(在第%d周生產(chǎn)的產(chǎn)品價值%.2lfn,i,Mweeki); printf(在第%d周所有產(chǎn)品的價值%.2lfn,i,Sweeki); printf(在本月里生產(chǎn)所有產(chǎn)品總價值%.2lfn,Mtotal); printf(在本月里銷售所有產(chǎn)品總價值%.2lfn,Stotal); return 0;void money(double mva56,double m56,double c6)/第i周生產(chǎn)和銷售第j種產(chǎn)品的價值 int i,j; fo

8、r(i=1;i=4;i+) for(j=1;j=5;j+) mvaij=mij*cj;/ printf(第%d周生產(chǎn)第%d種產(chǎn)品的價值%lfn,i,j,mij*cj); void sum1(double sweek5,double m56)/第i周生產(chǎn)和銷售的產(chǎn)品的價值 int i,j; for(i=1;i=4;i+) sweeki=0;/數(shù)組初始化 for(j=1;j=5;j+) sweeki=sweeki+mij; void sum2(double mpr6,double m56)/在本月生產(chǎn)和銷售第j種產(chǎn)品的價值 int i,j; for(j=1;j=5;j+) mprj=0;/數(shù)組初始

9、化 for(i=1;i=4;i+) mprj=mprj+mij; double sum3(double m5)/在本月里生產(chǎn)和銷售所有產(chǎn)品總價值 int i; double sum3=0; for(i=1;i=4;i+) sum3=sum3+mi; return sum3;驗證與結(jié)論:總結(jié)與心得體會:數(shù)組參數(shù)形參實質(zhì)的本質(zhì)是指針,使用數(shù)組函數(shù)使得代碼看起來更加整潔,可讀性更高。當(dāng)出現(xiàn)大量復(fù)制代碼時考慮能否用函數(shù)統(tǒng)一起來,否則在后期維護(hù)上將變得困難許多。實驗題目3:編程將一個字符串插入到另一個字符串的第n個位置。設(shè)計思想:使用strlen函數(shù)計算數(shù)組長度,然后使用循環(huán)用倒序賦值使a數(shù)組在第n個位

10、置及以后字符向后挪數(shù)組b長度,再用倒序賦值法將b賦給a的空位。實驗代碼及注釋:#include #include int main() int n,count1,count2,i,j;/位置,字符串長度,循環(huán)變量 printf(輸入n值:n); scanf(%d,&n); char a20;/默認(rèn)長度為20 char b20; printf(輸入a:n); scanf(%s,a); printf(輸入b:n); scanf(%s,b); count1=strlen(a);/計算字符串a(chǎn)與b的長度 count2=strlen(b); for(i=count1-1;i=(n-1);i-)/倒序賦值

11、,使a在第n個位置及以后字符向后挪count2位 ai+count2=ai; i=n-1+count2;/對i重新賦值為n-1+count2 for(j=count2-1;j=0;j-)/倒序賦值將b賦給a空位 ai=bj; i-; printf(新字符串為:); for(j=0;jcount1+count2;j+) printf(%c,aj); return 0;驗證與結(jié)論:總結(jié)與心得體會:輸入字符串后末尾會有一個0,在賦值時必須極為小心,有可能會使程序提前終止得不到預(yù)期的效果,另外利用strlen函數(shù)計算數(shù)組長度時不包括末尾的0。實驗題目4:編寫一個程序,使輸入的一個字符串按反序存放,在主

12、函數(shù)中輸入輸出字符。設(shè)計思想:輸入字符串存儲在a數(shù)組中,利用strlen函數(shù)計算數(shù)組a長度,再用循環(huán)倒序存儲在b數(shù)組中并輸出。實驗代碼及注釋:#include #include #define n 100/宏定義n值為100int main() char an,bn;/定義字符串?dāng)?shù)組 int i,j=0;/在數(shù)組中存儲位置 printf(請輸入字符:n); gets(a);/輸入字符串 i=strlen(a)-1;/數(shù)組長度減一 for(;i=0;i-)/倒序輸出存儲 bj=ai;/倒序存儲 printf(%c,ai); j+; return 0;驗證與結(jié)論:總結(jié)與心得體會:利用scanf函數(shù)

13、輸入字符串時無法輸入空格,故用了gets函數(shù)來輸入字符串。實驗題目5:編寫程序,從鍵盤輸入一行字符,統(tǒng)計其中英文字母、空格、數(shù)字和其他字符的個數(shù)。設(shè)計思想:輸入字符串并存儲在a數(shù)組中,然后將其轉(zhuǎn)換為整型數(shù)組存儲在數(shù)組b中,再利用ASCII碼的范圍對其進(jìn)行統(tǒng)計輸出。實驗代碼及注釋:#include #include #define n 200/宏定義n值為200int main() char an;/定義字符串?dāng)?shù)組 int i,j;/循環(huán)變量 int count1=0,count2=0,count3=0,count4=0;/英文字母、空格、數(shù)字和其他字符的個數(shù) int bn;/ 整型數(shù)組 printf(請輸入字符:n); gets(a);/輸入字符 j=strlen(a);/將數(shù)組a的長度賦給j for(i=0;ij;i+) bi=ai;/將字符轉(zhuǎn)換成ASCII碼存儲在b數(shù)組中 for(i=0;i=65&bi=97&bi=48&b

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論