課件軟工oop14-1面向?qū)ο蟪绦蛟O(shè)計_第1頁
課件軟工oop14-1面向?qū)ο蟪绦蛟O(shè)計_第2頁
課件軟工oop14-1面向?qū)ο蟪绦蛟O(shè)計_第3頁
課件軟工oop14-1面向?qū)ο蟪绦蛟O(shè)計_第4頁
課件軟工oop14-1面向?qū)ο蟪绦蛟O(shè)計_第5頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、面向?qū)ο蟪绦蛟O(shè)計(面向?qū)ο蟪绦蛟O(shè)計(C+)北京工業(yè)大學(xué)軟件學(xué)院北京工業(yè)大學(xué)軟件學(xué)院廖湖聲廖湖聲 教案網(wǎng)址:教案網(wǎng)址:172.21.14.55/liao參考書:陳維興編著:參考書:陳維興編著:C+面向?qū)γ嫦驅(qū)ο蟪绦蛟O(shè)計(第三版)清華大學(xué)出象程序設(shè)計(第三版)清華大學(xué)出版社版社一一. 引言引言軟件發(fā)展的現(xiàn)狀:軟件發(fā)展的現(xiàn)狀:大規(guī)模,復(fù)雜性,用戶友好性,大規(guī)模,復(fù)雜性,用戶友好性, 可維護性,可重用性可維護性,可重用性程序設(shè)計方法的發(fā)展:程序設(shè)計方法的發(fā)展:過程型程序設(shè)計過程型程序設(shè)計結(jié)構(gòu)化程序設(shè)計結(jié)構(gòu)化程序設(shè)計面向?qū)ο蟪绦蛟O(shè)計面向?qū)ο蟪绦蛟O(shè)計過程型程序設(shè)計特征逐步順序執(zhí)行的指令序列支持語言(早期

2、FORTRAN、BASIC) IF(FFCOM.EQ.0.0) GO TO 5030 IF(REGENT.EQ.0.0) GO TO 40 WRITE(6,1150) RGWFR GO TO 5040 RGWFR=0.0 WRITE(6,1160) RGWFR50 WRITE(6,1170)結(jié)構(gòu)化程序結(jié)構(gòu)三種控制結(jié)構(gòu)三種控制結(jié)構(gòu)順序順序選擇(選擇(if else)循環(huán)(循環(huán)(while)程序結(jié)構(gòu)模塊化程序結(jié)構(gòu)模塊化單入口單出口單入口單出口C語言等支持語言等支持結(jié)構(gòu)化程序設(shè)計方法功能分解,逐步求精功能分解,逐步求精從系統(tǒng)到子系統(tǒng)、到模塊、到函數(shù)從系統(tǒng)到子系統(tǒng)、到模塊、到函數(shù)模塊化、局部化模塊化、

3、局部化例:學(xué)生管理信息系統(tǒng)例:學(xué)生管理信息系統(tǒng)學(xué)籍管理學(xué)籍管理入學(xué)、畢業(yè)。入學(xué)、畢業(yè)。課程管理課程管理選課、成績。選課、成績。面向?qū)ο蠓椒ɑ居^點基本觀點各種對象組成系統(tǒng)(客觀世界)各種對象組成系統(tǒng)(客觀世界)各種對象有內(nèi)部狀態(tài)和運動規(guī)律各種對象有內(nèi)部狀態(tài)和運動規(guī)律系統(tǒng)工作就是對象的相互作用系統(tǒng)工作就是對象的相互作用課堂教學(xué)(系統(tǒng))課堂教學(xué)(系統(tǒng))教師、學(xué)生、投影儀、計算機、白教師、學(xué)生、投影儀、計算機、白板。板。什么是對象獨立的實體、事物、組織。獨立的實體、事物、組織。具有特定的屬性和行為具有特定的屬性和行為例:學(xué)生例:學(xué)生屬性:姓名、學(xué)號、出生年月日。屬性:姓名、學(xué)號、出生年月日。行為:上

4、課、運動、用餐。行為:上課、運動、用餐。例:選舉例:選舉屬性:候選人、參選人、票數(shù)屬性:候選人、參選人、票數(shù)行為:投票、公布結(jié)果行為:投票、公布結(jié)果軟件系統(tǒng)(信息系統(tǒng))軟件系統(tǒng)(信息系統(tǒng))對象:抽象的實體、事物對象:抽象的實體、事物屬性:數(shù)據(jù)信息屬性:數(shù)據(jù)信息行為:操作方法(函數(shù)過程)行為:操作方法(函數(shù)過程)主要特征主要特征對象的屬性和行為是相關(guān)關(guān)聯(lián)的,不可對象的屬性和行為是相關(guān)關(guān)聯(lián)的,不可分割分割例:學(xué)生的學(xué)號和上課是相關(guān)關(guān)聯(lián)例:學(xué)生的學(xué)號和上課是相關(guān)關(guān)聯(lián)例:字典中的單詞和查找功能是相關(guān)的例:字典中的單詞和查找功能是相關(guān)的例:電視機的屏幕和播放功能是相關(guān)的例:電視機的屏幕和播放功能是相關(guān)的

5、例:瀏覽器的操作按鈕和導(dǎo)航功能相關(guān)例:瀏覽器的操作按鈕和導(dǎo)航功能相關(guān)程序設(shè)計語言的支持程序設(shè)計語言的支持C語言語言結(jié)構(gòu)體可表示對象的多個屬性結(jié)構(gòu)體可表示對象的多個屬性函數(shù)是獨立的,不屬于任何結(jié)構(gòu)體函數(shù)是獨立的,不屬于任何結(jié)構(gòu)體面向?qū)ο蟪绦蛟O(shè)計語言(面向?qū)ο蟪绦蛟O(shè)計語言(C+、Java)將對象作為一個整體來描述將對象作為一個整體來描述對象類:描述某種對象的屬性和行為對象類:描述某種對象的屬性和行為對象屬性:用成員變量表示對象屬性:用成員變量表示對象行為:用成員函數(shù)表示對象行為:用成員函數(shù)表示對象:用變量表示對象:用變量表示C+的對象表示例有理數(shù)對象類:有理數(shù)對象類:描述有理數(shù)的屬性和運算行為描述

