c++类和对象实验报告材料
C 类和对象实验报告

C 类和对象实验报告C++类和对象实验报告引言:C++是一种面向对象的编程语言,它提供了类和对象的概念,使得程序的设计和实现更加模块化和可重用。
本实验旨在通过实际编程操作,深入理解C++中类和对象的概念,并掌握其基本用法。
实验目的:1. 理解类和对象的概念;2. 掌握类的定义和对象的创建方法;3. 熟悉类的成员变量和成员函数的使用;4. 学会通过对象调用成员函数实现数据的封装和操作。
实验内容:1. 类的定义和对象的创建在C++中,通过关键字class可以定义一个类。
类定义了一种数据类型,它包含了数据成员和成员函数。
我们可以通过类来创建对象,即类的实例化。
例如,我们可以定义一个类Person,其中包含姓名和年龄两个数据成员,以及一个显示个人信息的成员函数。
然后通过Person类来创建多个对象,每个对象都有自己的姓名和年龄。
2. 成员变量和成员函数的使用类的成员变量是类的数据成员,用于存储对象的状态信息。
成员函数是类的操作成员,用于实现对对象的操作和功能。
在类的成员函数中,可以通过this指针来访问对象的成员变量和成员函数。
this指针指向当前对象的地址,可以用于区分不同对象的成员变量和成员函数。
例如,在Person类的成员函数中,可以通过this指针来访问当前对象的姓名和年龄。
3. 数据的封装和操作类的一个重要特性是数据的封装,即将数据和操作数据的函数封装在一起,形成一个完整的类。
通过对象调用成员函数,可以实现对数据的操作。
例如,在Person类中,我们可以定义一个设置姓名的成员函数set_name()和一个获取姓名的成员函数get_name()。
通过对象调用这两个成员函数,可以设置和获取对象的姓名。
实验结果:通过实验,我们成功定义了一个Person类,并创建了多个Person对象。
通过对象调用成员函数,实现了对对象的操作和数据的封装。
通过实验,我们深入理解了C++中类和对象的概念,掌握了类的定义和对象的创建方法,熟悉了类的成员变量和成员函数的使用,学会了通过对象调用成员函数实现数据的封装和操作。
C++实验报告(1)类和对象

C++程序设计实验报告一、实验目的(1)掌握声明类的方法,类和类的成员的概念以及定义对象的方法(2)初步掌握用类和对象编制基于对象的程序。
(3)学习检查和调试基于对象的程序。
二、实验环境Visual Studio 2012三、实验步骤初步建立一个工程——声明类及类函数—写主函数—最后编译——调试执行过程中的各个问题——输出结果。
四、实验结果(含测试用例、测试结果)附:源代码C++谭浩强第八章第4题# include<string>using namespace std; class Student{public:void set_value();void display(); private:int num;string name;char sex;};# include<iostream># include"student.h"using namespace std;void Student::set_value(){cin>>num;cin>>name;cin>>sex;}void Student::display(){cout<<"num:"<<num<<endl; cout<<"name:"<<name<<endl; cout<<"sex:"<<sex<<endl;}# include<iostream># include"student.h"int main(){Student stud;stud.set_value();stud.display();return 0;}第九章第9题# include<iostream>using namespace std;class Shopping{public:static double averge();static int display();private:int num;double quantity;double price;static double discount;static double sum;static double n;}stu[3];double Shopping::sum=2562.22;; double Shopping:: n=117;double Shopping::averge(){return (sum/n);}int Shopping:: display(){cout<<"sum:"<< Shopping::sum<<endl; cout<<"price:"<< Shopping::averge()<<endl; }int main(){Shopping stu[3]={Shopping (101,5,23.5),Shopping (102,12,24.56),Shopping (103,100,21.5)};cout<< Shopping::averge()<<endl;}。
C++类和对象实验报告

计算机科学与技术实验报告实验二类和对象(1)姓名:易XX 班级:计科二班学号:2015110121实验目的:深入理解类和对象,学会定义类,申明私有、公有变量,学会定义对象,并调用成员函数,解决实际问题。
实验内容:(一)、题目要求:定义一个描述角度的类CAngle,包含的内容如下:(1)私有成员变量value,表示角度,类型为double;(2)公有成员变量SetValue,实现功能是使用形参为value赋值。
声明为:viod SetValue(double);(3)公有成员函数GetCos,实现功能计算余弦值,并作为返回值返回。
声明为 double GetCos();编程实现如下功能:定义一个Cangle类的对象deg,调用成员函数设置deg的角度为30度,调用成员函数计算并输出deg的余弦值。
代码:#include<iostream>#include<cmath>using namespace std;#define PI 3.1415 //定义宏常量PIclass CAngle{double value; //定义角度public:void Setvalue(double x){value =x/180*PI; //把角度转化为弧度}double Getcos(){return ( cos(value) ); //计算cos值}};int main(){CAngle deg; //定义一个Cangle类的对象degdeg.Setvalue(30);cout<<deg.Getcos()<<endl;return 0;}运行结果:(二)、题目要求:定义一个网上购书订单类BookOrder,包含的内容:(1)私有成员变量BookID,表示图书编号,类型为char[6];(2)私有成员变量Quantity,表示图书的数量,类型为int;(3)公有成员变量Price,表示图书的单价,类型为double;(4)公有函数成员BookInit,实现使用参数为成员变量赋值,声明为viod BookInit(char*,int,double);(5)公有成员函数BookInfo,实现显示订单信息,包括图书编号、单价、数量、总价。
C++实验报告类与对象

