适用场景:程序设计课程实验准备、软件开发需求分析
本文要点:类封装数据操作、电阻数值有效性验证、电压电流计算实现
行文逻辑:输入参数验证→初始化电阻数据→计算电压电流→输出结果
一、实验题目
利用类实现阶梯型电阻电路计算
二、实验目的
利用类改造试验三种构造的计算程序,实现类的封装。通过这种改造理解类实现数据和功能封装的作用,掌握类的设计与编程。
三、实验原理
程序要求用户输入的电势差和电阻总数,并且验证数据的有效性:电势差必须大于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
得到正确结果。
适用场景:程序设计课程实验准备、软件开发技能考核
本文要点:方法覆盖实现、抽象类定义与使用、子类对象创建
学生姓名: 郭倩
班级:信息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;
}
这门课学得挺扎实,但报告咋写才规避误区?别慌!这份面向对象课程设计报告模板,有效应对各种“不知道从哪下手”“怕条理不清晰”“担心格式…[更多]