实验四 类与对象

合集下载

【免费下载】实验4 类和对象3

【免费下载】实验4 类和对象3
3. 相关知识点
(一)UML 简介 UML(Unified Modeling Language)即统一建模语言,是 OMG(Object Management Group)发表的图标式软件设计语言。UML 是针对面向对象软件开发的,而 C++正是这样 的一种语言,UML 在设计中被越来越多的使用着。 UML 主要由一系列视图组成,其中包括静态视图(Static view),用例视图(Use case view)活动视图(Activity view)等,不同的图用处自然也不一样,而对开发人员来讲,更 重要的应该是静态视图中的类图(class diagram)和交互视图(Interaction view)中的顺序 图(Sequence diagram)。 UML 可以使用图表的形式来表现业务关系或者物理关系,可以促进对问题的理解和解 决。它提供了一种通用的、精通的、没有歧义的通信机制进行。同时,UML 还可以通过自 己的语法规则使得可以通过使用建模工具软件将设计模式映射到一种语言上,继而可以产 生系统设计文档。 UML 包括如下几种图:
return salary; }
public void setSalary(int salary) {
this.salary = salary; } }
4. 实验内容与实验步骤
1、在程序中按照如图 4-3 UML 类图定义 Animal 类。Animal 类的所有成员变量的访 问权限为 private。所有成员函数的访问权限都为 public。其中 Animal 类的成员函数 move() 功能是输出一个字符串“animal moving”,setXXX()函数设置该类的成员变量,getXXX()函 数返回类的成员变量的值,display()函数分行输出类的 3 个成员变量,输出格式:“变量 名:变量值”。并定义 main 函数实例化一个对象,然后调用相应的函数测试相应的功能。

从实验内容和目的来划分,可以将化学实验分为哪几类实验?

从实验内容和目的来划分,可以将化学实验分为哪几类实验?

从实验内容和目的来划分,可以将化学实验分为哪几类实验?
陕西省安康市汉滨区建民初中吕娟娟
初中化学实验目的分类:
1、验证性实验:如物质在氧气中的燃烧;二氧化碳的性质

2、探究性实验:蜡烛在空气中的燃烧,吸入呼出气体
3、感知性实验:酸碱度的测定;CO的性质
4、兴趣性实验:魔棒点灯;烧不坏的手帕
5、制取类实验:氧气制取;二氧化碳制取;指导剂的制取

初中化学实验内容分类:
(一)分离提纯类,如工业制氧气、水的净化、粗盐提纯;
(二)物质转化类:
①物质制备实验,如氧气的制取、二氧化碳的制取等;
②物质性质实验,如氧气性质实验、二氧化碳性质实验、金属性质实验、酸、碱性质实验等;
③测量数据类实验,如拉瓦锡测定空气组成、酸碱度测量(pH 测定)实验均属于数据测量类实验;
(三)物质的鉴定和鉴别类,如氧气的检验方法,二氧化碳的检验方法,酸碱性溶液的检验等。

(四)家庭小实验:指导剂的制取
实验形式分类:
演示实验;分组实验;探究性实验。

实验四类图参考答案

实验四类图参考答案

实验四类图参考答案实验四类图【实验⽬的】1.掌握类的定义,类的3要素,UML中类的表⽰⽅法。

2.掌握类与类之间的各种关系代表的含义及表⽰⽅法。

3.掌握实体类、边界类、控制类的概念和表⽰⽅法。

4.接⼝和抽象类的概念和表⽰⽅法,类的多重性关系。

【实验性质】设计性实验。

【实验要求】1.通过⽹上选课系统学习识别类和类之间关系的⽅法;2.学习使⽤Rational Rose绘制类图的⽅法;3.掌握类图中属性和操作的添加⽅法。

【实验内容】设计绘制选课系统中的类图和对象图。

【实验步骤】1.分析实验三中选课⽤例的顺序图,除了⾓⾊之外,有以下名词:课程,界⾯和控制对象。

从⽽抽象出三个类:课程类Course、界⾯类FormObject和控制对象类ControlObject。

2.课程类Course应具有的属性有:课程名称、开课教室、授课教师、选课的学⽣、开课起始时间、允许选课的学⽣⼈数,操作有设置课程名称、设置开课教师、设置课程号、设置授课教师信息、设置开课起始时间、设置允许选课的学⽣⼈数、查询课程名称、查询开课教师、查询授课教师信息、查询开课起始时间、查询允许选课的学⽣⼈数。

根据以上分析,绘制课程类Course的类图。

3.类似的,⾃⼰分析建⽴界⾯类FormObject和控制对象类ControlObject的类图。

4.在选课系统中,涉及到的⽤户包括Student(学⽣)和Registrar(管理员),其主要特性相似,所以可以建⽴统⼀基类People,Student和Registrar由People派⽣。

