實驗2-C++對C的擴充_第1頁
實驗2-C++對C的擴充_第2頁
實驗2-C++對C的擴充_第3頁
實驗2-C++對C的擴充_第4頁
實驗2-C++對C的擴充_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、電子信息學院實驗報告書課 程 名: 面向?qū)ο蟪绦蛟O(shè)計 題 目:實驗2 C+對C的擴充 實驗類別: 設(shè)計研究型 班 級: BX1004 學 號: 姓 名: 施程程 評語:實驗態(tài)度:認真( ) 一般( ) 差( )實驗結(jié)果:正確( ) 部分正確( )錯( )實驗理論:掌握( ) 熟悉( ) 了解( ) 不懂( )操作技能:強( ) 一般( ) 差( )實驗報告:好( ) 一般( ) 差( )成績: 指導教師: 批閱時間: 年 月 日1、實驗目的 (1)了解在面向過程程序設(shè)計中功能的擴充與增強,并善于在編寫過程中應用這些新的功能。(2)進一步熟悉在所用的系統(tǒng)上編輯、編譯、連接和運行C+程序的方法。&

2、#160;(3)進一步熟悉C+程序的結(jié)構(gòu)和編程方法。2、實驗內(nèi)容要求事先編好解決下面問題的程序,然后上機輸入并調(diào)試運行。(1) 輸入以下程序,進行編譯,觀察編譯情況,如果有錯誤,請修改程序,再進行編譯,直到?jīng)]有錯誤,然后進行連接和運行,分析運行結(jié)果。#includeiostream  using namespace std; int main()int a,b;c=add(a,b)  cout“a+b=”cendl;  return 0;int add(int x,int y)  z=

3、x+y; return(z);(2) 編一個程序,用來求2個或3個正整數(shù)中的最大數(shù)。1、 用不帶默認參數(shù)的函數(shù)實現(xiàn)。2、 用帶有默認參數(shù)的函數(shù)實現(xiàn)。 對比兩種方法,分析用帶有默認參數(shù)的函數(shù)的優(yōu)點和應用場合,總結(jié)如何選擇默認b參數(shù)的值。請分析本題中默認參數(shù)的值應該在什么范圍。(3) 對3個變量按由小到大順序排序,要求使用變量的引用。1、 使用指針方法 2、 使用變量的的引用 請總結(jié)引用時要注意什么問題。(4) 有5個字符串,要求對他們按由小到大的順序排列,用string方法, (5) 編譯一個程序,用同一個函數(shù)名對n個數(shù)據(jù)進行從小到大排序,數(shù)據(jù)類型可以是整型、單精度型、雙精度型。1、

4、用重載函數(shù)實現(xiàn)。 2、 用函數(shù)模板實現(xiàn)。比較這兩種方法各有什么特點,什么情況下可以用函數(shù)模板代替重載函數(shù)? 3實驗結(jié)果 (1)程序:#include <iostream>using namespace std;int main( )int add(int x,int y); int a,b,c; cin >> a >> b; c=add(a,b); cout <<" a+b=" << c <<endl; return 0;int add(int x,int y)int z; z=x+y; re

5、turn(z);運行結(jié)果:(2)程序1:用不帶默認參數(shù)的函數(shù)實現(xiàn) #include <iostream>using namespace std;int main( )int max(int a,int b,int c); int max(int a,int b); int a,b,c; cin >> a >> b >> c; cout << " max(a,b,c)= " << max(a,b,c) << endl; cout << " max(a,b)= "

6、 <<max(a,b) << endl; return 0;int max(int a,int b,int c)if(b>a) a=b; if(c>a) a=c; return a;int max(int a,int b)if(a>b) return a; else return b; 運行結(jié)果:程序2:用帶有默認參數(shù)的函數(shù)實現(xiàn) #include <iostream>using namespace std;int max(int a,int b,int c=0)if (b>a)a=b; if (c>a)a=c; return a

7、;int main(void)int a,b,c; cin >> a >> b >> c; cout << " max(a,b,c)= " << max(a,b,c) << endl; cout << " max(a,b)= " <<max(a,b) << endl; return 0;運行結(jié)果: 有時多次調(diào)用同一函數(shù)時用的是同樣的實參直,C+提供的帶有默認參數(shù)的的使用更加方便,給形參一個默認值,這樣形參就不必一定要從實參取值了。在實行過程中要特別

