C++程序設(shè)計概述_第1頁
C++程序設(shè)計概述_第2頁
C++程序設(shè)計概述_第3頁
C++程序設(shè)計概述_第4頁
C++程序設(shè)計概述_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、C+程序設(shè)計目錄1234面向?qū)ο蟪绦蛟O(shè)計概述5C+基礎(chǔ)知識類和對象繼承與組合多態(tài)性與虛函數(shù)目錄6789面向?qū)ο蟮耐讌f(xié)10運算符重載模板輸入輸出流異常處理第1章 面向?qū)ο蟪绦蛟O(shè)計概述本章從一個小型的學(xué)生信息管理系統(tǒng)的面向過程程序設(shè)計出發(fā),討論了傳統(tǒng)的面向過程程序設(shè)計方法的不足,進而引出面向?qū)ο蟪绦蛟O(shè)計方法,介紹面向?qū)ο蟪绦蛟O(shè)計的編程思想,面向?qū)ο蟪绦蛟O(shè)計的基本概念,面向?qū)ο蟪绦蛟O(shè)計的優(yōu)點。最后簡單介紹面向?qū)ο蟮能浖_發(fā)。本章內(nèi)容簡介第1章 面向?qū)ο蟪绦蛟O(shè)計本章學(xué)習(xí)目標(biāo)1. 了解傳統(tǒng)的面向過程程序設(shè)計方法的不足2. 掌握面向?qū)ο蟪绦蛟O(shè)計的編程思想3. 理解并掌握面向?qū)ο蟪绦蛟O(shè)計的基本概念4. 領(lǐng)會

2、面向?qū)ο蟪绦蛟O(shè)計的優(yōu)點5. 了解面向?qū)ο蟮能浖_發(fā)工程第1章 面向?qū)ο蟪绦蛟O(shè)計面向過程程序設(shè)計的基本思想: 功能分解、逐步求精、模塊化、結(jié)構(gòu)化。 1.1 面向過程程序設(shè)計第1章 面向?qū)ο蟪绦蛟O(shè)計【例1-1】運用面向過程程序設(shè)計方法設(shè)計一個小型的學(xué)生信息管理系統(tǒng)。該系統(tǒng)要管理的學(xué)生信息包括:學(xué)號(Num)、姓名(Name) 、性別(Sex) 、出生日期(Birthday) 、三門課成績英語(English) 、數(shù)據(jù)結(jié)構(gòu)(DataStructure) 、C+程序設(shè)計(CPlusPlus) 、總成績(Sum) 、平均成績(Average) ,學(xué)生信息表如表1-1所示。1.1 面向過程程序設(shè)計第1章

3、面向?qū)ο蟪绦蛟O(shè)計學(xué)號姓名性別出生日期英語成績數(shù)據(jù)結(jié)構(gòu)成績C+成績總成績平均成績20070202001鄧光輝男89-02-0587889026588.320070202002杜麗麗女90-09-2079807523478.020070202003姜志遠男90-11-0868847022274.020070202004張大偉男88-08-0570678221973.0表1-1 學(xué)生信息表 第1章 面向?qū)ο蟪绦蛟O(shè)計該學(xué)生信息管理系統(tǒng)要具有如下功能:(1)顯示學(xué)生信息:顯示全部學(xué)生的信息。(2)查詢學(xué)生信息:按學(xué)號或姓名查詢學(xué)生信息, 查詢結(jié)果直接顯示在屏幕上。(3)添加學(xué)生信息:對學(xué)生信息進行添加。

4、(4)修改學(xué)生信息:按學(xué)號修改學(xué)生信息。1.1 面向過程程序設(shè)計(續(xù))第1章 面向?qū)ο蟪绦蛟O(shè)計該學(xué)生信息管理系統(tǒng)要具有如下功能: (續(xù))(5)刪除學(xué)生信息:按學(xué)號刪除學(xué)生信息。(6)統(tǒng)計學(xué)生成績:統(tǒng)計每個學(xué)生的總成績和平均成績,或統(tǒng)計所有學(xué)生某一門課的總成績和平均成績。(7)學(xué)生信息排序:按學(xué)號、總成績或某一門課成績排序。(8)備份學(xué)生信息:把所有學(xué)生信息備份一份。1.1 面向過程程序設(shè)計(續(xù))實現(xiàn)該系統(tǒng)的C程序框架/*學(xué)生信息管理系統(tǒng)C語言源代碼student.c*/#include /*包含輸入/輸出頭文件*/#include /*包含字符串處理頭文件*/typedef struct /*

