实验一.类与对象实验报告

合集下载

类图、对象图实验报告

类图、对象图实验报告

UML建模课程实验三、UML类图、对象图模型的设计班级:信息0702 组别:指导老师:徐凯波姓名:王姗学号:2007030331205一、实验要求:掌握利用UML建模工具建立类图和对象图的方法。

二、实验内容:利用UML建模工具设计类图和对象图三、实验环境:Windows 2000 Professional以上环境、Rational Rose2003、Sybase Power Designer 10四、操作步骤:五、遇到的问题和解决方法:类图是所有图中比较好画的一种图,就是将角色、系统它们所具有的属性和活动输入到软件中去,我的类图中角色有管理员、学生,管理员的属性有:管理学的账号、管理员的姓名、管理员的性别、管理员的年龄,他所参与的活动有添加课程信息、删除课程信息、修改课程信息、查询课程信息、登录系统、添加学生信息、删除学生信息、修改学生信息、查询学生信息、查询学生信息;学生的属性有:学生账户、学生姓名、学生性别、学生年龄,他所参与的活动有:查询课程信息、选课、查询个人选课信息,登录系统。

系统的包括:学生信息维护系统、课程管理系统、选课管理系统,学生信息维护系统的属性有:学生的账号、姓名、性别、年龄、管理员的账号;选课管理系统:学生账号、课程编号、课程名称、课程地点、课程时间、课程学分、课程学时;课程管理系统:课程编号、课程名称、课程地点、课程时间、课程学分、课程学时。

在画整个类图的过程中,我没有遇到太多的问题。

六、实验心得和体会:在老师的辅导下,我经过前一阶段的练习,基本掌握了UML的要领,类图我基本上没有太费时间,只是想好属性和动作,还有就是个角色之间的关系,类图的难点是角色与角色之间的关系,究竟是一对多、一对一、多对多。

确定好角色与角色的关系,类图就很容易完成了。

类与对象的实验报告

类与对象的实验报告

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

类与对象实验报告

类与对象实验报告

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

c++类和对象实验报告

c++类和对象实验报告

实验一类和对象实验课程名:面向对象程序设计(C++)专业班级:学号::实验时间:实验地点:指导教师:p->PrintList();cout<<"请输入要删除的元素所在的位置:"<<endl;cin>>n;p->Delete(n);p->PrintList();return 0;}运行结果:2.设计一个带头结点的单链表类,要求:(1)生成一个整数线性表,实现将其分解成两个链表,其中一个全部为奇数,另一个全部为偶数(尽量利用已知的存储空间)。

(2)设计一个测试主函数,实际运行验证所设计单链表类的正确性。

实验代码:#include<iostream>using namespace std;L3.PrintList( );cout<<"链表的长度为:"<<L1.Length( )<<endl;cout<<"链表的第四个元素为:"<<L1.Get(4)<<endl;cout<<"链表中元素5为第"<<L1.Locate(5)<<"个元素"<<endl;L1.Insert(4, 17);cout<<"插入元素后链表为:";L1.PrintList( );L1.Delete(8);cout<<"删除第8个元素后链表变为:";L1.PrintList( );return 0;}实验结果:3.设计一个不带头结点的单链表类,要求:(1)不带头结点单链表类的成员函数包括取数据元素个数、插入元素、删除所有值为k的元素、取数据元素。

{int a[10]={0,1,2,3,4,5,6,7,8,9};LinkList<int> L(a,10);cout<<"链表长为:"<<L.Length()<<endl;cout<<"链表的第6个元素为:"<<L.Get(6)<<endl;L.Insert(5,17);cout<<"在链表第5个位置插入元素17后链表变为:";L.PrintList();L.Delete(8);cout<<"删除第8个元素后链表变为:";L.PrintList();return 0;}实验结果为:4.设计一个带头结点的循环单链表类,实现约瑟夫环问题;问题描述:设编号为1,2,…,n(n>0)个人按顺时针方向围坐-圈,每人持有一个正整数密码。

java类与对象实验报告心得

java类与对象实验报告心得

java类与对象实验报告心得哇,做完这个Java类与对象的实验,真的是感触颇多呢。

