ODU设备(小白练习继承)

某无线通信设备ODU设备, 具有以下功能:
查看发射功率, 设置发射功率,
查看发射频率, 设置发射频率,
查看带宽, 修改带宽,
查看设备概述(各指标的值).

后来对该产品做了升级, 研发了ODU330产品:
这个产品, 新增加了以下功能:
查看当前的误码率.
查看误码率告警门限
设置误码率告警门限

项目思想:建立一个ODU类,再派生出ODU330
先建立一个ODU头文件和源文件
ODU.h

#pragma once
#include<string>
using namespace std;
class ODU
{
public:
 float getTxpower();
 int getTxfrequency();
 int getBandwidth();
 bool setTxpower(float Txpower);
 bool setTxfrequency(int Txfrequency);
 bool setBandwidth(int Bandwidth);
 string discaption();
protected:
 float Txpower; //发射功率
 int Txfrequency; //发射频率
 int Bandwidth;   //带宽
};

ODU.cpp

#include "ODU.h"
#include<sstream>
float ODU::getTxpower()
{
    return Txpower;
}
int ODU::getTxfrequency()
{
    return Txfrequency;
}
int ODU::getBandwidth()
{
    return Bandwidth;
}
bool ODU::setTxpower(float Txpower)
{
    this->Txpower = Txpower;
    return true;
}
bool ODU::setTxfrequency(int Txfrequency)
{
    this->Txfrequency = Txfrequency;
    return true;
}
bool ODU::setBandwidth(int Bandwidth)
{
    this->Bandwidth = Bandwidth;
    return true;
}
string ODU::discaption()
{
    stringstream ret;
    ret << "发射功率:" << Txpower
        << "\t发射频率:" << Txfrequency
        << "\t发射带宽:" << Bandwidth << endl;
    return ret.str();
}

建立一个ODU330,使其继承ODU的功能
ODU330.h

#pragma once
#include"ODU.h"
class ODU330 :public ODU
{
public:
 float getBER();  //误码率
 float getWarnthre();  //查看警告门限
 bool setWarnthre(float Warnthre);   //设置警告门限
 string discpation();
private:
 float Warnthre;//警告门限
};

ODU330.cpp

#include "ODU330.h"
#include<sstream>
float ODU330::getBER()
{
 return 0.005f;
}
float ODU330::getWarnthre()
{
 return Warnthre;
}
bool ODU330::setWarnthre(float Warnthre)
{
 this->Warnthre = Warnthre;
 return true;
}
string ODU330::discpation()
{
 stringstream ret;
 ret << "发射功率:" << Txpower
  << "\t发射频率:" << Txfrequency
  << "\t发射带宽:" << Bandwidth
  << "\t发射误码率:" << getBER()
  << "\t告警门限:" << Warnthre
  << endl;
 return ret.str();
}

再写主函数 对设备进行配置,在输出它的信息

#include<Windows.h>
#include<string>
#include<iostream>
#include"ODU.h"
#include"ODU330.h"
int main() {
 ODU odu1;
 odu1.setTxpower(45);
 odu1.setBandwidth(500);
 odu1.setTxfrequency(11400);
 cout << odu1.discaption() << endl;
 ODU330 odu2;
 odu2.setTxpower(69);
 odu2.setBandwidth(60);
 odu2.setTxfrequency(19400);
 odu2.setWarnthre(0.0002);
 cout << odu2.discpation();
 system("pause");
 return 0;
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值