5、用于存放生日信息的結(jié)構(gòu)體*/ int year; int month; int day;Date;實現(xiàn)該系統(tǒng)的C程序框架(續(xù))typedef struct /*用于存放學(xué)生信息的結(jié)構(gòu)體*/char Num15; char Name10; char Sex; float English; /*英語課成績*/ float DataStructure; /*數(shù)據(jù)結(jié)構(gòu)課成績*/ float CPlusPlus; /*C+課成績*/ float Sum, Average; /*總成績、平均成績*/Student; 實現(xiàn)該系統(tǒng)的C程序框架(續(xù))/*用于存放讀入內(nèi)存中的所有學(xué)生信息的全局?jǐn)?shù)組*/Studen

6、t stud100; int count=0; /*存放實際學(xué)生人數(shù)的全局變量*/ /*各自定義函數(shù)原型聲明*/void ReadData(); /*讀取學(xué)生信息到全局?jǐn)?shù)組stud中*/void Display(); /*顯示學(xué)生信息*/void Search(); /*查詢學(xué)生信息*/void SearchNum(); /*按學(xué)號查詢學(xué)生信息*/void SearchName(); /*按姓名查詢學(xué)生信息*/void BackupData(); /*備份學(xué)生信息*/實現(xiàn)該系統(tǒng)的C程序框架(續(xù))void main() /*系統(tǒng)功能以菜單的形式提供給用戶*/ char choice; ReadD

7、ata(); for( ; ; ) /*顯示系統(tǒng)功能菜單*/ printf(* 學(xué)生信息管理系統(tǒng) *n); printf(*n); printf(“* 1顯示學(xué)生信息 *n); printf(* 2查詢學(xué)生信息 *n); 實現(xiàn)該系統(tǒng)的C程序框架(續(xù))printf(* 8備份學(xué)生信息 *n);printf(“* 0退出系統(tǒng) *n);printf(*n);printf( 請選擇要執(zhí)行的操作(08):_ n);scanf(%c, &choice);switch(choice) case 1: Display();break; case 2: Search();break; case 0: retur

8、n; default: printf(選擇錯誤!請重新選擇。n); /*switch結(jié)束*/實現(xiàn)該系統(tǒng)的C程序框架(續(xù)) /*for結(jié)束*/*main函數(shù)結(jié)束*/*各自定義函數(shù)實現(xiàn)代碼*/void ReadData()void Display()void Search() 第1章 面向?qū)ο蟪绦蛟O(shè)計從上述學(xué)生信息管理系統(tǒng)的C程序框架可以看出,運用面向過程程序設(shè)計方法所設(shè)計出來的程序,數(shù)據(jù)和操作數(shù)據(jù)的函數(shù)是分離的。所有數(shù)據(jù)都是公用的,一個函數(shù)可以使用任何一組數(shù)據(jù),而一組數(shù)據(jù)又能被多個函數(shù)所使用。用面向過程程序設(shè)計方法所設(shè)計出來的程序模型如圖1-1所示。1.1 面向過程程序設(shè)計(續(xù))圖1-1 面向過

9、程程序設(shè)計的程序模型第1章 面向?qū)ο蟪绦蛟O(shè)計面向過程的結(jié)構(gòu)化程序設(shè)計在20世紀(jì)60年代末、70年代初從一定程度上緩解了當(dāng)時的“軟件危機”,它在處理較小規(guī)模的程序時比較有效。但是,隨著人們對大規(guī)模軟件需求的增長,面向過程的結(jié)構(gòu)化程序設(shè)計逐漸顯示出它的不足,具體表現(xiàn)在:1.1 面向過程程序設(shè)計(續(xù))第1章 面向?qū)ο蟪绦蛟O(shè)計面向過程的結(jié)構(gòu)化程序設(shè)計的不足:1程序設(shè)計困難,生產(chǎn)率低下2數(shù)據(jù)不安全3程序修改困難4代碼重用程度低1.1 面向過程程序設(shè)計(續(xù))第1章 面向?qū)ο蟪绦蛟O(shè)計1.2.1 面向?qū)ο蟮木幊趟枷?具體地講,面向?qū)ο缶幊痰幕舅枷肴缦拢?1. 客觀世界中的事物都是對象(object),對象之

