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

下載本文檔

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

文檔簡介

1、電子信息學(xué)院實驗報告書課程名:面向?qū)ο蟪绦蛟O(shè)計題目:實驗2C+對C的擴(kuò)充實驗類別:設(shè)計研究型班級:BX1004學(xué)號:姓名:施程程評語:實驗態(tài)度認(rèn)真一般差實驗結(jié)果正確部分正確錯實驗理論掌握熟悉了解不懂操作技能強(qiáng):一般差實驗報告好:一般差成績:一指導(dǎo)教師:批閱時間:年月日1、實驗?zāi)康?了解在面向過程程序設(shè)計中功能的擴(kuò)充與增強(qiáng),并善于在編寫過程中應(yīng)用這些新的功能。2進(jìn)一步熟悉在所用的系統(tǒng)上編輯、編譯、連接和運(yùn)行C+玳序的方法。3進(jìn)一步熟悉C+H序的結(jié)構(gòu)和編程方法。2、實驗內(nèi)容要求事先編好解決下面問題的程序,然后上機(jī)輸入并調(diào)試運(yùn)行。輸入以下程序,進(jìn)行編譯,觀察編譯情況,如果有錯誤,請修改程序,再進(jìn)行編

2、譯,直到?jīng)]有錯誤,然后進(jìn)行連接和運(yùn)行,分析運(yùn)行結(jié)果。#include<iostream>usingnamespacestd;intmain(inta,b;c=adda,bcoutvv“a+b=”vvc<<endl;return0;intaddintx,inty(z=x+y;returnz;(1) 編一個程序,用來求2個或3個正整數(shù)中的最大數(shù)。1、用不帶默認(rèn)參數(shù)的函數(shù)實現(xiàn)。2、用帶有默認(rèn)參數(shù)的函數(shù)實現(xiàn)。比照兩種方法,分析用帶有默認(rèn)參數(shù)的函數(shù)的優(yōu)點和應(yīng)用場合,總結(jié)如何選擇默認(rèn)b參數(shù)的值。請分析此題中默認(rèn)參數(shù)的值應(yīng)該在什么范圍。(2) 對3個變量按由小到大順序排序,要求使用變

3、量的引用。1、使用指針方法2、使用變量的的引用請總結(jié)引用時要注意什么問題。(3) 有5個字符申,要求對他們按由小到大的順序排歹0,用string方法,編譯一個程序,用同一個函數(shù)名對n個數(shù)據(jù)進(jìn)行從小到大排序,數(shù)據(jù)類型可以是整型、單精度型、雙精度型。1、用重載函數(shù)實現(xiàn)。2、用函數(shù)棋板實現(xiàn)。比較這兩種方法各有什么特點,什么情況下可以用函數(shù)棋板代替重載函數(shù)?3. 實驗結(jié)果1程序:#include<iostream>usingnamespacestd;intmain()(intadd(intx,inty);inta,b,c;cin>>a>>b;c=add(a,b);c

4、out<<"a+b="<<c<<endl;return0;intadd(intx,inty)(intz;z=x+y;return(z);運(yùn)行結(jié)果:2程序1:用不帶默認(rèn)參數(shù)的函數(shù)實現(xiàn)#include<iostream>usingnamespacestd;intmain()(intmax(inta,intb,intc);intmax(inta,intb);inta,b,c;cin>>a>>b>>c;cout<<"max(a,b,c)="<<max(a,

5、b,c)<<endl;cout<<"max(a,b)="<<max(a,b)<<endl;return0;intmax(inta,intb,intc)(if(b>a)a=b;if(c>a)a=c;returna;intmax(inta,intb)(if(a>b)returna;elsereturnb;X運(yùn)行結(jié)果:L*C:DucLLaeiiitmand31liiLgsXAdjiiiii-LstJLntu<£桌面、Debiie2"2.1-t;zts<p39maxfaPlii.c;&

6、gt;s9mrix<<iFb)=7P»*e募暮Am*kytorontinuie程序2:用帶有默認(rèn)參數(shù)的函數(shù)實現(xiàn)#include<iostream>usingnamespacestd;intmax(inta,intb,intc=0)(if(b>a)a=b;if(c>a)a=c;returna;intmain(void)(inta,b,c;cin>>a>>b>>c;cout<<"max(a,b,c)="<<max(a,b,c)<<endl;cout<<

7、;"max(a,b)="<<max(a,b)<<endl;return0;運(yùn)行結(jié)果:有時多次調(diào)用同一函數(shù)時用的是同樣的實參直,C+提供的帶有默認(rèn)參數(shù)的的使用更加方便,給形參一個默認(rèn)值,這樣形參就不必一定要從實參取值了。在實行過程中要特別注意,指定默認(rèn)值的參數(shù)必須放在形參列表中的最右端。(3) 程序1:使用指針#include<stdio.h>main()(voidswap(int*,int*,int*);inta,b,c;int*p1,*p2,*p3;p1=&a;p2=&b;p3=&c;printf("E

8、nter3integers:");scanf("%d%d%d",&a,&b,&c);swap(p1,p2,p3);printf("smalltobig:%d,%d,%d/n",a,b,c);voidswap(int*p1,int*p2,int*p3)inttemp,*tmp;staticinti=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,p

9、3);運(yùn)行結(jié)果:程序2:使用變量的引用#include<iostream>usingnamespacestd;intmain()voidsort(int&,int&,int&);inta,b,c,a1,b1,c1;cout<<"Pleaseenter3integers:"cin>>a>>b>>c;a1=a;b1=b;c1=c;sort(a1,b1,c1);cout<<a<<""<<b<<""<<