6、有理數(shù)的屬性和運算行為class CRational / 有理數(shù)類有理數(shù)類 int numr; / 分子分子 int deno; / 分母分母public: CRational( int n, int d );/ 構(gòu)構(gòu)造函數(shù)造函數(shù) void Assign( int n, int d );/ 賦賦值方法值方法 int Equal( CRational r );/ 比比較方法較方法;C+程序例#include using namespace std;#include “CRational.h”main( )int a, b;cin a b;/輸入輸入2整數(shù)整數(shù)/構(gòu)造構(gòu)造2個有理數(shù)個有理數(shù) 3/5和

7、和a/bCRational r1(3, 5), r2(a,b);/如果如果3/5 = a/b 則則if( r1.Equal( r2 ) )r1.Assign(5,9); / 將將5/9賦值給賦值給r1C+C+語言現(xiàn)象語言現(xiàn)象對象類是一種類型對象類是一種類型聲明變量(對象實例)聲明變量(對象實例)CRational r1(3, 5) ;用構(gòu)造函數(shù)初始化(傳遞參數(shù))用構(gòu)造函數(shù)初始化(傳遞參數(shù))成員函數(shù)的調(diào)用成員函數(shù)的調(diào)用r1.Equal( r2 );r1.Assign( 5, 9 );向有理數(shù)對象向有理數(shù)對象r1發(fā)送消息(傳遞參數(shù))發(fā)送消息(傳遞參數(shù))程序設(shè)計程序設(shè)計 = 類設(shè)計類設(shè)計 + mai

8、n函數(shù)設(shè)計函數(shù)設(shè)計 + 類成員函數(shù)設(shè)類成員函數(shù)設(shè)計計學(xué)習(xí)內(nèi)容和方法學(xué)習(xí)內(nèi)容和方法A) 內(nèi)容內(nèi)容 C+ 語言對語言對 C 語言的擴充語言的擴充 對象特征:封裝性、繼承性和多態(tài)性對象特征:封裝性、繼承性和多態(tài)性 軟件的設(shè)計方法軟件的設(shè)計方法 課程設(shè)計課程設(shè)計B) 方法方法 實例教學(xué)實例教學(xué)-語言功能語言功能, 編程技巧編程技巧 上機實習(xí)上機實習(xí)-理解內(nèi)容理解內(nèi)容, 運用能力運用能力 編程總結(jié)編程總結(jié)-設(shè)計方法設(shè)計方法, 抽象能力抽象能力 應(yīng)用設(shè)計應(yīng)用設(shè)計-軟件設(shè)計軟件設(shè)計, 綜合能力綜合能力二、對象與類的設(shè)計二、對象與類的設(shè)計C語言是語言是C+語言的子集語言的子集支持結(jié)構(gòu)化程序設(shè)計支持結(jié)構(gòu)化程序設(shè)

