实验类和对象

合集下载

类与对象的实验报告

类与对象的实验报告

类与对象的实验报告类与对象的实验报告引言:在计算机科学领域,类与对象是面向对象编程(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语言就等于掌握我c++的一半了,我们必须总结掌握好这两科,还要记得时时复习学过的内容。有空记得多上机练习,练好打字速度及编程的熟练度。
cout<<"第"<<i<<"个学生的信息: "<<endl<<"姓名: "<<name[i]<<endl<<"数学成绩: "<<math[i]<<endl<<"英语成绩: "<<English[i]<<endl<<"c++成绩: "<<c[i]<<endl<<"平均成绩: "<<p[i]<<endl;
}
3.编译, 检查是否有错误;
4.运行结果
5.单击右上角关闭按钮就C++退出了程序
5、单击右上角关闭按钮就C++退出了程序
实验数据记录:
1.使用计算机的具体配置信息:
CPU型号: Intel酷睿i7 860
标称频率: 2800MHz
网卡与声卡:集成
2程序结果运行如下:
结果讨论:
本次实验主要收获是学会了如何使用类和对象, 知道什么叫数据成员和成员函数
a.input();
a.count();
a.output();
return 0;
}
void News::input()
{

面向对象程序设计(C++)实验一--类和对象

面向对象程序设计(C++)实验一--类和对象

实验一类和对象一、实验目的:掌握类的设计和对象的创建及相关知识点如对象数组、类聚合、友元函数、静态成员。

二、实验内容:1、设计圆类,求两个圆的位置关系;2、设计圆类和直线类,求直线与圆的位置关系;3、设计学生类,求某班学生成绩的最高分、最低分及平均分;4、设计部门类和教师类,其中部门类成员为教师类的子对象;5、设计家庭银行账户类,其中账户资金为静态数据成员,为家庭成员共享;6、设计复数类,友元函数实现复数的加减。

三、实验过程:1、根据实验题目确定需要设计哪些类、各类中包含哪些数据成员和函数成员,设计各成员的访问权限,设计数据成员的数据类型,设计函数成员的函数原型;2、给出类设计的程序实现,特别要注意重载构造函数的实现;3、在主函数中完成题目中的逻辑,一般情况下需要创建相关类的对象,通过对象对成员函数的调用或者通过对象指针对成员函数的调用完成相应的功能。

四、参考程序代码:1、设计圆类,求两个圆的位置关系#include <iostream>#include <math.h>using namespace std;class Circle{private:float a,b,r;public:Circle(float c,float d,float e){a=c;b=d; r=e;}friend void position(Circle &,Circle &);};void position(Circle &c1,Circle &c2){float n,m,p;p=sqrt((c1.a-c2.a)*(c1.a-c2.a)+(c1.b-c2.b)*(c1.b-c2.b)); n=fabs(c1.r-c2.r);m=c1.r+c2.r;if(p>m)cout << "相离";if(p==m)cout << "相切";if(p<m)cout << "相交";}int main(){float a,b,c,d,e,f;cin >> a >> b >> c >> d >> e >> f ;Circle c1(a,b,c),c2(d,e,f);position(c1,c2);return 0;}运行结果:2、设计圆类和直线类,求直线与圆的位置关系#include<iostream>#include<math.h>using namespace std;class Circle//圆类{private:float x,y,r;public:Circle(float a,float b,float c) {x=a;y=b;r=c;}float getx(){return x;}float gety(){return y;}float getr(){return r;}};class Line//直线类{private:float a,b,c;public:Line(float x,float y,float z){a=x;b=y;c=z;}void position(Circle c1){float d=fabs(a*c1.getx()+b*c1.gety()+c)/sqrt(a*a+b*b) ;//圆心到直线的距离if(d<c1.getr())cout << "相交";if((d-c1.getr())<0.000001)cout << "相切";cout << "相离";}};int main(){Line l1(3,3,4);//创建直线对象Circle c1(-23,3,7);//创建圆对象l1.position(c1);return 0;}运行结果:3、设计学生类,求某班学生成绩的最高分、最低分及平均分#include <iostream>#include <string.h>using namespace std;class Student{private:char name[20],xuehao[20];float math;public:Student(){}Student(char *na,char *xu,float ma):math(ma) {strcpy(name,na);strcpy(xuehao,xu);}void set(char *na,char *xu,float ma){math=ma;strcpy(name,na);strcpy(xuehao,xu);}char *get_name(){return name;}char *get_xuehao(){return xuehao;float get_math(){return math;}};void max_min(Student stu[],int n){Student max,min;max=min=stu[0];for(int i;i<n;i++){if(stu[i].get_math()>max.get_math())max=stu[i];if(stu[i].get_math()<min.get_math())min=stu[i];}cout << "学生成绩最高:" << max.get_name() << "," << max.get_xuehao() << "," << max.get_math() << endl;cout << "学生成绩最低:" << min.get_name() << "," << min.get_xuehao() << "," << min.get_math() << endl;}void ave(Student stu[],int n){float sum=0;for(int i=0;i<n;i++){sum=sum+stu[i].get_math();cout << "ave=" << sum/n;}int main(){char na[20],xu[20];float ma;Student stu[20];int n;cout << "请输入学生总人数"; cin >> n;for(int i=0;i<n;i++){cin >> na >> xu >> ma ; stu[i].set(na,xu,ma); }max_min(stu,n);ave(stu,n);return 0;}运行结果:4、设计部门类和教师类,其中部门类成员为教师类的子对象#include <iostream>#include <string.h>using namespace std;class Department{private:int dep_num;char dep_master[20];char dep_name[20];public:Department(){}Department(int num,char *ma,char *na){dep_num=num;strcpy(dep_master,ma);strcpy(dep_name,na);}void show(){cout << dep_num << "," << dep_master << "," << dep_name ; }};class Teacher{private:char name[20];char haoma[20];Department dep;public:Teacher(char *n,char *nu,int num,char *ma,char *na):dep(num,ma,na) {strcpy(name,n);strcpy(haoma,nu);}void show(){dep.show();cout << "," << name << "," << haoma << endl;}};int main(){Teacher hp("wanghai","12345",6,"kiki","computer");hp.show();return 0;}运行结果:5、设计家庭银行账户类,其中账户为静态数据成员,为家庭成员共享#include <iostream>#include <string.h>using namespace std;class Familymember//家庭成员类{private:char membername[10];//成员名public:static float account;//共享账户资金 Familymember(char *name);static void save(float money);//存钱 static void pay(float money);//支出 static void show(); //显示账户余额};float Familymember::account=0;Familymember::Familymember(char *name) {strcpy(membername,name);}void Familymember:: save(float money) {account= account+money;}void Familymember:: pay(float money){account= account-money;}void Familymember:: show(){cout<<account<<endl;}int main()//主函数{ Familymember husband("wang"),wife("Li"); husband.save(10000);wife.pay(3000);wife.save(5000);wife.show();husband. show();}运行结果:6、设计复数类,友元函数实现复数的加减#include <iostream>using namespace std;class Fushu{private:float ss,xs;public:Fushu(){}Fushu(float a,float b){ss=a;xs=b;}friend Fushu jiafa(Fushu &f1,Fushu &f2){return Fushu((f1.ss+f2.ss),(f1.xs+f2.xs)); }friend Fushu jian(Fushu &f1,Fushu &f2){return Fushu((f1.ss-f2.ss),(f1.xs-f2.xs)); }void show(){cout << ss << " + " << xs << "i" << endl; }};int main(){Fushu f1(2,3),f2(4,5);Fushu f3,f4;f3=jiafa(f1,f2);f4=jian(f1,f2);f3.show();f4.show();return 0;}运行结果:。

类与对象实验报告

类与对象实验报告

类与对象实验报告类与对象实验报告引言:类与对象是面向对象编程的基本概念,通过定义类和创建对象,可以实现对数据和行为的封装,使程序更加模块化和可扩展。

本实验旨在通过实际操作,加深对类与对象的理解,并掌握其基本用法。

实验过程:1. 定义类:在实验开始前,我们首先需要定义一个类。

类是对象的抽象描述,包含了对象的属性和方法。

以汽车为例,我们可以定义一个Car类,其中包含品牌、颜色和速度等属性,以及启动、加速和刹车等方法。

2. 创建对象:在定义了Car类之后,我们可以通过创建对象来实例化该类。

通过使用new关键字,我们可以创建多个汽车对象,每个对象都拥有独立的属性和方法。

例如,我们可以创建一个名为myCar的对象,它是Car类的一个实例。

3. 访问对象的属性和方法:创建了对象之后,我们可以通过点运算符来访问对象的属性和方法。

例如,通过myCar.brand可以获取myCar对象的品牌属性,通过myCar.start()可以调用myCar对象的启动方法。

这样,我们可以通过对象来操作和管理数据,使代码更加清晰和可读。

4. 对象之间的交互:在实际编程中,对象之间经常需要进行交互。

通过在类中定义方法,我们可以实现对象之间的数据传递和信息交流。

例如,我们可以定义一个方法来获取其他汽车对象的速度,并根据这些速度进行比较和判断。

实验结果:通过实验,我们深入了解了类与对象的概念和用法。

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

通过访问对象的属性和方法,我们可以实现对数据和行为的封装,使代码更加模块化和易于理解。

通过对象之间的交互,我们可以实现数据的共享和协作,提高程序的效率和灵活性。

实验总结:类与对象是面向对象编程的核心概念,掌握了类与对象的基本用法对于开发高质量的程序至关重要。

通过本次实验,我们加深了对类与对象的理解,并通过实际操作掌握了其基本用法。

在以后的编程过程中,我们可以更加灵活地运用类与对象,提高代码的可读性和可维护性。

类和对象实验报告

类和对象实验报告

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

通过类和对象的使用,可以将现实世界中的事物抽象为计算机程序中的实体,从而更好地描述和处理问题。

本实验将通过一个简单的示例来介绍类和对象的基本概念,并展示它们在实际编程中的应用。

实验目的:1. 理解类和对象的概念;2. 学会创建类和对象,并进行基本的操作;3. 掌握类和对象在程序中的应用。

实验过程:1. 定义一个类:首先,我们需要定义一个类来表示一个学生。

一个学生通常有姓名、年龄和成绩等属性。

我们可以使用Python语言来定义这个类,如下所示:```pythonclass Student:def __init__(self, name, age, score): = nameself.age = ageself.score = score```在上述代码中,我们使用了Python中的类和构造函数的概念。

`__init__`方法是类的构造函数,用于初始化类的属性。

`self`表示类的实例对象本身。

2. 创建对象:在类定义完成后,我们可以创建类的对象。

通过创建对象,我们可以访问和操作类的属性和方法。

下面是创建一个学生对象的示例代码:```pythonstudent1 = Student("张三", 18, 90)```在上述代码中,我们使用`Student`类的构造函数创建了一个名为`student1`的学生对象。

通过传入相应的参数,我们可以为学生对象的属性赋值。

3. 访问对象的属性和方法:一旦对象创建成功,我们就可以通过对象来访问和操作类的属性和方法。

下面是一些访问对象属性和方法的示例代码:```pythonprint() # 输出学生的姓名print(student1.age) # 输出学生的年龄print(student1.score) # 输出学生的成绩def study(self):print(f"{}正在学习")student1.study() # 调用学生对象的study方法```在上述代码中,我们通过对象的名称和点操作符来访问对象的属性和方法。

实验报告实验类与对象精修订

实验报告实验类与对象精修订

实验报告实验类与对象标准化管理部编码-[99968T-6889628-J68568-1689N]实验报告_实验3类与对象(学生学号_姓名)一、实验目的1.熟悉类的组成,掌握类的声明方法;2.理解构造方法的作用,并掌握构造方法的定义;3.熟练使用访问器和设置器实现信息隐藏和封装;4.熟悉一般方法、构造方法的重载;5.能够正确地区分静态变量与实例变量、静态方法与实例方法的不同,掌握静态变量和静态方法的使用;6.掌握对象的创建、引用和使用及向方法传递参数的方式;7.掌握this关键字的使用以及对象数组的创建和访问;8.掌握Java包的创建、包成员的各种访问方式;9.掌握一维数组:声明,创建,初始化,数组元素的访问;10.掌握多维数组的概念:二维数组的声明,初始化,元素的访问。

二、实验内容与步骤1.请回答下列问题:(1)Cirecle类定义了几个属性?它们的类型、访问权限各为什么?答:两个PI,floatl类型,静态私有权限Radius,float;类型,私有权限(2)类中的“PI”的值可以在程序的方法中更改吗?答:不可以,因为PI为静态变量(3)Cirecle类定义了几个方法它们的访问权限怎样答:四个,getRadius(),setRadius(floatradius),getPerimeter(),getArea()都是公有权限2.写出Rectangle类的程序代码:classRectangle{privatefloatwidth;privatefloatlength;publicfloatgetWidth() //获取矩形宽度{returnwidth;}publicfloatgetLength() //获取矩形长度{returnlength;}publicfloatgetPerimeter() //获取矩形周长{return2*(width+length);}publicfloatgetArea() //获取矩形面积{return(width*length);}publicvoidsetWidth(floatw) //设置矩形宽度{width=w;}publicvoidsetLength(floatl) //设置矩形长度{length=l;}}3.回答下列问题:(1)该程序中有几个类主类是什么如果将这两个类放在一个文件中,源程序文件名应是什么?答:两个类:Circle、CircleTest;主类是CircleTest;源程序文件名是CircleTest。

[实验报告]类和对象

[实验报告]类和对象

[实验报告]类和对象
一、实验目的
通过本次实验,了解抽象的一种程序设计概念“类”和“对象”,理解类之间的继承与多态性,以及封装对对象的各种属性和行为,实现软件对象模型与真实世界对象间的映射。

二、实验内容
1.定义类与对象
(1)类是代表一类实体的抽象。

它包含了一个共同拥有的结构和行为。

类是面向对象程序设计的基本元素。

(2)对象是一个实例。

它拥有一个特定于其类型的属性,并表现出对应的行为。

对象是程序中实际的可操作的元素。

2.类的成员
(1)类的成员可以是变量,函数,常量等等。

(2)变量:类的成员变量可以存储数据成员和提供给类的方法,这些变量被称为实例变量;类变量存储类及其对象的信息。

(3)函数:类的成员函数用于封装一定的行为或对对象的设置,它可以访问实例变量和类变量的值,以及实现一定的功能。

多态性是指一个类可以根据不同环境要求而采用不同的行为。

接口就是把数据和逻辑封装在一起的内部接口。

实验报告4 类与对象

实验报告4 类与对象

实验名称:类与对象一.实验目的:(1)理解C#语言是如何体现面向对象编程基本思想;(2)掌握类对象的定义;(3)了解类的封装方法,以及如何创建类和对象;(4)了解成员变量和成员方法的特性;(5)掌握静态成员的用法;(6)掌握构造函数和析构函数的含义与作用、定义方式和实现,能够根据要求正确定义和重载构造函数。

能够根据给定的要求定义类并实现类的成员函数;(7)掌握参数传递的用法;(8)掌握属性的作用和使用。

二.上机内容:1)创建MyDataTime类,熟悉构造函数、析构函数的定义方法、属性的定义方法以及一般方法的定义过程。

(2)创建Fraction类,掌握运算符重载、静态方法的使用及其与实例方法的区别。

(3)创建Swap类,掌握C#方法中参数的传递。

(4)整理上机步骤,总结经验和体会。

(4)完成实验报告。

四.上机步骤:类的创建与应用:创建一个MyDataTime类,要求如下:(1)私有字段:year,month,day;(2)属性:Year,Month,Day。

注意在定义Month和Day的settor时要检验设置值的有效性,其中,,同时在对Day进行设置的时候要注意闰年和平年的2月的天数。

(3)方法:构造函数:根据需求确定不同参数列表的构造方法。

析构函数:提示析构对象。

PrintMyDataTime:以“2011/4/24”、“2011年4月24日”、“2011.4.24”、“二〇一一年四月二十四日”的形式输出Year,Month和Day。

using System;using System.Collections.Generic;using System.Text;namespace ConsoleApplication1{class MyDataTime{private int year;public int Year{set { year = value; }get { return year; }}private int month;public int Month{set{if (value >= 1 && value <= 12){month = value;}else{Console.WriteLine("month的赋值范围为[1,12];您输入的值不正确");}}get { return month; }}public int day;public int Day{set{if (month == 2 ){if(year%400==0||(year%100!=0&&year%4==0)){if(value>=1&&value<=29){day=value;}else{if(value>=1&&value<=28){day=value;}}}}else if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12){ if (value >= 1 && value <= 31){ day = value; }}else{if(value>=1&&value<=30){day=value;}}}get { return day; }}public MyDataTime(int x, int y, int z){ Year=x;Month=y;Day=z;}public void show1(){Console.WriteLine("您输入的时间是:{0}/{1}/{2}", year, month, day); }public void show2(){Console.WriteLine("您输入的时间是:{0}年{1}月{2}日", year, month, day);}public void show3(){Console.WriteLine("您输入的时间是:{0}.{1}.{2}", year, month, day); }}class Program{static void Main(string[] args){Console.WriteLine("请输入年:");int a = int.Parse(Console.ReadLine());Console.WriteLine("请输入月:");int b = int.Parse(Console.ReadLine());Console.WriteLine("请输入日:");int c = int.Parse(Console.ReadLine());MyDataTime k = new MyDataTime(a,b,c);k.show1();k.show2();k.show3();Console.ReadLine();}}}通过类程序说明静态变量/方法与实例变量/方法的区别:创建一个分数类(Fraction),要求如下:私有字段:FenZi,FenMu构造函数:Fraction(int FenZi, int FenMu),注意要校验分母,不能为0;方法:重载运算符和-(负号),完成分数的加减乘除以及求相反数运算。

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