10、間存在一定的關(guān)系。 2用對象的屬性(attribute)描述事物的靜態(tài)特征,用對象的操作(operation)描述事物的行為(動態(tài)特征)。1.2 面向?qū)ο蟪绦蛟O(shè)計第1章 面向?qū)ο蟪绦蛟O(shè)計1.2.1 面向?qū)ο蟮木幊趟枷?(續(xù)) 3對象的屬性和操作結(jié)合為一體,形成一個相對獨立、不可分的實體。對象對外屏蔽其內(nèi)部細節(jié),只留下少量接口,以便與外界聯(lián)系。4通過抽象對對象進行分類,把具有相同屬性和相同操作的對象歸為一類,類是這些對象的抽象描述,每個對象是其所屬類的一個實例。第1章 面向?qū)ο蟪绦蛟O(shè)計1.2.1 面向?qū)ο蟮木幊趟枷?(續(xù)) 5復(fù)雜的對象可以用簡單的對象作為其構(gòu)成部分。6通過在不同程度上運用抽象的

11、原則,可以得到一般類和特殊類。特殊類繼承一般類的屬性與操作,從而簡化系統(tǒng)的構(gòu)造過程。7對象之間通過傳遞消息進行通信,以實現(xiàn)對象之間的動態(tài)聯(lián)系。8通過關(guān)聯(lián)表達類之間的靜態(tài)關(guān)系。第1章 面向?qū)ο蟪绦蛟O(shè)計1.2.2 面向?qū)ο蟮幕靖拍?(續(xù)) 1對象 可以從兩個角度來理解對象。一個角度是現(xiàn)實世界,另一個角度是我們所建立的軟件系統(tǒng)。第1章 面向?qū)ο蟪绦蛟O(shè)計1.2.2 面向?qū)ο蟮幕靖拍?(續(xù)) 1對象現(xiàn)實世界中客觀存在的任何一個事物都可以看成一個對象(object)?;蛘哒f,現(xiàn)實世界是由千千萬萬個對象組成的。對象可以是有形的,如汽車、房屋、張三等,也可以是無形的,如社會生活中的一種邏輯結(jié)構(gòu):學(xué)校、軍隊

12、,甚至一篇文章、一個圖形、一項計劃等都可視作對象。第1章 面向?qū)ο蟪绦蛟O(shè)計1.2.2 面向?qū)ο蟮幕靖拍?(續(xù)) 1對象對象可大可小。例如學(xué)校是一個對象,一個班級也是一個對象,一個學(xué)生也是一個對象。同樣,軍隊中的一個師,一個團,一個連,一個班都是對象。第1章 面向?qū)ο蟪绦蛟O(shè)計1.2.2 面向?qū)ο蟮幕靖拍?(續(xù)) 1對象任何一個對象都具有兩個要素:屬性和行為屬性用于描述客觀事物的靜態(tài)特征行為用于描述事物的動態(tài)特征。例如,一個人是一個對象,他有姓名、性別、身高、體重等屬性,有走路、講話、打手勢、學(xué)習(xí)和工作等行為。第1章 面向?qū)ο蟪绦蛟O(shè)計1.2.2 面向?qū)ο蟮幕靖拍?(續(xù)) 1對象在一個系統(tǒng)中的

13、多個對象之間通過一定的渠道相互聯(lián)系,如圖1-2所示。圖1-2 現(xiàn)實世界系統(tǒng)對象模型 屬性行為對象1 屬性行為對象2 屬性行為對象3消息 消息 消息 要使某一個對象實現(xiàn)某一個行為,應(yīng)當(dāng)向它傳遞相應(yīng)的消息。第1章 面向?qū)ο蟪绦蛟O(shè)計1.2.2 面向?qū)ο蟮幕靖拍?(續(xù)) 1對象在面向?qū)ο蟮能浖到y(tǒng)中,對象是用來描述客觀事物的一個相對獨立體,是構(gòu)成系統(tǒng)的一個基本單位。一個對象由一組屬性和對這組屬性進行操縱的一組操作組成。屬性是用來描述對象靜態(tài)特征的一個數(shù)據(jù)項,操作是用來描述對象行為的一個動作序列。第1章 面向?qū)ο蟪绦蛟O(shè)計1.2.2 面向?qū)ο蟮幕靖拍睿ɡm(xù)) 1對象在開發(fā)軟件系統(tǒng)時,首先要對現(xiàn)實世界中的

