实验三 类与对象
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<<"今天是该雇员的生日。
实验三 类与对象

实验三类与对象专业班级网络1201 学号1218064023 姓名汪枭涵实验学时 2 实验类型验证性实验地点数计学院实验中心实验时间指导老师曹记东实验成绩年月日一、实验目的:理解类与对象的定义,理解封装的含义,掌握数据成员的声明与初始化方法,掌握成员方法的定义、返回值、参数传递的方法。
二、实验内容:用面向对象的思想编写一个简单的计算器,能够实现两个数字的加、减、乘、除运算。
三、实验要求:1.根据需求,用面向对象的方式定义一个计算器类(Calculator);2.由于计算器能对两个数字进行各种运算,所以定义两个成员变量表示两个运算数;3.编写4个成员方法,分别实现加(add)、减(minus)、乘(multiple)、除(divide)四类运算。
4.定义构造函数对成员变量赋初值;5.写出实验报告。
四、实验步骤与结果:(由学生按照实验内容完成)public class Calculator {public static double add(double num1, double num2){return num1 + num2;}public static double minus(double num1, double num2){return num1 - num2;}public static double multiple(double num1, double num2){return num1 * num2;}public static double divide(double num1, double num2){if(num2 != 0){return num1/num2;}return -1;//除数为0,错误}public static void main(String args[]){System.out.println("加法:15 + 5 = " + add(15, 5));System.out.println("减法:15 + 5 = " + minus(15, 5));System.out.println("乘法:15 + 5 = " + multiple(15, 5));System.out.println("除法:15 + 5 = " + divide(15, 5));}}实验结果:总结:通过本次实验,了解了java的开发环境,掌握了NetBeans的使用方法,同时对一些简单的基本JA V A语言的有了进一步的了解和掌握,对JA V A的一些基本语法也明白的很多,但是因为一开始在语法上存在一定的应用缺陷所以导致在实验的过程遇到了一些问题,最终通过和同学的讨论顺利解决了问题。
图书馆 类图、对象和图包的建立

学号 12741217
统一建模语言UML A
实验报告
实验三类图、对象和图包的建立
学生姓名李雪
专业、班级计算机12
指导教师高天迎
成绩
计算机与信息工程学院
年月日
天津城市建设学院
验证性实验任务书
计算机与信息工程学院计算机专业12 班
姓名李雪学号12741217
课程名称:统一建模语言UML A
设计题目:类图、对象和图包的建立
完成期限:自年月日至年月日
设计依据、要求及主要内容(可另加附页):
1、设计依据:
本实验是以教材《UML基础与Rose建模实用教程》一书的第13章为依据, 掌握类图、对象和图包的建立。
2、设计要求:
(1)利用Rose建立图书管理系统的类图。
(2)利用Rose建立图书管理系统的包图。
指导教师:高天迎
一、实验目的
1.了解类图描述的静态关系和包之间的关系
2.会使用rose绘制类图和包图
二、实验内容和思想
对图书馆管理系统进行分析,确定类,明确类的含义和职责,确定类的属性和操作,进而确定类之间的关系。
调整和细化类及其关系,解决重复和冲突,绘制类图。
三、实验结果
四、实验心得
图书馆管理系统是一个经典的程序范例,更是一个学习UML的经典项目。
它能让学生在设计UML中掌握编程的设计思想和实现方法,通过这个作业,我学会了不少东西。
最大的收获是掌握了用Rational Rose软件开发工具熟练的绘制UML图形的方法。
实验三 类与对象(1)——耿祥义

定义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()
实验二-类与对象(二)

实验二-类与对象(二)实验三类与对象(2)【实验类型】验证性实验【实验课时】2学时【实验目的】(1)掌握对象数组定义与使用方法。
(2)理解对象指针的概念,学会用指针引用对象。
(3)了解this指针的工作方式。
(4)掌握静态数据成员和静态成员函数的基本使用方法。
(5)理解友元与友元函数的作用,掌握其使用方法。
【实验环境】硬件:计算机软件:Microsoft Visual C++ 6.0【实验内容】1、按要求阅读、修攺、调试和运行以下程序。
(1)实验内容① 定义一个类Stock,记录一支股票交易的基本信息,信息包括交易日序号(表示本月的第几个交易日,用整数表示)、当日最高价、当日最低价、当日开盘价和当日收盘价。
尽量发挥想象力,为该类设计成员函数。
② 在主函数中建立两个股票对象,分别存储该股票昨天和今天两天的信息,以当日收盘价计算该股票今天的涨幅。
③ 使用股票类Stock,定义一个对象数组存放连续5个交易日的股票信息。
编写一个主函数,计算两个Stock对象(前后两日)的当日收盘价计算当日涨幅。
用指针引用对象数组中的两个对象。
在主函数中调用该函数计算从第2个交易日开始每天的当日涨幅。
④ 在Stock类中定义一个静态数据成员,记录当前Stock对象的数量。
⑤ 设计一个成员函数Assign_stock为对象赋值,其中的形式参数是对另一个Stock对象的引用,使用this指针避免对自己的赋值,在主函数中显示用Assign_stock赋值的对象。
⑥ 定义一个友元函数计算Stock对象的当日开盘价是否高于当日收盘价。
若是,返回真,否则,返回假。
(2)实验程序及运行结果(参考)①以当日收盘价计算该股票今天的涨幅#include <iostream.h>class Stock{public:Stock(int n,double ma,double mi,double b,double e);void Set_Stock(int n,double ma,double mi,double b,double e);double Get_End();void Show_Stock();private:int Number;double Max,Min,Begin,End;};Stock::Stock(int n,double ma,double mi,double b,double e){ Number=n;Max=ma;Min=mi;Begin=b;End=e;}void Stock::Set_Stock(int n,double ma,double mi,double b,double e){ Number=n;Max=ma;Min=mi;Begin=b;End=e;}double Stock::Get_End(){ return End;}void Stock::Show_Stock(){ cout<<Number<<"\t";cout<<Max<<"\t";cout<<Min<<"\t";cout<<Begin<<"\t";cout<<End<<endl;}void main(){ Stocks1(1,4.18,4.00,4.05,4.09);Stocks2(2,4.41,4.03,4.04,4.40);cout<<"\n"<<(s2.Get_End()-s1.Get_E nd())/s1.Get_End()*100<<"%"<<endl;}②定义一个对象数组存放连续5个交易日的股票信息#include <iostream.h>const int N=2;class Stock{public:Stock(int n,double ma,double mi,double b,double e);Stock(); //增加无输入值的构造函数void Set_Stock(int n,double ma,double mi,double b,double e);void Set_Stock();double Get_End();void Show_Stock();private:int Number;double Max,Min,Begin,End;};Stock::Stock(int n,double ma,double mi,double b,double e){ Number=n;Max=ma;Min=mi;Begin=b;End=e;}Stock::Stock() //无输入值时,将其都清零{ Number=0;Max=0;Min=0;Begin=0;End=0;}void Stock::Set_Stock(int n,double ma,double mi,double b,double e){ Number=n;Max=ma;Min=mi;Begin=b;End=e;}double Stock::Get_End(){ return End;}void Stock::Show_Stock(){ cout<<Number<<"\t";cout<<Max<<"\t";cout<<Min<<"\t";cout<<Begin<<"\t";cout<<End<<endl;}void Stock::Set_Stock(){ cout<<"Number:";cin>>Number;cout<<"Max:";cin>>Max;cout<<"Min:";cin>>Min;cout<<"Begin:";cin>>Begin;cout<<"End:";cin>>End;}void main(){ int i;Stock s1[5],*p;for (i=0,p=s1;i<N;i++,p++)p->Set_Stock();for (i=0,p=s1;i<N;i++,p++)p->Show_Stock();for(i=1,p=s1+1;i<N;i++,p++) cout<<"\n"<<(p->Get_End()-(p-1)->Get_End())/(p-1)->Get_End()*100<<"%"<<en dl;}③定义一个静态数据成员,记录当前Stock 对象的数量#include <iostream.h>const int N=2;class Stock{public:Stock() {}Stock(int n,double ma,double mi,double b,double e);void Set_Stock(int n,double ma,double mi,double b,double e);void Set_Stock();double Get_End();void Show_Stock();int Get_N_count();private:static intN_count; //静态数据成员int Number;double Max,Min,Begin,End;};intStock::N_count=0; //此处定义时不需要加上staticStock::Stock() //无输入值时,将其都清零{N_count++;Number=0;Max=0;Min=0;Begin=0;End=0;}Stock::Stock(int n,double ma,double mi,double b,double e){ N_count++;Number=n;Max=ma;Min=mi;Begin=b;End=e;}void Stock::Set_Stock(int n,double ma,double mi,double b,double e){Number=n;Max=ma;Min=mi;Begin=b;End=e;}double Stock::Get_End() { return End;}void Stock::Show_Stock() { cout<<Number<<"\t";cout<<Max<<"\t";cout<<Min<<"\t";cout<<Begin<<"\t";cout<<End<<endl;} void Stock::Set_Stock() {cout<<"Number:";cin>>Number;cout<<"Max:";cin>>Max;cout<<"Min:";cin>>Min;cout<<"Begin:";cin>>Begin;cout<<"End:";cin>>End;}int Stock::Get_N_count(){ return N_count;}void main(){ int i;Stock s1[5];Stock *p;for (i=0,p=s1;i<N;i++,p++)p->Set_Stock();for (i=0,p=s1;i<N;i++,p++)p->Show_Stock();for(i=1,p=s1+1;i<N;i++,p++) cout<<"\n"<<(p->Get_End()-(p-1)->Get_E nd())/(p-1)->Get_End()*100<<" %";cout<<"\n"<<p->Get_N_count()<< endl;}④设计一个成员函数Assign_stock为对象赋值,其中的形式参数是对另一个Stock对象的引用#include <iostream.h>const int N=2;class Stock{public:Stock() {}Stock(int n,double ma,double mi,double b,double e);void Set_Stock(int n,double ma,double mi,double b,double e);void Set_Stock();void Assign_Stock(Stock& p);void Show_Stock();private:static int N_count;long Number;double Max,Min,Begin,End;};int Stock::N_count=0;Stock::Stock() //无输入值时,将其都清零{N_count++;Number=0;Max=0;Min=0;Begin=0;End=0;}Stock::Stock(int n,double ma,double mi,double b,double e){ N_count++;Number=n;Max=ma;Min=mi;Begin=b;End=e;}void Stock::Set_Stock(int n,double ma,double mi,double b,double e){ N_count++;Number=n;Max=ma;Min=mi;Begin=b;End=e;}void Stock::Assign_Stock(Stock& p){ if (this!=&p){Number=p. Number;Max=p.Max;Min=p.Min;Begin=p.Begin;End=p.End;}}void Stock::Show_Stock() { cout<<Number<<"\t";cout<<Max<<"\t";cout<<Min<<"\t";cout<<Begin<<"\t";cout<<End<<endl;} void Stock::Set_Stock() {cout<<"Number:";cin>>Number;cout<<"Max:";cin>>Max;cout<<"Min:";cin>>Min;cout<<"Begin:";cin>>Begin;cout<<"End:";cin>>End;}void main(){Stock s1(4,7.88,7.48,7.56,7.68);Stock s2;s2.Assign_Stock(s1);s2.Show_Stock();}⑤定义一个友元函数计算Stock对象的当日开盘价是否高于当日收盘价。
学号姓名--类与对象基础实验(三)实验报告

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

实验三类与对象实验三类与对象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、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三类与对象
实验班级
实验人数
实验时间
周一7-8节
实验地点
寒武楼
实验目的:
(1)理解Java语言是如何体现面向对象编程基本思想。
(2)了解类的封装方法,以及如何创建类和对象。
(3)了解成员变量和成员方法的特性。
实验重点
类的封装;
实验难点
定义和访问指定包中的类;成员变量和成员方法的访问权限修饰符
实验类型
验证性\设计性
实验学时
2
实验原理及知识点:
类的封装、类和对象、成员变量和成员方法;包;访问权限修饰符
实验环境要求
硬件环境:PC
软件环境:
操作系统:Windows
软件工具:JDK、集成开发环境(如Eclipse等)
实验内容及实验步骤:
1.类的封装性实现
(1)新建类Customer,在类中有如下成员变量:name、ID、password、money。
4、教材P91 5.14上机实践。
思考题:
(1)根据目前所学的知识点,类的封来自性是如何实现的?(2)static关键字的作用是什么?
实验指导情况记录:
实验小结:
注:实验教案必需提前备好,实验指导情况做随堂记录。
(3)选择菜单Source->Generate Constructor using Fields,在弹出的对话框中不要选中name、ID、password、money,单击“OK”按钮,仔细查看自动产生的无参变量构造方法。
2.类和对象
定义一个水果类,要求如下:
(1)成员变量:水果名称和重量。
(2)成员方法:名称和重量的setter和getter方法。
(2)选择菜单Source->Generate Getters and Setters,在弹出的对话框中选中name、ID、password、money,确保其set方法和get方法为选中状态,单击“OK”按钮,仔细查看自动产生的代码。
(3)选择菜单Source->Generate Constructor using Fields,在弹出的对话框中确保name、ID、password、money为选中状态,单击“OK”按钮,仔细查看自动产生的构造方法。
(3)重载的构造方法
(4)重载的设置成员变量值的方法
创建一个主类,生成相应水果对象(苹果和梨子),进行测试。
3.静态变量和静态方法
定义一个圆类Circle,具有:
1)成员变量:半径
2)构造方法
3)计算面积和周长的成员方法
创建一个测试类,实例化圆对象,并计算面积和周长。
要求计算面积和周长的成员方法用两种方式实现:非静态成员方法和静态成员方法。