实验三_类和对象_()

合集下载

java面向对象实验三 类与对象编程—类与对象基础

java面向对象实验三 类与对象编程—类与对象基础
}
}
⒉实验测试结果:
实验结果及分析
实验结果:
(1)成功输出平均成绩和总成绩。
(2)创建四个学生对象,并成功输出学生信息。
教师评阅
System.out.println(name+"的平均成绩"+(java+c+db)/3.0);
}
voidsum(){
System.out.println(name+"的总成绩为"+(java+c+db));
}
}
publicclassTest{
publicstaticvoidmain(String []args){
classUndergraduate {
Stringname;
intcourse;
Stringeducation="本科";
Undergraduate(String _name,int_course) {
name= _name;
course= _course;
}
String getGrade() {
return("良好");
if(course>= 70)
return("一般");
if(course>= 60)
return("及格");
return("不及格");
实验过程及步骤
}
}
publicclassTest {
publicstaticvoidmain(String[] args) {
Underg("张三", 68);

实验三类与对象

实验三类与对象

实验三类与对象实验目的●掌握类和对象的概念、定义和访问方法●掌握不同类型成员的访问限制●掌握构造函数和析构函数的使用方法实验示例[例3-1] 运用面向对象程序设计方法编写一个程序,计算两个给定长方形的面积,其类中设计一个用于计算两个长方形的总面积成员函数。

解题思路:设计一个类Rect,包含数据成员len(表示长度)、wid(表示宽度),以及求面积的公有成员函数area()、求两个长方形的总面积成员函数addarea(),并设计两个重载的构造函数。

实现步骤:1.新建Win32 Console Application程序项目2.在文件编辑区窗口编写如下程序代码:#include <>#include <>class Rect{float len,wid;public:Rect(){ }; // 判断今天是否为某雇员的生日、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、#include<>class Date{public:void getdate() // 输出日期,格式:"2000年1月1日"{cout<<y<<"年"<<m<<"月"<<d<<"日";}int getyear() // 返回年份{return y;}int getmonth() // 返回月份{return m;}int getday() // 返回日期{return d;}void setdate(int y1, int m1, int d1) // 设置日期{y=y1;m=m1;d=d1;}private:int y,m,d;};class employee{char name[10];int num;Date birth;public:void set(char a[10],int b){name[10]=a[10];num=b;}void Birth(int y2,int m2,int d2){(y2,m2,d2);}void show(){cout<<"编号为"<<num<<"的雇员生日为";();cout<<endl;}int isBirth(Date a,employee b) // 判断今天是否为某雇员的生日{int mn,my,dn,dy;mn=();my= dn=();dy= if(mn==my&&dn==dy)return 1;elsereturn 0;}};int main(){Date today;(2014,3,27);employee f;("Anna",1);(1992,8,19);();cout<<"今天是";();cout<<endl;if(today,f))cout<<"今天是该雇员的生日。

java基础实验报告

java基础实验报告

java基础实验报告Java基础实验报告引言:Java作为一种面向对象的编程语言,广泛应用于软件开发领域。

本次实验旨在通过一系列的实验任务,加深对Java基础知识的理解,并掌握Java编程的基本技巧。

实验一:Java环境搭建在本实验中,我们首先需要搭建Java开发环境。

Java开发工具包(JDK)是进行Java编程的基础,我们可以从Oracle官网上下载并安装最新版本的JDK。

安装完成后,我们需要配置环境变量,以便在命令行中能够直接运行Java相关的命令。

实验二:Java语言基础Java语言基础是进行Java编程的基石。

在本实验中,我们需要掌握Java的基本语法规则、数据类型和运算符等。

通过编写简单的程序,如计算两个数的和、判断一个数是否为素数等,加深对Java语言基础的理解。

实验三:面向对象编程面向对象编程是Java的核心特性之一。

在本实验中,我们需要学习Java中的类和对象的概念,并通过编写简单的类和对象来实现一些功能。

例如,创建一个学生类,包含姓名、年龄和成绩等属性,并实现一些与学生相关的操作方法。

实验四:异常处理异常处理是Java编程中重要的一部分。

在本实验中,我们需要学习Java中的异常处理机制,并通过编写代码来处理可能出现的异常情况。

例如,通过try-catch语句来捕获并处理用户输入非法字符的异常。

实验五:文件操作在实际的软件开发中,文件操作是非常常见的需求。

在本实验中,我们需要学习Java中的文件操作相关的类和方法,并通过编写代码来实现文件的读取和写入等功能。

例如,读取一个文本文件中的内容,并将其写入到另一个文件中。

实验六:多线程编程多线程编程是提高程序性能和效率的一种方式。

在本实验中,我们需要学习Java中的多线程编程相关的知识,并通过编写代码来实现多线程的应用。

例如,创建多个线程来同时下载多个文件,并实现进度条的显示。

结论:通过完成以上一系列的实验任务,我们对Java基础知识有了更深入的理解,并掌握了Java编程的基本技巧。

实验报告_实验3 类与对象

实验报告_实验3 类与对象

实验报告_实验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(float radius),getPerimeter(),getArea()都是公有权限2.写出Rectangle类的程序代码:class Rectangle{private float width;private float length;public float getWidth( ) 法4.写出OverrideTest中所缺的三行代码:public class OverrideTest {public static void main(String[] args) {ength;j++) ength __________;j++) ength ___________;i++){ e ngth;j++){问题:(1)二维数组如何声明、创建?二维数组的列数是否一定要求相同?答:数据类型数组名[ ][ ] 或数据类型[ ][ ] 数组名;不要求相同。

实验三 类与对象(1)——耿祥义

实验三   类与对象(1)——耿祥义
3)Circle类具有类型为double的半径、周长和面积属性,具有返回周长、面积的功能。
定义Test3_2类,在其中编写一个main方法,在其中创建分别创建三个类的对象,并显示Circle,Lader,Trangle对象的属性信息和面积值。对Trangle对象,还要显示其是否可以构成三角形的信息。
(二)使用修饰符
有时需要公开一些变量和方法,有时需要禁止其他对象使用变量和方法,这时可以使用修饰符来实现这个目的。常用的修饰符如下。public,private,protected,package,static,final,transient,volatile
程序功能:通过两个类StaticDemo、KY2_4说明静态变量/方法与实例变量/方法的区别。
③将class CCircle中的变量double pi; double radius;加上private修饰符,进行编译会出现什么问题,为什么?
④将void setCircle(double r, double p),double getRadius()和double getCircleArea()加上修饰符static,重新编译会出现什么问题?仍用static,怎样修改别的地方来纠正这个错误?在main中引用这些方法时不用创建对象则怎样引用?
程序功能:描述一个圆类,其主要属性为半径,还有一个非常重要的常量是圆周率。该圆可以求出面积,可以设置半径和取得半径大小。
class CCircle
{ double pi;
double radius;
double getRadius()
{ return radius;
}
void setCircle(double r, double p)
void aaa()

c++实验报告【范本模板】

c++实验报告【范本模板】

面向对象程序设计(C++)实验报告指导老师:***学生:吴健班级:软131学号:*********目录实验一、VC6.0环境入门与简单程序设计实验报告 (3)实验二、函数的应用实验报告 (7)实验三、类与对象实验报告 (14)实验四、C++程序结构实验报告 (22)实验五、数组、指针与字符串实验报告 (26)实验六、继承和派生实验报告 (33)实验七、多态性实验报告 (42)实验八、面向对象综合实验实验报告 (48)实验一、VC6.0环境入门与简单程序设计实验报告系软件工程班级 131 学号 139074164 姓名吴健同组者指导教师柯栋梁一、实验目的:1、熟悉VC++6.0开了环境并编写简单的C++程序。

3、使用C++语言编写简单的输入输出程序。

4、使用VC++6.0的DEBUG调试功能:单步执行、设置断点、观察变量值。

二、实验内容:1、使用VC++建立一个标准C++程序,编译、运行如下程序:#include<iostream〉Int main(){Cout〈<”Hello World!\n";Cout<<”Welcome to C++!\n";}2、编程计算图形的面积。

程序可计算圆形、长方形、正方形等的面积,运行时首先提示用户选择图形类型,然后根据不同图形类型,输入相关参数计算其面积,并将其显示出来.3、使用DEBUG功能观察任务2程序运行中变量值的变化情况.三、实验要求:1、任务1要求熟悉VC++开发环境,并能够使用其建立第一个C++程序.2、实验前要做好充分准备,包括程序清单、调试步骤、调试方法,以及对程序结果的分析等。

四、实验报告:1.程序运行截图2.面积计算1、程序说明。

用if -else语句进行选择程序功能,while语句实现功能的循环实现程序如下:#include〈iostream>#include〈cmath〉using namespace std;int main(){cout〈<”1计算圆面积”<〈endl〈<"2计算矩形面积"<〈endl〈<"3计算正方形面积”〈〈endl<<"4退出"〈〈endl<<"请选择相应功能代码:”;int x; //x对应编号cin〉>x;double area;while(x!=4){if(x==1){double r;cout〈〈"半径:";cin〉>r;area=3。

学号姓名--类与对象基础实验(三)实验报告

学号姓名--类与对象基础实验(三)实验报告

个人收集整理-ZQ课程名称面向对象程序设计实验项目名称类与对象基础实验(三)学生姓名专业班级学号一. 实验目地和要求.掌握大数处理与类.掌握时间处理类与类、类.掌握异常处理与类二. 实验内容. 编程实现:大整数地数值计算. 编程实现:用大整数求阶乘之和. 编程实现:计算两个日期地天数之差. 编程实现:计算生日信息. 编程实现:数字转换地异常处理三. 实验结果与分析(可将程序运行结果截屏,也可分析运行结果). 编程实现:大整数地数值计算.编写一个应用程序,计算两个大整数地和、差、积和商,并计算一个大整数地因子个数.(部分源码参考讲义)文档来自于网络搜索请分析并回答以下问题:程序源码如下:请将运行结果截图:请比较和地主要区别,并简要说明地主要用途.答:. 编程实现:用大整数求阶乘之和.编写一个应用程序,用计算!…!.要求地值从键盘输入.文档来自于网络搜索请分析并回答以下问题:程序源码如下:请将运行结果截图:. 编程实现:计算两个日期地天数之差.编写应用程序,来计算任意两个日期地天数之差.要求:两个日期用字符串形式输入(比如输入“”表示年月日),需要将日期字符串地年、月、日分别转换为数字形式.文档来自于网络搜索程序源码如下:请将运行结果截图:. 编程实现:生日信息.编写应用程序,计算你地生日还有多少天,你地生日是星期几. 程序源码如下:请将运行结果截图:. 编程实现:数字转换地异常处理.输入两个数,计算两个数想除地结果(考虑除数为地异常情况).程序源码如下:请将运行结果截图:四. 讨论、心得(可写遇到地问题及解决方法,或者对技术地理解等)1 / 1。

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)掌握类变量与实例变量,以及雷方法与实例方法的区别。

3)掌握使用package和import语句。

2、实验内容1)编写一个Java应用程序,该程序中有3各类:Trangle、Lader和Circle,分别用来刻画“三角形”、“梯形”和“圆形”。

具体要求如下:●Trangle类具有类型为double的三个边,以及周长、面积属性,Trangle类具有返回周长、面积以及修改三个边的功能。

另外,Trangle类还具有一个boolean型的属性,该属性用来判断三个数能否构成一个三角形。

●Lader类具有类型为double的上底、下底、高、面积属性,具有返回面积的功能。

●Circle类具有类型为double的半径、周长和面积属性,具有返回周长、面积的功能。

程序模板:AreaAndLength.java请按模板要求,将【代码】提换为Java程序代码。

class Trangle{double sideA,sideB,sideC,area,length;boolean boo;public Trangle(double a, double b, double c){【代码1】//参数a、b、c分别赋值给sideA、sideB、sideC if(【代码2】)//a、b、c构成三角形的条件表达式{ 【代码3】//给boo赋值}else{ 【代码4】//给boo赋值}}double getLength(){ 【代码5】//方法体,要求计算出length的值并返回}public double getArea(){if(boo){double p = (sideA + sideB + sideC) / 2.0;area = Math.sqrt(p * (p – sideA) * (p – sideB) * (p – sideC)); return area;}else{System.out.println(“不是一个三角形,不能计算面积”); return 0;}}public void setABC(double a, double b, double c){【代码6】//参数a、b、c分别赋值给sideA、sideB、sideC if(【代码7】)//a、b、c构成三角形的条件表达式{ 【代码8】//给boo赋值}else{【代码9】//给boo赋值}}}class Lader{double above,bottom,height,area;Lader(double a,double b,double h){ 【代码10】//方法体,将参数a、b、c分别赋值给above、bottom、height }double getArea(){ 【代码11】//方法体,要求计算出area并返回}}class Circle{double radius,area;Circle(double r){ 【代码12】//方法体}double getArea(){ 【代码13】//方法体,要求计算出area并返回}double getLength(){ 【代码14】//getArea方法体的代码,要求计算出length并返回}void setRadius(double newRadius){ radius = newRadius;}}public class AreaAndLength{public static void main(String args[]){double length,area;Circle circle = null;Trangle trangle;Lader lader;【代码15】//创建对象circle【代码16】//创建对象trangle【代码17】//创建对象lader【代码18】//调用Circle方法返回周长并赋值给lengthSystem.out.println(“圆的周长:”+length);【代码19】//调用Circle方法返回面积并赋值给areaSystem.out.println(“圆的面积”+area);【代码20】//调用Trangle方法返回周长并赋值给lengthSystem.out.println(“三角形的周长:”+length);【代码21】//调用Trangle方法返回面积并赋值给areaSystem.out.println(“三角形的面积:“+area);【代码22】//调用Lader方法返回面积并赋值给area;System.out.println(“梯形的面积:”+area);【代码23】//调用Trangle方法设置三个边,要求将三个边修改为12,34,15【代码24】//调用Trangle方法返回面积并赋值给areaSystem.out.println(“三角形的面积:”+area);【代码25】//调用Trangle方法返回周长并赋值给lengthSystem.out.println(“三角形的周长:”+length);}}实验后的练习(1)程序中仅仅省略【代码15】,编译能通过吗?(2)程序中仅仅省略【代码16】,编译能通过吗?(3)程序中仅仅省略【代码15】,运行时出现怎样的异常提示?(4)给Trangle类增加3个方法,分别用来返回3个边:sideA、sideB和sideC(5)让AreaAndLength类中的Circle对象调用方法修改半径,然后输出修改后的半径以及修改半径后的圆的面积和周长。

实验三 类与对象(一)

实验三 类与对象(一)

实验三类与对象(一)一、【实验目的】1、掌握类和对象的定义,并能通过对象调用成员函数完成简单的程序设计2、初步掌握用类和对象编制基于对象的程序。

二、【实验要求】1.硬件基本配置:Intel PentiumIII以上级别的CPU,大于64MB的内存。

2.软件要求:Window 2000操作系统,Visual Studio 6.0或更高版本开发环境。

3.实验学时:2学时4.实现实验内容中的题目。

5.写实验报告三【实验内容】1.1 一圆形游泳池如图所示,现在需在其周围建一圆形过道,并在其四周围上栅栏。

栅栏造价为$35/m,过道造价为$20/m2。

过道宽度为3m,现在给出游泳池半径要求编程计算并栅栏和过道的造价。

(圆周率PI定义为3.14159);另外,对于题目中涉及的“圆”,请使用“类”实现,现规定如下:{public:double Set(double s);// Circle(double s);double Circumference( ) const;double Area( ) const;private:double r;};【输入】输入由键盘输入,共1行,这一行有一个实数r,代表给定的游泳池半径。

【输出】输出共2行cout << "Fencing(栅栏)Cost is $" << FenceCost << endl;cout << "Concrete (过道)Cost is $" << ConcreteCost << endl;【样例输入】5【样例输出】Fencing Cost is $1759.29Concrete Cost is $2450.441.2设计一个做加减乘除基本运算的类,实现在主函数中输入要计算的两个数,通过菜单的形式选择做加减乘除运算后,计算输出相应的计算结果。

实验三 类和对象

实验三  类和对象
1、创建一个简单的表示矩形的Rectangle类,满足以下条件:
[1]定义两个成员变量height和width,表示矩形的长和宽,类型为整型
[2]定义一个getArea方法,返回矩形的面积
[3]定义一个getPerimeter方法,返回矩形的周长
[4]在main函数中,利用输入的2个参数分别作为矩形的长和宽,调用getArea和getPermeter方法,计算并返回矩形的面积和周长
[3]定义一个getD方法,有一个类型为MyPoint的对象参数,功能为返回当前对象和参数对象这两个坐标点的距离,返回值为double类型
[4]编写测试的main方法,调用getD计算两个点之间的距离
输入:
输入2行数据,总共4个有理数。每2个数据一组,表示一个点的x和y坐标,每行的2个数据用空格隔开。例如:
x_1=test.nextDouble();
y_1=test.nextDouble();
MyPoint mypoint_4=new MyPoint(x_1,y_1);
System.out.println("请输入第二个点的坐标,中间用空格隔开:");
x_2=test.nextDouble();
y_2=test.nextDouble();
Rectangle juxing=new Rectangle();
System.out.println("请输入矩形的长和宽,用空格隔开:");
height=rectangle.nextDouble();
width=rectangle.nextDouble();
rectangle.close();
Area=juxing.getArea(height, width);

实验三类和对象

实验三类和对象

#include<iostream>using namespace std;class Tx{public:Tx(int i,int j);~Tx();void display();private:int num1,num2;};Tx::Tx(int i,int j=10){num1=i;num2=j;cout<<"Constructing"<<num1<<""<<num2<<endl; }void Tx::display(){cout<<"display"<<num1<<""<<num2<<endl;}Tx::~Tx(){cout<<"Destructing"<<num1<<""<<num2<<endl;}void main(){Tx t1(22,11);Tx t2(20);t1.display();t2.display();system("pause");}答:1.当建立一个对象时,对象的状态(数据成员的取值)是不确定的。

但对象表达了现实世界的实体,因此,一旦建立对象,必须有一个有意义的初始值。

构造函数用来自动进行对象的初始化;析构函数在对象撤销时执行清理任务,进行善后处理。

2.私有成员是在类中被隐藏的部分,它往往是用来描述该类对象属性的一些数据成员,私有成员只能由本类的成员函数或某些特殊说明的函数(如友元函数)访问,而类的外部函数无法访问私有成员;共有成员对外是完全开放的;受保护成员只能由该类的成员函数、友元、共有派生成员函数访问。

3.拷贝构造函数是用一个已有的对象来初始化一个被创建的同类对象的特殊的构造函数,具有一般构造函数的所有特性。

c++程序设计实验报告(参考答案)

c++程序设计实验报告(参考答案)

实验要求:对大纲中列出的四个实验要求:1.以面向对象的程序设计思想编程。

2.熟悉面向对象程序设计语言VC++编程环境。

3.在计算机上快速完成程序编写、调试、运行。

分别写出实验报告(三页以上),要求详尽描述根据实验内容要求,自己设计的上机编程源程序和结果,包括关键性截图。

完成实验报告和上交源程序。

备注:1.《计算机应用技术》(专)、《计算机应用基础》(专)、高级语言程序设计(一)(专)要求学生进行上机操作,保留上机操作原程序,每门课程每个学生形成一个文件夹,文件夹以学生准考证号+姓名命名,最后试点院校汇总,刻录光盘上交主考院校;2.《口语》(专)、《口译与听力》(本)要求考生进行现场练习,由试点院校教师录制相关材料,每门课程每个学生形成一个文件夹,文件夹以学生准考证号+姓名命名,最后试点院校汇总,刻录光盘上交主考院校;A45.按照系统成绩单的顺序将上报的学习过程评价成绩材料排序并打捆;6.实践课程考核评估记录表》也需按照成绩单顺序排序,单独上报;7.有平时作业或测试试卷等可放入本人上报的材料中一并打捆上交。

交实验报告时间:10月8日假期后第一天上课,务必把按照要求书写完成,并装订好的实验报告交给我,一定!一定!切记不要耽误!实验一:简单类与对象一、实验目的1、熟悉VC++的编程环境,掌握VC++ 的调试方法。

2、掌握简单的类与对象的定义。

二、实验内容用类定义,输入半径和高,输出圆柱体的底面积和体积。

三、实验要求1、硬件设备:奔腾Ⅱ及以上计算机,局域网。

2、软件环境:WINDOWS XP、VC++。

3、实验课前预习,课后及时完成实验报告。

4、实验过程及记录按题目格式要求填写在代码清单中。

四、代码清单或实验步骤#include<iostream>using namespace std;const float PI=;class Cylinder{private:f loat radius;f loat high;public:C ylinder(){}C ylinder(float r,float h){r adius=r;h igh=h;}v oid setradius(float r){r adius=r;}v oid sethigh(float h){h igh=h;}f loat bottomarea(){r eturn PI*radius*radius;}f loat volumn(){return bottomarea()*high;}};void main(){float r,h;Cylinder onecylinder;cout<<"请输入半径:";cin>>r;cout<<"请输入高:";cin>>h;(r);(h);cout<<"底面积为:"<<()<<endl;cout<<"体积为:"<<()<<endl;}五、实验中出现的问题及解决的方法1、数据类型的兼容问题程序代码:const float PI=;提示将double类型强制赋给float类型的警告解决方法:const float PI=;六、讨论或体会或改进实验的建议这个实验比较简单,较容易的实现了。

C++上机实验报告 实验三

C++上机实验报告 实验三

实验三类与对象1.实验目的1.掌握类的定义和使用2.掌握类的定义和对象的声明3.复习具有不同访问属性的成员的访问方式4.观察构造函数和析构函数的执行过程5.学习类的组合使用方法6.使用VC++的debug调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。

2.实验要求1.定义一个CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数run、stop。

其中,rank为枚举类型CPU_Rank,定义为enum CPU_Rank{P1=1,P2,P3,P4,P5,P6,P7},frequency为单位是MHz的整型数,voltage为浮点型的电压值。

观察构造函数和析构函数的调用顺序。

2.定义一个简单的Computer类,有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等等,有两个公有成员函数run、stop。

cpu为CPU类的一个对象,ram为RAM类的一个对象,cdrom为CDROM类的一个对象,定义并实现这个类。

3. (选做)设计一个用于人事管理的People(人员)类。

考虑到通用性这里只抽象出所有类型人员都具有的属性:number(编号)、sex(性别)、birthday(出生日期)、id(身份证号)等等。

其中“出生日期”定义为一个“日期”类内嵌子对象。

用成员函数实现对人员信息的录入和显示。

要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、组合。

3.实验内容1.首先定义枚举类型CPU_Rank,例如enum CPU_Rank{P1=1, P2, P3, P4, P5, P6, P7},再定义CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等私有数据成员,定义成员函数run、stop,用来输出提示信息,在构造函数和析构函数中也可以输出提示信息。

在主程序中定义一个CPU的对象,调用其成员函数,观察类对象的构造与析构顺序,以及成员函数的调用。

实验报告三(完整版)

实验报告三(完整版)

实验报告三实验三、对象和类〔一〕1.实验目的〔1〕结合面向对象思想掌握类的定义以及类中成员的定义,学会设计自己的类。

〔2〕掌握方法重载、尤其是构造方法的重载,深入理解构造函数的作用与调用时机。

附录2packagech3; publicclassPassValueTest{ privateinti=-100;〔3〕理解this关键字同static关键字的意义,掌握成员变量的具体隐藏实现。

〔4〕理解对象同对象引用间的区别,掌握创立对象与调用对象成员的方法,以及对象作为参数与根本数据类型变量做参数的区别。

publicvoidtest1(intb){b=100;2.实验内容和步骤}上机输入程序并调试运行程序。

编译并运行附件1和附件附录12,观察结果分析其原因。

publicvoidtest2(PassValueTestb){=100;packagech3;}publicclassClassLoadTest{static{System.out.println("classloding");publicvoidtest3(PassValueTestb){b=this;}publicstaticvoidmain(String[]args){}}}结果:原因:publicstaticvoidmain(String[]args){ PassValueTestobj=newPassValueTest(); inttemp=100;obj.test1(temp);System.out.println(temp);o1.nonstaticmethod();obj.test2(obj); StaticTesto2=newStaticTest();System.out.println(obj.i); o2.nonstaticmethod();}obj.i=100; */PassValueTestnewobj=newPassValueTest();obj.test3(newobj); publicvoidnonstaticmethod(){System.out.println(newobj.i);System.out.println("非静态方法被调用");} }}结果:publicstaticvoidstaticmethod(){原因:System.out.println("静态方法被调用");〔2〕编译附件3,分析结果;将“注释这行〞所在的行注释,再将注释的call2方法去掉注}释,再次编译,观察结果分析其原因。

类与对象的设计实验报告

类与对象的设计实验报告

类与对象的设计实验报告一、实验目的本实验旨在通过设计类与对象,加深对面向对象编程的理解,掌握类的定义、对象的创建和调用以及类与对象之间的关系。

二、实验过程1. 类的定义首先根据需求分析,确定了需要设计的类,包括Student类和Course 类。

其中Student类包括学生的姓名、学号、性别和年龄等属性,还包括选修的课程信息;Course类包括课程的名称、学分和教师等属性。

pythonclass Student:def __init__(self, name, student_id, gender, age): = nameself.student_id = student_idself.gender = genderself.age = ageself.courses = []def add_course(self, course):self.courses.append(course)def show_courses(self):for course in self.courses:print(course)class Course:def __init__(self, name, credit, teacher): = nameself.credit = creditself.teacher = teacherdef __str__(self):return f"Course: {}, Credit: {self.credit}, Teacher: {self.teacher}"2. 对象的创建和调用在主程序中,我们可以创建相应的对象并进行属性赋值、方法调用等操作。

pythons1 = Student("Tom", 1001, "male", 18)c1 = Course("Math", 4, "Mr. Smith")c2 = Course("English", 3, "Ms. Johnson")s1.add_course(c1)s1.add_course(c2)s1.show_courses()3. 类与对象之间的关系通过调用对象的方法,我们可以为一个学生对象添加多门课程,进一步说明了类与对象之间的关系。

java实验报告三类和对象

java实验报告三类和对象

计算机与信息学院实验报告系软件系专业软件工程年级08级成绩姓名学号实验室T312 机号48实验时间2010年11月1日下午3、4节教师签字实验(三)类和对象一、实验目的和要求1.掌握类的构造函数的重载2.深入理解类和对象3.学习NetBeans中UML项目的创建类并生成相应代码的方法二、实验内容和原理设计一个复数类,能够完成复数之间的基本运算,重写方法toString(),使其能输出此复数(形式为:实部 + 虚部i)。

要求设计的复数类必须有三个构造函数,分别为无参数、1个参数和2个参数的构造函数,完成的基本运算包括两个复数的加、减、乘、除法和共轭复数。

三、实验环境1.硬件环境:2.软件环境:JDK1.5四、算法描述及实验步骤1.算法描述(可以用类图、流程图、伪代码或源程序描述)2.实验步骤●创建一个UML项目,并设计类Complex如下图●创建一个Java应用项目●把UML项目中的Complex自动生成代码到Java应用项目中●实现Complex类中的方法●进行编译●进行测试,使用的测试用例:输入:预期输出:…五、调试过程1.编译过程记录算法实现中发现的语法错误及改正以下代码不能实现预期的结果:应该改成如下代码:2.调试过程记录算法实现中发现的逻辑错误及改正,对每个测试用例,记录实际输出,并与预期输出进行比较,如果不同,分析产生错误的原因并改正。

输入:预期输出:实际输出:分析与预期结果一致。

六、实验结果用与测试用例不同的输入数据运行算法,写出得到的结果,并分析结果是否正确。

第一组输入:第二组输入:第一组输出结果:第二组输出结果:结果分析:两组的输出结果都正确。

七、总结不应该一开始就考虑怎么编写代码,而是应该想好其框架。

注意语法上的错误,而逻辑上的错误在改正上有很大的难度,在这方面要多加交流。

附录:import javax.swing.*;public class Complex {private double realPart;private double imaginaryPart;public Complex(){realPart = Double.parseDouble(JOptionPane.showInputDialog("Please enter the realpart:"));imaginaryPart = Double.parseDouble(JOptionPane.showInputDialog("Please enter the imaginarypart:"));}public Complex(double realPart){this.realPart = realPart;this.imaginaryPart = 0;}public Complex(double realPart,double imaginaryPart){this.realPart = realPart;this.imaginaryPart = imaginaryPart;}public double getRealPart(){return this.realPart;}public void setRealPart(double val){realPart = val;}public double getimaginaryPart(){return this.imaginaryPart;}public void setimaginaryPart(double val){imaginaryPart = val;}public Complex plus(Complex complex){Complex c = new Complex(realPart + complex.realPart,imaginaryPart + complex.imaginaryPart);return c;}public Complex minus(Complex complex){Complex c = new Complex(realPart - complex.realPart,imaginaryPart - complex.imaginaryPart);return c;}public Complex times(Complex complex){Complex c = new Complex(realPart * complex.realPart - imaginaryPart * complex.imaginaryPart,realPart * complex.imaginaryPart + imaginaryPart * complex.realPart);return c;}public Complex divideBy(Complex complex){double t = complex.realPart * complex.realPart + complex.imaginaryPart * complex.imaginaryPart;Complex c = new Complex((realPart * complex.realPart + imaginaryPart * complex.imaginaryPart)/t,(imaginaryPart * complex.realPart - realPart * complex.imaginaryPart) / t);return c;}public Complex conjugate(){Complex c = new Complex(realPart,-imaginaryPart);return c;}public String toString(){String str = "";if(realPart != 0 && imaginaryPart > 0)return str+realPart+"+"+imaginaryPart+"i"+"\n";if(realPart != 0 && imaginaryPart < 0)return str+realPart+imaginaryPart+"i"+"\n";if(realPart == 0 && imaginaryPart != 0){return str+imaginaryPart+"i"+"\n";}if(realPart == 0 && imaginaryPart == 0){System.out.println("重新输入:");}return str+realPart+"\n";}public static void main(String[] args){Complex c1 = new Complex();Complex c2 = new Complex();String output = "两个复数:\n"+c1+"\n"+c2+"\n"+"两个复数相加:\n"+c1.plus(c2)+"两个复数相减:\n"+c1.minus(c2)+"两个复数相乘:\n"+c1.times(c2)+"两个复数相除:\n"+c1.divideBy(c2)+"c1的共厄复数:\n"+c1.conjugate()+"c2的共厄复数:\n"+c2.conjugate(); JOptionPane.showMessageDialog(null,output);}}。

实验三:类与对象(bo)

实验三:类与对象(bo)

实验三Java类与对象【实验目的】1)理解面向过程与面向对象区别2)理解面向对象的三大特征3)掌握类声明的方法4)掌握构造方法5)掌握对象的创建方法与创建机制6)掌握成员变量、类变量和局部变量区别7)掌握成员方法与类方法区别8)掌握函数的重载9)掌握4种访问修饰符的区别【实验环境】JDK1.6+Eclpise3.2【实验准备】1)复习课件中理论知识2)练习课堂所讲的例子【实验内容】1、创建猴子类。

