利用类实现阶梯型电阻电路计算的实验报 告
利用类实现阶梯型电阻电路计算
利用类改造试验三种构造的计算程序,实现类的封装。
通过这种改造理解类实现数据和功能封装的作用, 掌握类的 设计与编程。
程序要求用户输入的电势差和电阻总数, 并且验证数据 的有效性:电势差必须大于 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:
初始化数据设置
初始化数据
设置 resistance 的值
设置current 的值
设置voltage的值
由电阻的电压和电阻求
void SetResist(double r); //
void SetCur(double cur); //
void SetVol(double vol); //
void CalculateCurrent(); //
电流
double GetResist()(return resistance;} //获得 resistance 的值保证数据的安全性
double GetCur()(return current;} // 获得 current
的值
double GetVol()(return voltage;} // 获得 voltage
的值
class CResistance // 电阻类{
private:
CResistance resists; // 电阻数组
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
得到正确结果。