C++类与对象实验报告(共12页).doc
精选优质文档-倾情为你奉上Guangxi University of Science and Technology实验报告实验课程: C+程序设计教程 实验内容: 类与对象 院 (系): 专 业: 班 级: 学生姓名: 学 号: 指导教师: 2013年 11 月 4日专心-专注-专业一. 实验目的: 1掌握声明类的方法,类和类的成员概念以及定义对象的方法; 2掌握成员函数的实现与调用方法。; 3掌握引检查和调试基于对象的程序的方法; 4. 深刻领会类与对象的区别,类实现数据隐藏与封装的原理等 二. 实验内容()实验题目一:调试下列程序,程序描述了一个圆柱的类,成员中有私有数据半径r及高h,公有的成 员函数有构造函数与输出圆柱参数的函数,在main 函数中,输入两个参数,定义并初始化 此类的一个对象。 (1)请测试。 #include<iostream.h> class column private: double r,h; public: column(double ri,double hi) r=ri; h=hi; void prin() cout<<"圆柱的高为:"<<h<<" 圆柱的半径为:"<<r<<endl; ; int main() column c(3,10); c.prin(); return 0; (2)再定义计算圆柱面积与体积的私有成员函数,在公有的成员函数prin 中调用,在 main 函数中输入半径r及高h,请设计程序并调试。 1 要点分析: 先上机调试该程序,初步理解和明白类的定义和初始化类的一个对象2 程序源代码: 程序1: #include<iostream.h> class column private: double r,h; public: column(double ri,double hi) r=ri; h=hi; void prin() cout<<"圆柱的高为:"<<h<<" 圆柱的半径为:"<<r<<endl; ; int main() column c(3,10); c.prin(); return 0; 程序2:#include <iostream>using namespace std;#include <string.h>class columnprivate:double r,h;double abc,flag;double mianji()abc=4*3.14*r*h;return abc;double tiji()flag=3.14*r*r*h;return flag;public:column(double ri,double hi)r=ri;h=hi;void prin() mianji();tiji();cout<<"圆柱的高:"<<h<<" "<<"圆柱的半径:"<<r<<" "<<endl;cout<<"圆柱的体积:"<<flag<<" "<<"圆柱的面积:"<<abc<<endl;int main() int R,H;cout<<"输入半径:"cin>>R;cout<<"输入高:"cin>>H; column c(R,H); c.prin (); return 0;3 实验结果:(二) 实验题目二: 定义图书类。设图书信息包括书名、作者、出版社和定价属性,要求定义一 个类,用该类定义图书对象、通过函数成员为对象数据赋值、能输出图书属性。 1 要点分析:对类进行初始化赋值,则需要用构造函数2 程序源代码:#include <iostream>using namespace std;#include <string.h>class Bookpublic: Book (char *bname,char *btutor,char *bchubanshe,int bprice) strcpy(name,bname); strcpy(tutor,btutor); strcpy(chubanshe,bchubanshe); price=bprice; cout<<"the book information :" cout<<name<<"/"<<tutor<<"/"<<chubanshe<<"/"<<price<<endl; Book (Book &s) cout<<"."<<endl; Book() cout<<"”析构函数"<<endl; private:char name20;char tutor20;char chubanshe20; int price;class abcpublic:abc(char *bname="noname",char *btutor="notutor",char *bchubanshe="nohourse",int bprice=0):book(bname,btutor,bchubanshe,bprice)cout<<"constucting abc"<<endl;protected:Book book;void fn()cout<<"the last finally"<<endl;void main()abc("c+","阳树洪","清华大学出版社",42);fn();3 实验结果(三)实验题目三: 定义一个类,输入若干学生的学号,姓名和成绩,然后显示这个数据并计算出平均分。同时设计出相应的程序进行测试。 1 程序源代码:#include <iostream>using namespace std;#include <string.h>class student public:student(char* sname,int sID,int sgoal) /构造函数strcpy(name,sname);namesizeof(name)-1='0'studentID=sID;goal=sgoal;cout<<name<<" "<<studentID<<" "<<goal<<endl;private:char name20;int studentID;int goal;void main()char sname10;int sID;int sgoal;int n,avear;int allsgoal=0;cout<<"please input the total num :"<<endl;cin>>n;for(int i=1;i<=n;i+)cin>>sname;cin>>sID;cin>>sgoal; student a(sname,sID,sgoal); allsgoal+=sgoal; avear=allsgoal/n;2实验结果(四)实验题目四: 声明一个通讯录类,含姓名、地址、电话号码成员数据,其中姓名和电话号 码使用字符数组,地址使用字符型指针成员。要求如下成员函数:构造函数、拷 贝构造函数、析构函数、输出所有成员的函数。main()完成对象的定义和有关成 员函数的测试。 2.程序源代码:#include <iostream>using namespace std;#include <string.h>class phonepublic:phone (char *pname,char *padress,char *pnum) cout<<"Constructing new student:"<<pname<<"|"<<padress<<" |"<<pnum<<endl;strcpy(name,pname);strcpy(adress,padress);strcpy(num,pnum);phone(phone &s)strcpy(name,s.name);cout<<"the student :"<<s.name <<endl;void print()cout<<"destrct"<<name<<"/"<<adress<<"/"<<num<<endl;phone()cout<<"delete the room"<<endl; protected:char name20;char adress20;char num15;void fn(phone s)cout<<"constrecting"<<endl;int main()phone a("lihua","yudu","");cout<<"calling fn()"<<endl;fn(a);cout<<"the finally"<<endl; return 0;3.实验结果:三. 个人小结通过此次实验,我掌握了声明类的方法,类和类的成员概念以及定义对象的方法, 掌握成员函数的实现与调用方法,掌握引检查和调试基于对象的程序的方法;深刻领会类与对象的区别,类实现数据隐藏与封装的原理,并对C+编程有了更进一步的理解!