成都学院实验报告课程名称C++向对象程序设计实验名称类与对象姓名班级 1学号指导教师设计时间2016年4月5日计算机工程学院1.实验目的1) 掌握声明类的方法,类和类的成员的概念以及定义对象的方法。
2) 初步掌握用类和对象编制基于对象的程序。
3) 学习检查和调试基于对象的程序。
2.实验内容1) 有以下程序:#include<iostream>using namespace std;class Tim{public:int hour;int minute;int sec;};int main(){Time t1;cin>>t1.hour;cin>>t1.minute;cin>>t1.sec;cout<<t1.hour<<”:”<<t1.sec<<endl;return 0;}改写程序,要求:1.将数据成员改为私有的;2.将输入和输出的功能改为由成员函数实现3.在类体内定义成员函数然后编译和运行程序。
请分析什么成员应指定为公用的?什么成员应指定为私有的?什么函数最好放在类中定义?答案:用于改变类状态的成员应该定义为公有,用于保存类状态的成员应该定义为私有,简单的函数最好在类中定义,有一定工作量的函数放在外面定义。
#include<iostream>usingnamespace std;class Time{private:int hour;int minute;int sec;public:void setdate(){cin>>hour;cin>>minute;cin>>sec;}void display(){cout<<hour<<":"<<minute<<":"<<sec<<endl;}};int main(){Time t1;t1.setdate();t1.display();return 0;}2)分别给出如下的3个文件student.h1.//student.hClass Student{Public:Void display()Private:Int num;Char name[20];Char sex;};2.包含成员函数定义的源文件student.cpp//student.cpp#include<iostream>#include”student.h”Void Student::display(){Cout<<”num:”<<num<<endl;Cout<<”name:”<<name<<endl;Cout<<”sex:”<<sex<<endl;};3.包含主函数的源文件main.cpp为了组成一个完整的源程序,应当有包含主函数的源文件//main.cpp#include<iostream>#include”student.h”Int mian(){Student stud;Stud.display();Return 0;};请完善该程序,在类中增加一个队数据成员赋初值的成员函数set_value.上机调试并运行。
C++类和对象实验报告

C++类和对象实验报告河南⼯业⼤学《⾯向对象程序设计》实验报告专业班级:学号:姓名:实验单元⼀类和对象实验⼀标准控制台输⼊输出实验时间:2016.9.22【实验⽬的】1、熟悉Dev-Cpp编程环境。
2、编写简单的输⼊输出语句。
3、熟练使⽤算术运算符。
4、能够编写简单的判断语句。
5、掌握类、对象、数据成员、成员函数的基本概念。
6、能够进⾏类的定义。
【实验环境】Dev-C++。
【实验内容】1.编写C++程序,实现输⼊两个整数,输出两个整数的加、减、乘、除结果;详细的注释,完整的输出显⽰。
2.编写NumberA类,实现两个整数的加减乘除运算。
构造函数实现两整数a,b赋值。
【详细分析】第⼀题1.定义两个变量,为保证商的顺利输出选择double型,直接选择输出各项和差商积。
第⼆题1.构造⼀个NumberA类,构造各个成员函数包括求差,求和,求积,求商。
各个成员函数具有各⾃的功能。
2.在main函数中创建NumberA的⼀个对象number,并以number对NumberA中的各个成员函数进⾏调⽤。
【实验源码】第⼀题#includeusing namespace std;//using的声明int main()double number1,number2;//定义整型变量cout<<"请输⼊两个整数"<cin>>number1>>number2;cout<<"两数之和为:";cout<cout<<"两数之差为:";cout<cout<<"两数之商为:";cout<cout<<"两数之积为:";cout<return 0;}第⼆题#includeusing namespace std;//using的声明class NumberA//创建⼀个NumberA类{ public://构造各个成员函数void sum(int a,int b)//求和函数{int sum;sum=a+b;cout<<"两数之和为:";cout<}void cha(int a,int b)//求差函数{int cha;cha=a-b;cout<<"两数之差为:";cout<}void ji(int a,int b)//求积函数int ji;ji=a*b;cout<<"两数之积为:";cout<}void shang(double a,double b)//求商函数{double shang;shang=a/b;cout<<"两数之商为:";cout<}};int main(){int a,b;cout<<"请输⼊两个整数:"<cin>>a>>b;NumberA number;//将NumberA类赋予number//调⽤NumberA类中的各个成员函数number.sum(a,b);number.cha(a,b);number.shang(a,b);number.ji(a,b);return 0;}【实验结果】第⼀题结果第⼆题结果【实验体会】第⼀次C++实验第⼀次接触类的概念,做这⼀个计算器的⼩程序,感觉构造⼀个类相⽐直接写函数步骤更加繁琐了⼀些。
c 类与对象 实验报告

