实验四 类和对象定义
实验四类与对象名称

实验四类与对象名称一、实验目的和要求1、掌握使用类来封装属性和方法的功能。
2、掌握继承的概念。
3、掌握构造方法的使用。
二、实验内容和原理1、用类来描述游戏角色的交手次数、经验值、生命值之间的关系,并断定角色决斗的胜负。
2、用类来描述“形状”、“三角形”、“圆形”以及它们之间的关系。
三、实验环境硬件:计算机软件:Windows 2000/XP、JDK、Eclipse四、算法描述及实验步骤1.建立角色类,给出相应的成员,并能以生命值、经验值初始化角色对象。
public class Boxer {int b=1000;/*声明并初始化生命值b*/int e=0;/*声明并初始化经验值e*/int i;/*与对手交手一次,生命值消耗点数*/int j;/*与对手交手一次,经验值消耗点数*/Boxer(int a,int b){this.i=a;this.j=b;}}2.建立fight方法,接收二个角色类型的参数,返回胜者。
void fight(Boxer another){int c=0;/*声明并初始化对战次数c*/int num;while(this.b>0&&another.b>0){c++;this.b+=this.i;another.b+=another.i;this.e+=this.j;another.e+=another.j;if(this.e>=50){this.b++;this.e=-50;}if(another.e>=50){another.b++;another.e=-50;}}if(this.b>another.b){System.out.print("A win B fight number "+c);}else if(this.b==another.b){System.out.println("A win B fight number "+c);}else{System.out.println("A and B deduce");}}3.给定二个不同的角色,判定交手的胜负关系。
C++面向对象程序设计》实验报告

《C++面向对象程序设计》实验内容实验1 C++程序设计初步1.实验目的(1)了解在C++编译系统(Visual C++6.0)上如何编辑、编译、连接和运行一个C++程序。
(2)通过运行简单的C++程序, 初步了解C++源程序的结构和特点。
(3)掌握简单C++程序的编写和调试方法。
(4)掌握重载函数的定义方法。
(5)能正确使用引用型变量。
2.实验内容和步骤(1)在Visual C++环境下编译和运行C++程序①先进入Visual C++6.0环境。
②在自己指定的子目录中建立一个名为test.cpp的新文件。
③从键盘输入以下程序int main(){int a,b;c=a+b;cout>> “a+b=”>>a+b;}选择Build→Compile test.cpp命令, 对此源程序进行编译。
观察和分析编译信息。
⑤根据编译信息指出的错误, 修改程序。
再进行编译, 如果还有错, 再重复此过程, 直到编译不出错为止。
⑥选择Build→Build test.exe命令, 对程序进行连接, 如果不出错, 就会生成可执行程序test.exe。
⑦选择Build→Execute test.exe命令, 执行可执行程序test.exe。
观察屏幕的变化。
在输出窗口应显示程序运行结果。
⑧分析结果是否正确, 如果不正确或认为输出格式不理想, 可以修改程序, 然后重新执行以上④和⑧步骤。
改过后的程序:#include<iostream>using namespace std;int add(int x,int y){int z;z=x+y;return(z);}int main(){int a,b,c;cin>>a>>b;c=add(a,b);cout<<"a+b="<<c<<endl;return 0;}实验2 C++对C的扩充(2)编一个程序, 用来求2个或3个正整数中的最大数。
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)个人按顺时针方向围坐-圈,每人持有一个正整数密码。
实验一.类及对象实验报告

浙江理工大学信息学院面向对象程序设计实验报告实验名称:类的定义与使用学时安排: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_INTENSITY|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_INTENSITY|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;}六运行结果七实验心得实验很有趣,让我初步体会了程序猿的感受。
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类,并创建了多个对象。
我们可以通过对象名来访问对象的属性和方法,并对其进行操作。
我们还学习了构造方法的使用,以及封装性、继承和多态性的相关概念。
Java类与对象实验报告

