版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
C++面向?qū)ο蟪绦蛟O(shè)計安徽師范大學(xué)數(shù)學(xué)計算機學(xué)院騰莉1C++面向?qū)ο蟪绦蛟O(shè)計
譚浩強編著
清華大學(xué)出版社2C++語言開展歷史60年代,MartinRichards為計算機軟件人員在開發(fā)系統(tǒng)軟件時,作為記述語言使用而開發(fā)了BCPL語言。1970年,KenThompson在繼承BCPL語言的許多優(yōu)點的根底上創(chuàng)造了實用的B語言。1972年,貝爾實驗室的DennisRitchie和Briankernighan在B語言的根底上,作了進一步的充實和完善,設(shè)計出了C語言。80年代初,貝爾實驗室在C語言的根底上開發(fā)了C++語言。3C語言的主要特點:C語言是一種結(jié)構(gòu)化的程序設(shè)計語言,語言本身簡潔、使用靈活方便。運算符豐富,除了提供對數(shù)據(jù)的算術(shù)邏輯運算外,還提供了二進制的位運算。程序的可移植性好4隨著C語言應(yīng)用的推廣,C語言存在的一些缺陷或缺乏也開始流露出來,并受到大家的關(guān)注。如:C語言對數(shù)據(jù)類型檢查的機制比較弱;缺少支持代碼重用的結(jié)構(gòu);隨著軟件工程規(guī)模的擴大,難以適應(yīng)開發(fā)特大型的程度等等。5第一章C++的初步知識61.1從C到C++C++是從C語言的根底上開展起來的C++保存了C語言原有的精華C++克服了C語言標(biāo)準(zhǔn)性缺乏的特點C++提供全面的面向?qū)ο蟮木幊讨С?1.2簡單的C++程序#include<iostream>intmain(){cout<<"Iamastudent.\n";return0;}主函數(shù)函數(shù)體開始函數(shù)體結(jié)束輸出流,在屏幕上打印引號內(nèi)的字符串分號,一條完整語句的結(jié)束符本程序編譯執(zhí)行后,在屏幕上輸出Iamastudent.包含文件8#include<iostream.h>voidmain(){cout<<"Iamastudent.\n";}教材P8的說明。傳統(tǒng)寫法9#include<iostream.h>intmain(){inti;cin>>i;cout<<"i="<<i<<endl;return0;}例子分析教材例1.2和1.310說明:使用cout輸出流對象,配合插入運算符“<<“進行輸出,endl是換行符使用cin輸入流對象,配合提取運算符“>>“進行輸入使用cin和cout需要使用到頭文件iostream111.3C++對C的擴充1.3.1C++的輸入輸出程序在執(zhí)行期間,接收外部信息的操作稱為程序的輸入;而把程序向外部發(fā)送信息的操作稱為程序的輸出。在C++中沒有專門的輸入輸出語句,所有輸入輸出是通過輸入輸出流來實現(xiàn)的。
12
要使用C++提供的輸入輸出時,必須在程序的開頭增加一行:
#include<iostream.h>131.用cout進行輸出
當(dāng)要輸出一個表達式的值時,可使用cout來實現(xiàn),其一般格式為:
cout<<表達式<<表達式......;
其中運算符“<<”稱為插入運算符,它將緊跟其后的表達式的值,輸出到顯示器當(dāng)前光標(biāo)的位置。14#include<iostream.h>main(){inta=6;floatf1=12.4;cout<<a<<'\t'<<f1<<'\t'<<endl;}顯示器顯示器a6f112.4612.415charch1=‘a(chǎn)’,ch2=‘b’;cout<<“c1=”<<ch1<<‘\t’<<“c2=”<<ch2<<endl;c1=a c2=binti1=4,i2=5;floata=3.5;cout<<“a*i1=”<<a*i1<<endl<<“a*i2=”<<a*i2<<endl;a*i1=14a*i2=17.516指定輸出項占用的寬度:在輸出的數(shù)據(jù)項之間進行隔開的另一種方法是指定輸出項的寬度。如上面的兩個輸出語句可改寫為:i=4;j=12;m=7;k=2;cout<<setw(6)<<i<<setw(10)<<j<<endl;_____4________12cout<<setw(5)<<m<<setw(10)<<j*k<<endl;____7________24其中setw(6)指明其后的輸出項占用的字符寬度為6,即括號中的值指出緊跟其后的輸出項占用的字符位置個數(shù),并向右對齊。setw是“setwidth”的縮寫。17使用setw()應(yīng)注意以下三點:1、在程序的開始位置必須包含頭文件iomanip.h,即在程序的開頭增加:#include<iomanip.h>2、括號中必須給出一個表達式〔值為正整數(shù)〕,它指明緊跟其后輸出項的寬度。3、該設(shè)置僅對其后的一個輸出項有效。一旦按指定的寬度輸出其后的輸出項后,又回到原來的缺省輸出方式。18#include<iostream.h>#include<iomanip.h>main(){inta=6;floatf1=12.4;cout<<setw(6)<<a<<setw(10)<<f1<<endl;}_____6______12.419
2.用cin進行輸入cin>>變量名1>>變量名2......;inta,b;cin>>a>>b; //程序運行至此停下,等待從鍵盤輸入變量值鍵盤輸入:35<CR>或:3<CR>5<CR>均可。a3鍵盤b5鍵盤輸入語句自動過濾空白字符。20實型數(shù)據(jù)、字符型數(shù)據(jù)同整型數(shù)據(jù)一樣。floatc,d;cin>>c>>d;charch1,ch2;cin>>ch1>>ch2;假設(shè)輸入:ab<CR> 那么ch1為a, ch2為b。假設(shè)輸入:ab<CR> 那么ch1為a, ch2為b。cin可自動跳過輸入的空格和回車21注:C++中允許變量的定義放在程序的任何位置,但必須在使用該變量前定義。221.3.2用const定義常變量c語言中:#definePI3.14c++中:
constfloatPI=3.14;注:常變量具備變量的屬性,但程序運行期間的值不可變。231.3.3函數(shù)原型聲明形式:函數(shù)類型函數(shù)名〔參數(shù)表〕例如:intmax(intx,inty);intmax(int,int);注:假設(shè)被調(diào)函數(shù)出現(xiàn)在調(diào)用函數(shù)之后,無論被調(diào)函數(shù)的函數(shù)值類型如何,必須進行函數(shù)聲明。241.3.4函數(shù)的重載C++允許在同一作用域中用同一函數(shù)名定義多個函數(shù),這些函數(shù)的參數(shù)個數(shù)或參數(shù)類型不同,這些同名的函數(shù)用來實現(xiàn)不同的功能,稱為函數(shù)的重載。25例:#include<iostream.h>voidprint(doublea){cout<<++a;}voidprint(inta,intb){cout<<b<<a;}voidmain(){print(3.14);print(3,14);}4.14143261.3.5函數(shù)模板形式:template<typenameT>
通用函數(shù)定義
template<classT>
通用函數(shù)定義注:函數(shù)模板適用于函數(shù)參數(shù)的個數(shù)相同而類型不同,且函數(shù)體相同的情況。27#include<iostream.h>template<typenameT>Tmax(Ta,Tb,Tc){if(b>a)a=b;if(c>a)a=c;returna;}intmain(){inti1,i2,i3,i;doubled1,d2,d3,d;longg1,g2,g3,g;cin>>i1>>i2>>i3;cin>>d1>>d2>>d3;cin>>g1>>g2>>g3;i=max(i1,i2,i3);d=max(d1,d2,d3);g=max(g1,g2,g3);cout<<i<<d<<g<<endl;return0;}p14例1.8281.3.6有默認參數(shù)的函數(shù)例:floatarea(floatr=6.5);area();area(7.5);例:floatvolume(floath,floatr=12.5);volume(45.6);volume(45.6,34.4);29有默認參數(shù)的函數(shù)說明:實參個數(shù)可與形參個數(shù)不同,未給定的實參,使用形參的默認值。最好在函數(shù)聲明中給出默認值。默認值參數(shù)應(yīng)全部出現(xiàn)在參數(shù)列表的最右端。一個函數(shù)不能既作為重載函數(shù),又作為有默認值的函數(shù)。30#include"iostream.h"intleijia(inta,intb=2,intc=3);voidmain(){intx=5,y=6,z=7,he;he=leijia(x,y,z);cout<<"he="<<he<<endl;he=leijia(x,y);cout<<"he="<<he<<endl;he=leijia(x);cout<<"he="<<he<<endl;}intleijia(inta,intb,intc){cout<<"a="<<a<<"b="<<b<<"c="<<c<<endl;return(a+b+c);}311.3.7變量的引用一、引用的概念
1、定義:對變量起另外一個名字(別名)2、格式
類型&引用變量名=原變量名;
322、引用在定義的時候一定要初始化。1、原變量名必須是一個已定義過的變量:例如:intmax;
int&refmax=max;int&refmax;int&refmax=max;錯誤,沒有具體的引用對象max是已定義過的變量33二、對引用變量的說明3、對引用的操作就是對被引用的變量的操作。4、引用類型變量的初始化值不能是一個常數(shù)。如:int&ref1=5;//錯誤int&ref=i;34例如:intmax;
int&refmax=max;max與refmax在內(nèi)存中占用同一地址maxrefmax510#include"iostream.h"main(){intmax;int&refmax=max;max=5;refmax=10;refmax=max+refmax;cout<<max<<refmax<<endl;}20max與refmax同一地址355、定義引用時的數(shù)據(jù)類型,必須與其代表的變量類型一致。
floata;
int&b=a;6、引用只能代表一個變量。inta1,a2;
int&b=a1;
int&b=a2;
36錯誤錯誤7、引用同變量一樣有地址,可以對其地址進行操作,即將其地址賦給一指針。inta,*p;int&m=a;apm10p=&m;*p=10;&m&是變量的引用&是變量的地址378、可以對某個變量進行屢次引用#include"iostream.h"voidmain(){intb;int&a=b;int&c=b;int&d=b;a=3;b=a+c+d;cout<<a<<b<<c<<d;}結(jié)果:999938#include"iostream.h"voidmain(){intnum=1;int&ref=num;ref=ref+2;cout<<num;num=num+3;cout<<ref;}3639以下哪些選項是錯誤的選項是:A〕floati;B〕inti;int&j=i;int&j;j=i;C〕floati;D〕chari,j;float&j=i;char&k=i;char&k=j;ABD40設(shè)inti=32;以下正確的選項是:Aint&x=i;Bint&x=32;Cint&x;Dint&x=&i;A419、不能建立void類型的引用
void&a=9;10、不能建立引用數(shù)組
charc[6]=“hello”;
char&rc[6]=c;42錯誤錯誤11、可以建立指針變量的引用
inti=5,*p=&i;
int*&pt=p;
注意:int&*pt=p;錯誤
#include"iostream.h"voidmain(){inta=10,*pa=&a,*&rp=pa;(*pa)++;cout<<"a="<<a<<endl;(*rp)++;cout<<"a="<<a<<endl;}a=11a=1243三、引用的主要兩點用途〔引用與函數(shù)〕1、引用作函數(shù)的形參44voidchange(int&x,int&y){intt;t=x;x=y;y=t;}voidmain(){inta=3,b=5;change(a,b);cout<<a<<‘\t’<<b<<endl;}35abxyt353輸出:5345引用作函數(shù)的形參,實際上是在被調(diào)函數(shù)中對實參變量進行操作。引用作為形參與指針變量作形參區(qū)別voidchange(int&x,int&y){intt;t=x;x=y;y=t;}voidmain(){inta=3,b=5;change(a,b);//實參為變量
cout<<a<<‘\t’<<b<<endl;}voidchange(int*x,int*y){intt;t=*x;*x=*y;*y=t;}voidmain(){inta=3,b=5;change(&a,&b);//實參為地址
cout<<a<<‘\t’<<b<<endl;}形參為整型引用形參為指針變量a3b5xyt&a&b35346#include"iostream.h“voidf1(int*px){ *px+=10;}voidf2(int&xx){ xx+=10;}voidmain(void){ intx=0; cout<<"x="<<x<<endl; f1(&x); cout<<"x="<<x<<endl; f2(x); cout<<"x="<<x<<endl;}x=0x=10x=2047#include"iostream.h"voiddd(int&x,int&y,intz){x=x+z;y=y-x;z=10;cout<<"(2)"<<x<<'\t'<<y<<'\t'<<z<<endl;}voidmain(void){inta=3,b=4,c=5;for(inti=0;i<2;i++)dd(a,b,c);cout<<"(1)"<<a<<'\t'<<b<<'\t'<<c<<endl;}(2)8-410(2)13-1710(1)13-175482、函數(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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年智能化鐵藝護欄設(shè)計與施工一體化合同3篇
- 感恩的心演講稿模板錦集7篇
- 電話撥號課程設(shè)計
- 春節(jié)放假的通知范文錦集9篇
- 2024年度物流園區(qū)綜合管理承包合作協(xié)議3篇
- 2024年城市綜合體投資方合作協(xié)議6篇
- 2024年版證券交易居間合同
- 在宿舍手機被收檢討書范文(14篇)
- 2025年山東濟寧市兗州區(qū)事業(yè)單位急需緊缺高層次人才引進(第二批)23人管理單位筆試遴選500模擬題附帶答案詳解
- 2025年山東濟南市南部山區(qū)事業(yè)單位公開招聘工作人員9人管理單位筆試遴選500模擬題附帶答案詳解
- 期末素養(yǎng)展示試卷-2024-2025學(xué)年統(tǒng)編版語文三年級上冊
- 大學(xué)試卷(示范)
- 高職院校智能制造實驗室實訓(xùn)中心建設(shè)方案
- 勞動與社會保障法-001-國開機考復(fù)習(xí)資料
- 青少年足球培訓(xùn)
- 【MOOC】寄生人體的惡魔-醫(yī)學(xué)寄生蟲學(xué)-南方醫(yī)科大學(xué) 中國大學(xué)慕課MOOC答案
- 2024年護理質(zhì)量分析
- 2025人教版九年級英語全冊知識點清單
- 醫(yī)院緊急情況一鍵報警制度建設(shè)
- 2024版 新能源電站單位千瓦造價標(biāo)準(zhǔn)
- 企業(yè)培訓(xùn)師競聘
評論
0/150
提交評論