在做这个实验之前呀,对于Java里的类和对象,我就只停留在理论知识上,觉得它们好抽象哦。

什么是类呢?就像是一个蓝图一样,描述了对象应该具有的属性和行为。

可那时候,我对这个概念也只是一知半解啦。

当开始做实验的时候,我才真正体会到其中的乐趣与挑战。

创建类的时候,我要去仔细思考这个类到底需要哪些属性。

就好比我要创建一个表示学生的类,那姓名、年龄、学号这些属性肯定是必不可少的呀。

这就像是在设计一个学生的模板一样,好有趣呢。

定义类中的方法也很有意思。

这些方法就像是这个类的功能一样。

比如说学生类中的学习方法,我可以在这个方法里编写一些代码来表示学生学习的过程。

刚开始写的时候,还老是出错呢,哎呀。

不是语法错误,就是逻辑上有点混乱。

不过这也是学习的过程嘛。

创建对象就像是根据这个蓝图来制造一个具体的东西。

我根据学生类创建了具体的学生对象,每个学生对象都有自己独特的属性值。

这就像是在现实生活中,每个学生都是独一无二的一样。

当我成功创建出这些对象并且让它们执行相应的方法时,那种成就感真的难以言表,哈哈。

在实验过程中,我还深刻体会到了封装的重要性。

把类的属性和方法封装起来,就像是给它们穿上了一层保护罩一样。

这样可以防止外部的代码随意修改类内部的数据,使得代码更加安全和可靠。

这让我觉得Java真的是一门很严谨的编程语言呢。

另外呀,类与类之间的关系也很复杂但又很有趣。

有继承关系,就像儿子类继承父亲类的属性和方法一样。

还有组合关系,一个类可以包含其他类的对象作为自己的属性。

理解这些关系的时候,我费了好大的劲呢,不过一旦理解了,就感觉像是打开了新世界的大门。

这次实验让我对Java类与对象的理解不再停留在书本上的文字,而是真正地可以运用它们来编写程序了。

我觉得自己在编程的道路上又前进了一大步呢。

希望以后还能做更多这样有趣又有挑战性的实验,让我可以更加熟练地掌握Java编程呀。

实验报告

实验报告

实验四类,对象和接口一.实验目的(1)掌握类的声明,对象的创建以及方法的定义和调用。

(2)掌握打包机制。

(3)掌握类的继承。

(4)掌握类接口的使用。

二、实验方案(1)//Father.java;package tom.jiafei;public class Father{int height;protected int money;public int weight;public Father(int m){money=m;}protected int getMoney(){return money;}void setMoney(int newMoney){money=newMoney;}}//Jerry.java:import tom.jiafei.Father;public class Jerry extends Father{public Jerry(){super(20);}public static void main(String args[]){Jerry jerry=new Jerry();jerry.weight=200;jerry.money=800;int m=jerry.getMoney();System.out.println("m="+m);}}(2)interface ShowMessage{void 显示商标(String s);}class TV implements ShowMessage{public void 显示商标(String s){System.out.println(s);}}class PC implements ShowMessage{public void 显示商标(String s){System.out.println(s);}}public class Example4_28{public static void main(String args[]){ShowMessage sm;sm=new TV();sm.显示商标("长城牌电视机");sm=new PC();sm.显示商标("联想奔月5008PC");}}(3)求50以内的素数//Number.javapackage sushu;//将Number.java打包到文件夹sushu中public class Number{public void prn()//创建方法prn(){boolean flag ;for (int i=2;i<50;i++){flag = true ;//将flag初始化for (int j=2 ;j <= i/2 ; j++){ //只需对2到i/2之间取余,因为假如i/2到i有某个数x被i整除,则在2到i/2必定能找到一个数y(y*x=i)被i整除if (i%j == 0 ){flag = false ;break;//假如2到i/2有某个数被i整除,则跳出,执行下一次循环}}if (flag == true ){System.out.print(i+"\t");}//若flag为真,则i为素数,输出i的值}}}//Num.javaimport sushu.Number;//引用定义的包public class Num extends Number{public static void main(String args[]){Number num=new Number();num.prn();}}三、实验结果和数据处理(1)(2)(3)实验五数组与字符串一.实验目的(1)掌握一维数组的概念、定义和使用。