实验报告一、实验项目:类与对象二、实验目的:1。
学会使用类来封装对象的属性和功能2. 掌握类变量与实例变量,以及类方法与实例方法的区别3。
掌握使用package和import语三、实验器材:计算机、Java编程软件JCreator四、实验原理(或仪器装置图):1. 类与对象类是组成Java程序的基本要素。
类封装了一类对象的状态和方法。
类是用来定义对象的模板。
类声明class 类名{类体}对象的声明一般格式为:类的名字对象名字;定义对象引用后,用new运算符完成对象的创建工作,分配存储空间,并对其初始化。
变量名=new 类名([构造方法实参表]);对象的使用访问成员的基本语法形式如下:对象名。
变量成员名对象名.方法成员名([实际参数表])2.成员变量和局部变量成员变量格式:[修饰符] 变量类型变量名[=初值];成员方法:格式:[修饰符]返回值的数据类型方法名(参数1,参数2,…){语句序列;return[表达式];}类中定义的变量是成员变量,而方法中定义的变量是局部变量。
3. 构造方法构造方法是一种特殊的方法,创建对象时被自动调用.与一般的方法不同,它没有返回值类型的说明,方法体中也不可以用return语句带回返回值。
构造方法的方法名与类名相同在构造方法中可以通过this关键字调用该类中其他的构造方法。
4。
包包是Java语言中有效地管理类的一个机制。
①通过关键字package声明包语句。
package 语句作为Java源文件的第一条语句,指明该源文件定义的类所在的包.package语句的一般格式为:package 包名;②import 语句:使用import 语句可以引入包中的类。
五、实验步骤及数据记录:1.定义一个圆柱体类Cylinder,并创建相应的对象,然后计算圆柱体的底面积与体积。
class Cylinder{double radius;int height;double pi=3.14;void area(){System。
java面向对象 实验四 类和对象编程(面向对象特征)

学号姓名实验序号实验四实验名称类和对象编程—面向对象特征实验地点实验日期实验内容1.设计3个类,分别学生类Student,本科生类Undergaduate,研究生类Postgraduate,学生类包含一些基本属性,如姓名、所学课程、课程成绩等,具有一个空方法getGrade();本科生类Undergaduate与研究生类Postgraduate继承学生类Student,都覆盖了父类的getGrade()方法,用于通过分数计算成绩的等级,计算方法不同,研究生的标准要比本科生的标准高一些,如下表所示。
要求对属性进行适当封装,通过方法来访问。
表课程成绩等级本科生标准研究生标准80--100优秀90—100优秀70--80良好80—90良好60--70一般70—80一般50--60及格60—70及格50以下不及格60以下不及格编写测试类,在测试类里创建Undergaduate与Postgraduate对象,计算他们的成绩,并输出他们的个人信息。
实验过程及步骤根据实验要求编写程序如下:class Student {private String name;private String course;private int score;public String getName() {return name;}public void setName(String name) { = name;}public String getCourse() {return course;}public void setCourse(String course) {this.course = course;}public int getScore() {return score;}public void setScore(int score) { this.score = score;}public String getGrade() {return"";}}class Undergaduate extends Student { Undergaduate(String _name, String_course, int _score) {setName(_name);setCourse(_course);setScore(_score);实验过程及步骤}public String getGrade() {int grade = getScore();if (grade >= 80)return ("优秀");if (grade >= 70)return ("良好");if (grade >= 60)return ("一般");if (grade >= 50)return ("及格");return ("不及格");}}class Postgraduate extends Student { Postgraduate(String _name, String _course, int _score) {setName(_name);setCourse(_course);setScore(_score);}public String getGrade() {int grade = getScore();if (grade >= 90)return ("优秀");if (grade >= 80)return ("良好");if (grade >= 70)return ("一般");if (grade >= 60)return ("及格");return ("不及格");}}public class Test {public static void main(String[] args) {Undergaduate a1 = new Undergaduate("张三", "JAVA", 80);Undergaduate a2 = new实验过程及步骤Undergaduate("李四", "JAVA", 60);Postgraduate b1 = newPostgraduate("王五", "JAVA", 90);System.out.println(a1.getName() + "的" + a1.getCourse() + "成绩为"+ a1.getGrade());System.out.println(b1.getName() + "的" + a1.getCourse() + "成绩为"+ a1.getGrade());System.out.println(a2.getName() + "的" + a2.getCourse() + "成绩为"+ a2.getGrade());}}得到结果:实验结果及分析教师评阅。
实验四C#面向对象程序基础

实验四C#面向对象程序基础(一)一、实验目的1.理解C#语言是如何体现面向对象编程基本思想。
2.掌握类对象的定义。
3.了解类的封装方法,以及如何创建类和对象。
4.了解成员变量和成员方法的特性。
5.掌握静态成员的用法。
6.加深理解面向对象编程的概念,如类、对象、实例化等;二、实验要求1. 分析程序,上机验证结果。
2. 写出程序,并调试程序,要给出测试数据和实验结果。
3. 整理上机步骤,总结经验和体会。
4. 完成实验日志和上交程序。
三、作业提交1. 建立以自己名字命名的文件夹,文件夹中包含两个文件夹,名字各为:实验成果,实验流程。
2. 实验成果文件夹中保存实验过程中的解决方案、项目等文件。
3.实验流程中存放撰写实验流程的word文档。
四、实验内容题目一:定义一个圆类,计算圆的面积和周长,并应用该类。
题目二:求n!的值,用递归的方法求n!(n>=0)。
】实验步骤:1)定义递归方法fac,计算整数n的阶乘,方法中需要递归调用自身。
2)在Main方法中读入整数n的值。
3)在Main方法中调用fac方法,求出整数n的阶乘。
4)Main方法中输出计算结果。
题目三:给三个整数排序并求其和及平均值定义一个方法,给三个整数按从小到大的顺序排序并求其和及平均值。
其中,三个待求整数及排序后的结果由引用参数传递;其和由输出参数传递;平均值由返回值返回。
在Main()方法中实现三个待求整数的输入及结果的输出。
实验步骤:1)定义方法Sort,给三个整数按从小到大的顺序排序并求其和及平均值。
其中,三个待求整数及排序后的结果由引用参数传递,其和由输出参数传递,平均值由返回值返回。
2)在Main方法中读入待求的三个正整数。
3)在Main方法中调用方法Sort给三个整数排序并求其总和及平均值。
4)在Main方法中输出结果。
题目四:程序阅读假设某银行共发出M张储蓄卡,每张储蓄卡拥有唯一的卡号,每天每张储蓄卡至多支持储蓄卡持有者的N笔“存款”或“取款”业务。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
r.setRect(1.2,4.3,7.8,9.2);
r.print();
cout<<"the area of rectangle is "<<r.getArea()<<endl;
cout<<"the perimeter of rectangle is "<<r.getPerimeter()<<endl;
提示与分析:
(1) 建立Tdate.h头文件,在此文件中录入类的说明代码。
(2) 建立Tdate.cpp程序源文件,在此文件中录入类的定义实现代码。
(3) 建立test.cpp程序源文件,在此文件中建立main函数,录入测试代码。
(4)参考程序
①Tdate.h头文件中的程序代码:
class Tdate
提示与分析:
(1) 在C++工程中添加Point.h文件,并录入Point类的说明和定义部分。
(2) 在C++工程中添加test.cpp文件,建立main()函数并录入测试代码。
(3)参考程序
①在Point.h文件中的程序源代码:
class Point
{
public:
void SetPoint(int x,int y);
p1.Move(2,1);
p2.Move(1,3);
cout<<"x1="<<p1.getX()<<"y1="<<p1.getY()<<endl;
cout<<"x2="<<p2.getX()<<"y2="<<p2.getY()<<endl;
}
(4)思考
“.h”文件和“.cpp”文件的区别与联系?
3、建立一个日期(Tdate)类,包括年(Year)、月(Month)和日(Day)等数据成员和判断是否闰年(isLeapYear)、设置日期(setDate)和显示日期(print)等成员 .函数,并利用main函数进行测试。要求将类的说明部分存储在Tdate.h文件中,将类的定义部分存储在Tdate.cpp文件中,将main函数存储在test.cpp文件中。
{
private:
int Year;
int Month;
int Day;
public:
void setDate(int y,int m,int d);
bool isLeapYear();
void print();
};
②Tdate.cpp程序源文件中的程序代码:
#include <iostream.h>
(5) 将成员函数的函数体代码放到类说明中。
(6) 在main()函数中建立Rect类的实例并调用对象的方法进行测试,如
Rect r;r.setRect源自1.0,4.3,5.1,7.8);
r.getArea();
(7)参考程序
#include<iostream>
#include<math.h>
using namespace std;
提示与分析:
(1) 定义一个人员(People)类。
(2) 声明和定义编号(Num)、姓名(Name)、性别(Sex)、出生日期(Birthday)、身份证号(ID)等数据成员。
(3) 声明和定义录入(set)和显示(print)成员函数。
(4)按上面要求编写相应代码。
五、实验报告要求
在实验报告中记录实验过程(编译错误、运行错误及改正),对实验结果进行分析,写实验的收获与体会。
void print();
(3) 思考成员函数的函数体实现代码。
计算矩形面积和周长的方法:
Area=fabs(X2-X1)*fabs(Y2-Y1);
Perimeter=(fabs(X2-X1)+fabs(Y2-Y1))*2;
(4) 根据要求设定类成员的访问权限,如成员函数为公有成员(public),数据成员为私有成员(private)。
class Rect
{
private:
double X1,Y1,X2,Y2;
public:
double getArea()
{
double Width=fabs(X2-X1);
double Height=fabs(Y2-Y1);
double Area=Width*Height;
return Area;
d.print();
if (d.isLeapYear)
cout<<"is Leap Year."<<endl;
else
cout<<"isn't Leap Year."<<endl;
}
(4)思考
如果去掉test.cpp程序源文件中的#include "Tdate.h",程序是否能正常运行?
4、设计一个用于人事管理的人员(People)类。包括数据成员:编号(Num)、姓名(Name)、性别(Sex)、出生日期(Birthday)、身份证号(ID)等等。用成员函数实现对人员信息的录入(set)和显示(print)。
}
void Tdate::print()
{
cout<<Year<<"-"<<Month<<"-"<<Day<<endl;
}
③test.cpp程序源文件中的测试代码:
#include<iostream.h>
#include "Tdate.h"
void main()
{
Tdate d;
d.set(2000,1,1);
}
(8)思考
①去掉#include<math.h>程序是否能够正常运行?
②)#include<iostream>为什么没有.h?如果加上,程序该如何修改。
2、在Point.h中,定义一个点(Point)类,包括横纵坐标X和Y两个数据成员;包括设置点位置(setPoint),获得X坐标值(getX),获得Y坐标值(getY),移动点位置(Move)四个成员函数。数据成员为私有成员,成员函数为公有成员且在类说明外定义实现。在test.cpp文件中建立main()函数,在函数体中建立Point类对象并进行测试。
实验四类和对象定义
一、实验类型
设计型
二、实验目的
1、实验目的
(1)掌握类的声明、定义和使用方法。
(2) 掌握对象的定义和使用方法。
(3) 掌握具有不同访问属性的类中成员的使用方法。
三、上机准备
1、实验室安装VC++6.0软件。
2、类的基本概念、对象的基本概念。
四、实验内容与步骤
1、在Rect.cpp中,定义一个矩形(Rect)类,包括矩形的左上角坐标(X1,Y1),矩形右下角坐标(X2,Y2)四个数据成员;包括计算矩形面积(getArea),计算矩形周长(getPerimeter),设置矩形数据成员(setRect)和输出矩形数据成员(print)四个成员函数。数据成员为私有成员,成员函数为公有成员且在类说明内定义实现。在main()函数中建立Rect类对象并进行测试。
#include "Tdate.h"
void Tdate::setDate(int y,int m,int d)
{
Year=y;
Month=m;
Day=d;
}
bool Tdate::isLeapYear()
{
return ((Year%4==0&&(Year%100!=0))||Year%400==0);
{
X1=x1;
Y1=y1;
X2=x2;
Y2=y2;
}
void print()
{
cout<<"the coordinator of rectangle is (";
cout<<X1<<","<<Y1<<"),(";
cout<<X2<<","<<Y2<<")"<<endl;
}
};
void main()
{
int getX();
int getY();
void Move(int x,int y);
private:
int X,Y;
};
int Point::getX()
{
return X;
}
int Point::getY()
{
return Y;
}
void Point::SetPoint(int x,int y)
}
double getPerimeter()
{
double Width=fabs(X2-X1);
double Height=fabs(Y2-Y1);
double Perimeter=(Width+Height)*2;
return Perimeter;
}
void setRect(double x1,double y1,double x2,double y2)
{
X=x;
Y=y;