如下图所⽰:PeopleStudent (from Use Case View)Registrar (from Use Case View)5.在选课系统中涉及到的⾓⾊包括:(1)学⽣Student;(2)管理员Registrar;(3)学⽣和管理员的⽗类People;(4)数据库Database。

这些类和⾓⾊之间的关系如下:(1)⾓⾊Student和Register从People派⽣;(2)学⽣、管理员在与系统交互时,都有⼀个界⾯与之对应;(3)⼀个界⾯可能和课程相关(0-多门);(4)控制对象负责课程的处理,处理结果显⽰在界⾯上;(5)控制对象完成对数据库的操作;(6)界⾯请求控制对象的服务。

实验设计的基础方法

实验设计的基础方法

实验设计的基础方法实验是一种科学研究的基本方法,而实验设计则是实现科学实验的关键步骤。

好的实验设计可以提高实验的可靠性和有效性,从而更好地指导科研工作。

但是,如何进行合理的实验设计呢?在这篇文章中,我们将介绍实验设计的基础方法。

实验设计的四要素在实验设计前,我们需要首先明确实验设计的四要素:研究对象、实验因素、随机化、设计方案。

研究对象:研究对象是实验研究的主体,是研究所要观察或控制的基本单位。

例如,实验中可以选择的研究对象包括动物、细胞、蛋白质等。

实验因素:实验因素是指影响研究对象的各种因素,例如药物、环境、年龄等。

在实验设计时,需要按照实验的目的选择合适的实验因素,并在实验过程中对其进行控制,以确保实验结果的正确性。

随机化:随机化是指在实验设计中使用随机分组、随机抽样等方法进行实验,以保证样本的代表性和实验的随机性。

只有通过随机化的实验设计,才能够更准确地得出实验的结论。

设计方案:设计方案是实验设计的总体方案,包括实验的具体步骤、分组和样本量等。

在实验设计中,需要仔细制定实验方案,并在实验过程中不断地进行调整和优化,以确保实验结果的可信性。

实验设计的步骤接下来,我们将主要介绍实验设计的四个步骤:确定实验目的、选定实验因素、设计实验方案、实施实验。

确定实验目的:实验目的是实验设计的核心,是制定实验设计方案的前提。

在确定实验目的时,需要考虑以下几个方面:(1)实验所要研究的问题及其科学意义;(2)研究对象的选择及其特点;(3)研究对象所处的环境条件;(4)实验所需的基础设施和技术手段。

选定实验因素:在确定实验目的后,需要选定实验因素,这是实验设计的核心,会直接影响实验结果的可靠性。

在选定实验因素时,需要考虑以下几个方面:(1)尽量减少实验因素的数量,以避免实验结果混杂;(2)选择可以在实验中进行控制的实验因素;(3)尽量选择能够反映实验要研究问题的实验因素。

设计实验方案:实验方案是实验设计的详细计划,包括实验的具体步骤、实验组、对照组等。

实验4 类与对象

实验4 类与对象
1.掌握使用类来封装对象的属性和功能的方法
2.掌握JAVA中类、对象的定义、创建和使用方法
3.掌握Java中方法的重载
实验仪器和器材
具有JDK环境的计算机一台
实验内容和要求
一、三角形、梯形和圆形的类封装
1.请按模板要求,将【代码】替换为Java程序代码,运行该程序时的运行效果如图4.1所示。
图4.1类与对象的运行效果
{
above=a;bottom=b;height=h; //方法体,将参数a,b,c分别赋值给above,bottom,height
}
double getArea()
{
area=(above+bottom)*height/2;
return area; //方法体,,要求计算出area返回
}
}
class Circle
{
sideA=a;
sideB=b;
sideC=c; //参数a,b,c分别赋值给sideA,sideB,sideC
if(a+b>c&&b+c>a&&a+c>b) //a,b,c构成三角形的条件表达式
{ boo=true;//给boo赋值。
}
else
{
boo=false; //给boo赋值。
}
}
double getLength()
{
boo=true; //给boo赋值。
}
else
{
boo=false; //给boo赋值。
}
}
doublegetsideA()
{
returnsideA;
}
doublegetsideB()

java 类与对象实验报告

java 类与对象实验报告

java 类与对象实验报告Java 类与对象实验报告一、实验目的本次实验的目的是通过实际操作,加深对Java类与对象的理解与掌握。

通过编写程序,创建类和对象,实现类的各种属性和方法,并进行相应的测试和调试,从而熟悉类与对象的概念、创建与使用。

二、实验内容本次实验包括以下几个方面的内容:1. 创建一个名为"Student"的类,该类包含学生的姓名、年龄、性别等属性,以及相应的get和set方法。

2. 创建一个名为"Course"的类,该类包含课程的名称、学分、教师等属性,以及相应的get和set方法。

3. 创建一个名为"Teacher"的类,该类包含教师的姓名、年龄、性别等属性,以及相应的get和set方法。