9、計支持面向?qū)ο蟪绦蛟O(shè)計支持面向?qū)ο蟪绦蛟O(shè)計功能繁雜、需要掌握重點功能繁雜、需要掌握重點四種對象類四種對象類實體型:有理數(shù)、窗口、學(xué)生、車輛實體型:有理數(shù)、窗口、學(xué)生、車輛管理型:訂單管理、成績管理管理型:訂單管理、成績管理加工型:查詢過程、計算過程加工型:查詢過程、計算過程事務(wù)型:投標過程、監(jiān)控過程、游戲控事務(wù)型:投標過程、監(jiān)控過程、游戲控制制C+程序組織結(jié)構(gòu)C+程序程序 = main函數(shù)函數(shù) + 若干類若干類推薦的組織結(jié)構(gòu)推薦的組織結(jié)構(gòu)main函數(shù)(函數(shù)(1個個.cpp文件)文件)負責(zé)輸入輸出、測試邏輯負責(zé)輸入輸出、測試邏輯類定義類定義class每個類定義配置每個類定義配置1個個.h文件文件

10、類實現(xiàn)(每個成員函數(shù)的實現(xiàn)代碼)類實現(xiàn)(每個成員函數(shù)的實現(xiàn)代碼)每個類的程序?qū)崿F(xiàn)配置每個類的程序?qū)崿F(xiàn)配置1個個.cpp文件文件2.1 實體型對象實體型對象典型的實體典型的實體有理數(shù)、矩陣、一元二次方法有理數(shù)、矩陣、一元二次方法窗口、滾動條、菜單窗口、滾動條、菜單學(xué)生信息、圖書信息、航班信息、駕駛學(xué)生信息、圖書信息、航班信息、駕駛證證屬性:屬性:數(shù)據(jù)、狀態(tài)、特征數(shù)據(jù)、狀態(tài)、特征方法:方法:設(shè)置屬性(設(shè)置屬性(Set)、獲得屬性()、獲得屬性(Get)特定的計算特定的計算例例2-1:有理數(shù)計算程序有理數(shù)計算程序設(shè)計思想設(shè)計思想設(shè)置有理數(shù)類設(shè)置有理數(shù)類 CRational自身獨立性(計算規(guī)則)自身獨

11、立性(計算規(guī)則)提供給使用者(被共享)提供給使用者(被共享)類設(shè)計類設(shè)計內(nèi)部:數(shù)據(jù)結(jié)構(gòu)、計算邏輯內(nèi)部:數(shù)據(jù)結(jié)構(gòu)、計算邏輯外部:使用需求外部:使用需求C+提供的封裝性(不允許直接訪問內(nèi)提供的封裝性(不允許直接訪問內(nèi)部)部)有理數(shù)類有理數(shù)類(CRational.h)class CRational / 有理數(shù)類有理數(shù)類private: int numr, deno; / 分子分母分子分母 void simplfy( );/ 約分計算約分計算public: CRational( int n, int d );/ 構(gòu)造函數(shù)構(gòu)造函數(shù) void Assign( int n, int d );/ 賦值方法賦值

12、方法 int Equal( CRational &r );/ 比較方法比較方法 void Result( int &n, int &d );/ 取結(jié)果取結(jié)果;類設(shè)計的基本方法類設(shè)計的基本方法按照外部需求設(shè)置公有成員按照外部需求設(shè)置公有成員(public)有理數(shù)的構(gòu)造、賦值、比較計算需求有理數(shù)的構(gòu)造、賦值、比較計算需求對于其他計算,可增設(shè)成員函數(shù)對于其他計算,可增設(shè)成員函數(shù)根據(jù)計算需求,設(shè)置輸入輸出類型根據(jù)計算需求,設(shè)置輸入輸出類型完備的外部接口完備的外部接口保證類的獨立性保證類的獨立性不包含輸入輸出(單獨設(shè)置取結(jié)果函數(shù)不包含輸入輸出(單獨設(shè)置取結(jié)果函數(shù))外部使用者是外部使用者是main函數(shù),或

13、其他類函數(shù),或其他類類設(shè)計的基本方法(續(xù))類設(shè)計的基本方法(續(xù))按照內(nèi)部需求設(shè)置私有成員按照內(nèi)部需求設(shè)置私有成員(private)數(shù)據(jù)保存需求,分子分母數(shù)據(jù)保存需求,分子分母內(nèi)部計算需求,約分計算(自身責(zé)任)內(nèi)部計算需求,約分計算(自身責(zé)任)封裝性的體現(xiàn)(封裝性的體現(xiàn)(C+編譯保證)編譯保證)不允許外部計算訪問內(nèi)部數(shù)據(jù)和計算不允許外部計算訪問內(nèi)部數(shù)據(jù)和計算其他語言現(xiàn)象其他語言現(xiàn)象參數(shù)的引用類型參數(shù)的引用類型int &n,CRational &r代替變量實例(作為別名)代替變量實例(作為別名)可雙向傳遞(作為函數(shù)的輸入輸出)可雙向傳遞(作為函數(shù)的輸入輸出)有理數(shù)類的實現(xiàn)CRational.cpp

14、# include # include “CRational.h”CRational:CRational( int n, int d ) /構(gòu)造函數(shù)構(gòu)造函數(shù)Assign( n, d );/調(diào)用本類函數(shù)調(diào)用本類函數(shù)/ 變量聲明后的初始化變量聲明后的初始化void CRational:Assign( int n, int d ) numr = n;deno = d;simplfy( );/賦值后約分賦值后約分/可訪問私有部分可訪問私有部分指定函數(shù)所屬的類名指定函數(shù)所屬的類名有理數(shù)類的實現(xiàn)(續(xù))有理數(shù)類的實現(xiàn)(續(xù))int CRational:Equal( CRational &r ) return

15、numr=r.numr & deno=r.deno;void CRational:Result( int &n, int &d ) n = numr;/ 返回分子返回分子 d = deno;/ 返回分母返回分母/引用類型可用于返回數(shù)據(jù)引用類型可用于返回數(shù)據(jù)/C+程序設(shè)計盡量用引用代替指針(高效安全)程序設(shè)計盡量用引用代替指針(高效安全)本類私有成員的引用本類私有成員的引用最大公約數(shù)的算法gcd(n,d)=gcd(d%n,n)1.設(shè)設(shè) d n2.while n不能整除不能整除d do 3. d n4. n d除以除以n的余數(shù)的余數(shù)5.end of while6.gcd n 約分計算void CR

16、ational:Simplify( void ) / 約分約分 int n = abs(numr);/ 絕對值絕對值 int d = abs(deno); if( n d )/ 交換交換 int t = n; n = d; d = t; / 保證保證 n = d while( d %n != 0 ) / 求最大公約數(shù)求最大公約數(shù)n int d1 = d; d = n; / gcd(n,d)=gcd(d%n,n) n = d1 % n; numr /= n;deno /= n;應(yīng)用案例應(yīng)用案例需求說明需求說明輸入有理數(shù)輸入有理數(shù)a/b,如果如果a/b等于等于3/5,則計算,則計算(a+2)/(b

17、-2)并輸并輸出出否則輸出否則輸出a/b責(zé)任分析責(zé)任分析main負責(zé)輸入、控制邏輯、輸出負責(zé)輸入、控制邏輯、輸出CRational負責(zé)有理數(shù)的計算負責(zé)有理數(shù)的計算程序?qū)崿F(xiàn)(test2_1.cpp)# include / 輸入輸出流輸入輸出流# include CRational.husing namespace std;/ 命名空間命名空間main( )int a, b;cin a b;CRational r1(3, 5), r2(a, b);if( r1.Equal( r2 ) )r2.Assign(a+2, b-2);r2.Result( a, b );cout result = a /

18、(各種類型數(shù)據(jù))(各種類型數(shù)據(jù))輸出流類和標準輸出流對象(控制臺)輸出流類和標準輸出流對象(控制臺)OStream cout;輸出運算符輸出運算符 =size),需擴展空間(算法),需擴展空間(算法)申請申請 size + 16 個整數(shù)的空間個整數(shù)的空間將原空間數(shù)據(jù)復(fù)制到新空間將原空間數(shù)據(jù)復(fù)制到新空間釋放原空間釋放原空間調(diào)整調(diào)整 size 和和 elems 的取值的取值添加元素的函數(shù)實現(xiàn)添加元素的函數(shù)實現(xiàn)CIntSet:Add( int x ) if( Member(x) return; if( used = size ) int *tmp = new int size += 16 ; / 申

19、請申請memcpy(tmp, elems, size*sizeof(int) ); delete elems;/ 釋放數(shù)組空間釋放數(shù)組空間elems = tmp;/ 保持首元素地址保持首元素地址 elems used+ = x;/ 添加元素添加元素C+功能點功能點1.構(gòu)造函數(shù)構(gòu)造函數(shù)2.與類同名,用于初始化與類同名,用于初始化3.生成對象實例時被調(diào)用(變量聲明生成對象實例時被調(diào)用(變量聲明/new)4.析構(gòu)函數(shù)析構(gòu)函數(shù)5.類名前加類名前加6.撤銷對象實例時被調(diào)用(撤銷對象實例時被調(diào)用(delete、出作用域、出作用域)7.空間的動態(tài)生成空間的動態(tài)生成8.new 類名類名/類型名類型名( 初值)

20、初值)9.new 類名類名/類型名類型名數(shù)組大小數(shù)組大小10.空間的動態(tài)釋放空間的動態(tài)釋放11.delete 空間首地址空間首地址12.delete 數(shù)組空間首地址數(shù)組空間首地址C) 整數(shù)集合的應(yīng)用例整數(shù)集合的應(yīng)用例應(yīng)用需求應(yīng)用需求輸入兩組整數(shù)輸入兩組整數(shù), 求它們的交集求它們的交集格式輸入:逗號分割整數(shù)格式輸入:逗號分割整數(shù), 分號分割組分號分割組算法算法讀入一組整數(shù)讀入一組整數(shù) 集合集合 set1依次讀入下一組整數(shù)依次讀入下一組整數(shù) x如果如果 x 是是 set1 成員,則保存在集合成員,則保存在集合set2否則,繼續(xù)處理下一整數(shù)否則,繼續(xù)處理下一整數(shù)輸出集合輸出集合set2程序?qū)崿F(xiàn)#in