14、對象進行分析和歸納,以此為基礎(chǔ)來定義軟件系統(tǒng)中的對象。軟件系統(tǒng)中的一部分對象是對現(xiàn)實世界中的對象的抽象,但其內(nèi)容不是全盤照搬,這些對象只包含與所解決的現(xiàn)實問題有關(guān)的那些內(nèi)容;系統(tǒng)中的另一部分對象是為了構(gòu)建系統(tǒng)而設(shè)立的。第1章 面向?qū)ο蟪绦蛟O(shè)計1.2.2 面向?qū)ο蟮幕靖拍睿ɡm(xù)) 2類類是對客觀世界中具有相同屬性和行為的一組對象的抽象,它為屬于該類的全部對象提供了統(tǒng)一的抽象描述,其內(nèi)容包括屬性和操作。第1章 面向?qū)ο蟪绦蛟O(shè)計1.2.2 面向?qū)ο蟮幕靖拍?(續(xù)) 2類在尋找類時,要用到一個概念:抽象。所謂抽象,是指忽略事物的非本質(zhì)特征,只注意那些與當(dāng)前目標(biāo)有關(guān)的本質(zhì)特征,從而找出事物的共性,把具

15、有共性的事物劃分為一類,得出一個抽象的概念。例如,人可以作為一個類,它是世界上所有實體人如張三、李四、王五等的抽象,而實體人張三、李四、王五等則是人這個類的具體實例。第1章 面向?qū)ο蟪绦蛟O(shè)計1.2.2 面向?qū)ο蟮幕靖拍睿ɡm(xù)) 2類類和對象的關(guān)系可表述為: 類是對象的抽象,而對象則是類的實例,或者說是類的具體表現(xiàn)形式。第1章 面向?qū)ο蟪绦蛟O(shè)計1.2.2 面向?qū)ο蟮幕靖拍睿ɡm(xù)) 3封裝在面向?qū)ο蠓椒ㄖ?,所謂“封裝”,指兩方面的含義:一是用對象把屬性和操縱這些屬性的操作包裝起來,形成一個基本單位,各個對象之間相對獨立,互不干擾。二是將對象中某些部分對外隱蔽,即隱藏其內(nèi)部細節(jié),只留下少量接口,以便

16、與外界聯(lián)系,接收外界的消息。這種對外界隱蔽的做法稱為信息隱蔽(information hiding)。第1章 面向?qū)ο蟪绦蛟O(shè)計1.2.2 面向?qū)ο蟮幕靖拍睿ɡm(xù)) 4繼承所謂“繼承”,是指特殊類自動地?fù)碛谢螂[含地復(fù)制其一般類的全部屬性與操作。繼承具有“是一種”的含義。 汽車卡車轎車圖1-3 繼承示例 一般類(也稱為基類、父類)特殊類(也稱為派生類、子類)圖1-4 繼承的層次與抽象原則的運用汽車卡車轎車火車車輛輪船飛機運輸工具 較多地忽 略事物之 間的差別, 得到較一 般的類 較多地注 意事物之 間的差別, 得到較特 殊的類有時一個類要同時繼承兩個或兩個以上一般類中的屬性和操作,把這種允許一個特

17、殊類具有一個以上一般類的繼承模式稱作多繼承。圖1-5 多重繼承示例 銷售經(jīng)理管理人員兼職技術(shù)人員銷售人員雇員第1章 面向?qū)ο蟪绦蛟O(shè)計1.2.2 面向?qū)ο蟮幕靖拍睿ɡm(xù)) 5消息在面向?qū)ο蠓椒ㄖ校严驅(qū)ο蟀l(fā)出的操作請求稱為消息(message)。對象之間通過消息進行通信,實現(xiàn)了對象之間的動態(tài)聯(lián)系。至于消息的具體用途,它們有很多種,例如,讀取或設(shè)置對象本身的某個(些)屬性的值,請求其他對象的操作。在C+中,消息其實就是函數(shù)調(diào)用。第1章 面向?qū)ο蟪绦蛟O(shè)計1.2.2 面向?qū)ο蟮幕靖拍睿ɡm(xù)) 6關(guān)聯(lián)關(guān)聯(lián)(association)是兩個或多個類之間的一種靜態(tài)關(guān)系。教師指導(dǎo)畢業(yè)論文學(xué)生1圖1-6 關(guān)聯(lián)示例