4. 在"Student"类中添加一个名为"selectCourse"的方法,该方法可以选择课程,并将其添加到学生的课程列表中。

5. 在"Student"类中添加一个名为"dropCourse"的方法,该方法可以退选课程,并将其从学生的课程列表中移除。

6. 在"Course"类中添加一个名为"showInfo"的方法,该方法可以显示课程的详细信息。

7. 在"Teacher"类中添加一个名为"teachCourse"的方法,该方法可以教授课程,并显示教师的相关信息。

三、实验过程首先,我们需要创建一个名为"Student"的类。

在该类中,我们定义了学生的姓名、年龄、性别等属性,并为每个属性添加了相应的get和set方法。

接着,我们在该类中添加了一个名为"selectCourse"的方法,该方法可以选择课程,并将其添加到学生的课程列表中;同时,我们还添加了一个名为"dropCourse"的方法,该方法可以退选课程,并将其从学生的课程列表中移除。

c++程序设计类和对象实验总结

c++程序设计类和对象实验总结

一、实验目的在本次C++程序设计实验中,主要目的是通过对类和对象的学习和掌握,进一步加深对C++程序设计语言的理解和应用。

通过具体的实验操作,提高学生的编程能力和解决问题的能力,培养学生的动手能力和团队协作精神。

二、实验内容1. 掌握类的概念和基本语法,包括类的定义、成员变量、成员函数等;2. 熟悉对象的概念和使用方法,了解对象的初始化和销毁;3. 学习类的继承和派生的知识,掌握继承与派生的语法和使用;4. 能够独立编写包含类和对象的程序,实现各种功能;5. 通过实践项目,提高自己的编程水平,锻炼解决问题的能力。

三、实验过程在实验过程中,首先我们需要了解类和对象的概念,理解类的定义和对象的创建方法。

编写简单的程序进行练习,例如创建一个包含学生信息的类,并实例化对象,调用成员函数来输出学生信息。

也需要深入学习类的继承和派生的知识,理解基类和派生类的关系,掌握虚函数的概念和使用方法。

在实验中,我们编写了多个实例程序来练习类的继承和派生,加深了对这一知识点的理解。

在实验过程中,我们还遇到了一些问题,例如在使用多重继承时需要特别注意类的构造和析构顺序,以及在使用虚函数时需要注意动态绑定的原理等。

通过解决这些问题,我们不断提高了自己的编程水平,加深了对C++语言的理解。

四、实验总结通过本次实验,我们深刻理解了类和对象的概念,掌握了类的定义和对象的创建方法。

在实验中,我们编写了多个功能丰富的程序,包括学生信息管理系统、图形类的继承等。

这些程序不仅巩固了所学的知识,也让我们感受到了编程的乐趣。

通过与同学的讨论和交流,我们也学到了很多新的知识和技巧。

本次实验对我们的帮助很大,让我们更深入地理解了C++程序设计语言,提高了我们的编程水平。

希望在以后的学习和实践中,能够进一步加深对类和对象的理解,不断提高自己的编程能力。

在本次的C++程序设计实验中,我们深入学习了类和对象的概念,并通过实际的编程练习加深了对C++程序设计语言的理解和应用。

java面向对象 实验四 类和对象编程(面向对象特征)

java面向对象 实验四  类和对象编程(面向对象特征)

学号姓名实验序号实验四实验名称类和对象编程—面向对象特征实验地点实验日期实验内容1.设计3个类,分别学生类Student,本科生类Undergaduate,研究生类Postgraduate,学生类包含一些基本属性,如姓名、所学课程、课程成绩等,具有一个空方法getGrade();本科生类Undergaduate与研究生类Postgraduate继承学生类Student,都覆盖了父类的getGrade()方法,用于通过分数计算成绩的等级,计算方法不同,研究生的标准要比本科生的标准高一些,如下表所示。

要求对属性进行适当封装,通过方法来访问。

表课程成绩等级本科生标准研究生标准80--100优秀90—100优秀70--80良好80—90良好60--70一般70—80一般50--60及格60—70及格50以下不及格60以下不及格编写测试类,在测试类里创建Undergaduate与Postgraduate对象,计算他们的成绩,并输出他们的个人信息。