21、clude #include “CIntSet.h“using namespace std;main( ) char c; CIntSet set1; do / 第一組第一組 - set1 int x; cin x c; set1.Add(x); while( c = , ); CIntSet *set2 = new CIntSet; do int x; cin x c; if( set1.Member(x) ) set2-Add( x ); while( c = , ); for( int i=0; iNumber( ); i+ )cout GetAt( i ) 成員函數(shù)名(參數(shù)表)成員函數(shù)

22、名(參數(shù)表)12.成員變量的引用成員變量的引用13.和結(jié)構(gòu)元素的描述方法相同和結(jié)構(gòu)元素的描述方法相同設(shè)計方法小結(jié)設(shè)計方法小結(jié)1.類型和類的關(guān)系類型和類的關(guān)系2.數(shù)據(jù)類型是一種對象類,行為是規(guī)定好的數(shù)據(jù)類型是一種對象類,行為是規(guī)定好的3.類是一種類型,可以自定義行為類是一種類型,可以自定義行為4.對象類的設(shè)計對象類的設(shè)計5.面向使用者,滿足外部使用的需求面向使用者,滿足外部使用的需求6.表現(xiàn)為完備的公有函數(shù)的接口設(shè)計表現(xiàn)為完備的公有函數(shù)的接口設(shè)計7.無法滿足時無法滿足時, 設(shè)計新的成員函數(shù)設(shè)計新的成員函數(shù)8.對象類的實現(xiàn)對象類的實現(xiàn)9.數(shù)據(jù)結(jié)構(gòu)描述內(nèi)部數(shù)據(jù)組織數(shù)據(jù)結(jié)構(gòu)描述內(nèi)部數(shù)據(jù)組織10.按照實