具体要求如下:1)编写一个类Monkey,用来表示猴子类;2)给Monkey类确定添加4个属性:3个实例成员变量(名字、体重、年龄)、1个静态成员变量(爱好:默认值为:吃香蕉);3)添加默认构造方法和有参构造方法(3个参数,分别给名字、体重和年龄赋初始值)4)编写展示猴子能够爬树(climbTree)的方法――提供两个参数传入:分别代码猴子的名字(name)和爬树的高度(height)(方法内只需打印猴子的”名字+会爬树,能爬+高度”)5)测试:在main方法中创建两个猴子对象monkey1(皮蛋、50、3)和monkey2(兰兰、45、2),monkey1使用默认构造方法创建,monkey2使用有参构造方法创建。

分别打印出monkey1和monkey2的名字、体重、年龄和爱好。

并调用monkey1和monkey2的爬树方法。

2、创建矩形Rectangle类。

具体要求如下:1)创建一个Rectangle类;2)创建属性:两个double成员变量:width和height。

3)创建方法:计算矩形的周长getLength()和面积getArea()。

4)测试:创建Rectangle对象,并给两个成员变量赋值,调用周长和面积的方法,输出周长和面积。

【实验过程及结果】实验代码及结果:1. package arp;public class Monkey {//创建类// 4个属性(成员变量)private String name;private int weight;private int age;private static String love="吃香蕉";public Monkey(){}//有参构造方法public Monkey(String name,int weight,int age) {=name;this.weight=weight;this.age=age;}//爬树public void climbTree(String name,int height){System.out.println(name+"会爬树,能爬"+height+"米");}//测试public static void main(String [] args){Monkey monkey2=new Monkey();="猪猪";monkey2.weight=50;monkey2.age=3;Monkey monkey3=new Monkey("猫猫",45,2);System.out.println(+"体重为"+monkey2.weight +"年龄为:"+monkey2.age+"爱好为:"+monkey2.love);System.out.println(+"体重为:"+monkey3.weight+"年龄为:"+monkey3.age+"爱好为:"+monkey3.love);monkey2.climbTree(,100);monkey3.climbTree(,88);}}2. package arp;//创建类public class Rectangle {//两个成员变量private double width;private double height;//计算周长public double getLength(){return (this.width+this.height)*2;}//计算面积public double getArea(){return this.width*this.height;}public static void main(String[] args) {Rectangle rectangle =new Rectangle();rectangle.width=100;rectangle.height=50;System.out.println("周长为:"+rectangle.getLength());System.out.println("面积为:"+rectangle.getArea());}}【实验感想】本次实验态度鲜明的提出了面向对象和面向过程的区别以及面向对象的三大特征,并由此引入了类的声明,对象的创建方法等实质性问题,在上机练习中通过创建相应的类,给我留下了对于类和对象的深刻认识,对于这些新接触的知识还要在进一步的学习中去感悟和理解它所包含的实在的东西。

实验三2类和对象

实验三2类和对象

实验三(2)类和对象一、实验目的1.熟悉类的定义。

2.掌握对象的声明与创建、实例化及成员的引用。

3. 掌握构造方法及实例方法的区别与用法。

4.能利用面向对象的思想解决一般问题。

二、实验要求1.以下程序能否通过编译?上机验证并指明错误原因与改正方法Class Location{Private int x,y;Public void Location(int a,int b){ X=a; y=b;}Public int getX(){return x;}Public int getY(){return y;}Public static void main(String args[]){Location loc=new Location(12,20);.println(());.println(()); }2. 创建一个图书类,类中包含的属性有:书名、作者、出版社;包含的方法有:设置书籍状态,查看书籍状态。

书籍状态有在馆和外借两种。

3. 设计一个Birthday 类,其成员变量有:year,month,day;提供构造方法、输出Birthday对象值的方法和计算年龄的方法。

编写程序测试这个类。

4. 编写一个类,描述汽车,其中用字符型描述车的牌号,用浮点型描述车的价格。

编写一个测试类,其中有一个修改价格的方法,对汽车对象进行操作,根据折扣数修改汽车的价格,最后在main()方法中输出修改后的汽车信息。

5.验证书上例13(关于方法重载)和例19(关于访问权限),此题无需提交实验报告。

三、提交各实验程序源代码及实验报告。

C++面向对象程序设计实验三 类和对象

C++面向对象程序设计实验三 类和对象

学长只能帮你到这了
要想学习好,努力少不了
int y; }; void main() { CPoint p; p.print(); CPoint p1(1,2); //构造函数不能显示调用 p1.print(); //即 CPoint p1;p1.CPoint(1,2); CPoint p2=p1; //运行时会出错。 p2.print(); }
学长只能帮你到这了
要想学习好,努力少不了
{ CPoint pt; pt.Set(10,20); pt.Print(); }
问题一:以上程序编译能通过吗,试解释该程序? 答:可以通过, 问题二:以上程序的运行结构是否正确,如果不正确,试分析为什么,应该如何改正? 共有变量与私有变量名一样,调用的时候调用了私有变量,而私有变量没有值所以是
学长只能帮你到这了
要想学习好,努力少不了
ps.Print(); }
问题一:以上程序存在三处大错误,在不改变主函数内容的前提下,试改正该程序。 答:把成员函数都改成公有;函数的参数应该有数组或字符串的定义才可以传递“张三” 。 主函数中对构造函数的引用也有错。 class CPerson{ public: void Print(); CPerson(int ,char s[10]); private: int age; char *name; }; CPerson::CPerson(int a,char s[10]) { age=a; name=s; } void CPerson::Print() { cout<<"name="<<name<<",age="<<age<<endl; } void main() { CPerson ps(23,"张三"); ps.Print();
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
课程名称
C#可视化程序设计
实验名称
实验三、类和对象
日期
2013.10.15
学生学号
Z12055139
姓名
XXX
班级
Z120551
实验目的:
通过本次实验,要求学生能进一步掌握类和对象的概念,熟练定义类及类的各种成员的方法。
实验条件:
电脑一台、能上网查阅资料。
实验内容与步骤:
1.实验内容一
(1)要求
{
returnnewComplexNumber(c1.x + c2.x, c1.y + c2.y);
}
publicstaticComplexNumberoperator-(ComplexNumberc1,ComplexNumberc2)
{
returnnewComplexNumber(c1.x - c2.x, c1.y - c2.y);
定义完整的ComplexNuber类,在其中重载加减乘等基本算术操作符,相等和不等操作符(比较复数的实部和虚部是否均相等),以及大小比较操作符(比较复数模的大小)。
(2)源代码
控制台应用程序:
usingComplexNumber;
namespaceqiao
{
classProgram
{
staticvoidMain(string[] args)
{
inta =9;
intb=8;
Console.WriteLine(a+b);
Console.WriteLine(a - b);
Console.WriteLine(a * b);
if(a == b)
{
Console.Write(a);Console.Write("=");Console.Write(b);
{
doublea = c1.x * c1.x + c1.y * c1.y;
doubleb = c2.x * c2.x + c2.y * c2.y;
returna > b;
}
publicstaticbooloperator>=(ComplexNumberc1,ComplexNumberc2)
{
returnc1 == c2 || c1 > c2;
}
else
{
Console.Write(a);Console.Write("!=");Console.Write(b);
}
Console.Read();
}
}
}
类库:
namespaceComplexNumber
{
publicclassComplexNumber
{
privatedoublex, y;
publicdoubleX
}
}
}
(3)实验结果
实验总结(结论或问题分析):
刚开始在类库中直接写程序后,没有看清楚就把类库设置成了启动项,运行显示的结果是 思考一下之后添加一个控制台应用程序这样可以运行了,刚开始把输出结果设置成了bool类型运行结果如下:
后来变成if语句直接输出结果9!8显得更直观一些。通过这次实验掌握类和对象的基本概念,可以定义类及类的各种成员的方法。但在实验中也出现了不少的错误,经过认真思考以及求助同学才把问题解决,从中学到不少东西,以后敲程序的时候一定会加倍细心。本次试验涉及到的运算符重载的知识不是很扎实以后要认真看看。
{
return(c1.x == c2.x) && (c1.y == c2.y);
}
publicstaticbooloperator!=(ComplexNumberc1,ComplexNumberc2)
{
return(c1.x != c2.x) || (c1.y != c2.y);
}
publicstaticbooloperator>(ComplexNumberc1,ComplexNumberc2)
{
get{returnx; }
set{ x =value; }
}
publicdoubleY
{
get{returny; }
set{ y =value; }
}
publicComplexNumber(doublex,doubley)
{
this.x = x;
thislexNumberoperator+(ComplexNumberc1,ComplexNumberc2)
}
publicstaticComplexNumberoperator*(ComplexNumberc1,ComplexNumberc2)
{
returnnewComplexNumber(c1.x* c2.x, c1.y * c2.y);
}
publicstaticbooloperator==(ComplexNumberc1,ComplexNumberc2)
实验成绩
任课教师签名
郭俊恩
}
publicstaticbooloperator<(ComplexNumberc1,ComplexNumberc2)
{
return!(c1 >= c2);
}
publicstaticbooloperator<=(ComplexNumberc1,ComplexNumberc2)
{
return!(c1 > c2);
相关文档
最新文档