18、 第1章 面向?qū)ο蟪绦蛟O(shè)計1.2.2 面向?qū)ο蟮幕靖拍睿ɡm(xù)) 7組合組合描述的是類與類之間的整體與部分的關(guān)系。例如,汽車與發(fā)動機之間的關(guān)系,計算機與主板間的關(guān)系。組合是具有“整體部分”關(guān)系語義的關(guān)聯(lián),也就是說,組合是關(guān)聯(lián)的一種,只是它還具有明顯的“整體部分”含義。第1章 面向?qū)ο蟪绦蛟O(shè)計1.2.2 面向?qū)ο蟮幕靖拍睿ɡm(xù)) 8多態(tài)性如果有幾個相似而不完全相同的對象,有時人們要求在向它們發(fā)出同一個消息時,它們的反應(yīng)各不相同,分別執(zhí)行不同的操作,這種情況就是多態(tài)現(xiàn)象。在面向?qū)ο蠓椒ㄖ?,所謂多態(tài)性(polymorphism)是指由繼承而產(chǎn)生的相關(guān)而不同的類,其對象對同一消息會作出不同的響應(yīng)。多態(tài)性

19、是面向?qū)ο蟪绦蛟O(shè)計的一個重要特征,使用它能增加程序的靈活性。第1章 面向?qū)ο蟪绦蛟O(shè)計1.2.3 面向?qū)ο蟪绦蛟O(shè)計的優(yōu)點1從認(rèn)識論的角度看,面向?qū)ο蟪绦蛟O(shè)計改變了軟件開發(fā)的方式 面向?qū)ο蟪绦蛟O(shè)計強調(diào)從對象出發(fā)認(rèn)識問題域 ,對象對應(yīng)著問題域中的事物,其屬性和操作分別刻畫了事物的靜態(tài)特征和動態(tài)行為,對象之間的繼承、組合、關(guān)聯(lián)和依賴關(guān)系如實地表達了問題域中事物實際存在的各種關(guān)系。第1章 面向?qū)ο蟪绦蛟O(shè)計1.2.3 面向?qū)ο蟪绦蛟O(shè)計的優(yōu)點(續(xù)) 因此,無論是軟件系統(tǒng)的構(gòu)成成分,還是通過這些成分之間的關(guān)系而體現(xiàn)的軟件系統(tǒng)結(jié)構(gòu),都可直接地映射到問題域。軟件開發(fā)人員能夠利用人類認(rèn)識事物所采用的一般思維方式來進

20、行軟件開發(fā)。數(shù)據(jù)成員成員函數(shù)對象1 對象2 對象3 消息 消息 消息 數(shù)據(jù)成員成員函數(shù)數(shù)據(jù)成員成員函數(shù)圖1-7 面向?qū)ο蟮能浖到y(tǒng)分析模型 1.2.3 面向?qū)ο蟪绦蛟O(shè)計 的優(yōu)點(續(xù))第1章 面向?qū)ο蟪绦蛟O(shè)計1.2.3 面向?qū)ο蟪绦蛟O(shè)計的優(yōu)點(續(xù)) 在面向過程的結(jié)構(gòu)化程序設(shè)計中,人們常使用這樣的公式來表述程序: 程序 = 算法 + 數(shù)據(jù)結(jié)構(gòu) 而面向?qū)ο蟪绦蛟O(shè)計則把算法和數(shù)據(jù)結(jié)構(gòu)封裝在對象中。在面向?qū)ο蟪绦蛟O(shè)計,我們可以這樣來表述程序: 對象 = 算法 + 數(shù)據(jù)結(jié)構(gòu) 程序 =(對象 + 對象 + 對象 + )+ 消息 或 程序 = 對象s + 消息第1章 面向?qū)ο蟪绦蛟O(shè)計1.2.3 面向?qū)ο蟪绦蛟O(shè)

21、計的優(yōu)點(續(xù))2面向?qū)ο蟪绦蛑械臄?shù)據(jù)的安全性高 面向?qū)ο蟪绦蛑械臄?shù)據(jù)及對數(shù)據(jù)的操作捆綁在一起,被封裝在不同的對象中。對象對外隱蔽其內(nèi)部細節(jié),只留下少量的接口,以便與外界聯(lián)系。外界只能通過對象提供的對外接口操作對象中的數(shù)據(jù),這可以有效保護數(shù)據(jù)的安全。第1章 面向?qū)ο蟪绦蛟O(shè)計1.2.3 面向?qū)ο蟪绦蛟O(shè)計的優(yōu)點(續(xù))3面向?qū)ο蟪绦蛟O(shè)計有助于軟件的維護與復(fù)用 某類對象數(shù)據(jù)結(jié)構(gòu)的改變只會引起該類對象操作代碼的改變,只要其對外提供的接口不發(fā)生變化,程序的其余部分就不需要做任何改動,從而把程序代碼的修改維護局限在一個很小的范圍內(nèi)。這就對用戶需求的變化有較強的適應(yīng)性。第1章 面向?qū)ο蟪绦蛟O(shè)計1.2.3 面向?qū)?/p>

