实验三类与对象
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对象的当日开盘价是否高于当日收盘价。
火灾现场实验

火灾现场实验火灾现场实验是一种非常重要的实验方法,用于研究火灾的发生原因、认识火灾特点,获取火灾信息并探究适合的灭火方法和防火策略。
本文将详细介绍火灾现场实验的意义、分类、方法和应用。
一、意义火灾现场实验是从火灾现场采集数据、研究火灾的重要手段。
通过火灾现场实验,我们可以了解火源产生的原因、火灾蔓延的规律、火势发展的特点等一系列信息,可以为消防部门提供有益的参考和依据,为预防和控制火灾提供科学支撑。
二、分类火灾现场实验可以按照实验的目的和对象分类为以下三类:1. 室内火灾现场实验。
此类实验适用于针对室内环境的防火和灭火技术研究,实验对象一般为一般民用建筑、公共建筑等。
2. 室外火灾现场实验。
此类实验适用于对室外环境进行防火和灭火技术研究,实验对象一般是地面一般物质、田地草木、建筑物外墙、屋顶等。
3. 实际火灾现场实验。
此类实验适用于在实际火灾现场进行数据采集和有目的的研究,实验对象为实际火警中的物质、火场和人员。
三、方法火灾现场实验分为前置实验、数值模拟实验、实际火灾现场实验。
1. 前置实验前置实验是通过模拟比较出不同灭火设备灭火效果的实验。
通常在大型实验室中,使用灾害模拟器、发动机等装置进行灾害模拟实验。
灭火设备在模拟实验中进行灭火,通过比较不同设备的效果,选择出最适合的灭火设备和材料。
2. 数值模拟实验数值模拟实验就是在计算机上模拟火场。
研究人员调整一些参数,观察火场的变化,以达到验证火灾发生规律和测试灭火工效果等目的。
数值模拟实验在一定程度上能够取代实际火灾现场实验,节省了时间和消防救援成本。
3. 实际火灾现场实验实际火灾现场实验即在真实火灾发生的现场进行实验。
实验研究人员利用高精度设备记录火场燃烧情况,以利于对灭火工艺的验证和标准化。
四、应用火灾现场实验有着广泛的应用,涉及危化品、工程施工安全、建筑防火等领域。
正因为应用广泛,消防救援人员、防火工作者等需要掌握火灾现场实验技能。
以下则列出火灾现场实验的应用领域:1. 确定最佳火焰高度通过火灾现场实验寻找火焰的高度和范围,以及火场的形态,从而确定最佳火焰高度。
学号姓名--类与对象基础实验(三)实验报告

