版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第1章C++的初步知識(shí)1.1C++概述1.2面向過(guò)程的結(jié)構(gòu)化程序設(shè)計(jì)方法1.3面向?qū)ο蟮姆椒?.4簡(jiǎn)單的C++程序1.5C++程序的構(gòu)成和書(shū)寫形式1.6C++程序的開(kāi)發(fā)步驟及開(kāi)發(fā)環(huán)境1.1C++概述C++語(yǔ)言是在C語(yǔ)言的基礎(chǔ)上發(fā)展起來(lái)的,而C語(yǔ)言是在20世紀(jì)70年代的B語(yǔ)言基礎(chǔ)上開(kāi)發(fā)出來(lái)的。C語(yǔ)言同當(dāng)時(shí)常用的其它高級(jí)語(yǔ)言一樣,都是面向過(guò)程的。C++作為C的繼承者,在支持面向過(guò)程的的程序設(shè)計(jì)的同時(shí),又可以進(jìn)行以抽象數(shù)據(jù)類型為特點(diǎn)的基于對(duì)象的程序設(shè)計(jì),還可以進(jìn)行以繼承和多態(tài)為特點(diǎn)的面向?qū)ο蟮某绦蛟O(shè)計(jì)。C++是一種混合型程序設(shè)計(jì)語(yǔ)言。C++標(biāo)準(zhǔn)C++真正正式公布的標(biāo)準(zhǔn)就三個(gè):C++98、C++03、C++11。其中C++98是第一個(gè)正式C++標(biāo)準(zhǔn),C++03是在C++98上面進(jìn)行了小幅度的修訂,C++11(2011年8月12日公布)則是一次全面的大進(jìn)化。其實(shí)C++在第一個(gè)標(biāo)準(zhǔn)C++98之前就已經(jīng)廣為使用了。只不過(guò)那時(shí)候還沒(méi)有一個(gè)官方的統(tǒng)一標(biāo)準(zhǔn),后來(lái)才開(kāi)始起草標(biāo)準(zhǔn)草案,直到98年才最終發(fā)布。1.2面向過(guò)程的結(jié)構(gòu)化程序設(shè)計(jì)方法設(shè)計(jì)思路:采用模塊分解與功能抽象,自頂向下,逐步求精的設(shè)計(jì)方法。程序結(jié)構(gòu):①按功能劃分為若干個(gè)基本模塊,形成一個(gè)樹(shù)狀結(jié)構(gòu)。②各模塊間的關(guān)系盡可能簡(jiǎn)單,功能上相對(duì)獨(dú)立。③每一模塊內(nèi)部均是由順序、選擇和循環(huán)三種基本結(jié)構(gòu)組成。④其模塊化實(shí)現(xiàn)的具體方法是使用子程序。優(yōu)點(diǎn):有效地將一個(gè)復(fù)雜的程序系統(tǒng)設(shè)計(jì)任務(wù)分解成許多易于控制和處理的子任務(wù),便于開(kāi)發(fā)和維護(hù)。缺點(diǎn):可重用性差,數(shù)據(jù)安全性差,難以開(kāi)發(fā)圖形界面的應(yīng)用。1.3面向?qū)ο蟮姆椒嫦驅(qū)ο蠓椒ǖ奶攸c(diǎn):①將數(shù)據(jù)及對(duì)數(shù)據(jù)的操作方法封裝在一起,作為一個(gè)相互依存,不可分離的整體――對(duì)象。②對(duì)同類型對(duì)象抽象出其共性,形成類。③類通過(guò)一個(gè)簡(jiǎn)單的外部接口與外界發(fā)生聯(lián)系。④對(duì)象與對(duì)象之間通過(guò)消息進(jìn)行通訊。1.4簡(jiǎn)單的C++程序#include<iostream>//包含頭文件iostreamusingnamespacestd;/*使用命名空間std*/intmain(){ cout<<"HelloWorld!\n"; return0;}C++程序結(jié)構(gòu)由注釋、編譯預(yù)處理和程序主體組成。①注釋有兩種形式://、/*…*/。②每個(gè)以符號(hào)“?!遍_(kāi)頭的行稱為編譯預(yù)處理行?!埃nclude”稱為文件包含預(yù)處理命令,“include<iostream>”的作用是在編譯之前將文件“iostream”的內(nèi)容增加(包含)到程序中,iostream是系統(tǒng)定義的一個(gè)“頭文件”,它設(shè)置了C++的I/O相關(guān)環(huán)境,定義輸入輸出流對(duì)象cout與cin等。③“usingnamespacestd”的意思是使用命名空間“std”。C++標(biāo)準(zhǔn)庫(kù)中的類和函數(shù)是在命名空間std中聲明的,因此程序中如果需要用到這些類和函數(shù),就需要用“usingnamespacestd;”作聲明,表示要用到命名空間std中的內(nèi)容。④程序主體由一個(gè)或多個(gè)函數(shù)組成,有且只有一個(gè)函數(shù)是程序執(zhí)行的入口,這個(gè)函數(shù)稱為主函數(shù)(main函數(shù))。⑤main函數(shù)的返回值在標(biāo)準(zhǔn)C++中,main函數(shù)的返回類型必須為int,這樣返回值才能傳遞給程序的激活者(如操作系統(tǒng))。雖然在一些編譯器中,voidmain()可以通過(guò)編譯(如vc6),但并非所有編譯器都支持voidmain,如果你想你的程序擁有很好的可移植性,請(qǐng)一定要用intmain()。如果main函數(shù)的最后沒(méi)有寫return語(yǔ)句的話,C++98規(guī)定編譯器要自動(dòng)在生成的目標(biāo)文件中(如exe文件)加入return0;,表示程序正常退出,返回值非0則表示失敗。注意vc6也不支持這個(gè)特性,不會(huì)在目標(biāo)文件中加入return0。例求a和b兩個(gè)數(shù)之和。//求兩數(shù)之和(本行是注釋行)#include<iostream>//預(yù)處理命令usingnamespacestd;//使用命名空間stdintmain()//主函數(shù)首部{//函數(shù)體開(kāi)始 inta,b,sum;//定義變量 cin>>a>>b;//輸入語(yǔ)句 sum=a+b;//賦值語(yǔ)句 cout<<"a+b="<<sum<<endl;//輸出語(yǔ)句 return0;//如程序正常結(jié)束,向操作系統(tǒng)返回一個(gè)零值}//函數(shù)結(jié)束例給兩個(gè)數(shù)x和y,求兩數(shù)中的大者。#include<iostream>//預(yù)處理命令usingnamespacestd;intmax(intx,inty);//聲明max函數(shù),函數(shù)值為整型,形式參數(shù)x,y為整型intmain()//主函數(shù){ inta,b,m;//變量聲明 cin>>a>>b;//輸入變量a和b的值 m=max(a,b);//調(diào)用max函數(shù),將得到的值賦給m cout<<"max="<<m<<'\n';//輸出大數(shù)m的值 return0;//如程序正常結(jié)束,向操作系統(tǒng)返回一個(gè)零值}intmax(intx,inty)//定義max函數(shù){//max函數(shù)體開(kāi)始 intz;//變量聲明,定義本函數(shù)中用到的變量z為整型 if(x>y)//if語(yǔ)句,如果x>y,則將x的值賦給z,否則,將y的值賦給z z=x; else z=y; return(z);//將z的值返回,通過(guò)max帶回調(diào)用處}//max函數(shù)結(jié)束例包含類的C++程序。#include<iostream>//預(yù)處理命令usingnamespacestd;classStudent//聲明一個(gè)類,類名為Student{private://以下為類中的私有部分 intnum;//私有變量num intscore;//私有變量scorepublic://以下為類中的公用部分 voidsetdata()//定義公用函數(shù)setdata { cin>>num;//輸入num的值 cin>>score;//輸入score的值 } voiddisplay()//定義公用函數(shù)display { cout<<"num="<<num<<endl;//輸出num的值 cout<<"score="<<score<<endl;//輸出score的值 }};在一個(gè)類中包含兩種成員:數(shù)據(jù)和函數(shù),分別稱為數(shù)據(jù)成員和成員函數(shù)。在C++中把一組數(shù)據(jù)和有權(quán)調(diào)用這些數(shù)據(jù)的函數(shù)封裝在一起,組成一種稱為“類(class)”的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)成員是類的屬性,成員函數(shù)是用來(lái)對(duì)數(shù)據(jù)成員進(jìn)行操作的。Studentstud1,stud2;//定義stud1和stud2為Student類的變量,稱為對(duì)象intmain()//主函數(shù)首部{ stud1.setdata();//調(diào)用對(duì)象stud1的setdata函數(shù) stud2.setdata();//調(diào)用對(duì)象stud2的setdata函數(shù) stud1.display();//調(diào)用對(duì)象stud1的display函數(shù) stud2.display();//調(diào)用對(duì)象stud2的display函數(shù) return0;}程序運(yùn)行情況如下:100198.5↙(輸入學(xué)生1的學(xué)號(hào)和成績(jī))100276.5↙(輸入學(xué)生2的學(xué)號(hào)和成績(jī))num=1001(輸出學(xué)生1的學(xué)號(hào))score=98.5(輸出學(xué)生1的成績(jī))num=1002(輸出學(xué)生2的學(xué)號(hào))score=76.5(輸出學(xué)生2的成績(jī))具有“類”類型特征的變量稱為“對(duì)象”(object)。在一個(gè)類中包含兩種成員:數(shù)據(jù)和函數(shù),分別稱為數(shù)據(jù)成員和成員函數(shù)。在C++中把一組數(shù)據(jù)和有權(quán)調(diào)用這些數(shù)據(jù)的函數(shù)封裝在一起,組成一種稱為“類(class)”的數(shù)據(jù)結(jié)構(gòu)。類可以體現(xiàn)數(shù)據(jù)的封裝性和信息隱蔽。在上面的程序中,在聲明Student類時(shí),把類中的數(shù)據(jù)和函數(shù)分為兩大類:private(私有的)和public(公用的)。把全部數(shù)據(jù)(num,score)指定為私有的,把全部函數(shù)(setdata,display)指定為公用的。在大多數(shù)情況下,會(huì)把所有數(shù)據(jù)指定為私有,以實(shí)現(xiàn)信息隱蔽。1.5C++程序的構(gòu)成和書(shū)寫形式C++程序的結(jié)構(gòu)和書(shū)寫格式歸納如下:⑴一個(gè)C++程序可以由一個(gè)程序單位或多個(gè)程序單位構(gòu)成。每一個(gè)程序單位作為一個(gè)文件。在程序編譯時(shí),編譯系統(tǒng)分別對(duì)各個(gè)文件進(jìn)行編譯,因此,一個(gè)文件是一個(gè)編譯單元。⑵在一個(gè)程序單位中,可以包括以下幾個(gè)部分:①預(yù)處理命令。上節(jié)4個(gè)程序中都包括#include命令。②全局聲明部分(在函數(shù)外的聲明部分)。在這部分中包括對(duì)用戶自己定義的數(shù)據(jù)類型的聲明和程序中所用到的變量的定義。③函數(shù)。函數(shù)是實(shí)現(xiàn)操作的部分,因此函數(shù)是程序中必須有的和最基本的組成部分。每一個(gè)程序必須包括一個(gè)或多個(gè)函數(shù),其中必須有一個(gè)(而且只能有一個(gè))主函數(shù)(main函數(shù))。但是并不要求每一個(gè)程序文件都必須具有以上3個(gè)部分,可以缺少某些部分(包括函數(shù))。⑶一個(gè)函數(shù)由兩部分組成:①函數(shù)首部,即函數(shù)的第一行。包括函數(shù)名、函數(shù)類型、函數(shù)屬性、函數(shù)參數(shù)(形參)名、參數(shù)類型。一個(gè)函數(shù)名后面必須跟一對(duì)圓括號(hào),函數(shù)參數(shù)可以缺省,如intmain()。②函數(shù)體,即函數(shù)首部下面的大括號(hào)內(nèi)的部分。如果在一個(gè)函數(shù)中有多個(gè)大括號(hào),則最外層的一對(duì){}為函數(shù)體的范圍。函數(shù)體一般包括:局部聲明部分(在函數(shù)內(nèi)的聲明部分)。包括對(duì)本函數(shù)中所用到的類型、函數(shù)的聲明和變量的定義。對(duì)數(shù)據(jù)的聲明既可以放在函數(shù)之外(其作用范圍是全局的),也可以放在函數(shù)內(nèi)(其作用范圍是局部的,只在本函數(shù)內(nèi)有效)。執(zhí)行部分。由若干個(gè)執(zhí)行語(yǔ)句組成,用來(lái)進(jìn)行有關(guān)的操作,以實(shí)現(xiàn)函數(shù)的功能。⑷語(yǔ)句包括兩類。一類是聲明語(yǔ)句,另一類是執(zhí)行語(yǔ)句。C++對(duì)每一種語(yǔ)句賦予一種特定的功能。語(yǔ)句是實(shí)現(xiàn)操作的基本成分,顯然,沒(méi)有語(yǔ)句的函數(shù)是沒(méi)有意義的。C++語(yǔ)句必須以分號(hào)結(jié)束。⑸一個(gè)C++程序總是從main函數(shù)開(kāi)始執(zhí)行的,而不論main函數(shù)在整個(gè)程序中的位置如何。⑹類(class)是C++新增加的重要的數(shù)據(jù)類型,是C++對(duì)C的最重要的發(fā)展。有了類,就可以實(shí)現(xiàn)面向?qū)ο蟪绦蛟O(shè)計(jì)方法中的封裝、信息隱蔽、繼承、派生、多態(tài)等功能。在一個(gè)類中可以包括數(shù)據(jù)成員和成員函數(shù),他們可以被指定為私有的(private)和公用的(public)屬性。私有的數(shù)據(jù)成員和成員函數(shù)只能被本類的成員函數(shù)所調(diào)用。⑺C++程序書(shū)寫格式自由,一行內(nèi)可以寫幾個(gè)語(yǔ)句,一個(gè)語(yǔ)句可以分寫在多行上。C++程序沒(méi)有行號(hào),也不像FORTRAN或COBOL那樣嚴(yán)格規(guī)定書(shū)寫格式(語(yǔ)句必須從某一列開(kāi)始書(shū)寫)。⑻一個(gè)好的、有使用價(jià)值的源程序都應(yīng)當(dāng)加上必要的注釋,以增加程序的可讀性。C++還保留了C語(yǔ)言的注釋形式,可以用“/*……*/”對(duì)C++程序中的任何部分作注釋。在“/*”和“*/”之間的全部?jī)?nèi)容作為注釋。用“//”作注釋時(shí),有效范圍只有一行,即本行有效,不能跨行。而用“/*……*/”作注釋時(shí)有效范圍為多行。只要在開(kāi)始處有一個(gè)“/*”,在最后一行結(jié)束處有一個(gè)“*/”即可。因此,一般習(xí)慣是:內(nèi)容較少的簡(jiǎn)單注釋常用“//”,內(nèi)容較長(zhǎng)的常用“/*……*/”。1.
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年新式融資租賃合同范本
- 2024年影視拍攝臨時(shí)租用場(chǎng)地合同
- 教務(wù)處個(gè)人年度工作總結(jié)
- 眩暈專病評(píng)審匯報(bào)
- 幼兒園大班下學(xué)期工作計(jì)劃
- 高中軍訓(xùn)感言15篇
- 藥品購(gòu)銷合同6篇
- 2021年食品飲料行業(yè)營(yíng)銷監(jiān)測(cè)報(bào)告
- 《輪椅轉(zhuǎn)移與運(yùn)送》課件
- 掌握音樂(lè)節(jié)奏模板
- 業(yè)務(wù)招待費(fèi)審批單
- 建筑工程項(xiàng)目管理咨詢招標(biāo)(范本)
- 三位數(shù)除兩位數(shù)的除法練習(xí)題
- 慢性胃炎的中醫(yī)治療培訓(xùn)課件
- Python程序設(shè)計(jì)課件第7章面向?qū)ο蟪绦蛟O(shè)計(jì)
- 主題班會(huì)課防盜
- 幼兒園課件《撓撓小怪物》
- 教師教案檢查八大評(píng)分標(biāo)準(zhǔn)教案的評(píng)分標(biāo)準(zhǔn)
- 政府會(huì)計(jì)基礎(chǔ)知識(shí)講義
- 幼兒園整合式主題活動(dòng)設(shè)計(jì)案例《溫馨家園》
- 荒漠區(qū)生態(tài)治理(麥草沙障、植物固沙)施工方案
評(píng)論
0/150
提交評(píng)論