版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第1章C++的初步知識1.1C++概述1.2面向過程的結(jié)構(gòu)化程序設(shè)計方法1.3面向?qū)ο蟮姆椒?.4簡單的C++程序1.5C++程序的構(gòu)成和書寫形式1.6C++程序的開發(fā)步驟及開發(fā)環(huán)境1.1C++概述C++語言是在C語言的基礎(chǔ)上發(fā)展起來的,而C語言是在20世紀70年代的B語言基礎(chǔ)上開發(fā)出來的。C語言同當時常用的其它高級語言一樣,都是面向過程的。C++作為C的繼承者,在支持面向過程的的程序設(shè)計的同時,又可以進行以抽象數(shù)據(jù)類型為特點的基于對象的程序設(shè)計,還可以進行以繼承和多態(tài)為特點的面向?qū)ο蟮某绦蛟O(shè)計。C++是一種混合型程序設(shè)計語言。C++標準C++真正正式公布的標準就三個:C++98、C++03、C++11。其中C++98是第一個正式C++標準,C++03是在C++98上面進行了小幅度的修訂,C++11(2011年8月12日公布)則是一次全面的大進化。其實C++在第一個標準C++98之前就已經(jīng)廣為使用了。只不過那時候還沒有一個官方的統(tǒng)一標準,后來才開始起草標準草案,直到98年才最終發(fā)布。1.2面向過程的結(jié)構(gòu)化程序設(shè)計方法設(shè)計思路:采用模塊分解與功能抽象,自頂向下,逐步求精的設(shè)計方法。程序結(jié)構(gòu):①按功能劃分為若干個基本模塊,形成一個樹狀結(jié)構(gòu)。②各模塊間的關(guān)系盡可能簡單,功能上相對獨立。③每一模塊內(nèi)部均是由順序、選擇和循環(huán)三種基本結(jié)構(gòu)組成。④其模塊化實現(xiàn)的具體方法是使用子程序。優(yōu)點:有效地將一個復(fù)雜的程序系統(tǒng)設(shè)計任務(wù)分解成許多易于控制和處理的子任務(wù),便于開發(fā)和維護。缺點:可重用性差,數(shù)據(jù)安全性差,難以開發(fā)圖形界面的應(yīng)用。1.3面向?qū)ο蟮姆椒嫦驅(qū)ο蠓椒ǖ奶攸c:①將數(shù)據(jù)及對數(shù)據(jù)的操作方法封裝在一起,作為一個相互依存,不可分離的整體――對象。②對同類型對象抽象出其共性,形成類。③類通過一個簡單的外部接口與外界發(fā)生聯(lián)系。④對象與對象之間通過消息進行通訊。1.4簡單的C++程序#include<iostream>//包含頭文件iostreamusingnamespacestd;/*使用命名空間std*/intmain(){ cout<<"HelloWorld!\n"; return0;}C++程序結(jié)構(gòu)由注釋、編譯預(yù)處理和程序主體組成。①注釋有兩種形式://、/*…*/。②每個以符號“?!遍_頭的行稱為編譯預(yù)處理行。“#include”稱為文件包含預(yù)處理命令,“include<iostream>”的作用是在編譯之前將文件“iostream”的內(nèi)容增加(包含)到程序中,iostream是系統(tǒng)定義的一個“頭文件”,它設(shè)置了C++的I/O相關(guān)環(huán)境,定義輸入輸出流對象cout與cin等。③“usingnamespacestd”的意思是使用命名空間“std”。C++標準庫中的類和函數(shù)是在命名空間std中聲明的,因此程序中如果需要用到這些類和函數(shù),就需要用“usingnamespacestd;”作聲明,表示要用到命名空間std中的內(nèi)容。④程序主體由一個或多個函數(shù)組成,有且只有一個函數(shù)是程序執(zhí)行的入口,這個函數(shù)稱為主函數(shù)(main函數(shù))。⑤main函數(shù)的返回值在標準C++中,main函數(shù)的返回類型必須為int,這樣返回值才能傳遞給程序的激活者(如操作系統(tǒng))。雖然在一些編譯器中,voidmain()可以通過編譯(如vc6),但并非所有編譯器都支持voidmain,如果你想你的程序擁有很好的可移植性,請一定要用intmain()。如果main函數(shù)的最后沒有寫return語句的話,C++98規(guī)定編譯器要自動在生成的目標文件中(如exe文件)加入return0;,表示程序正常退出,返回值非0則表示失敗。注意vc6也不支持這個特性,不會在目標文件中加入return0。例求a和b兩個數(shù)之和。//求兩數(shù)之和(本行是注釋行)#include<iostream>//預(yù)處理命令usingnamespacestd;//使用命名空間stdintmain()//主函數(shù)首部{//函數(shù)體開始 inta,b,sum;//定義變量 cin>>a>>b;//輸入語句 sum=a+b;//賦值語句 cout<<"a+b="<<sum<<endl;//輸出語句 return0;//如程序正常結(jié)束,向操作系統(tǒng)返回一個零值}//函數(shù)結(jié)束例給兩個數(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)返回一個零值}intmax(intx,inty)//定義max函數(shù){//max函數(shù)體開始 intz;//變量聲明,定義本函數(shù)中用到的變量z為整型 if(x>y)//if語句,如果x>y,則將x的值賦給z,否則,將y的值賦給z z=x; else z=y; return(z);//將z的值返回,通過max帶回調(diào)用處}//max函數(shù)結(jié)束例包含類的C++程序。#include<iostream>//預(yù)處理命令usingnamespacestd;classStudent//聲明一個類,類名為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的值 }};在一個類中包含兩種成員:數(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ù)是用來對數(shù)據(jù)成員進行操作的。Studentstud1,stud2;//定義stud1和stud2為Student類的變量,稱為對象intmain()//主函數(shù)首部{ stud1.setdata();//調(diào)用對象stud1的setdata函數(shù) stud2.setdata();//調(diào)用對象stud2的setdata函數(shù) stud1.display();//調(diào)用對象stud1的display函數(shù) stud2.display();//調(diào)用對象stud2的display函數(shù) return0;}程序運行情況如下:100198.5↙(輸入學(xué)生1的學(xué)號和成績)100276.5↙(輸入學(xué)生2的學(xué)號和成績)num=1001(輸出學(xué)生1的學(xué)號)score=98.5(輸出學(xué)生1的成績)num=1002(輸出學(xué)生2的學(xué)號)score=76.5(輸出學(xué)生2的成績)具有“類”類型特征的變量稱為“對象”(object)。在一個類中包含兩種成員:數(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ù)據(jù)和函數(shù)分為兩大類:private(私有的)和public(公用的)。把全部數(shù)據(jù)(num,score)指定為私有的,把全部函數(shù)(setdata,display)指定為公用的。在大多數(shù)情況下,會把所有數(shù)據(jù)指定為私有,以實現(xiàn)信息隱蔽。1.5C++程序的構(gòu)成和書寫形式C++程序的結(jié)構(gòu)和書寫格式歸納如下:⑴一個C++程序可以由一個程序單位或多個程序單位構(gòu)成。每一個程序單位作為一個文件。在程序編譯時,編譯系統(tǒng)分別對各個文件進行編譯,因此,一個文件是一個編譯單元。⑵在一個程序單位中,可以包括以下幾個部分:①預(yù)處理命令。上節(jié)4個程序中都包括#include命令。②全局聲明部分(在函數(shù)外的聲明部分)。在這部分中包括對用戶自己定義的數(shù)據(jù)類型的聲明和程序中所用到的變量的定義。③函數(shù)。函數(shù)是實現(xiàn)操作的部分,因此函數(shù)是程序中必須有的和最基本的組成部分。每一個程序必須包括一個或多個函數(shù),其中必須有一個(而且只能有一個)主函數(shù)(main函數(shù))。但是并不要求每一個程序文件都必須具有以上3個部分,可以缺少某些部分(包括函數(shù))。⑶一個函數(shù)由兩部分組成:①函數(shù)首部,即函數(shù)的第一行。包括函數(shù)名、函數(shù)類型、函數(shù)屬性、函數(shù)參數(shù)(形參)名、參數(shù)類型。一個函數(shù)名后面必須跟一對圓括號,函數(shù)參數(shù)可以缺省,如intmain()。②函數(shù)體,即函數(shù)首部下面的大括號內(nèi)的部分。如果在一個函數(shù)中有多個大括號,則最外層的一對{}為函數(shù)體的范圍。函數(shù)體一般包括:局部聲明部分(在函數(shù)內(nèi)的聲明部分)。包括對本函數(shù)中所用到的類型、函數(shù)的聲明和變量的定義。對數(shù)據(jù)的聲明既可以放在函數(shù)之外(其作用范圍是全局的),也可以放在函數(shù)內(nèi)(其作用范圍是局部的,只在本函數(shù)內(nèi)有效)。執(zhí)行部分。由若干個執(zhí)行語句組成,用來進行有關(guān)的操作,以實現(xiàn)函數(shù)的功能。⑷語句包括兩類。一類是聲明語句,另一類是執(zhí)行語句。C++對每一種語句賦予一種特定的功能。語句是實現(xiàn)操作的基本成分,顯然,沒有語句的函數(shù)是沒有意義的。C++語句必須以分號結(jié)束。⑸一個C++程序總是從main函數(shù)開始執(zhí)行的,而不論main函數(shù)在整個程序中的位置如何。⑹類(class)是C++新增加的重要的數(shù)據(jù)類型,是C++對C的最重要的發(fā)展。有了類,就可以實現(xiàn)面向?qū)ο蟪绦蛟O(shè)計方法中的封裝、信息隱蔽、繼承、派生、多態(tài)等功能。在一個類中可以包括數(shù)據(jù)成員和成員函數(shù),他們可以被指定為私有的(private)和公用的(public)屬性。私有的數(shù)據(jù)成員和成員函數(shù)只能被本類的成員函數(shù)所調(diào)用。⑺C++程序書寫格式自由,一行內(nèi)可以寫幾個語句,一個語句可以分寫在多行上。C++程序沒有行號,也不像FORTRAN或COBOL那樣嚴格規(guī)定書寫格式(語句必須從某一列開始書寫)。⑻一個好的、有使用價值的源程序都應(yīng)當加上必要的注釋,以增加程序的可讀性。C++還保留了C語言的注釋形式,可以用“/*……*/”對C++程序中的任何部分作注釋。在“/*”和“*/”之間的全部內(nèi)容作為注釋。用“//”作注釋時,有效范圍只有一行,即本行有效,不能跨行。而用“/*……*/”作注釋時有效范圍為多行。只要在開始處有一個“/*”,在最后一行結(jié)束處有一個“*/”即可。因此,一般習慣是:內(nèi)容較少的簡單注釋常用“//”,內(nèi)容較長的常用“/*……*/”。1.
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度城市公共自行車租賃服務(wù)合同范本8篇
- 2025年度有機農(nóng)產(chǎn)品生產(chǎn)加工合作合同范本3篇
- 2025年度面粉產(chǎn)品區(qū)域總代理合同樣本4篇
- 2025年度航空保險理賠服務(wù)合同
- 二零二五年度企業(yè)稅務(wù)顧問聘請協(xié)議3篇
- 2025年國際貿(mào)易實訓(xùn)報告編寫與推廣服務(wù)合同3篇
- 二零二五年專業(yè)植物租賃及養(yǎng)護服務(wù)合同2篇
- 二零二五年度環(huán)保型木工清工分包合同創(chuàng)新范本3篇
- 2025年度木材加工企業(yè)原材料采購合同4篇
- 2025年度國際貨運代理合同欺詐風險控制與合同管理2篇
- 2025年上半年江蘇連云港灌云縣招聘“鄉(xiāng)村振興專干”16人易考易錯模擬試題(共500題)試卷后附參考答案
- DB3301T 0382-2022 公共資源交易開評標數(shù)字見證服務(wù)規(guī)范
- 人教版2024-2025學(xué)年八年級上學(xué)期數(shù)學(xué)期末壓軸題練習
- 【人教版化學(xué)】必修1 知識點默寫小紙條(答案背誦版)
- 江蘇省無錫市2023-2024學(xué)年八年級上學(xué)期期末數(shù)學(xué)試題(原卷版)
- 俄語版:中國文化概論之中國的傳統(tǒng)節(jié)日
- 《奧特萊斯業(yè)態(tài)淺析》課件
- 2022年湖南省公務(wù)員錄用考試《申論》真題(縣鄉(xiāng)卷)及答案解析
- 婦科一病一品護理匯報
- 哪吒之魔童降世
- 2022年上海市各區(qū)中考一模語文試卷及答案
評論
0/150
提交評論