c 类与对象实验报告C++ 类与对象实验报告一、引言C++ 是一种面向对象的编程语言,它提供了类和对象的概念,使得程序的设计和实现更加模块化和可维护。
本实验旨在通过实际案例,深入理解 C++ 类与对象的概念和使用方法。
二、实验目的1. 掌握类的定义和对象的创建。
2. 熟悉类的成员变量和成员函数的使用。
3. 理解构造函数和析构函数的作用和使用。
4. 学会使用访问权限控制类的成员。
5. 掌握类的继承和多态的概念。
三、实验过程1. 类的定义和对象的创建在 C++ 中,类是一种用户自定义的数据类型,它由数据成员和成员函数组成。
通过类的定义,我们可以创建对象,即类的实例。
对象是类的具体化,它可以调用类的成员函数来完成特定的操作。
2. 成员变量和成员函数的使用类的成员变量是类的属性,它们用于存储对象的状态信息。
成员函数是类的行为,它们用于实现对象的操作。
通过成员变量和成员函数的配合使用,我们可以实现对对象的控制和操作。
3. 构造函数和析构函数的作用和使用构造函数是一种特殊的成员函数,它在对象创建时被调用,用于初始化对象的成员变量。
析构函数也是一种特殊的成员函数,它在对象销毁时被调用,用于释放对象占用的资源。
构造函数和析构函数的使用可以保证对象的正确初始化和销毁。
4. 访问权限控制类的成员在 C++ 中,类的成员可以设置为私有、保护或公有。
私有成员只能在类的内部访问,保护成员可以在类的内部和派生类中访问,公有成员可以在任何地方访问。
通过访问权限控制,我们可以限制对类的成员的访问,提高程序的安全性和可维护性。
5. 类的继承和多态的概念类的继承是一种重要的面向对象的特性,它允许我们创建一个新的类,从已有的类派生而来。
派生类继承了基类的成员变量和成员函数,并可以添加新的成员变量和成员函数。
多态是指在继承关系中,派生类可以重写基类的成员函数,实现不同的行为。
通过继承和多态,我们可以实现代码的重用和灵活性。
四、实验总结通过本次实验,我深入理解了 C++ 类与对象的概念和使用方法。
[C++]类与对象实验报告
![[C++]类与对象实验报告](https://img.taocdn.com/s3/m/d26e25836c85ec3a87c2c5eb.png)
+Person( const Person &p )+~Person()+SetName( const char *name ):void+SetAge( int age ):void+setSex( char sex ):void+* GetName() :char+GetAge() :int+GetSex() :char+ShowPerson() :void运行结果3.程序的类结构图为:Box-str_name[20]:char-length:float-width:float-height:float-volume:float+Box()+Box(const char* name,float l,float w,float h)+Box(const Box &p)+~Box(){volume=length*width*height;}void Box::show_volume(){cout<<"长方柱"<<str_name<<"的体积是:"<<volume<<"\n"; }int main(){Box *p1;cout<<"分别输入长方柱的长、宽、高:"<<endl;p1=new Box;//动态生成一个 Person 对象p1->Setlength();p1->Setwidth();p1->Setheight();p1->operate_volume();p1->show_volume();delete p1; //释放 p1 指针指向对象所占的空间return 0;}4.程序的类结构图为:R-R1:int+R(int r1=0)+print():void+print()const:void5. 程序的类结构图为:Test+Test(int=0)+print()const:void【实例编程】List#*m_pFirst:Node-Node+Node(const int &data=0,Node*next=NULL) +*m_nNext:Node+m_nData:int+List()+~List()+Append(const int &e,int index=0):bool +Prepend(const int &e,int index=1):bool +Remove(int &e,int inedx=1):bool+Find(int &e,int index=1):bool+PrintList():void。
1C#实验报告 类与对象

类的 dial()方法; 5 界面设计; 6 实例化 Telephone 类和 Mobilephone 类; 7 编写事件代码,调用相应的方法以及在 MessageBox.Show()方法里的“内容”
这一参数里调用相应的字段; 8 调试; 9 把步骤④里的 override 关键字改成 new 关键字; 10 调试并与步骤⑧的结果比较。 程序界面设计:
{
mobilephone.ring();
}
private void button9_Click(object sender, EventArgs e)
{
mobilephone.playmp3();
}
}
public class Telephone
{
public string numbers = "13800138000"; //字段numbers
{
MessageBox.Show(mobilephone.attribution, "所在地", MessageBoxButtons.OK);
}
private void button7_Click(object sender, EventArgs e)
{
mobilephone.dial();
}
private void button8_Click(object sender, EventArgs e)
stuAge = Convert.ToInt32(Console.ReadLine());
}
public student(string number, string name) //构造函数2,实现对数据的输入
{
stuNum = number;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一类和对象
实验课程名:面向对象程序设计(C++)
专业班级:学号::
实验时间:实验地点:指导教师:
2.设计一个带头结点的单链表类,要求:
(1)生成一个整数线性表,实现将其分解成两个链表,
其中一个全部为奇数,另一个全部为偶数(尽量利
用已知的存储空间)。
(2)设计一个测试主函数,实际运行验证所设计单链表类的正确性。
实验代码:#include<iostream>
using namespace std;
template <class T>
struct Node
{
T data;
Node<T> *next; //此处<T>也可以省略
};
template <class T>
"<<endl;
L1.Insert(4, 17);
cout<<"插入元素后链表为:";
L1.PrintList( );
L1.Delete(8);
cout<<"删除第8个元素后链表变为:";
L1.PrintList( );
return 0;
}
实验结果:
3.设计一个不带头结点的单链表类,要求:
(1)不带头结点单链表类的成员函数包括取数据元素个
数、插入元素、删除所有值为k的元素、取数据元素。
(提示:要考虑在第一个数据元素结点前插入和删除第
一个数据元素结点时与在其他位置插入和删除其他
位置结点时的不同情况。
)
(2)设计一个测试主函数,实际运行验证所设计循环单链表类的正确性。
实验代码:
#include<iostream>
using namespace std;
cout<<"在链表第5个位置插入元素17后链表变为:";
L.PrintList();
L.Delete(8);
cout<<"删除第8个元素后链表变为:";
L.PrintList();
return 0;
}
实验结果为:
4.设计一个带头结点的循环单链表类,实现约瑟夫环问题;
问题描述:设编号为1,2,…,n(n>0)个人按顺时针方向围坐-圈,每人持有一个正整数密码。
开始时任意给出一个报数上限值m从第一个人开始顺时针方向自1起顺序报数。
报到m时停止报数,报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人起重新自1起顺序报数.如此下去,直到所有人全部出列为止。
要求设计一个程序模拟此过程,并给出出列人的编号序列。
测试数据:
n=7,7个人的密码依次为3,1,7,2,4,8,4
初始报数上限值m=20
实验代码:
#include<iostream>
using namespace std;
struct Node//定义一个接点包含编号,密码,指针变量{
int num;
int code;
p->data=0;
i=0;
}
cout<<endl;
}
int main()
{
CirList list;
list.inputcode();
list.Done();
return 0;
}
实验结果:
*5.设计一个带头结点的循环双向链表类,要求:
(1)带头结点循环双向链表类的成员函数包括:取数据
元素个数、插入、删除、取数据元素。
(2)设计一个测试主函数,实际运行验证所设计循环双向链表类的正确性
实验代码:
实验结果:
*6.设计一个单链表实现一元多项式求和问题。
要求:(1)设计存储结构表示一元多项式;
(2)设计算法实现一元多项式相加。
实验代码:#include <iostream>
using namespace std;
struct Node
{
int e;
int x;
Node *next;
};
class LinkList
{
public:
LinkList(){first=new Node;first->next=NULL;}
LinkList(int a[],int b[],int n); //建立有n个元素的单链表
void PrintList(LinkList &L); //遍历单链表,按序号依次输出各元素
friend void function (LinkList &La,LinkList &Lb,LinkList &Lc);//友元函数,多项式的加减
private:
Node *first; //单链表的头指针
};
LinkList ::LinkList(int a[],int b[],int n)//生成多项式
{
first=new Node; //生成头结点
k->x=q->x;
o->next=k;
o=k;
p=q;
q=q->next;
}
}
if(q)o->next=q;
if(s)o->next=s;
}
实验结果:
三、结论
1)在类中有私有成员与共有成员,一般将类函数作为共有成员而把数据作为私有成员。
2)类中的私有成员只能被类函数引用,但友元函数可以引用类的私有成员,友元函数定义为:friend 函数类型函数名,一般在类中定义。
3)类模板用于类的定义相同只有类的成员类型不同,定义形式为:Template<class T> 类名{};在类外定义函数时:template<class T>
函数类型类名<T>::函数名(){}。