实验过程及步骤根据实验要求编写程序如下:class Student {private String name;private String course;private int score;public String getName() {return name;}public void setName(String name) { = name;}public String getCourse() {return course;}public void setCourse(String course) {this.course = course;}public int getScore() {return score;}public void setScore(int score) { this.score = score;}public String getGrade() {return"";}}class Undergaduate extends Student { Undergaduate(String _name, String_course, int _score) {setName(_name);setCourse(_course);setScore(_score);实验过程及步骤}public String getGrade() {int grade = getScore();if (grade >= 80)return ("优秀");if (grade >= 70)return ("良好");if (grade >= 60)return ("一般");if (grade >= 50)return ("及格");return ("不及格");}}class Postgraduate extends Student { Postgraduate(String _name, String _course, int _score) {setName(_name);setCourse(_course);setScore(_score);}public String getGrade() {int grade = getScore();if (grade >= 90)return ("优秀");if (grade >= 80)return ("良好");if (grade >= 70)return ("一般");if (grade >= 60)return ("及格");return ("不及格");}}public class Test {public static void main(String[] args) {Undergaduate a1 = new Undergaduate("张三", "JAVA", 80);Undergaduate a2 = new实验过程及步骤Undergaduate("李四", "JAVA", 60);Postgraduate b1 = newPostgraduate("王五", "JAVA", 90);System.out.println(a1.getName() + "的" + a1.getCourse() + "成绩为"+ a1.getGrade());System.out.println(b1.getName() + "的" + a1.getCourse() + "成绩为"+ a1.getGrade());System.out.println(a2.getName() + "的" + a2.getCourse() + "成绩为"+ a2.getGrade());}}得到结果:实验结果及分析教师评阅。

实验题目

实验题目

实验一 Java语言概述【实验目的】1.掌握开发Java应用程序的三个步骤:编写源文件、编译源文件和运行应用程序。

2.熟悉Java应用程序的基本结构,并能联合编译应用程序所需要的类。

文件保存要求:在D:盘新建文件夹“学号”,在“D:\ 学号”下新建文件夹“timu1”。

题目1的文件保存在“timu1”中,以下依次类推。

【题目1】1、实验要求:编写一个简单的Java应用程序,该程序在命令行窗口输出两行文字:“你好,很高兴学习Java”和“We are students”。

2、程序模板:请按模板要求,将【代码】替换为Java程序代码。

3、实验后的练习a.编译器怎样提示丢失大括号的错误。

b.编译器怎样提示语句丢失分号的错误。

c.编译器怎样提示将System写成system这一错误。

d.编译器怎样提示将String写成string这一错误。

【题目2】1、实验要求:编写3个源文件:、、,每个源文件只有一个类。

含有应用程序的主类(含有main方法),并使用了Teacher和Student类。

将3个源文件保存到同一目录,D:\timu2,然后编译。

2、程序模板:请按模板要求,将【代码】替换为Java程序代码。

3、实验后的练习a.将编译通过后,不断地修改源文件中的【代码2】。

比如,在命令行窗口输出“我是语文老师”或“我是数学老师”。

要求每次修改源文件后,单独编译,然后直接运行应用程序(不要再编译)。

b.如果需要编译某个目录下的全部Java源文件,如D:\1001目录,可以使用如下命令:D:\1001>javac *.java请练习上述命令。

【题目3】1、实验要求:课本第15页习题2、实验后的练习习题8.(4)实验四类与对象【实验目的】1.掌握使用类来封装对象的属性和行为。

2.掌握对象的组合以及参数传递。

3.掌握类变量与实例变量,以及类方法与实例方法的区别。

文件保存要求:在D:盘新建文件夹“shiyan04”,在“D:\ 20120shiyan04”下新建文件夹“timu1”。

实验四C#面向对象程序基础

实验四C#面向对象程序基础

实验四C#面向对象程序基础(一)一、实验目的1.理解C#语言是如何体现面向对象编程基本思想。

2.掌握类对象的定义。

3.了解类的封装方法,以及如何创建类和对象。

4.了解成员变量和成员方法的特性。

5.掌握静态成员的用法。

6.加深理解面向对象编程的概念,如类、对象、实例化等;二、实验要求1. 分析程序,上机验证结果。

2. 写出程序,并调试程序,要给出测试数据和实验结果。

3. 整理上机步骤,总结经验和体会。

4. 完成实验日志和上交程序。

三、作业提交1. 建立以自己名字命名的文件夹,文件夹中包含两个文件夹,名字各为:实验成果,实验流程。

2. 实验成果文件夹中保存实验过程中的解决方案、项目等文件。

3.实验流程中存放撰写实验流程的word文档。

四、实验内容题目一:定义一个圆类,计算圆的面积和周长,并应用该类。

题目二:求n!的值,用递归的方法求n!(n>=0)。

】实验步骤:1)定义递归方法fac,计算整数n的阶乘,方法中需要递归调用自身。

2)在Main方法中读入整数n的值。

3)在Main方法中调用fac方法,求出整数n的阶乘。

4)Main方法中输出计算结果。

题目三:给三个整数排序并求其和及平均值定义一个方法,给三个整数按从小到大的顺序排序并求其和及平均值。

其中,三个待求整数及排序后的结果由引用参数传递;其和由输出参数传递;平均值由返回值返回。

在Main()方法中实现三个待求整数的输入及结果的输出。

实验步骤:1)定义方法Sort,给三个整数按从小到大的顺序排序并求其和及平均值。

