西华大学C++实验报告2 类和对象 ok

合集下载

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++中类和对象的概念,掌握了类的定义和对象的创建方法,熟悉了类的成员变量和成员函数的使用,学会了通过对象调用成员函数实现数据的封装和操作。

类与对象的实验报告

类与对象的实验报告

类与对象的实验报告类与对象的实验报告引言:在计算机科学领域,类与对象是面向对象编程(Object-Oriented Programming,简称OOP)的核心概念之一。

类是一种抽象的数据类型,用于描述具有相同属性和行为的对象集合。

对象则是类的实例,具体化了类的属性和行为。

本实验旨在通过编写一个简单的类与对象的程序,深入理解类与对象的概念及其在编程中的应用。

实验过程:1. 定义一个类:在这个实验中,我们以动物为例,定义了一个名为Animal的类。

该类具有以下属性和行为:- 属性:名称、年龄、种类- 行为:吃、睡、叫2. 创建对象:在主程序中,我们创建了两个Animal对象,分别代表一只狗和一只猫。

通过调用构造函数,为对象的属性赋值。

3. 调用对象的方法:我们通过调用对象的方法,模拟了动物的行为。

例如,我们调用了eat()方法,让动物吃东西;调用了sleep()方法,让动物睡觉;调用了make_sound()方法,让动物发出叫声。

4. 修改对象属性:我们还演示了如何修改对象的属性。

通过调用set_age()方法,我们改变了动物的年龄;通过调用set_type()方法,我们改变了动物的种类。

实验结果:通过运行程序,我们观察到以下结果:- 狗的名称是"旺财",年龄是3岁,种类是"狗"。

狗吃骨头,睡觉时打呼噜,发出汪汪的叫声。

- 猫的名称是"咪咪",年龄是2岁,种类是"猫"。

猫吃鱼,睡觉时打呼噜,发出喵喵的叫声。

- 经过修改后,狗的年龄变为5岁,种类变为"藏獒";猫的年龄变为3岁,种类变为"波斯猫"。

讨论与分析:通过这个实验,我们深入理解了类与对象的概念及其在编程中的应用。

类是一种抽象的模板,用于描述具有相似属性和行为的对象集合。

对象是类的实例,具体化了类的属性和行为。

通过定义类和创建对象,我们可以更好地组织和管理程序的代码。

类与对象实验报告(C++)

类与对象实验报告(C++)

实验报告学院工学院课程名称C++程序设计第 1 次实验实验名称:类和对象进一步讨论专业班级姓名学号成绩指导老师签字实验时间2015年10月30日学生实验室守则一、按教学安排准时到实验室上实验课,不得迟到、早退和旷课。

二、进入实验室必须遵守实验室的各项规章制度,保持室内安静、整洁,不准在室内打闹、喧哗、吸烟、吃食物、随地吐痰、乱扔杂物,不准做与实验内容无关的事,非实验用品一律不准带进实验室。

三、实验前必须做好预习(或按要求写好预习报告),未做预习者不准参加实验。

四、实验必须服从教师的安排和指导,认真按规程操作,未经教师允许不得擅自动用仪器设备,特别是与本实验无关的仪器设备和设施,如擅自动用或违反操作规程造成损坏,应按规定赔偿,严重者给予纪律处分。

五、实验中要节约水、电、气及其它消耗材料。

六、细心观察、如实记录实验现象和结果,不得抄袭或随意更改原始记录和数据,不得擅离操作岗位和干扰他人实验。

七、使用易燃、易爆、腐蚀性、有毒有害物品或接触带电设备进行实验,应特别注意规范操作,注意防护;若发生意外,要保持冷静,并及时向指导教师和管理人员报告,不得自行处理。

仪器设备发生故障和损坏,应立即停止实验,并主动向指导教师报告,不得自行拆卸查看和拼装。

八、实验完毕,应清理好实验仪器设备并放回原位,清扫好实验现场,经指导教师检查认可并将实验记录交指导教师检查签字后方可离去。

九、无故不参加实验者,应写出检查,提出申请并经批准后,方可补做。

十、自选实验,应事先预约,拟订出实验方案,经实验室负责人同意后,在指导教师或实验技术人员的指导下进行。

十一、实验室内一切物品未经允许严禁带出室外,确需带出,必须经过批准并办理手续。

预习报告实验基本原理与设计(包括实验方案设计、实验手段的确定、电路原理图设计或算法描述)1、考察类的对象数组:建立一个对象数组,内放5个学生的数据(学号,成绩),用指针指向数组首元素,输出第1,3,5个学生的数据。

