《C++类与对象课程实验一.docx》由会员分享,可在线阅读,更多相关《C++类与对象课程实验一.docx(7页珍藏版)》请在第一文库网上搜索。
1、实验一:实验目的:掌握类的声明和使用。掌握类的声明和对象的声明。复习具有不同访问属性的成员的访问方式。观察构造函数和析构函数的执行过程。学习类的组合使用方法。二:实验任务:1 .设计一个类,使它具有一个计算两个数之和的成员函数。并且写出它的构造函数和析构函数。并使用一个测试程序来测试这个类的执行,观察各个函数之间的调用顺序。2 .设计一个用于人事管理的Peop1e(人员)类,考虑到通用性,这里只抽象出所有类型人员都具有的属性:number(编号)、sex(性别)、birthday(出生日期)、id(身份证号)等等。其中“出生日期”声明为一个“日期”类内嵌子对象。用成员函数实现对人员信息的录入和
2、显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、组合。3 .定义一个圆类(CircIe),属性为半径(radius)、圆周长和面积,操作为输入半径并计算周长、面积,输出半径、周长和面积。要求定义构造函数(以半径为参数,缺省值为0)和复制构造函数。4 .创建一个emp1oyee类,该类中用字符数组表示姓名、街道地址、市、省和邮政编码。在类中定义构造函数、changename()disp1ay。函数,构造函数用来初始化每个成员,disp1ay。函数把完整的对象数据打印出来。其中数据成员是保护的,函数是公共的。三.程序代码、#inc1udeusingnamespacestd;c1as
3、sSum(pub1ic:voidgetSum(intazintb);voiddisp1ay();private:intx,y;);voidSum:getSum(intajntb)x=a;y=b;)voidSum:disp1ay()(coutx+y=x+yend1;coutCa11ingthedestructorend1;)intmain()(Sump;inta,b;coutab)(coutCa11ingtheconstructorend1;p.getSum(a,b);p.disp1ay();)return0;E:俊善一,1binDebugi-.exeIp1easeentertwonumbers
4、:8999(Ca11ingtheconstructor1+y=188(Ca11ingthedestructor#inc1udeusingnamespacestd;c1assdatapub1ic:data();data(inty,intm,intd)year=y;month=m;day=d;data(dataSbirthday);voidset()cinyearmonthday;voiddisp1ay()coutyear,month,day;private:intyear;intmonth;intday;;c1assPeop1epub1ic:Peop1e()Peop1e(intn,charsji
5、ntijintyjintm,intd):birthday(y,m,d)num=n;sex=s;id=i;Peop1e(Peop1e&p);voidsetPeop1e();voidshowPeop1e();Peop1e()coutend1;private:intnum;charsex;intid;databirthday;;Peop1e:Peop1e(Peop1e&p)num=p.num;sex=p.se;id=p.id;birthday=p.birthday;)voidPeop1e:setPeop1e()cout,inputinformatioans:,end1;coutnum;coutsex
6、;cout,birthday:;birthday.set();coutid;coutend1;)voidPeop1e:showPeop1e()coutnumber:,numend1,sex:,sexend1,id:,idend1coutbirthday:;birthday.disp1ay();intmain()Peop1ep1;p1.setPeop1e();p1.shovPeop1e();return0;)inputinfornatioans:number:63sex:wbirthday:9653id:164196number:63sex:wid:164196birthday9653Proce
7、ssreturned0eecutiontine:15.25?sPressanykeytocontinue.1.#inc1udeusingnamespacestd;constf1oatPI=3.14;c1assCirc1epub1ic:Circ1e(f1oatr)radius=r;)-Circ1e()f1oatgetArea()returnPI*radius*radius;f1oatgetPerimeter()return2*PI*radius;private:f1oatradius;;intmain()f1oatradius;WhiIe(COUtradius;Circ1ee(radius);c
8、out半径:,radiusend1面积“egetArea()end1周长:e.getPerimeter()end1end1;return0;E:3.4binDebug3.4.exe圆形半径:3:3:28.26:18.84254.3456.52串俞入圆形半径:#inc1ude#inc1udeusingnamespacestd;c1assEmp1oyeeprotected:charname200;charaddress200;charpostcode200;pub1ic:Emp1oyee()Emp1oyee(char*p,char*q,char*r)strcpy(name,p);StrCPy(ad
9、dress,q);StrCPy(PoSteode,r);)voidchangename(Emp1oyeea)charname1200;CO11t,请输入新的名字”name1;strcpy(name,name1);)voiddisp1ay()COUt,姓名:nameend1;COUt“地址:“addressend1;COUt“邮编:postcodeend1end1;;intmain()E叩Ioyeeaa(,刘墨二”北京海淀区北京市海淀区丰豪东路1号,100083);aa.disp1ay();aa.changename(aa);aa.disp1ay();return0;E6.1binDebug6.1.exe姓名:刘墨地扉:北胃海淀区北京市海淀区丰豪东路1号邮编00083请输入新的名字