cout<<"Copy initianization constructor is called."< class Date{ public: void printDate(); //显示日期 void setDay(int); //设置日的值 void setMonth(int); //设置月的值 void setYear(int); //设置年的值
实验4 类和对象(三)
实验4 类和对象(三) 实验时间:2012年10月11日,星期四,3、4节 地点:5428 实验目的 (1)进一步加深对类和对象的理解 (2)掌握类的构造函数和析构函数的概念和使用方法(3)掌握对象数组、对象指针及其使用方法 (4)掌握友元概念和使用。 (5)了解模板的使用方法 主要仪器设备 电脑一台,安装Visual C++ 6.0 实验内容 有以下程序: #include using namespace std; class Date; class Time {public: Time(int,int,int); void display(const Date&); private: int hour; int minute; int sec; }; class Date {public:
Date(int,int,int); friend void Time::display(const Date &); private: int month; int day; int year; }; Time::Time(int h,int m,int s) {hour=h; minute=m; sec=s; } void Time::display(const Date &da) {cout< using namespace std; class Date; class Time {public:
实验三 类与对象(一)
实验三类与对象(一) 一、【实验目的】 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.29 Concrete Cost is $2450.44 1.2设计一个做加减乘除基本运算的类,实现在主函数中输入要计算的两个数,通过菜单的形式选择做加减乘除运算后,计算输出相应的计算结果。 1.3 设计str类,实现对字符串的初始化(Init()),拷贝(copy()),输出(output()),在主函数中进行测试并输出。 class S{public : char *strp; int length; void Ini(char *s); void Print(void); void Copy(S &s);
实验03 类、对象基础知识
实验三类、对象基础知识 一、实验目的 1、熟练掌握类、对象的的概念以及对事物的抽象。 2、熟练掌握成员、方法的概念以及构造方法的概念。 3、熟练掌握封装性,多态性的概念 4、理解面向对象的程序设计方法。 二、实验内容与要求 1运行下面的程序,理解面向对象的程序设计方法的基本概念。 class value { public int x,y; public value(int a,int b) { x=a; y=b; } } public class Ch31 { public static void main(String args[]) { int total; value num=new value(24,65); total=num.x+num.y; System.out.println("add="+total); } } 2、定义一个类实现银行帐户的概念,包括的变量有"帐号"和"存款余额",包括的方法有"存款"、"取款"、"查询余额"和”显示帐号”,。定义主类,创建帐户类的对象,并完成相应操作。提示:关键代码如下: public int getleftmoney(){ return leftmoney; } public void savemoney(double money){ leftmoney+=money; } public void getmoney(double money){ if(money<=leftmoney) leftmoney-=money; else System.out.println("只能取:"+leftmoney); } … bankaccount ba=new bankaccount(888123,1000); ba.savemoney(21000);
Java实验报告三类和对象
计算机与信息学院实验报告 实验(三)类和对象 一、实验目的和要求 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;
实验报告实验类与对象精修订
实验报告实验类与对象标准化管理部编码-[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。 (2)Circle类定义了几个构造方法(即构造器) Circle类中存在无参构造方法吗?如果要使用无参构造方法,应如何做? 答:Circle类定义了个构造方法;不存在,写入Circle(){}; (3)CircleTest类中创建了几个Circle对象?这些对象是如何创建的? 答:CircleTest类创建了两个Circle对象;Circle对象名=newCircle()。 (4)CircleTest类中如何调用对象的方法? 答:CircleTest类调用对象方法:对象名.方法 4.写出OverrideTest中所缺的三行代码:
实验报告_实验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(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。 (2)Circle类定义了几个构造方法(即构造器)?Circle类中存在无参构造方法吗?如果要使用无参构造方法,应如何做? 答:Circle类定义了个构造方法;不存在,写入Circle(){}; (3)CircleTest类中创建了几个Circle对象?这些对象是如何创建的? 答:CircleTest类创建了两个Circle对象;Circle对象名=newCircle()。 (4)CircleTest类中如何调用对象的方法? 答:CircleTest类调用对象方法:对象名.方法 4.写出OverrideTest中所缺的三行代码: publicclass OverrideTest{ publicstaticvoid main(String[]args){ //使用Box类的无参构造方法创建方法创建对象box1 ; System.out.println(box1); //使用Box类的带一个参数的构造方法创建对象box2,参数值为5.0 ; System.out.println(box2);
实验三 类与对象
实验三类与对象 一、实验目的及要求 目的: 理解Java语言是如何体现面向对象编程基本思想,掌握类的封装方法,以及如何创建类和对象,了解成员变量和成员方法的特性。 要求: (1)编写一个用双重循环控制输出格式的程序 (2)编写一个字符串操作程序 (3)编写一个带随机数及键盘输入的程序 (4)编写编写一个创建对象和使用对象的方法的程序 二、实验环境 计算机一台,NetBeans 三、实验原理 Java语言面向对象程序设计方面的基础知识 四、实验内容与步骤 1. 编写一个程序,显示如图所示的一个数字金字塔,要求用双重循环实现。 1 121 12321 1234321 123454321 12345654321 1234567654321 123456787654321 12345678987654321 2. 用冒泡排序对数组a={23,4,32,67,42,42,41,32,15}进行从小到大排序。 3. 若一个字符串正读和反读都一样,如level、noon等,就称之为回文。编写一个程序, 验证输入的字符串是否为回文串。
4.用Java编写一个彩票中奖模拟程序,实现下述功能:用户键入1~100的一个整数。然后程序随机产生1~100的3个不相同的数字,分别代表一等奖、二等奖和三等奖的获奖号码。最后进行比较,并输出用户是否中奖的信息。 5. 方法声明
五、思考题 1.编写一个Java程序,将my age is 23 years中的23提取出来,通过下述程序理解String 与StringBuffer类的区别与联系,并查询API了解StringBuffer类的常用方法。 import https://www.360docs.net/doc/2f4505683.html,ng.*; public class Digester { public static void main(String args[]) { StringBuffer sb1=new StringBuffer("my age is 23 years"); StringBuffer sb2=new StringBuffer(); int i, result=0; char ch; for(i=0;i=’0’)&&(ch<=’9’)) { sb2.append(ch); } } if(sb2.length()>0)
实验3 类与对象基础实验(一)
实验3 类与对象基础实验(一) 一、实验目的 1. 掌握对象与类的关系 2. 掌握类的域、方法、构造器的概念 3. 掌握对象的创建与初始化 4. 掌握方法和域(静态和非静态)的使用方式 5. 掌握Math类,掌握静态成员的使用方式 6. 理解方法和构造器重载现象 二、实验内容 1. 程序阅读并回答问题 2. 类的使用 3. 编程实验:猜数字 4. 编程实验:素数判断与统计 三、实验步骤 1. 程序阅读并回答问题:阅读以下代码,回答问题。 //AreaAndLength.java class Triangle { double sideA,sideB,sideC,area,length; boolean boo; Triangle(){}; public Triangle(double a,double b,double c){ sideA=a; sideB=b; sideC=c; if(sideA+sideB>sideC&&sideA+sideC>sideB&&sideB+sideC>sideA) { boo=true; } else { boo=false; } } double getLength(){ length=sideA+sideB+sideC; return 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){ sideA=a; sideB=b; sideC=c; if(sideA+sideB>sideC&&sideA+sideC>sideB&&sideB+sideC>sideA) { boo=true; } else { boo=false; } } } class Lader { double above,bottom,height,area; Lader(double a,double b,double h){ above=a; bottom=b; height=h; } double getArea(){ area=(above+bottom)*height/2; return area; } } class Circle { double radius,area,length; Circle(double r){ radius=r; } double getArea(){ area=Math.PI*radius*radius; return area;
实验三 类和对象(一)
课程名称:面向对象程序设计实验内容:实验三类和对象(一) 学院:专业班级: 姓名:学号:指导教师: 实验日期:实验地点: 一、实验目的 1、掌握类、类的数据成员、类的成员函数的定义方式。 2、理解类成员的访问控制方式。 3、理解构造函数和析构函数的定义与执行过程。 4、掌握重载构造函数的方法。 5、了解拷贝构造函数的方法。 二、实验步骤 1、定义一个描述学生基本情况的类,数据成员包括姓名、学号、C++、英语、 和数学成绩,成员函数包括输出数据、设置姓名和学号、设置三门课的成绩、求总成绩和平均成绩。最后,在主函数实现。 程序如下: #include using namespace std; class student { private: char name[10]; int number; float s1,s2,s3; public: void print() { cout<<"姓名:"<>name; cout<<"学号:"; cin>>number;
cout<<" C++成绩:"; cin>>s1; cout<<"英语成绩:"; cin>>s2; cout<<"数学成绩:"; cin>>s3; } float sum() { return s1+s2+s3; } float aver() { return sum()/3.0; } }; void main() { student s1; s1.set1(); s1.print(); cout<<" 总成绩:"<