23、現(xiàn)需求,設(shè)計數(shù)據(jù)結(jié)構(gòu)和算法按照實現(xiàn)需求,設(shè)計數(shù)據(jù)結(jié)構(gòu)和算法11.按照算法,編制程序代碼按照算法,編制程序代碼程序設(shè)計練習(xí)題(程序設(shè)計練習(xí)題(2.2)1.改造程序例改造程序例 2.22.補充整數(shù)集合類的方法補充整數(shù)集合類的方法menber和和Equal3.改造應(yīng)用程序,求改造應(yīng)用程序,求3個集合的交集個集合的交集4.設(shè)計設(shè)計1個雙精度數(shù)的動態(tài)數(shù)組個雙精度數(shù)的動態(tài)數(shù)組5.支持按照下標的數(shù)組元素訪問支持按照下標的數(shù)組元素訪問6.提供數(shù)組大小自動擴展功能提供數(shù)組大小自動擴展功能7.提供數(shù)據(jù)求和、求個數(shù)的功能提供數(shù)據(jù)求和、求個數(shù)的功能8.設(shè)計設(shè)計1個應(yīng)用程序,輸入個應(yīng)用程序,輸入2組雙精度數(shù),組雙精度數(shù)

24、,完成元素之間的乘法,輸出結(jié)果矩陣完成元素之間的乘法,輸出結(jié)果矩陣9.要求上機編碼、調(diào)試和運行要求上機編碼、調(diào)試和運行2.3 運算符重載C+語言的特殊功能語言的特殊功能提供擴展運算符定義的功能提供擴展運算符定義的功能C+的運算符的運算符四則運算、關(guān)系運算、邏輯運算四則運算、關(guān)系運算、邏輯運算賦值、自反、賦值、自反、 、( )定義方法定義方法作為類的成員函數(shù)作為類的成員函數(shù)作為全局函數(shù)作為全局函數(shù)例2-3 捐款統(tǒng)計表捐款程序的需求捐款程序的需求接受實名的捐款接受實名的捐款提供登記、查詢、統(tǒng)計、打印功能提供登記、查詢、統(tǒng)計、打印功能同一人可能多次捐款同一人可能多次捐款設(shè)計思路設(shè)計思路捐款管理功能包

25、括登記、統(tǒng)計、查詢;捐款管理功能包括登記、統(tǒng)計、查詢;是管理型對象(捐款統(tǒng)計表)是管理型對象(捐款統(tǒng)計表)主程序負責(zé)輸入、輸出(打印)主程序負責(zé)輸入、輸出(打印)捐款統(tǒng)計表類的外部接口捐款統(tǒng)計表類的外部接口class Table / 滿足所有的使用需求滿足所有的使用需求public:Table( void );Tabal( void );void Add( string name, int num ); / 添加添加int Sum( void );int Lookup( string name ); / 查找查找void Output( ostream &out );/ 將表格輸出到輸出流將表

26、格輸出到輸出流out Table的內(nèi)部組織的內(nèi)部組織數(shù)據(jù)維護需求:適應(yīng)人數(shù)不定的情況數(shù)據(jù)維護需求:適應(yīng)人數(shù)不定的情況class Table struct node /采用鏈表采用鏈表string name;int number;node *next; *head;/表頭指針表頭指針 public:;方法的實現(xiàn)方法的實現(xiàn)# include # include # include “Table.h“using namespace std;Table:Table( void ) head = NULL;Table:Table( void ) while( head != NULL ) node *q

27、 = head;head = head-next;delete q;/ 釋放所有節(jié)點釋放所有節(jié)點Add的實現(xiàn)void Table:Add( string name, int number ) node *p; for( p=head; p!=NULL; p=p-next ) if( p-name = name ) / 再次捐款處理再次捐款處理 p-number += number;return; p = new node;/在表頭添加新節(jié)點在表頭添加新節(jié)點 p-next = head; head = p; head-name = name; head-number = number;主程序的算

28、法設(shè)計主程序的算法設(shè)計while( 1 ) name 讀入捐款人姓名讀入捐款人姓名 if name=endbreak;number 捐款數(shù)量捐款數(shù)量將將name和和number登記到統(tǒng)計表登記到統(tǒng)計表tablewhile( 1 ) name 讀入姓名讀入姓名If name=sumthen統(tǒng)計捐款額輸出,并輸出整個表格統(tǒng)計捐款額輸出,并輸出整個表格return從從table找出他的捐款數(shù)量,并輸出找出他的捐款數(shù)量,并輸出主程序的實現(xiàn)主程序的實現(xiàn)#include #include #include “Table.h”using namespace std;main( ) Table table;/

29、 統(tǒng)計表統(tǒng)計表 string name;int number; while( 1 ) cin name;/ 姓名姓名if( name=end )break; cin number; / 捐款數(shù)量捐款數(shù)量table.add( name, number ); 主程序(續(xù))主程序(續(xù))while( 1 ) cin name;if(name=“sum“) cout table.sum( ) n;table.Output(cout);/改為改為 cout table; else cout table.Lookup( name );/cout table name ;/利用運算符重載可簡化程序的描述利用運算符重載可簡化程序的描述重載重載 重載重載使用運算符重載的Tableclass Table / 滿足所有的使用需求滿足所有的使用需求public: Table( void ); Tabal( void ); void Add( string name, int num ); / 添加添加 int Sum(

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論