面向对象c 实验报告

面向对象c 实验报告

面向对象c 实验报告实验报告:面向对象C程序设计一、实验目的本次实验旨在通过设计一个面向对象的C程序,来加深对面向对象程序设计的理解,并实践C语言中面向对象的编程思想。

二、实验过程1. 设计类和对象:在C语言中,没有类的概念,但可以通过以下方式模拟类和对象。

- 定义一个结构体来表示一个类,结构体中包含该类的成员变量和成员函数指针。

- 定义一些函数来模拟类的成员函数,函数的第一个参数是结构体类型的指针,该指针指向当前对象。

2. 创建对象:定义一个结构体变量,该变量称为对象,通过调用构造函数来初始化对象的成员变量,将对象传递给成员函数。

3. 调用成员函数:使用对象调用该对象的成员函数,通过函数指针实现多态性。

4. 析构对象:在不再使用对象时,调用析构函数来释放对象占用的资源,避免内存泄漏。

5. 运行程序:编译并运行C程序,观察程序的输出结果。

三、实验结果在C语言中实现面向对象的程序设计,可以提供一种思路和方式来实现面向对象的编程思想。

通过将相关的数据和函数封装在一个表示类的数据结构中,并通过该数据结构的函数指针来调用成员函数,可以模拟出面向对象的效果。

四、实验总结通过本次实验,我对于C语言中如何实现面向对象编程有了进一步的理解。

尽管C语言本身没有类的概念,但通过结构体和函数指针的方式,我们可以模拟出类和对象的概念,并实现封装、继承和多态等面向对象的特性。

C语言中面向对象的编程思想可以使程序更加模块化、灵活和易于维护。

通过将相关的数据和函数封装在一个结构体中,我们可以将代码组织得更加清晰,降低代码的耦合度,提高代码的重用性。

此外,通过函数指针的方式来调用成员函数,可以实现多态性,使得代码更加灵活和可扩展。

当然,C语言中实现面向对象编程也存在一些限制和不足。

相比于面向对象编程语言,如C++和Java,C语言中的面向对象编程需要手动管理对象的生命周期,容易出现内存泄漏的问题。

此外,C语言中没有提供访问控制的特性,不同成员函数之间的访问权限不能进行限制。

C程序设计实验报告(完整版)

C程序设计实验报告(完整版)

工程学院实验报告课程名称: C程序设计课程代码:学院(直属系):年级/专业/班: 2010级汽电1班学生姓名:学号:实验总成绩:任课教师:开课学院: 工程学院实验中心名称: 交通实验中心第组西华大学实验报告西华大学实验报告(理工类)开课学院及实验室:汽车学院机房(5D-215)实验时间:年月日学生姓名学号实验成绩课程名称C程序设计课程代码实验项目名称C语言集成环境及程序初步项目代码指导教师项目学分实验课考勤实验工作表现实验报告1、实验目的2、实验设备、仪器及材料3、实验内容一般实验:3.1实验方案设计与选择(设计性、创新性实验需写该项内容)3.2实验原理及实验步骤(实验工作原理或实验的主要操作过程)3.3实验记录(核心代码及调试过程)注解:理工科实验需记录实验过程中的数据、图表、计算、现象观察等,实验过程中出现的问题;其它如在计算机上进行的编程、仿真性或模拟性实验需记录程序核心代码以及程序在调式过程中出现的问题及解决方法;记录程序执行的结果。

上机实验:3.1上机实验的内容及要求3.2算法设计思想与算法实现步骤3.3程序核心代码,程序调试过程中出现的问题及解决方法3.4 程序运行的结果4、实验总结4.1实验结果分析及问题讨论4.2实验总结心得体会注解:实验总结的内容根据不同学科和类型实验要求不一样,一般理工科类的实验需要对实验结果进行分析,并且对实验过程中问题进行讨论;在计算机上进行的编程、仿真性或模拟性实验需要对上机实践结果进行分析,上机的心得体会及改进意见。

其它实验应总结实验过程写出心得体会及改进意见。

第页1、实验目的(1) 熟悉C语言的集成环境,了解菜单的使用方法。

(2) 掌握C语言程序上机的编辑、编译、连接、运行的基本步骤。

(3) 了解C语言程序的结构。

2、实验设备、仪器及材料(1)硬件环境微型计算机(Intel x86系列CPU)一台(2)软件环境Windows98/2000/XP操作系统 VC6.0集成开发环境3、实验内容3.1上机实验的内容及要求(1) 熟悉VC中常用菜单项及对应快捷键的使用方法。