8、注意,指定默認值的參數(shù)必須放在形參列表中的最右端。(3) 程序1:使用指針#include <stdio.h> main() void swap(int *,int *,int *); int a,b,c; int *p1,*p2,*p3; p1=&a; p2=&b; p3=&c; printf("Enter 3 integers:"); scanf("%d%d%d",&a,&b,&c); swap(p1,p2,p3); printf("small to big: %d, %d, %d

9、/n",a,b,c); void swap(int *p1,int *p2,int *p3) int temp,*tmp; static int i=3; if(i-) if(*p1>*p2) temp=*p1; *p1=*p2; *p2=temp; if (i=2) tmp=p2;p2=p3;p3=tmp; if (i=1) tmp=p1;p1=p3;p3=tmp; swap(p1,p2,p3); 運行結(jié)果:程序2:使用變量的引用#include <iostream>using namespace std;int main( )void sort(int &

10、;,int &,int &); int a,b,c,a1,b1,c1; cout<<" Please enter 3 integers:" cin>>a>>b>>c; a1=a;b1=b;c1=c; sort(a1,b1,c1); cout<<a<<" "<<b<<" "<<c<<" in sorted order is " cout<<a1<<"

11、 "<<b1<<" "<<c1<<endl; return 0;void sort(int &i,int &j,int &k) void change(int &,int &); if (i>j) change(i, j); if (i>k) change(i, k); if (j>k) change(j, k);void change(int &x,int &y) int temp; temp=x; x=y; y=temp;運行結(jié)果:變量的“

12、引用”就是變量的別名,引用的作用是為一個變量起另一個名字,以便在需要時可以方便、間接地應用該變量。在引用時要注意:由于引用不是獨立的變量,編譯系統(tǒng)不給它單獨分配存儲單元,因此在建立引用時只有聲明,沒有定義,只是聲明它和原有的某一變量的關(guān)系。(4) 程序:#include <iostream>#include <string>using namespace std;int main( ) int i; string str5=" shang","hai"," string"," C+",&qu

13、ot;include" void sort(string ); sort(str); cout<<" the sorted strings : "<<endl; for(i=0;i<5;i+) cout<<stri<<" " cout<<endl; return 0;void sort(string s )int i, j; string t; for (j=0; j<5; j+) for(i=0; i<5-j; i+) if (si>si+1) t=si;si

14、=si+1;si+1=t; 運行結(jié)果:(5) 程序1:用重載函數(shù)實現(xiàn)#include <iostream>#include <string>using namespace std;void sort(long a )int i, j; long t; for (j=0; j<5; j+) for(i=0;i<5-j;i+) if (ai>ai+1) t=ai;ai=ai+1;ai+1=t; cout<<" the sorted numbers : "<<endl; for(i=0;i<5;i+) cou

15、t<<ai<< " " cout<<endl;void sort(int a )int i, j, t; for (j=0; j<5; j+) for(i=0;i<5-j;i+) if (ai>ai+1) t=ai;ai=ai+1;ai+1=t; cout<<" the sorted numbers : "<<endl; for(i=0;i<5;i+) cout<<ai<< " " cout<<endl; void

16、sort(float a )int i, j; float t; for (j=0;j<5;j+) for(i=0;i<5-j;i+) if (ai>ai+1) t=ai;ai=ai+1;ai+1=t; cout<<" the sorted numbers : "<<endl; for(i=0;i<5;i+) cout<<ai<< " " cout<<endl;int main( ) long a5=12345,10000,87663,27958,36754; int b

17、5=4,3,7,-5,9; float c5=1.2,-3.4,6.7,-2.6,4.5; sort(a); sort(b); sort(c); return 0;運行結(jié)果:程序2:用函數(shù)模板實現(xiàn)#include <iostream>#include <string>using namespace std;template <typename T >void sort(T a ) int i, j, min; T t; for(i=0;i<5;i+) min=i; for (j=i+1; j<5; j+) if(amin>aj) min=j

18、;t=ai; ai=amin; amin=t; cout<<" The sorted numbers are : "<<endl; for(i=0;i<5;i+)cout<<ai<< " " cout<<endl<<endl;int main( ) long a5=12345,10000, 87663,27958, 36754; int b5=4,3,7,-5,9; float c5=1.2, -3.4, 6.7, -2.6, 4.5 ; sort(a); sort(b); sort(c); return 0;運行結(jié)果:用函數(shù)模版比重載函數(shù)更方便,程序更

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論