资源描述:
《《构造数据类型》ppt课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第五章程序的数据描述(II)--构造数据类型主讲人:侯海良通信与控制工程系本章内容构造数据类型概述枚举类型数组类型结构与联合类型指针类型(参数传递和动态数据结构)引用类型构造数据类型有些数据不适合用基本数据类型来表示。如:矩阵、向量语言往往提供了由基本数据类型来构造新类型的手段。构造数据类型属于用户自定义数据类型。枚举类型数组类型结构/联合类型指针/引用类型枚举类型如何描述一个星期的每一天这样的数据?如果用int来描述,将会面临:1表示什么意思?星期天用什么整数表示?0还是7?如果用0~6表示一个星期的每一天,则对于一个取值为一个星期某一天的int型变量day,如何防止下面的逻辑错误:day=
2、10day=day*2在C++中用枚举类型来解决上面的问题。枚举类型的定义枚举类型是由用户自定义的一种简单数据类型。在定义一个枚举类型时,需要列出其值集中的每个值(枚举值)。枚举类型的定义格式为: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};每一个枚举值都对应着一个整数。默认情况下,第一个枚举值对应常量值0,其它的
3、值为前一个值加1。在定义枚举类型时,也可给枚举值指定对应的整数值。例如: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、型变量,但不能把一个整型数赋值给枚举类型的变量,例如:inta;a=d1;//OKd1=a;//Errord1=(Day)a;//OK,但不安全=>day=(day)1;//OK比较枚举值之间的比较为枚举值所对应的整数之间的比较。例: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"<