C++程序设计实验报告-类与对象

C++程序设计实验报告-类与对象
楚类的构造函数、析构函数、成员函数的执行顺序。
private: CPU_rank rank; int frequency; float voltage;
public: CPU (CPU_rank r,int f,float v) { rank=r; frequency=f; voltage=v; cout<<"构造了一个 cpu!"<<endl; } ~CPU(){ cout<<"析构了一个 cpu!"<<endl;} CPU_rank getrank() const{ return rank;} void setrank(CPU_rank r){ rank=r;} void run(){cout<<"cpu 开始运行!"<<endl;} void stop(){cout<<"cpu 停止运行!"<<endl;}
private: CPU_Rank rank; int frequency;
float voltage; public:
CPU(CPU_Rank r,int f,float v) {
rank=r; frequency=f; voltage=v; cout<<"构造了一个 CPU!"<<endl; } ~CPU() { cout<<"析构了一个 CPU!"<<endl; } CPU_Rank GetRank() const { return rank; } int GetFrequency() const { return frequency; } float GetVoltage() const { return voltage; } void SetRank(CPU_Rank r) { rank=r; } void SetFrequency(int f) { frequency=f; } void Setvoltage(float v) { voltage=v; } void Run(){ cout<<"CPU 开始运行!"<<endl; } void Stop(){ cout<<"CPU 停止运行!"<<endl; } }; int main() { CPU a(P6,300,2.8); a.Run(); a.Stop(); return 0; } 运行结果:

西华大学C++实验报告2 类和对象 ok

.西华大学实验报告(计算机类)开课学院及实验室:机械工程与自动化 实验时间 : 年 月 日一、实验目的1. 掌握类和对象的定义和使用方法;2. 掌握定义构造函数和析构函数、重载构造函数的方法;3. 掌握静态成员和常类型的语法;4. 能正确理解public, private 和protected 三种访问权限及继承方式的区别;5. 掌握程序多文件的组织方法。

二、内容与设计思想上机实践内容:定义学生类Student ,用于存放并输出学生的姓名、学号、年龄、程序设计的成绩并统计学生人数。

1) 定义缺省构造函数、带参数的构造函数和拷贝构造函数给学生的姓名、学号、年龄、程序设计的成绩分配内存并赋值;2) 定义函数输出学生信息;3)定义析构函数;4) 在主函数中定义多个对象并调用上述成员函数进行测试;5)采用头文件和源文件对程序进行组织。

三、使用环境操作系统:Windows XPC++环境:Visual C++ 6.0四、核心代码及调试过程#include <iostream>#include<string>using namespace std;static int count=0;class Student{private:string name;long num;int age;int score;public:Student(){name="印成波";num=224;age=21;score=95;count++;}Student(string Name,long Num,int Age,int Score){ name=Name;num=Num;age=Age;score=Score;count++;}Student(Student &a);void show(){cout<<"姓名:"<<name<<endl;cout<<"学号:"<<num<<endl;cout<<"年龄:"<<age<<endl;cout<<"成绩:"<<score<<endl;}~Student(){}};Student::Student(Student &a){name=;num=a.num;age=a.age;score=a.score;}void main() {Student student1;student1.show();Student student2("student num1",555,22,99);student2.show();Student student3(student2);student3.show();cout<<"学生人数:"<<count<<endl;}五、总结通过对本次上机的过程,使我对构造函数、析构函数、拷贝构造函数等有了一定的了解。

C++试验2_类和对象程序设计

