Question Description
Can you help me understand this Programming question?
This Needs to becompleted using Visual Studio Only! It can be downloaded for free here: http://www.microsoft.com/visualstudio/eng/downloads#d-2010-express
STEP 1: Create a Multifile Project for the Composition Lab
1. Add three classes to the project: a Filter class, a Capacitor class, and a Resistor class.
2. You may use the Resistor class files from the Week 2 lab for this lab.
3. The Capacitor class should be modeled after the Resistor class for class members and operation.
STEP 2: Filter-Class Definition
The Filter class should have, at a minimum, the following capabilities.
- a resistor-object data member
- a capacitor-object data member
- a cutoff frequency (in Hertz) of the RC filter
- maximum and minimum cutoff frequencies, based on the maximum and minimum in-tolerance values of the capacitor and the resistor object
- a filter type, either low pass or high pass
- allow the user to enter new values for the filter, including
6.1. resistor tolerance and nominal resistance;
6.2. capacitor tolerance and nominal capacitance; and
6.3. filter type
- provides the ability to write all capacitor, resistor, and filter data members to a formatted text file and allows the user to name the file
- provides the ability to read all capacitor, resistor, and filter data members from a formatted text file and allows the user to enter the file name and correctly handles a file-not-found error
STEP 3: Test-Program Operation
- All data-input and data-display operations (cin and cout) should be done in the function main() test program.
- The test program should instantiate at least one object of the class Filter.
- The user should enter values for all the data members of the Filter, Resistor, and Capacitor classes.
- The Filter class should then calculate and display the correct maximum and minimum cutoff frequencies.
- The test program should then display all Filter, Resistor, and Capacitor data members.
Example Code: ( This example code is for all the file in the project it will be split over 7 diffent filess)
#include <iostream>
#include <string>
using namespace std;
class CResistor{
private:
double nominalValue;
double tolerance;
double minimumValue;
double maximumValue;
public:
CResistor() {
nominalValue = 100;
tolerance = 10;
computeResistorLimits();
}
void computeResistorLimits() {
minimumValue = nominalValue*(1-tolerance/100);
maximumValue = nominalValue*(1+tolerance/100);
}
void enterResistor() {
cout<<"Please enter value of resistance"<<endl;
cin>>nominalValue;
cout<<"Please enter tolerance of resistor (i.e. 10 for 10% tolerance)"<<endl;
cin>>tolerance;
computeResistorLimits();
}
void displayResistor() {
cout<<minimumValue<<" Ohms <= R <= "<<maximumValue<<" Ohms"<<endl;
}
double getResistance(){
return nominalValue;
}
};
class CCapacitor{
private:
double nominalValue;
double tolerance;
double minimumValue;
double maximumValue;
public:
CCapacitor() {
nominalValue = 100;
tolerance = 10;
computeCapacitorLimits();
}
void computeCapacitorLimits() {
minimumValue = nominalValue*(1-tolerance/100);
maximumValue = nominalValue*(1+tolerance/100);
}
void enterCapacitor() {
cout<<"Please enter value of capacitance"<<endl;
cin>>nominalValue;
cout<<"Please enter tolerance of capacitor (i.e. 10 for 10% tolerance)"<<endl;
cin>>tolerance;
computeCapacitorLimits();
}
void displayCapacitor() {
cout<<minimumValue<<" microFarads <= C <= "<<maximumValue<<" microFarads"<<endl;
}
double getCapacitance() {
return nominalValue;
}
};
class CRCFilter {
private:
CResistor R;
CCapacitor C;
double cutoffFrequency;
public:
CRCFilter() {
cutoffFrequency = 1/(2*3.1415*R.getResistance()*C.getCapacitance()*.000001);
}
void displayFilterParameters(){
cout<<"The filter has:"<<endl;
cout<<"R = "<< R.getResistance() <<" Ohms"<<endl;
cout<<"C = "<< C.getCapacitance()<<" MicroFarads"<<endl;
cout<<"Fc = "<<cutoffFrequency<<" Hz"<<endl;
}
};
void main() {
CRCFilter F1;
F1.displayFilterParameters();