22、象程序設(shè)計的優(yōu)點(續(xù))3面向?qū)ο蟪绦蛟O(shè)計有助于軟件的維護與復(fù)用 面向?qū)ο蟪绦蛟O(shè)計中類的繼承機制有效解決了代碼復(fù)用的問題。在設(shè)計新類時,可通過繼承引用已有類的屬性和操作,并可在已有類的基礎(chǔ)上增加新的數(shù)據(jù)結(jié)構(gòu)和操作,延伸和擴充已有類的功能,這種延伸和擴充一點不影響原有類的使用。人們可以像使用集成電路(IC)構(gòu)造計算機硬件那樣,比較方便地重用對象類來構(gòu)造軟件系統(tǒng)。第1章 面向?qū)ο蟪绦蛟O(shè)計面向?qū)ο蟮能浖こ贪ㄒ韵聨讉€階段:1面向?qū)ο蠓治觯╫bject oriented analysis, OOA)2面向?qū)ο笤O(shè)計(object oriented design, OOD)3面向?qū)ο缶幊蹋╫bject o

23、riented programming, OOP)4面向?qū)ο鬁y試(object oriented test,OOT)5面向?qū)ο缶S護(object oriented soft maintenance,OOSM)1.3 面向?qū)ο蟮能浖_發(fā)第1章 面向?qū)ο蟪绦蛟O(shè)計1面向?qū)ο蠓治?對系統(tǒng)進行面向?qū)ο蠓治觯R別出系統(tǒng)中的對象,定義對象的屬性和操作,并抽象出對象類。1.4 學(xué)生信息管理系統(tǒng)的面向?qū)ο蠓治雠c設(shè)計第1章 面向?qū)ο蟪绦蛟O(shè)計(1)學(xué)生對象與學(xué)生類 考慮問題域,識別系統(tǒng)中的對象與類。 該系統(tǒng)是一個學(xué)生信息管理系統(tǒng),每一個被管理的學(xué)生都是該系統(tǒng)中的一個對象,所有學(xué)生對象都具有相同的屬性:學(xué)號、姓名、性

24、別、出生日期、英語成績、數(shù)據(jù)結(jié)構(gòu)成績、C+程序設(shè)計成績、總成績、平均成績,相同的操作:計算總成績、計算平均成績。對所有學(xué)生對象的抽象,形成一個學(xué)生類。第1章 面向?qū)ο蟪绦蛟O(shè)計 + 計算總成績 + 計算平均成績 - 學(xué)號 - 姓名 - - 平均成績 學(xué)生類 + 顯示學(xué)生信息 + 按學(xué)號查詢學(xué)生信息 + 按姓名查詢學(xué)生信息 + 打開文件 + 寫文件 + 新建文件“順序表”容器類1 - 學(xué)生數(shù)組 - 學(xué)生總?cè)藬?shù)圖1-8 學(xué)生信息管理系統(tǒng)的類圖第1章 面向?qū)ο蟪绦蛟O(shè)計(2)順序表對象與順序表類 考慮系統(tǒng)責(zé)任,把系統(tǒng)責(zé)任所要求的每一項功能都落實到某個或某些對象上。該系統(tǒng)要實現(xiàn)對所有需要管理的學(xué)生對象信息的輸入(從鍵盤輸入)、輸出(輸出到屏幕)、存儲(存儲到外存)、讀取(從外存讀?。?、增加、刪除、修改、查詢、排序、統(tǒng)計等操作。假定學(xué)生對象信息在外存中以文件的形式存放,在內(nèi)存中以順序表的形式存放。我們把順序表看作系統(tǒng)中的一個對象,并形象地稱它為“容器”。第1章 面向?qū)ο蟪绦蛟O(shè)計(2)順序表對象與順序表類 順序表對象作為用來存儲學(xué)生對象的容器,其數(shù)據(jù)結(jié)構(gòu)可以選擇最簡單的數(shù)組,因此,順序表對象應(yīng)該具有的屬性:以學(xué)生對象為元素的對象數(shù)組、學(xué)生總?cè)藬?shù)。第1章 面向?qū)ο蟪绦蛟O(shè)計(2)順序表對象與順序表類 要對學(xué)

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論