实验2 类和对象程序设计【实验目的】运用C++实现类和对象的程序编写、调试与运行【实验内容】1、例程调试练习例1 类和对象的简单实例#include <iostream.h>#include <math.h>class complex{private:double real; //复数的实部double imag; //复数的虚部public:void init(double r,double i) //给real和imag赋初值{real=r;imag=i;}double realcomplex() //求复数的实部值{return real;}double imagcomplex() //求复数的虚部值{return imag;}double abscomplex() //求复数的绝对值{double t;t=real*real+imag*imag;return sqrt(t);}};int main(){complex A;A.init(1.1,2.2);cout<<"real of complex A="<<A.realcomplex( )<<endl;cout<<"imag of complex A="<<A.imagcomplex( )<<endl;cout<<"abs of complex A="<<A.abscomplex( )<<endl;A.real=5.5;A.imag=8.8;;return 0;}例2 构造函数与析构函数#include <iostream.h>#include <math.h>class complex{private:double real;double imag;public:complex(double r=0.0,double i=0.0); //含有缺省参数的构造函数 ~complex( );double abscomplex( );};complex::complex(double r,double i){cout<<"constructing "<<endl;real=r;imag=i;}~complex( ){cout<<"destructing "<<endl;}double complex::abscomplex( ){double t;t=real*real+imag*imag;return sqrt(t);}int main( ){complex A(1.1,2.2);cout<<"abs of complex A="<<A.abscomplex( )<<endl;return 0;}例3 对象数组#include<iostream.h>class exam{private:int x;public:exam(int n){x=n;}int get_x(){return x;}};int main(){exam ob[4]={11,22,33,44}; //通过初始值表给对象数组赋值for(int i=0;i<4;i++) cout<<ob[i].get_x( )<<' ';cout<<endl;return 0;}例4 对象指针class exe{private:int x;public:void set_a(int a){x=a;}void show_a(){cout<<x<<endl;}};main(){exe ob,*p //声明类exe的对象ob和类exe的对象指针p ob.set_a(2);ob.show_a( );p=&ob; //将p指针指向对象obp->show_a( );return 0;}例5 对象作为函数参数#include<iostream.h>class tr{private:int i;public:tr(int n){i=n;void set_i(int n){i=n;}int get_i(){return i;}};void sqr_it(tr *ob){cout<<"Copy Of Obj has i value Of"<<ob->get_i();ob->set_i(ob->get_i( )*ob->get_i( ));cout<<endl;}int main(){tr obj(10);sqr_it(&obj);cout<<"Now,Obj.i in main() has been changed:";cout<<obj.get_i( )<<endl;return 0;}例6 友元#include<iostream.h>#include<string.h>class girl;class boy{private:char *name;int age;public:boy(char*n,int d){name=new char[strlen(n)+1];strcpy(name,n);age=d;}void disp(girl &); //声明disp()为类boy的成员函数 ~boy(){delete name;}class girl{private:char *name;int age;public:girl(char *n,int d){name=new char[strlen(n)+1];strcpy(name,n);age=d}friend void boy::disp(girl &); //声明类boy的成员函数disp()为类girl 的友元函数~girl(){delete name;}};void boy::disp(girl &x) //定义友元函数disp(){cout<<"boy \'s name is:"<<name<<age:"<<age<<"\n"; //访问本类对象成员cout<<"girl\'s name is:"<<<<"age:"<<x.age<<endl; //访问友类对象成员}void main(){boy b("chen hao",25);girl e("zhang wei",18);b.disp(e);return;}例7 类对象成员#include<iostream.h>#include<string.h>class string{ //声明类stringprivate:char *str;public:string(char *s) //定义类string的构造函数{str=new char[strlen(s)+1];strcpy(str,s);void print(){cout<<str<<endl;}~string(){delete str;}};class girl //声明类girl{private:string name; //name为类girl的对象成员int age;public:girl(char *st,int ag):name(st) //定义类girl的构造函数{age=ag;}void print(){name.print(); //调用类string的对象name的成员函数cout<<"age:"<<age<<endl;}~girl(){}};int main( ){girl obj{"Chenhao",25};obj.print();return 0;}2、编程练习练习1(必作题)试定义一个字符串类string,使其至少具有内容(contents)和长度(1ength)两个数据成员,并具有显示字符串、求字符串长度、给原字符串后添加一个字符串等功能,要求程序必须完成,即必须包含主函数。

类和对象实验报告c

类和对象实验报告c类和对象实验报告引言在计算机科学领域,类和对象是面向对象编程的核心概念。

类是一种抽象数据类型,用于描述对象的属性和行为。

对象是类的实例化,具有特定的属性和行为。

本实验旨在通过编写一个简单的类和对象的示例程序,深入理解类和对象的概念以及它们在程序设计中的应用。

实验过程1. 类的定义首先,我们需要定义一个类。

在这个示例程序中,我们选择创建一个名为"Person"的类。

这个类将代表一个人,具有姓名和年龄两个属性。

类的定义通常包括属性和方法两个部分。

2. 属性的定义在"Person"类中,我们需要定义两个属性:姓名和年龄。

属性可以是不同的数据类型,比如字符串、整数等。

在这个示例中,我们选择使用字符串类型来表示姓名,使用整数类型来表示年龄。

属性的定义通常包括访问修饰符、数据类型和属性名称。

3. 方法的定义除了属性,类还可以定义方法。

方法是类的行为,用于执行特定的操作。

在"Person"类中,我们选择定义一个"introduce"方法,用于介绍这个人的姓名和年龄。

方法的定义通常包括访问修饰符、返回类型、方法名称和参数列表。

