实验二类和对象

合集下载

实验二:类与对象

实验二:类与对象
b2.getX(), b2.getY()+100); }
} class MyBox {
private int x, y, width, height; MyBox() {
x=0;
}
}
y=0;
width=0;
height=0;
MyBox(int xPos, int yPos, int w, int h) {
(二)创建对象并使用对象
1.编写 Applet 程序 程序功能:这个 Applet 程序要在页面上输出两个矩形,并 伴有文字输出。 SY2_2.java 程序的源代码如下: import java.awt.*; import java.applet.Applet; public class SY2_2 extends Applet { MyBox b1=new MyBox();//创建对象 b1 MyBox b2=new MyBox(170,20,60,60); //创建对象 b2 public void paint(Graphics g) { b1.setPosition(20,20); b1.setSize(60,60); b1.draw(g); g.drawString("矩形 1 的 X 位置 : "+b1.getX(), 20,
public void actionPerformed(ActionEvent e) { // 处理按钮事件
int x=Integer.parseInt(field1.getText())+Integer.parseInt(field 2.getText());
field3.setText(Integer.toString(x)); // 数值 转换为字符串

实验2 类和对象基础

实验2 类和对象基础

实验2 类和对象基础【开发语言及实现平台或实验环境】Windows2000 或XP,JDK1.5以上,JCreator 等编辑工具。

【实验目的】1.理解数据封装和隐藏2.能够创建类3.能够创建和使用对象4.能够控制对实例变量和方法的访问5.理解面向对象的价值【实验要求】1.源程序编辑要遵循教材中强调的间隔和缩进约定。

2.掌握调试方法【实验内容】1. 三角形、梯形和圆形的类封装。

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

具体要求如下:(1)Trangle 类具有类型为double 的三个边以及周长、面积属性,Trangle 类具有返回周长、面积以及修改三个边的功能,另外,Trangle 还具有一个boolean 类型的属性,该属性用来判断三个数是否构成一个三角形;(2)Lader 类具有类型为double 的上底、下底、高、面积属性,就有返回面积的功能;(3)Circle 类具有类型为double 的半径、周长和面积属性,具有返回周长、面积的功能。

[程序模版]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。

实验二 类的定义与对象的使用

实验二 类的定义与对象的使用

实验 2 面向对象编程练习(1)
一、实验目的
1.理解类、对象的概念以及两者之间的联系和区别
2. 能够熟练的根据应用要求定义类和创建对象
2.理解面向对象的封装性,熟练掌握private、缺省、protected、public这四个权限访问限定词的用法。

二、实验要求
1.编写体现一个学生信息的JavaBean。

(1) 用private关键字来修饰Student中的属性:学号、姓名、年龄、籍贯、专业和班级。

(2) 用public关键字来修饰对每一个属性进行设置和获取的方法(setXXX()和getXXX()方法)。

2.编写一个用于描述梯形的类(Trapezoidal)
属性:上底、下底、高
方法:计算面积、计算周长
定义测试类,创建梯形对象,对属性进行赋值(通过构造方法完成),输出该梯形的面积和周长。

3.private关键字所定义的属性和方法只能在本类中使用。

dafault(缺省)关键字所定义的属性能够在本类中,以及与该类在同一个包中的类访问。

protected关键字所修饰的属性能够被本类、同一个包中的类、及其子类访问。

public 关键字所修饰的属性在任何类中都能够被访问。

自己动手编写小程序,对上述的四句话进行验证。

实验二 类和对象_ 参考答案

实验二 类和对象_  参考答案

实验二类和对象(参考答案)班级:学号:姓名:成绩:一.实验目的1.理解面向对象程序设计的基本思想;2.掌握类和对象的概念、定义和使用方法。

3.掌握不同特性对象成员的访问方法。

二.使用的设备和仪器计算机+Windows XP +Visual C++6.0三.实验内容及要求1、定义一个表示长方体类Cuboid,数据成员包括length(长)、width(宽)、height(高),成员函数包括长方体的输入、输出、计算体积和表面积等。

在主函数中,定义3个长方体的对象,并调用成员函数完成其功能。

2、定义一个学生类Student,数据成员包括学号、姓名、数学成绩、英语成绩和C++成绩,成员函数包括:输入学生的信息函数;输出学生的信息函数;设置学生的信息函数;计算学生的平均成绩的函数。

在main函数中调用以上函数实现相应功能。

3、定义一个图书类Book,在该类中包括以下数据成员和成员函数:数据成员:id(书号)、bookname(书名)、price(价格)、total(总存书数量)、number(当前剩余图书数量)成员函数:Input()——图书信息输入;Output()——图书信息输出;Borrow()——借阅图书,并显示当前剩余图书数量;Restore()——归还图书,并显示当前剩余图书数量。

在主函数中,要求创建某种图书对象,并对该图书进行简单的输入、输出、借阅和归还管理。

选择题:4、根据以下要求类的编写。

1)定义一个日期类Date,数据成员包括年、月、日,成员函数包括:Input()——日期信息输入;Output()——日期信息输出;Set()——设置日期信息2)在第2题Student类中增加一个出生日期成员,使用Date类来定义。

然后修改相应的成员函数,并增加一个成员函数GetAge,用来计算并返回学生的年龄。

在主函数中定义对象,测试以上功能。

四.实验步骤1、程序代码:#include <iostream>using namespace std;class Cuboid{public:void Input();void Show();float Volume();float Area();private:float length;float width;float height;};void Cuboid::Input(){cout<<"please input length,width,height:";cin>>length>>width>>height;}void Cuboid::Show(){cout<<"length="<<length<<" width="<<width<<" height="<<height<<endl;}float Cuboid::Volume(){return(length*width*height);}float Cuboid::Area(){return (length*width+length*height+height*width)*2;}int main(){Cuboid Cuboid1,Cuboid2;Cuboid1.Input();cout<<"Cuboid1 Information:"<<endl;Cuboid1.Show();cout<<"V olmue="<<Cuboid1.V olume()<<endl;cout<<"Area="<<Cuboid1.Area()<<endl;cout<<endl;Cuboid2.Input();cout<<"Cuboid2 Information:"<<endl;Cuboid2.Show();cout<<"V olmue="<<Cuboid2.V olume()<<endl;cout<<"Area="<<Cuboid2.Area()<<endl;cout<<endl;return 0;}运行结果:2、程序代码://student.h 学生信息的头文件#include <iostream>#include<string>using namespace std;class Student{public:void Input_Stu(); //输入学生信息函数void Show_Stu(); //输出学生信息函数void Set(int n,string nm,double m,double e,double c); //设置学生信息函数 double Ave_Stu(); //计算并返回学生平均成绩函数private:int num;string name;double math,english,cprogram;};//student.cpp 学生信息的源文件#include"student.h"void Student::Input_Stu()cout<<"请输入学生的学号、姓名、数学、英语、C++的成绩:"<<endl; cin>>num>>name>>math>>english>>cprogram;}void Student::Show_Stu(){cout<<"********Student Info********"<<endl;cout<<"num="<<num<<endl;cout<<"name="<<name<<endl;cout<<"math="<<math<<endl;cout<<"english="<<english<<endl;cout<<"cprogram="<<cprogram<<endl;}void Student::Set(int n,string nm,double m,double e,double c){num=n; name=nm;math=m; english=e; cprogram=c;}double Student::Ave_Stu(){return (math+english+cprogram)/3;}//main.cpp 主函数所对应的源文件#include"student.h"int main(){Student s1;s1.Input_Stu ();s1.Show_Stu ();cout<<"Average Score="<<s1.Ave_Stu ()<<endl;cout<<endl;s1.Set(2001,"Tom",70,80,90);s1.Show_Stu ();cout<<endl<<"Average Score="<<s1.Ave_Stu ()<<endl;cout<<endl;return 0;}运行结果:3、程序代码:#include<iostream>#include<string>using namespace std;class Book{public:void Input(); //图书信息输入;void Output(); //图书信息输出;void Borrow(); //借阅图书,并显示当前剩余图书数量;void Restore(); //归还图书,并显示当前剩余图书数量。

实验2 类和对象

实验2  类和对象

实验2 类和对象(1)班级学号(最后两位)姓名成绩一、实验目的1.掌握类的概念、类的定义格式、类与结构的关系、类的成员属性和类的封装性;2.掌握类对象的定义,对象的初始化;3.理解类的成员的访问控制的含义,公有、私有和保护成员的区别;4.掌握构造函数和析构函数的含义与作用、定义方式和实现,能够根据要求正确定义和重载构造函数。

能够根据给定的要求定义类并实现类的成员函数;二、实验内容1.分析找出以下程序中的错误,说明错误原因,给出修改方案使之能正确运行。

#include<iostream.h>class one{ int a1,a2;public:one(int x1=0, x2=0);};void main(){one data(2,3);cout<<data.a1<<endl;cout<<data.a2<<endl;}2.分析以下程序的错误原因,给出修改方案使之能正确运行。

#include <iostream.h>class Amplifier{float invol,outvol;public:Amplifier(float vin,float vout){invol=vin;outvol=vout;}float gain();};Amplifier::float gain() { return outvol/invol; }void main(){ Amplifier amp(5.0,10.0);cout<<"\n\nThe gain is =>"<<gain()<<endl;}3.定义盒子Box类,要求具有以下成员:可设置盒子形状;可计算盒子体积;可计算盒子的表面积。

4.定义计数器类Counter。

要求具有以下成员:计数器值;可进行增值和减值计数;可提供计数值。

实验二---类与对象的定义与使用

实验二---类与对象的定义与使用
}
}
void paixuYuwen() //按语文成绩排序;
{
Student str[50],*p,q;
int i,j;
p=stu;
for(p=stu,i=0;i<n;i++)
{ str[i]=*p;
*p++;
}
for(i=0;i<n-1;i++,p++)
{
for(j=0;j<n-1-igt;str[j+1].yuwen)
{
q=str[j];
str[j]=str[j+1];
str[j+1]=q;
}
}
}
for(i=0;i<n;i++)
{
printf("学号:%d姓名:%s数学:%.2f语文:%.2f英语:%.2f总成绩:%.2f平均成绩:%.2f\n",str[i].num,str[i].name,str[i].shuxue,str[i].yuwen,str[i].yingyu,str[i].zongcj,str[i].avg);
}
}
void paixuCJ()
{
int flag;
printf("1->按数学成绩排序\n2->按语文成绩排序\n3->按英语成绩排序\n4->按总成绩排序\n5->按总分\n");
printf("请选择成绩由低到高的排序方式:");
scanf("%d",&flag);
switch(flag){
case 0:paixuShuxue();break;

上机实践2 类与对象

上机实践2 类与对象

实验二类与对象一.实验目的学会使用类来封装对象的属性和功能;掌握类变量与实例变量,以及类方法与实例方法的区别;掌握使用package和import语句。

二.实验要求实验前,应事先熟悉相关知识点,拟出相应的实验操作步骤,明确实验目的和要求;实验过程中,服从实验指导教师安排,遵守实验室的各项规章制度,爱护实验仪器设备;实验操作完成后,认真书写实验报告,总结实验经验,分析实验过程中出现的问题。

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

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

另外,Trangle类还具有一个boolean型的属性,该属性用来判断三个数能否构成一个三角形;Lader类具有类型为double的上底、下底、高、面积属性,具有返回面积的功能;Circle类具有类型为double 的半径、周长和面积属性,具有返回周长、面积的功能;创建3个类Trangle、Lader、Circle 的对象,分别求出“三角形”、“梯形”和“圆形”的周长和面积。

2、实例成员与类成员按程序模板的要求编写源文件,要特别注意程序的输出结果,并能正确解释输出的结果。

程序模板:Example.javaclass A{【代码1】//声明一个float型实例变量a【代码2】//声明一个float型类变量b,即static变量bvoid setA(float a){【代码3】//将参数a的值赋值给成员变量a}void setB(float b){【代码4】//将参数b的值赋值给成员变量b}float getA(){return a;}float getB(){return b;}void inputA(){System.out.println(a);}static void inputB(){System.out.println(b);}}public class Example{public static void main(String args[]){【代码5】//通过类名操作类变量b,并赋值100【代码6】//通过类名调用方法inputB()A cat=new A();A dog=new A();【代码7】//cat象调用方法setA(int a)将cat的成员a的值设置为200【代码8】//cat调用方法setB(int b)将cat的成员b的值设置为400【代码9】//dog象调用方法setA(int a)将dog的成员a的值设置为150 【代码10】//dog调用方法setB(int b)将dog的成员b的值设置为300【代码11】//cat调用inputA()。

c++实验二 类和对象(附答案)

c++实验二 类和对象(附答案)

实验二类和对象一、实验目的1、理解类和对象的概念。

2、掌握类的定义和使用方法。

二、实验内容以下是一个采用类结构的方式求n! 的程序,请填空完成程序。

# include <iostream.h>class factorial{int n;int fact;public:factorial(int); //带参的构造函数void calculate();void display();};factorial:: factorial(int val){n=val;(1)}void factorial::calculate(){int i=n;while(i>1)(2)or (3)}void factorial::display(){cout<<n<<"!="<< (4) <<endl;}void main(){int n;cout<<"请输入n的值: ";cin>>n;factorial A(n);A.calculate();(5)}要求:编译调试运行程序,得到正确结果。

在填空处加上注释。

设计题给出类的定义,构造一个完整的程序。

程序输出如下结果:a-b=c的值程序的主函数为:Int main(){ int a,b;cin>>a>>b;Ctest c;c.init(a,b);c.print();return 0;}//以下内容作为作业,做到作业本上。

3. 程序填空。

(测试静态成员的使用方法)(本科班必做!)#include<iostream>using namespace std;class Test{private;Static int count;public;Test() {count++;}static void Show() {cout<<”共有”<<count<<”个对象!”<<endl;}}(1) ;int main(void){Test obj1,obj2,obj3;(2);system(“PAUSE”);restuen 0;}4. 改正下面程序中的错误,使其正常运行。

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

实验二类和对象
1.实验目的:
(1) 掌握Visual C++6.0基本操作
(2) 了解C++程序运行环境;
(3) 掌握简单的C++程序的开发过程(编辑、编译、连接和运行)。

(4) 掌握类及其成员的定义方法;
(5) 掌握对象的创建方法;
2.实验内容:
2.1按要求分析程序指出程序运行的结果:
1)分析下面的程序,并给出程序运行的结果:
#include<iostream.h>
class change
{char c1,c2;
public:
void set(char a){c2=((c1=a)-32);}
void print()
{cout<<c1<<" can be upwritten as "<<c2<<endl;}
};
void main()
{change a,b;
a.set('a');
b.set('b');
a.print();
b.print();
}
运行结果:
a can be upwritten as A
b can be upwritten as B
Press any key to continue
程序分析:
由主函数可知,创建的类名为change,两个类对象为a,b,类中含有两个公有成员函数set(char a)和print(),利用函数set(char a)对两个私有成员数据赋值,即为减数与被减数的数值,利用函数print()对两个运算后的类对象进行输出。

2)分析下面的程序,并给出输出结果:
#include<iostream.h>
class pair
{char c1,c2;
public:
void set(char b)
{c1=1+(c2=b);}
unsigned where_am_I()
{return((unsigned)this);}
{cout<<c1<<"+"<<c2<<"\t";}
};
void main()
{pair a,b,c;
a.set('A');
b.set('B');
c.set('C');
a.print();
cout<<"is at "<<a.where_am_I()<<'\n';
b.print();
cout<<"is at "<<b.where_am_I()<<'\n';
c.print();
cout<<"is at "<<c.where_am_I()<<'\n';
}
运行结果:
B+A is at 1245052
C+B is at 1245048
D+C is at 1245044
Press any key to continue
程序分析:
由主函数可知,创建的类名为pair,三个类对象为a,b,c,类中含有,三个公有成员函数set(char b)和where_am_I()和print(),利用函数set(char b)对两个私有成员数据赋值,利用函数where_am_I() this 是一个指针,这个返回语句的功能是把this指针指向的对象的地址用无符号数的类型返回。

例如如果this 指向对象的地址是0x0000ffff,则返回值就是这个。

+ 利用函数print()对两个运算后的类对象进行输出。

2.2编写并调试程序:
1)下面是一个类的测试程序,给定主函数,请写出类的定义,构成一个完整的程序,使执行程序后输出结果为:88-32=56
给定的主函数为:
void main()
{
Tst t;
t.init(88,32);
t.print();
}
2)编程分析
由主函数可知,要创建的类名为Tst,一个类对象为t,类中含有两个公有成员函数init()和print(),利用函数init()对两个私有成员数据赋值,即为减数与被减数的数值,为了程序的实现需要定义第三个成员数据作为减法之差。

#include<iostream.h>
class Tst
{ int x,y,z;
public:
void init(int a,int b){
z=((x=a)-(y=b));
}
void print()
{cout<<x<<"-"<<y<<"="<<z<<endl;} };
void main()
{
Tst t;
t.init(88,32);
t.print();
}
4)运行结果
88-32=56
5)调试情况分析
3.实验结论:。

相关文档
最新文档