其中,三个待求整数及排序后的结果由引用参数传递,其和由输出参数传递,平均值由返回值返回。

2)在Main方法中读入待求的三个正整数。

3)在Main方法中调用方法Sort给三个整数排序并求其总和及平均值。

4)在Main方法中输出结果。

题目四:程序阅读假设某银行共发出M张储蓄卡,每张储蓄卡拥有唯一的卡号,每天每张储蓄卡至多支持储蓄卡持有者的N笔“存款”或“取款”业务。

类与对象实验

类与对象实验

实验四类与对象实验(设计性实验4学时)实验题目11、目的要求:1)理解类与对象的概念;2)掌握类的声明和定义方法;3)掌握对象的定义和使用方法;4)掌握带参数的构造函数的定义和使用;5)掌握静态数据成员和静态成员函数的定义和使用方法;6)理解类与对象之间的关系。

2、实验内容定义一个学生类Student,包括3个数据成员:学号id,姓名name,分数score;两个静态数据成员:总分total和学生人数count;带参数的构造函数用来初始化对象,成员函数ChangeScore用来修改分数,静态成员函数GetA verage用来打印计算得到的平均分。

3、实验步骤:1)定义一个学生类Student,包括题目中要求的数据成员和成员函数;2)在类外对静态数据成员进行定义声明,以获得存储空间;3)定义类中的成员函数;4)在main函数中声明类的对象并初始化;5)使用该对象的成员函数进行计算并打印结果。

4、主要实验仪器设备:计算机假设有三个学生#include<iostream>#include<string>using namespace std;class Student{public:Student(int m,string n,float f):id(m),name(n),score(f){}void ChangeScore();static void GetA verage();private:int id;string name;float score;static float total;static int count;};float Student::total=0;int Student::count=0;void Student::ChangeScore(){total+=score;count++;}void Student::GetA verage(){cout<<"平均分:"<<total/count<<endl;}int main(){Student stud[3]={Student(001,"li ming",90.5),Student(002,"wang li",90),Student(003,"zeng lan",89)};for(int i=0;i<3;i++) stud[i].ChangeScore();Student::GetA verage();return 0;}实验题目21、目的要求:1)理解类的组合的概念和使用方法;2)学会定义并使用带参数的构造函数和不带参数的默认构造函数;3)掌握组合类构造函数和析构函数的定义、实现和调用顺序。

java实验四对象和类(抽象类、接口与包)

java实验四对象和类(抽象类、接口与包)

java实验四对象和类(抽象类、接口与包) 实验四对象和类(抽象类、接口与包) 一、实验目的1、熟练掌握抽象类abstract的概念。

2、熟练掌握接口interface的概念。

3、熟练包package的概念以及编译运行的方法。

4、熟练掌握内部类inner class的概念。

5、熟练掌握递归的概念。

6、理解面向对象的程序设计方法。

