GuangxiUniversityofScienceandTechnology实验报告实验课程:C++程序设计教程实验内容:类与对象院(系):专业:班级:学生姓名:学号:指导教师:2013年11月4日广西科技大学实验报告面向对象程序设计实验2一.实验目的:1.掌握声明类的方法,类和类的成员概念以及定义对象的方法;2.掌握成员函数的实现与调用方法。;3.掌握引检查和调试基于对象的程序的方法;4.深刻领会类与对象的区别,类实现数据隐藏与封装的原理等二.实验内容(-)实验题目一:调试下列程序,程序描述了一个圆柱的类,成员中有私有数据半径r及高h,公有的成员函数有构造函数与输出圆柱参数的函数,在main函数中,输入两个参数,定义并初始化此类的一个对象。(1)请测试。#includeiostream.hclasscolumn{private:doubler,h;public:column(doubleri,doublehi){r=ri;h=hi;}voidprin(){cout圆柱的高为:h圆柱的半径为:rendl;}};intmain(){columnc(3,10);c.prin();return0;}(2)再定义计算圆柱面积与体积的私有成员函数,在公有的成员函数prin中调用,在main函数中输入半径r及高h,请设计程序并调试。1.要点分析:先上机调试该程序,初步理解和明白类的定义和初始化类的一个对象2.程序源代码:广西科技大学实验报告面向对象程序设计实验3程序1:#includeiostream.hclasscolumn{private:doubler,h;public:column(doubleri,doublehi){r=ri;h=hi;}voidprin(){cout圆柱的高为:h圆柱的半径为:rendl;}};intmain(){columnc(3,10);c.prin();return0;}程序2:#includeiostreamusingnamespacestd;#includestring.hclasscolumn{private:doubler,h;doubleabc,flag;doublemianji(){abc=4*3.14*r*h;returnabc;}doubletiji(){flag=3.14*r*r*h;returnflag;}public:广西科技大学实验报告面向对象程序设计实验4column(doubleri,doublehi){r=ri;h=hi;}voidprin(){mianji();tiji();cout圆柱的高:h圆柱的半径:rendl;cout圆柱的体积:flag圆柱的面积:abcendl;}};intmain(){intR,H;cout输入半径:;cinR;cout输入高:;cinH;columnc(R,H);c.prin();return0;}3.实验结果:广西科技大学实验报告面向对象程序设计实验5(二)实验题目二:定义图书类。设图书信息包括书名、作者、出版社和定价属性,要求定义一个类,用该类定义图书对象、通过函数成员为对象数据赋值、能输出图书属性。1.要点分析:对类进行初始化赋值,则需要用构造函数广西科技大学实验报告面向对象程序设计实验62.程序源代码:#includeiostreamusingnamespacestd;#includestring.hclassBook{public:Book(char*bname,char*btutor,char*bchubanshe,intbprice){strcpy(name,bname);strcpy(tutor,btutor);strcpy(chubanshe,bchubanshe);price=bprice;coutthebookinformation:;coutname/tutor/chubanshe/priceendl;}Book(Book&s){cout.....endl;}~Book(){cout”析构函数endl;}private:charname[20];chartutor[20];charchubanshe[20];广西科技大学实验报告面向对象程序设计实验7intprice;};classabc{public:abc(char*bname=noname,char*btutor=notutor,char*bchubanshe=nohourse,intbprice=0):book(bname,btutor,bchubanshe,bprice){coutconstuctingabcendl;}protected:Bookbook;};voidfn(){coutthelastfinallyendl;}voidmain(){abc(c++,阳树洪,清华大学出版社,42);fn();}3.实验结果广西科技大学实验报告面向对象程序设计实验8(三)实验题目三:定义一个类,输入若干学生的学号,姓名和成绩,然后显示这个数据并计算出平均分。同时设计出相应的程序进行测试。1.程序源代码:#includeiostreamusingnamespacestd;#includestring.hclassstudent{public:student(char*sname,intsID,intsgoal)//构造函数{strcpy(name,sname);name[sizeof(name)-1]='\0';studentID=sID;goal=sgoal;coutnamestudentIDgoalendl;}广西科技大学实验报告面向对象程序设计实验9private:charname[20];intstudentID;intgoal;};voidmain(){charsname[10];intsID;intsgoal;intn,avear;intallsgoal=0;coutpleaseinputthetotalnum:endl;cinn;for(inti=1;i=n;i++){cinsname;cinsID;cinsgoal;studenta(sname,sID,sgoal);allsgoal+=sgoal;}avear=allsgoal/n;}2.实验结果广西科技大学实验报告面向对象程序设计实验10(四)实验题目四:声明一个通讯录类,含姓名、地址、电话号码成员数据,其中姓名和电话号码使用字符数组,地址使用字符型指针成员。要求如下成员函数:构造函数、拷贝构造函数、析构函数、输出所有成员的函数。main()完成对象的定义和有关成员函数的测试。2.程序源代码:#includeiostreamusingnamespacestd;#includestring.hclassphone{public:phone(char*pname,char*padress,char*pnum){coutConstructingnewstudent:pname|padress|pnumendl;strcpy(name,pname);strcpy(adress,padress);strcpy(num,pnum);广西科技大学实验报告面向对象程序设计实验11}phone(phone&s){strcpy(name,s.name);coutthestudent:s.nameendl;}voidprint(){coutdestrctname/adress/numendl;}~phone(){coutdeletetheroomendl;}protected:charname[20];charadress[20];charnum[15];};voidfn(phones){coutconstrectingendl;}intmain(){phonea(lihua,yudu,15677273592);广西科技大学实验报告面向对象程序设计实验12coutcallingfn()endl;fn(a);coutthefinallyendl;return0;}3.实验结果:三.个人小结通过此次实验,我掌握了声明类的方法,类和类的成员概念以及定义对象的方法,掌握成员函数的实现与调用方法,掌握引检查和调试基于对象的程序的方法;深刻领会类与对象的区别,类实现数据隐藏与封装的原理,并对C++编程有了更进一步的理解!