个人收集整理-ZQ课程名称面向对象程序设计实验项目名称类与对象基础实验(三)学生姓名专业班级学号一. 实验目地和要求.掌握大数处理与类.掌握时间处理类与类、类.掌握异常处理与类二. 实验内容. 编程实现:大整数地数值计算. 编程实现:用大整数求阶乘之和. 编程实现:计算两个日期地天数之差. 编程实现:计算生日信息. 编程实现:数字转换地异常处理三. 实验结果与分析(可将程序运行结果截屏,也可分析运行结果). 编程实现:大整数地数值计算.编写一个应用程序,计算两个大整数地和、差、积和商,并计算一个大整数地因子个数.(部分源码参考讲义)文档来自于网络搜索请分析并回答以下问题:程序源码如下:请将运行结果截图:请比较和地主要区别,并简要说明地主要用途.答:. 编程实现:用大整数求阶乘之和.编写一个应用程序,用计算!…!.要求地值从键盘输入.文档来自于网络搜索请分析并回答以下问题:程序源码如下:请将运行结果截图:. 编程实现:计算两个日期地天数之差.编写应用程序,来计算任意两个日期地天数之差.要求:两个日期用字符串形式输入(比如输入“”表示年月日),需要将日期字符串地年、月、日分别转换为数字形式.文档来自于网络搜索程序源码如下:请将运行结果截图:. 编程实现:生日信息.编写应用程序,计算你地生日还有多少天,你地生日是星期几. 程序源码如下:请将运行结果截图:. 编程实现:数字转换地异常处理.输入两个数,计算两个数想除地结果(考虑除数为地异常情况).程序源码如下:请将运行结果截图:四. 讨论、心得(可写遇到地问题及解决方法,或者对技术地理解等)1 / 1。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
cout<<”总面积:”<<r1.len*r1.wid+r2.len*r2.wid<<endl;
}
void main()
{
Rect A(3.5,2.0), B(3.8,2.3), C;
cout<<A.area<<’\t’<<B.area<<endl;
C.addarea;
}
3.编译、链接和执行程序
[例3-2]编写一个程序,设计一个类score用于统计一个班的平均成绩。
实验三
实验目的
掌握类和对象的概念、定义和访问方法
掌握不同类型成员的访问限制
掌握构造函数和析构函数的使用方法
实验示例
[例3-1]运用面向对象程序设计方法编写一个程序,计算两个给定长方形的面积,其类中设计一个用于计算两个长方形的总面积成员函数。
解题思路:
设计一个类Rect,包含数据成员len(表示长度)、wid(表示宽度),以及求面积的公有成员函数area()、求两个长方形的总面积成员函数addarea(),并设计两个重载的构造函数。
实现步骤:
1.新建Win32Console Application程序项目
2.在文件编辑区窗口编写如下程序代码:
#include <iostream.h>
#include <iomanip.h>
class Rect
{
float len,wid;
public:
Rect(){ }; //默认的构造函数(内联的)
Rect(float,float); //构造函数
float area(){ return len*wid; }; //求面积(内联的)
void addarea(Rect,Rect); //求两个长方形的面积
};
Rect::Rect(float a, float b)
{
len=a; wid=b;
}
void Rect::addarea(Rect r1, Rect r2)
2.设计一个雇员类employee,该类对象可存储雇员的姓名、编号、生日等信息,要求使用上一题设计的日期类作为对象成员表示生日。雇员类的使用如:
employee a(“Smith”,“10”, 1978, 11, 25);
//对象a表示雇员Smith,编号为10,1978年11月25日出生
date Today;
实验习题
1.定义一个日期类Date,该类对象存储日期数据,并实现如下操作:
void getdate(); //输出日期,格式:”2000年1月1日”
int getyear(); //返回年份
int getmonth(); //返回月份
int getday(); //返回日期
void setdate(int y, int m, int d); //设置日期
if(mn==my&&dn==dy)
return 1;
else
return 0;
}
};
int main()
{
Date today;
today.setdate(2014,3,27);
employee f;
static int num;
public:
score(int s)
{
fs=s;
sum+=fs;
num++;
}
static void average()
{
if (num==0) cout<<”尚未输入学生成绩!”<<endl;
cout<<”平均成绩:”<<sum/num<<endl;;
}
};
int score::sum=0; //初始化静态数据成员
…
if (a.isBirth(Today))……. //判断今天是否为某雇员的生日
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
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)
{
birth.setdate(y2,m2,d2);
}
void show()
{
cout<<"编号为"<<num<<"的雇员生日为";
#include<iostream.h>
class Date
{
public:
void getdate() //输出日期,格式:"2000年1月1日"
{
cout<<y<<"年"<<m<<"月"<<d<<"日";
}
int getyear() //返回年份
{
return y;
}
int getmonth() //返回月份
解题思路:
使用2个静态数据成员分别存储总分、人数,另定义一个静态成员函数输出平均成绩。
实现步骤:
1.新建Win32Console Application程序项目
2.在文件编辑区窗口编写如下程序代码:
#include <iostream.h>
class score
{
int fs;
static int sum;
int score::num=0;
void main()
{
score *p;
int s;
while (1)
{
cout<<”学生成绩:”; cin>>s;
if (s<0) break; //输入负数时结束成绩输入
p=new score(s);
delete p;
}
score::average();
}
3.编译、链接和执行程序
birth.getdate();
cout<<endl;
}
int isBirth(Date a,employee b) //判断今天是否为某雇员的生日
{
int mn,my,dn,dy;
mn=a.getmonth();
my=b.birth.getmonth();
dn=a.getday();
dy=b.birth.getdayt 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];