




已閱讀5頁(yè),還剩21頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第 - 1 - 頁(yè) 共 26 頁(yè) 開(kāi)發(fā) 法 摘要: 我們知道無(wú)論是 上的播放器還是 放器,在播放影音文件時(shí)都必須首先“告訴“播放器我們要播放的文件存儲(chǔ)在什莫地方,然后播放器再根據(jù)我們所提供的“地點(diǎn)“去讀取文件并進(jìn)行播放。令我們失望的是這些播放器聽(tīng)不懂我們的話(huà),那末我們是通過(guò)什莫方式來(lái)讓她知道她取文件的地點(diǎn)呢?答案就是文件路徑。播放器可以通過(guò)我們所提供的文件路徑來(lái)找到要播放的文件。為了滿(mǎn)足用戶(hù)的不同需求,我們可能要將這些文件按 輯名)、 唱者)、派 )進(jìn)行分類(lèi)。例如 :歌曲一生有你當(dāng)按專(zhuān)輯分時(shí)它屬于專(zhuān)輯“一生有你“,按演唱者分它又屬于“水木年華“組合。而事實(shí)上我們的 行分類(lèi)的文件,也就是說(shuō)我們從“水木年華“組合所唱的歌曲中可以找到歌曲一生有你、同樣也可以在“一生有你“專(zhuān)輯中看到歌曲一生有你?,F(xiàn)在的 通過(guò)在以 屬性 名 命 名的文件中存儲(chǔ) 屬性 分類(lèi) 文件 的。這樣的話(huà),同一個(gè) 件的路徑將在不同 屬性 文件中重復(fù)存儲(chǔ),而往往在我們的 且這些文件都會(huì)被集中存儲(chǔ)起來(lái),也就是這些集中存儲(chǔ)的文件的路徑會(huì)有很多地方是相同的,例如: C:件中存在很多 件,那末這些 件的路徑中都會(huì)包含 C:樣將導(dǎo)致文件路徑中相同的部分更會(huì)被反復(fù)存儲(chǔ)。如果能將這些相同的部分僅僅只存儲(chǔ)一次并被大家“共用“,這樣就能節(jié)省相當(dāng)可觀的存儲(chǔ)空間。而這些存儲(chǔ)空間對(duì)于容量有限的 說(shuō)就顯得尤為重要。 此文將 介紹 一種 采用 算法來(lái) 實(shí)現(xiàn)這樣的設(shè)想 。在電子領(lǐng)域,時(shí)間和空間永遠(yuǎn)都是一對(duì)不相容的冤家。這里我們也將采取一定措施來(lái)平衡兩者。 關(guān)鍵字: 放器 、 法 第 - 2 - 頁(yè) 共 26 頁(yè) D3 we no C we to or we it go to to It is is of So do we it to is by s we to so it is of it is as as to In at In we on by on So of is on MP of In of on a :a of of C: to of If we on it by a of 第 - 3 - 頁(yè) 共 26 頁(yè) 目錄 前言 第一章背景介紹 1 1、 1 1 1、 念 1 1 2、 件組成 1 2、 簡(jiǎn) 介現(xiàn) 行 1 2 1、 1 2 2、 現(xiàn)行算法 分析 第二章基本知識(shí) 2 1、 鍵 樹(shù) 簡(jiǎn)介 2 2、偽代碼 簡(jiǎn)介 2 3、 C+語(yǔ)言簡(jiǎn)介 第三章算法開(kāi)發(fā)過(guò)程 3 1、 算法簡(jiǎn)介 3 2、 分析數(shù)據(jù) 3 3、 算法 實(shí)現(xiàn) 偽 代碼 實(shí)現(xiàn) 3 C+實(shí)現(xiàn) 第四章小結(jié) 文獻(xiàn)參考 致謝 第 - 4 - 頁(yè) 共 26 頁(yè) 前言 隨著世界數(shù)碼化進(jìn)程的加快我們身邊精致的數(shù)碼玩具也在不斷更新,從像素不斷提升的數(shù)碼相機(jī)到功能不斷出新的手機(jī),無(wú)不體現(xiàn)了現(xiàn)代科技的精致與完美。其中, 于網(wǎng)上 今以是最流行,普及率也最高的數(shù)碼產(chǎn)品了。在 上的服務(wù)感到了不滿(mǎn),而對(duì)視覺(jué)、聽(tīng)覺(jué)上的全面享受的渴求直接導(dǎo)致了今天 放器 的誕生。 自去年法國(guó)愛(ài)可視公司推出收款產(chǎn)品以來(lái), 升級(jí) 產(chǎn) 品, 現(xiàn)了 “隨 身 聽(tīng) ”到 “隨 身看 ”的升級(jí), 將終結(jié) 代 。但是數(shù)碼 市場(chǎng)上 顯示 , 而 頗 得冷清。主因是 市場(chǎng)仍在 “培育期 ”,目前最主要的問(wèn)題是 價(jià)格 仍然很貴,普及起來(lái)是有一定 難度 。而且目前 為 影資源下載的網(wǎng)站數(shù)量雖然 也已 經(jīng) 和 但是網(wǎng)站 內(nèi)容建 設(shè)混亂 、影片品 質(zhì)良莠不齊 、 收費(fèi)機(jī)制 不健全 等直接 影響 到 據(jù)業(yè) 內(nèi)人士分析, 隨著 微型硬 盤(pán)價(jià)格 的下跌, 成本 問(wèn)題將 很快得到解決, 價(jià)格瓶頸有望被打破 ,加上 寬帶網(wǎng)絡(luò) 的 進(jìn)一步普及 、 規(guī)范 , 快大 規(guī)模啟動(dòng) 的。 消費(fèi)者引領(lǐng)企盼的商品 , 還是未成熟的曇花一現(xiàn) ?雖然目前 場(chǎng) 中, 算是剛剛起步 的 階段 ,但是也已 經(jīng)隱約呈現(xiàn) 百家 爭(zhēng)鳴 的情 況 。 至于 在 產(chǎn) 品未 來(lái) 的 設(shè)計(jì)及發(fā)展 上,提升液晶 顯示屏的 品質(zhì)、改善使用者介面、延 長(zhǎng)電池壽命 等等的方向,目的都是 為 了要 讓 消 費(fèi) 者能夠接受這 種 新 興的 產(chǎn) 品。事 實(shí) 上,如果因 為檔案經(jīng)適當(dāng) 壓縮后 ,消 費(fèi) 者即可 隨時(shí)隨地享受媲美 的影片,這是一個(gè)多 麼 令人 雀躍 的生活改 變 ,我們對(duì) 個(gè) 商品的未 來(lái)保持樂(lè)觀與期待。 如今 微星 公司也推出了自己 的 并 在大陸各大 但要在風(fēng)云巨變的數(shù)碼市場(chǎng)站穩(wěn)腳跟,就需要不斷對(duì)產(chǎn)品進(jìn)行技術(shù)改進(jìn)使其在同類(lèi)產(chǎn)品中突顯一定的優(yōu)勢(shì)。 此文即為對(duì) 與 第 - 5 - 頁(yè) 共 26 頁(yè) 第一章背景介 紹 1 1、 介 觀察目前消費(fèi)性電子( 展, 身聽(tīng)?wèi){借技術(shù)成熟、平民價(jià)格(現(xiàn)在 256要 500 元不到)等優(yōu)勢(shì),因此在 場(chǎng)逐漸擴(kuò)展版圖,并且不論是 播、重復(fù)播放、詞曲同步及錄音等多元化方針,或者是 幕、藍(lán)牙( 設(shè)計(jì)的集成,都讓 身聽(tīng)更加如虎添翼。然而,隨著出貨量的與日遽增, 利下降等問(wèn)題,而且只能用于聽(tīng)音樂(lè), 還未將影像部分納入其中,使得 上型多媒體播放器)概念應(yīng)運(yùn)而生。 念 是 放器。 顧名思義, 放器是一個(gè)能夠播放 件的設(shè)備,它可以叫做 人視頻播放器)也可以叫做 攜式媒體播放器)?,F(xiàn)在對(duì) 放器的功能沒(méi)有具體界定,雖然不少?gòu)S商都將它定義為多媒體影音播放器,但它除了聽(tīng)看電影的基本功能外還支持音樂(lè)播放、瀏 覽圖片,甚至部分產(chǎn)品還可以上網(wǎng)。但為了強(qiáng)調(diào)便攜的特征,我們?cè)谶@里所討論的 將以便攜、播放視頻為準(zhǔn)則,它們可以通過(guò) 1394 端口傳輸文件,很方便地將視頻文件下載到設(shè)備中進(jìn)行播放,而且應(yīng)當(dāng)自帶 幕,以滿(mǎn)足隨時(shí)播放視頻的需要。 優(yōu)點(diǎn)很多,它能夠直接播放高品質(zhì)視頻、音頻,也可以瀏覽圖片以及作為移動(dòng)硬盤(pán)、數(shù)字銀行使用;更有產(chǎn)品還具備一些十分新穎、實(shí)用的功能,例如愛(ài)可視 夠錄制視頻,它可以將來(lái)自 視等設(shè)備的信號(hào)以式保存在硬盤(pán)中;中基超威力即將推出的 放器支 持 理以及無(wú)線網(wǎng)絡(luò)功能,可以在無(wú)線環(huán)境普及后發(fā)揮出更多作用。而且現(xiàn)在我們所見(jiàn)的到 多數(shù)都帶有視頻轉(zhuǎn)制等專(zhuān)業(yè)的視頻功能,并具備非常齊全的視頻輸入 /輸出端口,因此它們攜帶的視頻文件能夠在很多場(chǎng)合中播放,盡管這對(duì)一些僅在旅行途中使用播放器的用戶(hù)沒(méi)有更多的實(shí)際意義,但對(duì)于一些經(jīng)常做視頻演示的用戶(hù)則十分有用,因?yàn)?放器能夠方便地接駁投影機(jī)以及電視等輸出設(shè)備。 件組成 本都具有處理器、液晶顯示屏,存儲(chǔ)設(shè)備三大基本原件。這三件也直接影響了我們對(duì) 使用,下面就一一介紹: 處理器 : 同于 要強(qiáng)大處理器作為 中央處理芯片,不僅要內(nèi)建視頻編 /譯碼芯片,做為模擬與數(shù)字兩種信號(hào)間轉(zhuǎn)換之用。另外,用來(lái)接視頻譯碼器與 總線,以及 示器的驅(qū)動(dòng)電路等等,最主要的是對(duì) 解碼和播放。市場(chǎng)上主流的 般都是采用德州儀器和英特爾的數(shù)字處理芯片,德州儀器在移動(dòng)娛樂(lè)數(shù)字芯片上獨(dú)占鰲頭;英特爾則是計(jì)算機(jī)處理器的領(lǐng)袖,其能力有目共睹 。 第 - 6 - 頁(yè) 共 26 頁(yè) 液晶顯示屏 : 液晶顯示器主要考慮三個(gè)重點(diǎn)因素,分別是色彩表現(xiàn)力和液晶屏尺寸及分辨率。 存儲(chǔ)設(shè)備 : 日前, 樣,可用微硬盤(pán) (如 閃存卡 (如儲(chǔ)影音文件,由于 頻文件比 頻文件體積要大得多,雖然閃存卡在防震上有優(yōu)勢(shì),但容量有限,即使插上擴(kuò)展卡也只有 1G,只能放兩部 片,這樣也使二次投入大大增加,微硬盤(pán)式容量動(dòng)輒幾十 G,可存儲(chǔ)幾十甚至上百部電影,拉開(kāi)了和 距離;且防震方面也基本達(dá)到我們要求,不過(guò)一般發(fā)熱、耗電較大。 1 2、簡(jiǎn)介現(xiàn)行 運(yùn)作過(guò)程 式 1. 表示緊接在它之后的 有多少個(gè) 表示媒體的某一項(xiàng)屬性。 示與 應(yīng)的 該文件中的起始地址。最后一個(gè) 個(gè) 來(lái)隔開(kāi)。 示對(duì)應(yīng)媒體文件在 的序號(hào)。每一組 束后根 2個(gè) 。 2. . 0| 0 00 | 0 | 0 | 00 第 - 7 - 頁(yè) 共 26 頁(yè) 音頻媒體數(shù)據(jù)項(xiàng)在該文件中的起始地址(如果沒(méi)有音頻數(shù)據(jù)則該項(xiàng)為 0)。 視頻媒體數(shù)據(jù)項(xiàng)在該文件中的起始地址(如果沒(méi)有視頻數(shù)據(jù)則該項(xiàng)為 0)。 圖片媒體數(shù)據(jù)項(xiàng)在該文件中的起始地址(如果沒(méi)有圖片數(shù)據(jù)則該項(xiàng)為 0)。 4 為對(duì)應(yīng)數(shù)據(jù)項(xiàng)在 的地址。 3. 的意義相同。 0 . ( 0 . . . ( 0 0 . . . . . . . . 第 - 8 - 頁(yè) 共 26 頁(yè) 示緊接其后的 長(zhǎng)度 (有多少個(gè) 2個(gè)數(shù)據(jù)項(xiàng)之間用 0 分開(kāi)。 沒(méi)有 ,其對(duì)應(yīng) 替。 1 2 2、 現(xiàn)行算法分析 如上 現(xiàn)行算法中我們是 借助以下九個(gè)文件: 通過(guò)三級(jí)映射才得到我們所要得文件地址即 這個(gè) 件 在 這個(gè)其實(shí)類(lèi)似于 不過(guò) 是按 盤(pán) 進(jìn)行 分區(qū)的, 為了便于講述 ,下面就以 相信大家對(duì)上面的 面已經(jīng)很熟悉了吧! 通常情況下 我們都習(xí)慣于把 文件集中存放在固定的一個(gè)或幾個(gè)文件夾里 , 這樣就會(huì)出現(xiàn)如上圖示的文件路徑中有很多重復(fù)的情形。 比如現(xiàn)在在 C:個(gè)文件夾中存儲(chǔ)了 100 個(gè)文件,那末這 100 個(gè) 文件的路徑中都會(huì)出現(xiàn) 占用 12 個(gè)字節(jié)的字符串 C:共占用 1200 個(gè)字節(jié)的空間 。 試想一下,假如我們的文件再多一些,那末這些“公共路徑“所占用的內(nèi)存又會(huì)是 多少? 如果通過(guò)一種方法將這些 “公共路徑“只存儲(chǔ)一次 。 這對(duì)于資源寶貴的 會(huì)是一筆很可觀的財(cái)富。 在第三章中 將介紹一種通過(guò) 鍵樹(shù) 來(lái)實(shí)現(xiàn)這一功能的算法。 第 - 9 - 頁(yè) 共 26 頁(yè) 第二章基本知識(shí) 2 1、 鍵樹(shù) 簡(jiǎn)介 鍵樹(shù)又稱(chēng)數(shù)字查找樹(shù)( 它是一棵度大于或等于 2的樹(shù),樹(shù)中的每個(gè)結(jié)點(diǎn)中不是包含一個(gè)或幾個(gè)關(guān)鍵字,而是只含有組成關(guān)鍵字的符號(hào)。例如,若關(guān)鍵字是數(shù)值,則結(jié)點(diǎn)中只包含一個(gè)數(shù)位;若關(guān)鍵字是單詞,則結(jié)點(diǎn)中只包含一個(gè)字母字符。這種樹(shù)會(huì)給某種類(lèi)型關(guān)鍵字的表的查找?guī)?lái)方便。 例如:有如下 9 個(gè)關(guān)鍵 字的集合 可對(duì)此集合作如下的逐層分割。 首先按首字符不同將他們分為三個(gè)子集: , 然后對(duì)其中關(guān)鍵字個(gè)數(shù)大于 1 的子集再按第二個(gè)字符不同進(jìn)行再分割 的 集 合 可 進(jìn) 行 如 下 分 割 : (, (、 ( 顯然,如此集 合、子集和元素之間的層次關(guān)系可以用一棵樹(shù)來(lái)表示,這棵樹(shù)便是鍵樹(shù)。例如上述集合及其分割可用下圖來(lái)描述: $A$樹(shù)中根結(jié)點(diǎn)的三棵子樹(shù)表示首字符為 C、 Y 和 Z 的三個(gè)關(guān)鍵字子集。從根到葉子結(jié)點(diǎn)的字符組成的字符串表示一個(gè)關(guān)鍵字,葉子結(jié)點(diǎn)中的特殊符號(hào) $表示字符串的結(jié)束。在葉子結(jié)點(diǎn)還含有指向該關(guān)鍵字的指針。 為了查找和插入方便,我們約定鍵樹(shù)是有序的,即同一層中兄弟結(jié)點(diǎn)之間依 第 - 10 - 頁(yè) 共 26 頁(yè) 所含符號(hào) 自左至右有序。 通常,鍵樹(shù)可有兩種存儲(chǔ)結(jié)構(gòu)。 (1)以樹(shù)的孩子兄弟鏈表來(lái)表示鍵樹(shù)。樹(shù)的每個(gè)結(jié) 點(diǎn)包含三個(gè)域: :存儲(chǔ)關(guān)鍵字的一個(gè)字符; :存儲(chǔ)指向第一棵子樹(shù)根的指針; :存儲(chǔ)指向右兄弟的指針。(本課題將采用這種存儲(chǔ)方式。) (2)以樹(shù)的多重鏈表表示鍵樹(shù),即樹(shù)的每個(gè)結(jié)點(diǎn)中應(yīng)含有 代碼 偽代碼 (一種算法描述語(yǔ)言。使用為代碼的目的是為了使被描述的算法可以容易地以任何一種編程語(yǔ)言 (C, 現(xiàn)。因此,偽代碼必須結(jié)構(gòu)清晰,代碼簡(jiǎn)單,可讀性好,并且類(lèi)似自然語(yǔ)言。 下面介紹一種類(lèi) 偽代碼的語(yǔ)法規(guī)則 1、 在偽代碼中,每一條指令占一行 (外, ),指令后不跟任何符號(hào)( 中語(yǔ)句要以分號(hào)結(jié)尾); 2、 書(shū)寫(xiě)上的 “ 縮進(jìn) ” 表示程序中的分支程序結(jié)構(gòu)。這種縮進(jìn)風(fēng)格也適用于縮進(jìn)取代傳統(tǒng) 的 一模塊的語(yǔ) 句有相同的縮進(jìn)量,次一級(jí)模塊的語(yǔ)句相對(duì)與其父級(jí)模塊的語(yǔ)句縮進(jìn); 例如: 而在 嵌套來(lái)表示, 在 和 的嵌套來(lái)表示, 第 - 11 - 頁(yè) 共 26 頁(yè) 3、 在偽代碼中,通常用連續(xù)的數(shù)字或字母來(lái)標(biāo)示同一即 模塊中的連續(xù)語(yǔ)句,有時(shí)也可省略標(biāo)號(hào)。 例如: 1. 2. a. b. 1. 2. c. 3. 4、 符號(hào) 后的內(nèi)容表示注釋?zhuān)?5、 在偽代碼中,變量名和保留字 不區(qū)分大小寫(xiě) ,這一點(diǎn)和 同,與+不同; 6、 在偽代碼中,變量不需聲明,但變量局部于特定過(guò)程,不能不加顯示的說(shuō)明 就使用全局變量; 7、 賦值語(yǔ)句用符號(hào) 表示, x示將 x,其中 表達(dá)式的結(jié)果與 多重賦值 ije 是將表達(dá)式 e 的值賦給變量 i 和 j,這種表示與 je和 ie 等價(jià)。 8、 例如: xy x20*(y+1) xy30 以上語(yǔ)句用 x := y; x := 20*(y+1); x := 30; y := 30; 以上語(yǔ)句用 x = y; x = 20*(y+1); x = y = 30; 第 - 12 - 頁(yè) 共 26 頁(yè) 9、 選擇語(yǔ)句用 表示,并且這種 以嵌套,與 例如 : 10、 循環(huán)語(yǔ)句有三種: ,其語(yǔ)法均與是 用縮進(jìn)代替 例如: 1. x 0 2. y 0 3. z 0 4. x = 0 ); z = x * y; y /= 2; 11、 數(shù)組元素的存取有數(shù)組名后跟 “ 下標(biāo) ” 表示。例如 Aj指示數(shù)組 號(hào) “ ” 用來(lái)指示數(shù)組中值的范圍。 例如: A1j 表示含元素 A1, A2, , Aj 的子數(shù)組; 12、 復(fù)合數(shù)據(jù)用對(duì)象 (表示,對(duì)象由屬性 (域 (成。域的存取是由域名后接由方括號(hào)括住的對(duì)象名表示。 例如: 數(shù)組可被看作是一個(gè)對(duì)象,其屬性有 示其中元素的個(gè)數(shù),則就表示數(shù)組 A 中的元素的個(gè)數(shù)。在表示數(shù)組元素和對(duì)象屬性時(shí)都要用方括號(hào), 一般來(lái)說(shuō)從上下文可以看出其含義。 用于表示一個(gè)數(shù)組或?qū)ο蟮淖兞勘豢醋魇侵赶虮硎緮?shù)組或?qū)ο蟮臄?shù)據(jù)的一個(gè)指針。對(duì)于某個(gè)對(duì)象 f,賦值 yx 就使 fy=fx,更進(jìn)一步,若有 fx3 ,則不僅有 fx=3,同時(shí)有 fy=3,換言之,在賦值 yx 后, x 和 有時(shí),一個(gè)指針不指向任何對(duì)象,這時(shí)我們賦給他 13、 函數(shù)和過(guò)程語(yǔ)法與 函數(shù)值利用 “ 函數(shù)返回值 )” 語(yǔ)句來(lái)返回,調(diào)用方法與 似;過(guò)程用 “程名 ” 語(yǔ)句來(lái)調(diào)用; 例如: 1. x t + 10 2. y x) 3. x,y) 參數(shù)用按值傳遞方式傳給一個(gè)過(guò)程:被調(diào)用過(guò)程接受參數(shù)的一份副本,若他對(duì)某個(gè)參數(shù)賦值,則這種變化對(duì)發(fā)出調(diào)用的過(guò)程是不可見(jiàn)的。當(dāng)傳遞一個(gè)對(duì)象時(shí),只是拷貝指向該對(duì)象的指針,而不拷貝其各個(gè)域。 2 3、 C+語(yǔ)言簡(jiǎn)介 第 - 14 - 頁(yè) 共 26 頁(yè) C+語(yǔ)言是一種應(yīng)用較廣的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,使用它可以實(shí)現(xiàn)面向?qū)ο蟮某绦蛟O(shè)計(jì)。面向?qū)ο蟮脑O(shè)計(jì)與面向過(guò)程的設(shè)計(jì)是有很大區(qū)別的,面向?qū)ο蟮某绦蛟O(shè)計(jì)是在面向過(guò)程的程序設(shè)計(jì)的基礎(chǔ)上一個(gè)質(zhì)的 飛躍。要學(xué)會(huì)面向?qū)ο蟮某绦蛟O(shè)計(jì),首先要學(xué)會(huì)一種面向?qū)ο蟮恼Z(yǔ)言,即要學(xué)會(huì)用 要先有 C+的基礎(chǔ),而學(xué)習(xí) C+語(yǔ)言首先要認(rèn)識(shí)它面向?qū)ο蟮奶匦院蛯?shí)現(xiàn)面向?qū)ο蟮姆椒ā?C+是一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言 當(dāng)你首次學(xué)習(xí) C+時(shí),總會(huì)碰到一些在 C 語(yǔ)言從未見(jiàn)過(guò)的概念,如:類(lèi)、對(duì)象、抽象、封裝、繼承、多態(tài)性、虛函數(shù)等等。這些概念是 C+所具有,下面簡(jiǎn)單的介紹一下 C+對(duì)面向?qū)ο蟪绦蛟O(shè)計(jì)方法的支持和實(shí)現(xiàn)。 1、 C+支持?jǐn)?shù)據(jù)封裝 支持?jǐn)?shù)據(jù)封裝就是支持?jǐn)?shù)據(jù)抽象。在 C+中,類(lèi)是支持?jǐn)?shù)據(jù)封裝的工具,對(duì)象則是數(shù)據(jù)封裝的實(shí)現(xiàn) 。面向過(guò)程的程序設(shè)計(jì)方法與面向?qū)ο蟮某绦蛟O(shè)計(jì)方法在對(duì)待數(shù)據(jù)和函數(shù)關(guān)系上是不同的,在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,將數(shù)據(jù)和對(duì)該數(shù)據(jù)進(jìn)行合法操作的函數(shù)封裝在一起作為一個(gè)類(lèi)的定義,數(shù)據(jù)將被隱藏在封裝體中,該封裝體通過(guò)操作接口與外界交換信息。對(duì)象被說(shuō)明具有一個(gè)給定類(lèi)的變量,類(lèi)類(lèi)似于 這種結(jié)構(gòu)中包含數(shù)據(jù),而不包含函數(shù)。 C+中的類(lèi)是數(shù)據(jù)和函數(shù)的封裝體。在 C+中,結(jié)構(gòu)可作為一種特殊的類(lèi),它雖然可以包含函數(shù),但是它沒(méi)有私有或保護(hù)的成員。 2、 C+類(lèi)中包含私有、公有和保護(hù)成員 C+類(lèi)中 可定義三種不同訪控制權(quán)限的成員。一種是私有 (員,只有在類(lèi)中說(shuō)明的函數(shù)才能訪問(wèn)該類(lèi)的私有成員,而在該類(lèi)外的函數(shù)不可以訪問(wèn)私有成員;另一種是公有 (員,類(lèi)外面也可訪問(wèn)公有成員,成為該類(lèi)的接口;還有一種是保護(hù) (員,這種成員只有該類(lèi)的派生類(lèi)可以訪問(wèn),其余的在這個(gè)類(lèi)外不能訪問(wèn)。 3、 C+中通過(guò)發(fā)關(guān)消息來(lái)處理對(duì)象 C+中是通過(guò)向?qū)ο蟀l(fā)關(guān)消息來(lái)處理對(duì)象的,每個(gè)對(duì)象根據(jù)所接收到的消息的性質(zhì)來(lái)決定需要采取的行動(dòng),以響應(yīng)這個(gè)消息。響應(yīng)這些消息是一系列的方法,方法是在類(lèi)定 義中使用函數(shù)來(lái)定義的,使用一種類(lèi)似于函數(shù)調(diào)用的機(jī)制把消息發(fā)送到一個(gè)對(duì)象上。 4、 C+中允許友元破壞封裝性 類(lèi)中的私有成員一般是不允許該類(lèi)外面的任何函數(shù)訪問(wèn)的,但是友元便可打破這條禁令,它可以訪問(wèn)該類(lèi)的私有成員 (包含數(shù)據(jù)成員和成員函數(shù) )。友元可以是在類(lèi)外定義的函數(shù),也可以是在類(lèi)外定義的整個(gè)類(lèi),前者稱(chēng)友元函數(shù),后者稱(chēng)為友元類(lèi)。友元打破了類(lèi)的封裝性,它是 C+另一個(gè)面向?qū)ο蟮闹匾?5、 C+允許函數(shù)名和運(yùn)算符重載 C+支持多態(tài)性, C+允許一個(gè)相同的標(biāo)識(shí)符或運(yùn)算符代表多個(gè)不同實(shí)現(xiàn)的函數(shù),這就稱(chēng)標(biāo)識(shí)符或運(yùn)算 符的重載,用戶(hù)可以根據(jù)需要定義標(biāo)識(shí)符重載或運(yùn)算符重載。 6、 C+支持繼承性 C+中可以允許單繼承和多繼承。一個(gè)類(lèi)可以根據(jù)需要生成派生類(lèi)。派生類(lèi)繼承了基類(lèi)的所有方法,另外派生類(lèi)自身還可以定義所需要的不包含在父類(lèi)中的新方法。一個(gè)子類(lèi)的每個(gè)對(duì)象包含有從父類(lèi)那里繼承來(lái)的數(shù)據(jù)成員以及自己所特有的數(shù)據(jù)成員。 第 - 15 - 頁(yè) 共 26 頁(yè) 7、 C+支持動(dòng)態(tài)聯(lián)編 C+中可以定義虛函數(shù),通過(guò)定義虛函數(shù)來(lái)支持動(dòng)態(tài)聯(lián)編。 以上是所講的是 C+對(duì)面向?qū)ο蟪绦蛟O(shè)計(jì)中的一些主要特征的支持。 C+的詞法及詞法規(guī)則 1、 C+的字符集 字符是一些可以區(qū)分的最小符號(hào)。 C+的字符集由大小寫(xiě)英文字母 (數(shù)據(jù)字符 (0特殊字符 (空格,!, #, %, , &, *, _, , ?, , ,)組成。 2、 單詞及詞法規(guī)則 單詞又稱(chēng)詞法記號(hào),它是由若干個(gè)字符組成的具有一定意義的最小詞法單元。 C+共有 6 種單詞,分別是:標(biāo)識(shí)符、關(guān)鍵字、運(yùn)算符、分隔符、常量、注釋符,在編碼時(shí)要特別注意這些單詞的詞法規(guī)則。要注意的是 C+中的空白符: C+中經(jīng)常使用空白符,實(shí)際上,空白符不是一個(gè)字符,它是空格符、換行符和水平制表符的統(tǒng)稱(chēng)。注意,空白符不等于空格 符,只是空白符包含空格符。還有一個(gè)空字符,要把它與空白符分開(kāi)??兆址侵?的那個(gè)字符。空字符在 C+中有特殊用途,用它來(lái)作為字符串的結(jié)束符。存放在內(nèi)存中的字符串常量都在最后有一個(gè)結(jié)束符,即用空字符,它用轉(zhuǎn)義序列方法表示為 0 。 C+程序結(jié)構(gòu)的組成 C+程序結(jié)構(gòu)的基本組成部分 1、 預(yù)處理命令 , C+提供了三類(lèi)預(yù)處理命令:宏定義命令、文件包含命令、條件編譯命令。 2、 輸入輸出 , C+程序中總是少不了輸入和輸出的語(yǔ)句,實(shí)現(xiàn)與程序內(nèi)部的信息交流。特別是屏幕輸出的功能,幾乎每個(gè)程序都要用到,使 用它把計(jì)算機(jī)的結(jié)果顯示在屏幕上。 3、 函數(shù) , C+的程序是由若干個(gè)文件組成的,每個(gè)文件又是由若干個(gè)函數(shù)組成,因此,可以認(rèn)為 C+的程序就是函數(shù)串,即由若干個(gè)函數(shù)組成,函數(shù)與函數(shù)之間是相對(duì)的,并且是并行的,函數(shù)之間可以調(diào)用。在組成一個(gè)程序的若干個(gè)函中,必須有一個(gè) 。 4、 語(yǔ)句 ,語(yǔ)句是組成程序的基本單元。函數(shù)是由若干條語(yǔ)句組成的。但是,空函數(shù)是沒(méi)有語(yǔ)句的。語(yǔ)句是由單詞組成,單詞間用空格符分隔, C+程序中的語(yǔ)句又是以以分號(hào)結(jié)束。語(yǔ)句除了有表達(dá)式語(yǔ)句和空語(yǔ)句之外,還有復(fù)合語(yǔ)句、分支語(yǔ)句、循環(huán)語(yǔ)句和轉(zhuǎn)向語(yǔ) 句等若干類(lèi)。 5、 變量 ,多數(shù)程序都需要說(shuō)明和使用變量。廣義講,對(duì)象包含了變量,即將變量也稱(chēng)為一種對(duì)象,狹義講,將對(duì)象看作是類(lèi)的實(shí)例,對(duì)象是指某個(gè)類(lèi)的對(duì)象。 6、 其他 ,除了以上講述的 5 個(gè)部分以外,還有其他組成部分。例如,符號(hào)常量和注釋信息也是程序的一部分。 C+中都盡量把常量定義為符號(hào)常量,在 C+的程序中出現(xiàn)的是符號(hào)常量,該符號(hào)常量代表著某個(gè)確定的常量值。 C+程序的書(shū)寫(xiě)格式 在編程時(shí)應(yīng)該注意 C+的書(shū)寫(xiě)格式,基本原則是:一行一般寫(xiě)一條語(yǔ)句。短語(yǔ)句可以一行寫(xiě)多個(gè)。長(zhǎng)語(yǔ)句可以一條寫(xiě)多行。分行原則是不能將一個(gè) 單詞分開(kāi)。用雙引號(hào)引用的一個(gè)字符串也最好不分開(kāi),如果一定要分開(kāi),有的編譯系統(tǒng)要求在行尾加續(xù)行符 (“ ” ) 第 - 16 - 頁(yè) 共 26 頁(yè) C+程序的實(shí)現(xiàn) C+源程序的實(shí)現(xiàn)與其他高級(jí)語(yǔ)言源程序?qū)崿F(xiàn)的原理是一樣的。一般都要經(jīng)過(guò)編輯、編譯、運(yùn)行。其中最要的是編譯過(guò)程, C+是以編譯方式實(shí)現(xiàn)的高級(jí)語(yǔ)言。 C+程序的實(shí)現(xiàn),必須要使用某種 C+語(yǔ)言的編譯器對(duì)程序進(jìn)行編譯。
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)前教育中的幼兒園教育環(huán)境建設(shè)與管理考核試卷
- 海洋氣候?qū)0肚治g影響考核試卷
- 自行車(chē)騎行健康風(fēng)險(xiǎn)評(píng)估考核試卷
- 石膏在石膏裝飾品設(shè)計(jì)中的創(chuàng)意應(yīng)用考核試卷
- 紙制品行業(yè)品牌營(yíng)銷(xiāo)策略與市場(chǎng)推廣考核試卷
- 服務(wù)機(jī)器人的社交禮儀訓(xùn)練考核試卷
- 稻谷加工技術(shù)創(chuàng)新與產(chǎn)業(yè)競(jìng)爭(zhēng)力提升考核試卷
- 智能家居廣告媒體資源采購(gòu)與市場(chǎng)推廣協(xié)議
- 抖音火花支付實(shí)名認(rèn)證及安全使用協(xié)議
- 氣凝膠保溫管道施工與建筑節(jié)能效果評(píng)價(jià)及認(rèn)證合同
- (市質(zhì)檢)莆田市2025屆高中畢業(yè)班第四次教學(xué)質(zhì)量檢測(cè)試卷語(yǔ)文試卷(含答案解析)
- 瓷磚空鼓裝修合同協(xié)議
- 中職生職業(yè)生涯課件
- 煙臺(tái)2025年煙臺(tái)市蓬萊區(qū)“蓬選”考選90人筆試歷年參考題庫(kù)附帶答案詳解
- 2025年浙江省生態(tài)環(huán)境廳所屬事業(yè)單位招聘考試備考題庫(kù)
- 入團(tuán)考試測(cè)試題及答案
- 【語(yǔ)文試卷+答案 】上海市崇明區(qū)2025屆高三第二學(xué)期第二次模擬考試(崇明二模)
- 化妝品公司生產(chǎn)部獎(jiǎng)懲管理制度
- 家長(zhǎng)近視防控課件
- 2025年湘教版初中地理七年級(jí)下冊(cè)重點(diǎn)知識(shí)點(diǎn)梳理與歸納
- 勞務(wù)公司與公司合作協(xié)議書(shū)
評(píng)論
0/150
提交評(píng)論