[实验报告]类和对象

[实验报告]类和对象

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

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

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

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

(2)对象是一个实例。

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

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

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

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

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

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

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

java类与对象实验报告

java类与对象实验报告

java类与对象实验报告Java类与对象实验报告一、引言Java是一种面向对象的编程语言,类和对象是Java编程的基本概念。

在本次实验中,我们将学习和掌握Java类和对象的概念、定义和使用方法,并通过实际的编程实验来加深对这些概念的理解。

二、实验目的1. 理解Java类和对象的概念;2. 学会定义和使用Java类;3. 掌握创建和操作Java对象的方法;4. 熟悉Java类和对象的相关语法和规范。

三、实验过程1. 类的定义在Java中,类是对象的模板,用于描述对象的属性和行为。

我们首先需要定义一个类,以便创建对象。

类的定义包括类名、属性和方法。

属性即对象的特征,方法即对象的行为。

2. 对象的创建通过使用关键字"new",我们可以创建一个类的对象。

对象是类的实例化,每个对象都有自己的属性和方法。

3. 对象的属性和方法对象的属性和方法可以通过对象名加点操作符来访问。

属性可以是基本类型或其他类的对象,方法可以是对象的行为或功能。

4. 构造方法构造方法是一种特殊的方法,用于创建对象时进行初始化操作。

构造方法的名称必须与类名相同,没有返回类型,可以有参数。

5. 封装性封装性是面向对象编程的重要特性之一,它将数据和方法封装在类中,对外部隐藏内部实现细节。

通过使用访问修饰符(private, public, protected)来控制属性和方法的访问权限。

6. 继承继承是面向对象编程的另一个重要特性,它允许我们创建一个新类,并从现有类中继承属性和方法。

通过使用关键字"extends"来实现继承。

7. 多态性多态性是面向对象编程的核心概念之一,它允许我们使用一个父类类型的引用来引用子类的对象。

通过方法的重写和重载来实现多态性。

四、实验结果通过本次实验,我们成功定义了一个Java类,并创建了多个对象。

我们可以通过对象名来访问对象的属性和方法,并对其进行操作。

我们还学习了构造方法的使用,以及封装性、继承和多态性的相关概念。

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

浙江理工大学信息学院面向对象程序设计实验报告实验名称:类的定义与使用学时安排:3实验类别:设计性实验实验要求:1人1组姓名:邵旸珂学号:2016329621068 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄一、实验目的1)掌握类的概念、类的定义格式、类与结构的关系、类的成员属性和类的封装性;2)掌握类对象的定义;3)理解类的成员的访问控制的含义,公有、私有和保护成员的区别;4)掌握构造函数和析构函数的含义与作用、定义方式和实现,能够根据要求正确定义和重载构造函数。

能够根据给定的要求定义类并实现类的成员函数;二、实验原理介绍通过建立类及对象,用类的成员函数和对象访问类的成员;利用建立类的构造函数,完成类的成员的初始化工作;三、实验设备介绍软件需求: windows或linux下的c++编译器硬件需求: 对于硬件方面的要求,建议配置是Pentium III 450以上的CPU 处理器,64MB以上的内存,200MB的自由硬盘空间、CD-ROM驱动器、能支持24位真彩色的显示卡、彩色显示器、打印机。

四、实验内容编写一个程序,模拟电梯的功能。

功能接口包括电梯上行按钮、下行按钮、楼层选择和电梯在行驶过程中的楼层显示。

要求:1.由用户选择按上行按钮还是下行按钮,选择操作后再由用户输入要进入的楼层,进而电梯开始运行,显示所到的每一楼层层数。

2.如果是上行,则选择输入的楼层号不能比当前楼层号小,否则应给出不合法提示。

3. 如果是下行,则选择输入的楼层号不能比当前楼层号大,否则应给出不合法提示。

4.电梯一旦开始运作就会始终运行,直到窗口关闭。