4. 对象的创建一旦类定义完成,我们可以创建类的对象。

在这个示例中,我们可以创建一个名为"person1"的对象,代表一个具体的人。

对象的创建通常包括使用"new"关键字和调用类的构造函数。

5. 对象属性的访问和修改通过对象,我们可以访问和修改类的属性。

在这个示例中,我们可以通过""和"person1.age"来访问和修改"person1"对象的姓名和年龄。

6. 对象方法的调用通过对象,我们还可以调用类的方法。

在这个示例中,我们可以通过"person1.introduce()"来调用"person1"对象的"introduce"方法,从而介绍这个人的姓名和年龄。

c 类与对象 实验报告

c 类与对象实验报告
C类与对象实验报告
实验目的:通过实验,掌握C语言中类与对象的基本概念和使用方法,加深对面向对象编程的理解。

实验内容:
1.了解C语言中类与对象的定义和声明方法
2.掌握C语言中类与对象的成员变量和成员函数的定义和使用
3.实现一个简单的C语言类与对象的示例程序
实验步骤:
1.定义一个类,包括成员变量和成员函数
2.声明一个对象,并初始化对象的成员变量
3.调用对象的成员函数,实现相关功能
4.编译并运行程序,观察输出结果
实验结果:
通过实验,我们成功定义了一个C语言类,并创建了一个对象进行操作。

我们发现,类与对象的概念在C语言中虽然没有像C++或Java那样的完整支持,但我们仍然可以通过结构体和函数指针等方式来模拟类与对象的使用,实现面向对象编程的效果。

实验结论:
通过本次实验,我们加深了对C语言中类与对象的理解,掌握了基本的使用方法。

虽然C语言中并没有原生支持类与对象的概念,但我们可以通过一些技巧和方法来实现类似的功能。

面向对象编程是一种重要的编程范式,掌握类与对
象的概念对于我们提高编程能力和设计程序结构都具有重要意义。

总结:
C语言中类与对象的实验让我们更深入地理解了面向对象编程的思想,为我们今后的编程学习和实践打下了良好的基础。

通过不断地实践和探索,我们相信我们可以更加熟练地运用类与对象的概念,设计出更加优秀的程序和项目。

希望我们在今后的学习和工作中能够不断提升自己,成为优秀的程序员。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

.
西华大学实验报告(计算机类)
开课学院及实验室:机械工程与自动化 实验时间 : 年 月 日
一、实验目的
1. 掌握类和对象的定义和使用方法;
2. 掌握定义构造函数和析构函数、重载构造函数的方法;
3. 掌握静态成员和常类型的语法;
4. 能正确理解public, private 和protected 三种访问权限及继承方式的区别;
5. 掌握程序多文件的组织方法。

二、内容与设计思想
上机实践内容:
定义学生类Student ,用于存放并输出学生的姓名、学号、年龄、程序设计的成绩并统计学生人数。

1) 定义缺省构造函数、带参数的构造函数和拷贝构造函数给学生的姓名、学号、年龄、程序设计的成绩分配内存并赋值;
2) 定义函数输出学生信息;
3)定义析构函数;
4) 在主函数中定义多个对象并调用上述成员函数进行测试;
5)采用头文件和源文件对程序进行组织。

三、使用环境
操作系统:Windows XP
C++环境:Visual C++ 6.0
四、核心代码及调试过程
#include <iostream>
#include<string>
using namespace std;
static int count=0;
class Student{
private:
string name;
long num;
int age;
int score;
public:
Student(){
name="印成波";
num=224;
age=21;
score=95;
count++;
}
Student(string Name,long Num,int Age,int Score){ name=Name;
num=Num;
age=Age;
score=Score;
count++;
}
Student(Student &a);
void show(){
cout<<"姓名:"<<name<<endl;
cout<<"学号:"<<num<<endl;
cout<<"年龄:"<<age<<endl;
cout<<"成绩:"<<score<<endl;
}
~Student(){}
};
Student::Student(Student &a){
name=;
num=a.num;
age=a.age;
score=a.score;
}
void main() {
Student student1;
student1.show();
Student student2("student num1",555,22,99);
student2.show();
Student student3(student2);
student3.show();
cout<<"学生人数:"<<count<<endl;
}
五、总结
通过对本次上机的过程,使我对构造函数、析构函数、拷贝构造函数等有了一定的了解。

在编程的过程中遇见了许多的麻烦,通过翻阅课本进行了解决。

在以后的学习中还要多多加强。

六、附录。

相关文档
最新文档