資源描述:
《《構造數(shù)據(jù)類型》ppt課件》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在教育資源-天天文庫。
1、第五章程序的數(shù)據(jù)描述(II)--構造數(shù)據(jù)類型主講人:侯海良通信與控制工程系本章內(nèi)容構造數(shù)據(jù)類型概述枚舉類型數(shù)組類型結構與聯(lián)合類型指針類型(參數(shù)傳遞和動態(tài)數(shù)據(jù)結構)引用類型構造數(shù)據(jù)類型有些數(shù)據(jù)不適合用基本數(shù)據(jù)類型來表示。如:矩陣、向量語言往往提供了由基本數(shù)據(jù)類型來構造新類型的手段。構造數(shù)據(jù)類型屬于用戶自定義數(shù)據(jù)類型。枚舉類型數(shù)組類型結構/聯(lián)合類型指針/引用類型枚舉類型如何描述一個星期的每一天這樣的數(shù)據(jù)?如果用int來描述,將會面臨:1表示什么意思?星期天用什么整數(shù)表示?0還是7?如果用0~6表示一個星期的每一天,則對于一個取值為一個星期某一天的int型變量day,如何防止下面的邏輯錯誤:day=
2、10day=day*2在C++中用枚舉類型來解決上面的問題。枚舉類型的定義枚舉類型是由用戶自定義的一種簡單數(shù)據(jù)類型。在定義一個枚舉類型時,需要列出其值集中的每個值(枚舉值)。枚舉類型的定義格式為:enum<枚舉類型名>{<枚舉值表>};<枚舉值表>為用逗號隔開的若干個標識符。例如:enumDay{SUN,MON,TUE,WED,THU,FRI,SAT};enumColor{RED,GREEN,BLUE};enumMonth{JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC};每一個枚舉值都對應著一個整數(shù)。默認情況下,第一個枚舉值對應常量值0,其它的
3、值為前一個值加1。在定義枚舉類型時,也可給枚舉值指定對應的整數(shù)值。例如:enumDay{SUN=7,MON=1,TUE,WED,THU,FRI,SAT};TUE:2,...bool類型可看成是C++語言提供的一個預定義的枚舉類型:enumbool{false,true};枚舉類型變量的定義格式為:(1)<枚舉類型名><枚舉類型變量名>;例:enumDay{SUN,MON,TUE,WED,THU,FRI,SAT};Dayd1;(2)enum<枚舉類型名><枚舉類型變量名>例:enumDay{SUN,MON,TUE,WED,THU,FRI,SAT};enumDayd1,d2;//C語言風格(3)e
4、num<枚舉類型名>{<枚舉值表>}<枚舉類型變量名>;例:enumDay{SUN,MON,TUE,WED,THU,FRI,SAT}d1,d2;(4)enum{<枚舉值表>}<枚舉類型變量名>;例:enum{SUN,MON,TUE,WED,THU,FRI,SAT}d1,d2;注意:第四種方法無法再定義變量,除非再一次重聲明枚舉類型枚舉類型的運算賦值一個枚舉類型的變量只能在相應枚舉類型的值集中取值。例如:Dayday;day=SUN;//OKday=1;//Error。day=RED;//Error相同枚舉類型之間可以進行賦值操作,例如:Dayd1,d2;d2=d1;可以把一個枚舉值賦值給一個整
5、型變量,但不能把一個整型數(shù)賦值給枚舉類型的變量,例如:inta;a=d1;//OKd1=a;//Errord1=(Day)a;//OK,但不安全=>day=(day)1;//OK比較枚舉值之間的比較為枚舉值所對應的整數(shù)之間的比較。例:MON>d;//Errorcout<6、枚舉類型輸入/輸出#includeusingnamespacestd;enumday{SUN,MON,TUE,WED,THU,FRI,SAT};intmain(){Dayd;inti;cin>>i;switch(i){case0:d=SUN;break;case1:d=MON;break;case2:d=TUE;break;case3:d=WED;break;case4:d=THU;break;case5:d=FRI;break;case6:d=SAT;break;default:cout<<"InputError!"<7、h(d){caseSUN:cout<<"SUN"<