欢迎光临汇报书
当前位置: > 报告范文 > 综合报告

面向对象编程实验报告(精选2篇)

发布时间:2026-10-21 19:17:09

面向对象编程实验报告 篇1

一、实验题目

利用类实现阶梯型电阻电路计算

二、实验目的

利用类改造试验三种构造的计算程序,实现类的封装。通过这种改造理解类实现数据和功能封装的作用,掌握类的设计与编程。

三、实验原理

程序要求用户输入的电势差和电阻总数,并且验证数据的有效性:电势差必须大于0,电阻总数必须大于0小于等于100的偶数。再要求用户输入每个电阻的电阻值,并且验证电阻值的有效性:必须大于零。此功能是由类CLadderNetwork的InputParameter ()函数实现的。

且该函数对输入的数据进行临界判断,若所输入数据不满足要求,要重新输入,直到满足要求为止。

本实验构造了两个类,一个CResistance类,封装了电阻的属性和操作,和一个CLadderNetwork类,封装了阶梯型电阻电路的属性和操作。

用户输入的电势差、电阻总数、电阻值,并赋给CladderNetwork的数据,此功能是由类CLadderNetwork的InputParameter 函数实现的。

输出用户输入的电势差、电阻总数、电阻值,以便检查,此功能是由类CLadderNetwork的PrintEveryPart()函数实现的。

根据用户输入的电势差、电阻总数、电阻值换算出每个电阻上的"电压和电流。此功能是由类CLadderNetwork的Calculate ()函数实现的。

最后输出每个电阻上的电压和电流,此功能是由类CLadderNetwork的PrintResult()函数实现的。

此程序很好的体现了面向对象编程的技术:

封装性:类的方法和属性都集成在了对象当中。

继承性:可以继承使用已经封装好的类,也可以直接引用。

多态性:本实验未使用到多态性。

安全性:对重要数据不能直接操作,保证数据的安全性。

以下是各个类的说明:

class CResistance //电阻类

private:

double voltage;

double resistance;

double current;

public:

void InitParameter(); //初始化数据

void SetResist(double r); //设置resistance的值

void SetCur(double cur); //设置current的值

void SetVol(double vol); //设置voltage的值

void CalculateCurrent(); //由电阻的电压和电阻求电流

double GetResist(){return resistance;} //获得resistance的值 保证数据的安全性

double GetCur(){return current;} //获得current的值

double GetVol(){return voltage;} //获得voltage的值

class CResistance //电阻类{

private:

CResistance resists[MAX_NUM]; //电阻数组

int num;

double srcPotential;

public:

void InitParameter(); //初始化数据

void InputParameter(); //输入数据

void Calculate(); //计算

void PrintEveryPart(); //显示输入的数据以便检查

void PrintResult(); //显示结果

四、实验结果

程序开始界面:

错误输入 -1(不能小于0)

错误输入0 (不能为0)

输入正确数据3

输入错误数据-1

输入错误数据0

输入正确数据4

同样给电阻输入数据也必须是正数 现在一次输入 2,2,1,1

得到正确结果。

面向对象编程实验报告 篇2

学生姓名: 郭倩

班级:信息112

学号:52275208

实验地点: 经管实验中心证券实验室

指导教师:赵利平

实验日期:

实验环境:Windows 20xx+JDK1.6

1. 实验目的

(1) 理解子类派生的概念

(2) 学习创建子类对象

(3) 掌握方法覆盖的使用

2.实验内容

(1) 设计三个类:完成实验教材P52页程序清单4-2;

(2)通过编制一个程序来加深对嵌套类、内部类和局部类的.理解:完成实验教材P56页程序清单4-3;

2. 实验过程

报告撰写具体要求:上述实验内容要求写出源代码及运行结果。

实验内容(1):

//Polymorphism.java

abstract class Student{

final static int CourseNo=3;

String name;

String type;

int[] courses;

String courseGrade;

public Student(String name){

this.name=name;

courses=new int[CourseNo];

courseGrade=null;

}

public abstract void calculateGrade();

public String getName(){

return name;

}

public String getType(){

return type;

}

public String getCourseGrade(){

return courseGrade;

}

public int getCourseScore(int courseNumber){

return courses[courseNumber];

}

public void setName(String name){

this.name=name;

}

public void setType(String type){

this.type=type;

}

public void setCourseScore(int courseNumber,int courseScore){this.courses[courseNumber]=courseScore;

}

}

class Undergraduate extends Student{

public Undergraduate(String name){

super(name);

type="本科生";

}

public void calculateGrade(){

int total=0;

double average=0;

for(int i=0;i

total+=courses[i];

};

average=total/CourseNo;

if(average>=80&&average<100) coursegrade="优秀" else="" average="">=70&&average<80) coursegrade="良好" else="" average="">=60&&average<70) coursegrade="一般" else="" average="">=50&&average<60) courseGrade="及格";else courseGrade="不及格";

}

}

class Postgraduate extends Student{

public Postgraduate(String name){

super(name);

type="研究生";

}

public void calculateGrade(){

int total=0;

double average=0;

for(int i=0;i

total+=courses[i];

};

average=total/CourseNo;

if(average>=90&&average<100) coursegrade="优秀" else="" average="">=80&&average<90) coursegrade="良好" else="" average="">=70&&average<80) coursegrade="一般" else="" average="">=60&&average<70) courseGrade="及格";else courseGrade="不及格";

}

}

public class Polymorphism{

public static void main(String[] args){

Student[] students=new Student[5];

students[0]=new Undergraduate("陈建平");

students[1]=new Undergraduate("鲁向东");

students[2]=new Postgraduate("匡晓华");

students[3]=new Undergraduate("周丽娜");

students[4]=new Postgraduate("梁欣欣");

for(int i=0;i<5;i++){

students[i].setCourseScore(0,87);

students[i].setCourseScore(1,90);

students[i].setCourseScore(2,78);

}

for(int i=0;i<5;i++){

students[i].calculateGrade();

}

System.out.println("姓名"+" 类型"+" 成绩");

}}

System.out.println("-------------------------"); for(int i=0;i<5;i++){ System.out.println(students[i].getName()+" "+students[i].getType()+" "+students[i].getCourseGrade()); }

(1) 都有

(2) Student[] students=new Student[5];

(3) Student是抽象的,不能用new操作符创建抽象类的实例。

(4)

(5) //Polymorphism.java

abstract class Student{

final static int CourseNo=3; String name;

String type;

int[] courses;

String courseGrade;

public Student(String name){this.name=name;

courses=new int[CourseNo];courseGrade=null;

}

public abstract void calculateGrade();

public String getName(){return name;

}

public String getType(){

return type;

}

public String getCourseGrade(){return courseGrade;

}

面向对象编程实验报告(精选2篇)

一、实验题目  利用类实现阶梯型电阻电路计算  二、实验目的  利用类改造试验三种构造的计算程序,实现类的封装。通过这种改造理解类实现数据和功能封装的作用,掌握类的设计
推荐度: Star Star Star Star Star
点击下载文档文档为doc格式

面向对象编程实验报告相关范文

  • 面向对象课程设计报告
  • 面向对象课程设计报告 12人关注

    这门课学得挺扎实,但报告咋写才规避误区?别慌!这份面向对象课程设计报告模板,有效应对各种“不知道从哪下手”“怕条理不清晰”“担心格式…[更多]