二、实验内容与要求1(编写求解几何图形(如三角形,矩型,圆,多边型)的周长、面积的应用程序,要求用到继承、多态、抽象类、接口、内部类等面向对象程序设计技术的特点。

程序如下:abstract class Geometric{ //定义抽象类abstract double getPerimter();abstract double getArea(); }interface MY{ //定义接口float getarea();float getperimter();}class sanjiaoxing extends Geometric{ //三角形类继承抽象类private float a;private float b;private float c;sanjiaoxing(float x1,float x2,float x3){a=x1;b=x2;c=x3;}double getPerimter(){return a+b+c;}double getArea(){float p=(a+b+c)/2;return Math.sqrt(p*(p-a)*(p-b)*(p-c));}}class yuanxing extends Geometric{ //圆类继承抽象类private float radius;yuanxing(float a){radius=a;}double getPerimter(){double p;p=2*3.14f*radius;return p;}double getArea(){return 3.14f*radius*radius;}}class juxing implements MY{ //矩形类实现接口private float height;private float width;juxing(float a,float b){height=a;width=b;}public float getperimter(){return 2*(width+height);}public float getarea(){return width*height;}}class abc{public static void main(String args[]){ sanjiaoxing obj1=new sanjiaoxing(3,4,5); System.out.println("当三角形三边是3,4,5时:"); System.out.println("边长是:"+obj1.getPerimter()); System.out.println("面积是:"+obj1.getArea()); yuanxing obj2=new yuanxing(4);System.out.println("当圆的半径是4时:");System.out.println("周长是:"+obj2.getPerimter());System.out.println("面积是:"+obj2.getArea());juxing obj3=new juxing(3,4);System.out.println("当矩形长和宽是3,4时:");System.out.println("周长是:"+obj3.getperimter());System.out.println("面积是:"+obj3.getarea());}}结果如下:, 出现的问题1:需要定义抽象类和接口,并用三角形、矩形和圆形来实现里边定义的方法。

实验四 类和对象编程(面向对象特征)

实验四  类和对象编程(面向对象特征)

实验四类和对象编程—面向对象特征一、实验目的1.理解封装含义;2.掌握继承的使用;3.掌握多态的含义及使用。

二、实验器材计算机硬件环境:PIII 667以上计算机;软件环境:MyEclipse6.0以上。

三、实验内容设计3个类,分别学生类Student,本科生类Undergaduate,研究生类Postgraduate,学生类包含一些基本属性,如姓名、所学课程、课程成绩等,具有一个空方法getGrade();本科生类Undergaduate与研究生类Postgraduate继承学生类Student,都覆盖了父类的getGrade()方法,用于通过分数计算成绩的等级,计算方法不同,研究生的标准要比本科生的标准高一些,如下表所示。

要求对属性进行适当封装,通过方法来访问。

表课程成绩等级编写测试类,在测试类里创建若干个Undergaduate与Postgraduate对象,计算他们的成绩,并输出他们的个人信息。

四、实验步骤Student类package .tqc;public class Student {private String name;private int chinese;private int math;private int english;public Student (String name,int chinese,int math,int english){ = name;this.chinese = chinese;this.math = math ;this.english = english;}public String getName() {return name;}public void setName(String name) { = name;}public int getChinese() {return chinese;}public void setChinese(int chinese) {this.chinese = chinese;}public int getMath() {return math;}public void setMath(int math) {this.math = math;}public int getEnglish() {return english;}public void setEnglish(int english) {this.english = english;}public float pingjun(int english,int math,int chinese){float a;a = (english+math+chinese)/3;return a;}}本科生类Undergaduatepackage .tqc;public class Undergaduate extends Student {public Undergaduate(String name, int chinese, int math, int english){super(name, chinese, math, english);// TODO Auto-generated constructor stub}public void Undergradute(String name, int chinese, int math, int english) {}public float pj(int st,float bk){float a;a = (bk+st)/2;return a;}public void benkepd(float a){if (a>80){System.out.println("该学生为优秀");}else if(a>70){System.out.println("该学生为良好");}else if(a>59){System.out.println("该学生为及格");}else {System.out.println("该学生为不及格");}}研究生类Postgraduatepackage .tqc;public class Undergaduate extends Student {public Undergaduate(String name, int chinese, int math, int english) {super(name, chinese, math, english);// TODO Auto-generated constructor stub}public void Undergradute(String name, int chinese, int math, int english) {}public float pj(int st,float bk){float a;a = (bk+st)/2;return a;}public void benkepd(float a){if (a>80){System.out.println("该学生为优秀");}else if(a>70){System.out.println("该学生为良好");}else if(a>59){System.out.println("该学生为及格");}else {System.out.println("该学生为不及格");}}Text类package .tqc;public class Test {public static void main(String[] args) {Undergaduate zhansan = (Undergaduate) newUndergaduate("zhangsan", 80, 89,97);int zcj=zhansan.pingjun(80, 89,97);System.out.println("学生名字"+zhansan.getName());System.out.println(zhansan.getName()+"语文:"+zhansan.getChinese());System.out.println(zhansan.getName()+"数学:"+zhansan.getMath());System.out.println(zhansan.getName()+"英语:"+zhansan.getEnglish());System.out.println(zhansan.getName()+"总平均分为:"+zcj);zhansan.getGrade(zcj);Postgraduate lisi = (Postgraduate) new Postgraduate("lisi", 98,87,90);int zcj1=lisi.pingjun( 98,87,90);System.out.println("学生名字:"+lisi.getName());System.out.println(lisi.getName()+"语文:"+lisi.getChinese());System.out.println(lisi.getName()+"数学:"+lisi.getMath());System.out.println(lisi.getName()+"英语:"+lisi.getEnglish());System.out.println(lisi.getName()+"总平均分为:"+zcj);lisi.getGrade(zcj1);}}运行结果五、实验总结。

8面向对象JAVA实验四类与对象

8面向对象JAVA实验四类与对象

System.out.println("f1="+f1+"\tf2="+f2+"\tf3="+f3);
}
}
6. 编程计算 50+49+48+…+1 的值,用递归方法实现。
{ int a=2,b=7;
double f1=2,f2=4,f3;
add(a,b);
// 按 Java 的类型转换规则达到形参类型
System.out.println("a="+a+"\tb="+b);
// f3=add1(f1, f2, 3.5);错,实参与形参的参数个数不一致
f3=2+add1(f1,f2);
} } 4. 将示例程序 c4_16.java 改写为有构造方法的程序。
5. 将示例程序 c4_12.java 改写为两个类的程序。
public class C4_12
{
static void add(double x,double y)
{ double z;
z=x+y;
System.out.println("z="+z);
g.drawString("a="+a,25,25);
g.drawString("b="+b,25,35);
}
}
2. 将示例程序 c4_3.java 改写为 Applicationt 程序。 import java.applet.Applet; import java.awt.Graphics; class Dogs1 //定义 Dogs1 类 {

实验4 类的定义

实验4 类的定义

实验4 类的定义一、实验目的1.掌握类的定义2.了解如何根据描述发现类及其成员,具备初步的面向对象分析与设计能力二、实验概述现在有一个奥特曼打怪兽的角色扮演游戏。

请你根据下面的描述,定义两个类:奥特曼类和怪兽类。

在奥特曼的世界,打怪兽就是全部。

现在人人都有机会成为奥特曼,加入到与怪兽无止境的战斗中。

可惜,并非人人生来就是英雄,革命尚未成功,同志仍需努力啊。

每一个奥特曼都要从零开始,辛勤劳动,打怪升级,最终才能成为举世瞩目的大英雄。

奥特曼的等级(rank)从第一级开始,随着它打怪兽经验(exp)的增加,等级将不断攀升。

随着等级的升高,奥特曼的生命值(hp)上限和攻击力(damage)也将大大增强。

在与怪兽的战斗中,奥特曼收获的不仅仅是经验。

有时,运气好的话,还能从怪兽身上弄到点小钱(money)。

不要小看这些钱,关键时刻,它能给奥特曼买药补血呀。

奥特曼没有金刚不坏之身,在与怪兽的战斗中,奥特曼会受到伤害。

一旦奥特曼的生命值降到0,它英雄的一生就结束了。

好了,了解了奥特曼的基本情况,现在可以开始战斗了。

首先,我们需要一位全新的奥特曼,我们给它赋予一定的初始实力(initial)。

让它投入战斗吧!在与怪兽的战斗中要讲究策略。

所谓知己知彼,百战不殆,一旦碰到怪兽,我们首先要查看自己和对方的实力(display),包括双方的等级、生命值、攻击力、经验和所拥有的钱财。

所谓打得赢就打,打不赢就跑。

如果对手太强大,逃跑吧(escape)!偶尔逃跑无伤颜面,但会耗费一点生命值。

如果总是逃跑,生命被虚耗,那英雄就当不成了。

所以该出手时就出手,勇敢地战斗(attack)吧!每一回合的战斗中,怪兽会受到攻击(attacked),怪兽也会反击(fightback),让奥特曼受到攻击(attacked)。

每一回合结束,只要奥特曼还活着(isalive),而且怪兽也还活着,战斗就要继续。

如果奥特曼的生命值太低,也许抵挡不了下一轮的进攻,那么别财迷了,掏钱出来给它补血(restore)吧。

实验4 类和对象(一)

实验4 类和对象(一)

实验4 类和对象(一)实验目的:1.掌握类的构造方法;2.掌握对象的使用方法。

3.复习具有不同访问属性的成员的访问方式。

4.观察构造函数和析构函数的执行过程。

5.学习类的使用方法。

6.使用VC++的debug调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。

实验内容:1.声明一个名为Ellipse的结构体,其分量为椭圆的外切矩形的左上角与右下角两个点的坐标,并用它声明两个结构体变量,分别输入顶点坐标,计算并输出椭圆的面积;注意:椭圆面积S=π(圆周率)×a×b(其中a,b分别是椭圆的半长轴,半短轴的长)2.声明一个名为Ellipse的椭圆类,其公有的(public)数据成员为椭圆的外切矩形的左上角与右下角两个点的坐标;声明两个Ellipse类的对象,分别输入顶点坐标,计算并输出椭圆的面积;3.声明一个名为Ellipse的椭圆类,其私有的(private)数据成员为椭圆的外切矩形的左上角与右下角两个点的坐标,声明公有的(public)成员函数访问椭圆的外切矩形的顶点坐标;声明两个Ellipse 类的对象,分别输入顶点坐标,计算并输出椭圆的面积;4.声明一个名为Ellipse的椭圆类,其私有的(private)数据成员为椭圆的外切矩形的左上角与右下角两个点的坐标,设计构造函数Ellipse(int,int,int,int)对椭圆的外切矩形的顶点坐标赋值,设计函数Area()计算椭圆的面积;声明两个Ellipse类的对象,计算并输出椭圆的面积。

5.定义一个类ClsName,要求该类设计如下:(1)该类有两个整型数据成员x和y;(2)为该类重载三个不同的构造函数:分别为无参数、带一个参数和带两个参数的构造函数,要求在构造函数中输出必要的信息以示区别;(3)设计2个成员函数用来读取数据成员x和y;(4)设计2个成员函数用来设置数据成员x和y;(5)设计1个成员函数用来在屏幕上打印输出数据成员x和y;(6)在main()函数中用三个不同的构造函数创建3个对象,并使用所有的成员函数对这些对象进行必要的操作。

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

宁夏师范学院数学与计算机科学学院《面向对象程序设计(C++)》实验报告
}*/
// ~CPU() {cout<<"析构了一个CPU!"<<endl;}
CPU_Rank GetRank( )const {return rank;}
int GetFrequency( ) const {return frequency;}
float GetVoltage( )const {return voltage;}
void SetRank(CPU_Rank r) {rank=r;}
void SetFrequency(int f) {frequency=f;}
void SetVoltage(float v) {voltage=v;}
void Run() {cout<<"CPU开始运行!"<<endl;}
void Stop() {cout<<"CPU停止运行!"<<endl;}
};
int main()
{
CPU a;
// CPU a(P6,300,2.8);
a.SetRank(P6);
a.SetFrequency(300);
a.SetVoltage(2.8l);
cout<<"Rank:"<<a.GetRank( )<<endl;
cout<<"Frequency:"<<a.GetFrequency()<<endl;
cout<<"Voltage:"<<a.GetVoltage( )<<endl;
a.Run();
a.Stop();
return 0;
}
(3)调试操作步骤如下:
①单击Build→Start Debug→Step Into命令,或按下快捷键F11,系统进入单步执行状态,程序开始运行,一个DOS窗口出现,此时Visual Studio中光标停在main()函数的入口处;
②从Debug菜单或Debug工具栏中单击Step Over.此时,光标下移,程序准备执行CPU对象的初始化;
③单击Step Into,程序准备执行CPU类的构造函数;
④连续单击Step Over,观察构造函数的执行情况.直到执行完构造函数,程序回到主函数;
⑤此时程序准备执行CPU对象的成员函数.单击Step Into,程序进入成员函数,连续单击Step Over,直到回到main()函数;
⑥继续执行程序,参照上述的方法.观察程序执行顺序.加深对类的构造函数、析构函数、成员函数的执行顺序的认识;
⑦再试试Debug菜单栏中别的菜单项,熟悉Dehug的各种方法。