10、;c<<"insortedorderis"cout<<a1<<""<<b1<<""<<c1<<endl;return0;voidsort(int&i,int&j,int&k)(voidchange(int&,int&);if(i>j)change(i,j);if(i>k)change(i,k);if(j>k)change(j,k);voidchange(int&x,int&y)(

11、inttemp;temp=x;x=y;y=temp;運(yùn)行結(jié)果:|c-"C;lu-bcjiIsandSellsLiatul面l施程程l>ebug.2.3.2.cjcc*XPleaseenter3integers:73973?insortedorderis379Pt'essanykeytocontinue.變量的“引用”就是變量的別名,引用的作用是為一個變量起另一個名字,以便在需要時可以方便、間接地應(yīng)用該變量。在引用時要注意:由丁引用不是獨立的變量,編譯系統(tǒng)不給它單獨分配存儲單元,因此在建立引用時只有聲明,沒有定義,只是聲明它和原有的某一變量的關(guān)系。(4) 程序:#incl

12、ude<iostream>#include<string>usingnamespacestd;intmain()(inti;stringstr5="shang","hai","string","C+","include"voidsort(string);sort(str);cout<<"thesortedstrings:"<<endl;for(i=0;i<5;i+)cout<<stri<<”;cou

13、t<<endl;return0;voidsort(strings)inti,j;stringt;for(j=0;j<5;j+)for(i=0;i<5-j;i+)if(si>si+1)t=si;si=si+1;si+1=t;運(yùn)行結(jié)果:程序1:用重載函數(shù)實現(xiàn)#include<iostream>#include<string>usingnamespacestd;voidsort(longa)inti,j;longt;for(j=0;j<5;j+)for(i=0;i<5-j;i+)if(ai>ai+1)t=ai;ai=ai+1;a

14、i+1=t;cout<<"thesortednumbers:"<<endl;for(i=0;i<5;i+)cout<<ai<<""cout<<endl;voidsort(inta)inti,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<<"thesortednumbers:"<<endl;for(i=0;i<5;i+)cout

15、<<ai<<""cout<<endl;voidsort(floata)inti,j;floatt;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<<"thesortednumbers:"<<endl;for(i=0;i<5;i+)cout<<ai<<""cout<<endl;intmain()longa5=12345,10000,

16、87663,27958,36754;intb5=4,3,7,-5,9;floatc5=1.2,-3.4,6.7,-2.6,4.5;sort(a);sort(b);sort(c);return0;運(yùn)行結(jié)果:程序2:用函數(shù)模板實現(xiàn)#include<iostream>#include<string>usingnamespacestd;template<typenameT>voidsort(Ta)inti,j,min;Tt;for(i=0;i<5;i+)min=i;for(j=i+1;j<5;j+)if(amin>aj)min=j;t=ai;ai=

17、amin;amin=t;cout<<"Thesortednumbersare:"<<endl;for(i=0;i<5;i+)cout<<ai<<""cout<<endl<<endl;intmain()(longa5=(12345,10000,87663,27958,36754;intb5=4,3,7,-5,9;floatc5=1.2,-3.4,6.7,-2.6,4.5;sort(a);sort(b);sort(c);return0;運(yùn)行結(jié)果:用函數(shù)模版比重載函數(shù)更方便,程序更簡潔。但是應(yīng)注意函數(shù)模版只適用丁函數(shù)

溫馨提示

  • 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

提交評論