5.电梯在经过不同楼层时,最好每个楼层的显示之间能有延迟,最终停靠的楼层的输出形式能更加醒目。

如果可以,在电梯最初开始运行时,能在电梯由内部显示当前日期(提示:实现这些功能时,需要调用系统api,实现时间显示功能可以使用CDate类)。

五程序清单#include <iostream>#include <ctime>#include <windows.h>using namespace std;int n,floorNumber;class Elevator{private:int floor; //电梯总的楼层数bool up; //是否上行,bool为布尔类型,可取值true或falsebool down; //是否下行int currentFloor; //当前所在楼层public:Elevator(int floor);void setUpButton(); //按下上行按钮void setDownButton(); //按下下行按钮void setFloorNumber(int floorNumber); //根据要进入的楼层电梯开始运行,并逐层显示经过的楼层int getCurrentFloor();//获得当前所在楼层void charge();int choice();};Elevator::Elevator(int f){floor =f;up=false;down=false;currentFloor=1;};void Elevator::setUpButton(){if(currentFloor>floorNumber){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_IN TENSITY|FOREGROUND_RED|FOREGROUND_GREEN);cout<<"您不能上行!"<<endl<<endl;}else if(floorNumber>floor){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_IN TENSITY|FOREGROUND_RED|FOREGROUND_GREEN);cout<<"没这一层!太高啦!您想上天?!"<<endl<<endl;}else up=true;}void Elevator::setDownButton(){if(currentFloor<floorNumber){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_IN TENSITY|FOREGROUND_RED|FOREGROUND_GREEN);cout<<"您不能下行!"<<endl<<endl;}else if(floorNumber<1){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_IN TENSITY|FOREGROUND_RED|FOREGROUND_GREEN);cout<<"没这一层!太低啦!您想入地?!"<<endl<<endl;}else down=true;}void Elevator::setFloorNumber(int floorNumber){if(up){for(;currentFloor<floorNumber;currentFloor++){ cout<<"--"<<currentFloor<<"--"<<endl;Sleep(2000);}SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_IN TENSITY|FOREGROUND_RED);cout<<"第"<<currentFloor<<"层到了"<<endl<<endl;up=false;}if(down){for(;currentFloor>floorNumber;currentFloor--){ cout<<"--"<<currentFloor<<"--"<<endl;Sleep(2000);}SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_IN TENSITY|FOREGROUND_RED);cout<<"第"<<currentFloor<<"层到了"<<endl<<endl;down=false;}}int Elevator::getCurrentFloor(){return currentFloor;}int Elevator::choice(){cin>>n;if(n==2&&getCurrentFloor()==1){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_IN TENSITY|FOREGROUND_RED|FOREGROUND_GREEN);cout<<"您已经在第一层了!除非您自己打洞,不然我是不会带你下去的!"<<endl<<endl;return 0;}switch(n){case 1:cout<<"请输入要进入的楼层"<<endl;cin>>floorNumber;setUpButton();setFloorNumber(floorNumber); break;case 2:cout<<"请输入要进入的楼层"<<endl;cin>>floorNumber;setDownButton();setFloorNumber(floorNumber); break;case 3:return -1;default:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREG ROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);cout<<"只能选上升和下降!您难道还想玩电梯漂移?!"<<endl<<endl; break;}SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_IN TENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);cout<<"当前电梯停在"<<getCurrentFloor()<<"层"<<endl;}void Elevator::charge(){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_IN TENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);cout<<"---请选择操作---"<<endl;cout<<"| 1.上升 |"<<endl;cout<<"| 2.下降 |"<<endl;cout<<"| 3.退出 |"<<endl;cout<<"|--------------|"<<endl;}int main(){long a;time(&a);int floor;cout<<"告诉我总共有几层"<<endl;cin>>floor;Elevator el(floor);SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_IN TENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);cout<<ctime(&a)<<endl;cout<<"本电梯共"<<floor<<"层,欢迎您的使用"<<endl<<endl;while(1){int i=0;el.charge();i=el.choice(); if(i==-1) break; }return 0;}六运行结果。

相关文档
最新文档