【实验内容】
验证题目:验证教材第8章习题1——4
#include<iostream>
using namespace std;
class Time
{
public:
void set_time(void);
void show_time(void);
private:
int hour;
int minute;
int sec;
};
Time t;
int main()
{
t.set_time();
t.show_time();
return 0;
}
void Time:: set_time(void)
{
cin>>t.hour;
cin>>t.minute;
cin>>t.sec;
}
void Time:: show_time(void)
{
cout<<t.hour<<":"<<t.minute<<":"<<t.sec<<endl;
}
设计题目:
1、定义一个长方柱类,该类有三个私有数据成员:长(length)、宽(width)、高(height);还有三个成员函数set_value(l,w,h)和cal_volume()和show_result()分别实现对长方柱长、宽、高的赋值,计算长方柱的体积,将长方柱的体积输出。

要求定义3个长方柱对象,编写程序上机调试并运行。

#include<iostream>
using namespace std;
class Box
{
public:
void set_value();
void cal_volume();
void show_result();
private:
int length;
int width;
int height;
};
int main()
{
Box b1;
b1.set_value();
b1.cal_volume();
b1.show_result();
Box b2;
b2.set_value();
b2.cal_volume();
b2.show_result();
Box b3;
b3.set_value();
b3.cal_volume();
b3.show_result();
return 0;
}
void Box::set_value()
{
cin>>length;
cin>>width;
cin>>height;
}
void Box::cal_volume()
{
(length*width*height);
}
void Box::show_result()
{
cout<<"The volume of box is"<<(length*width*height)<<endl; }
2.建立一个名为Student的类,该类有以下几个私有成员变量:学生姓名、学号、性别、年龄。

还有以下两个成员函数:一个用于初始化学生姓名、学号、性别和年龄的构造函数,一个用于输出学生信息的函数。

编写一个主函数,声明一个学生对象,然后调用成员函数在屏幕输出学生信息。

#include<iostream.h>
#include <string.h>
class student
{
public:
char m_name[20];
char m_num[20];
char m_sex[5];
int m_age;
public:
student(char* name,char* num,char* sex,int age);
~student();
showstudent();
};
student::student(char* name,char* num,char* sex,int age )
{
strcpy(m_name,name);
strcpy(m_num,num);
strcpy(m_sex,sex);
this->m_age=age;
}
student::~student()
{
}
student::showstudent()
{
cout<<"学号:"<<this->m_num<<endl;
cout<<"姓名:"<<this->m_name<<endl;
cout<<"性别:"<<this->m_sex<<endl;
cout<<"年龄:"<<this->m_age<<endl;
}
void main()
{
student stu("张明","202003010115","男",18);
stu.showstudent();
}
四、分析与讨论
1、通过此次实验掌握了类的概念、类的定义格式、类与结构的关系、类的成员属性和类的封装性并理解了类成员访问控制的含义,公有、私有和保护成员的区别以及具有不同访问属性的成员的访问方式;以及象成员的引用方法;
2、记下在调试过程中所发现的错误、系统给出的出错信息和对策。

分析讨论对策成功或失败的原因。

相关文档
最新文档