Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

STEP 1: Create a Multifile Project Back to top Objective: Create a C++ console a

ID: 3584426 • Letter: S

Question

STEP 1: Create a Multifile Project Back to top Objective: Create a C++ console application that will model the characteristics of a resistor. Create a multifile project. Create and add to the project an h file containing the resistor-class definition. Create and add to the project a cpp file containing the implementation of the class-member functions. Create and add to the project a ccp file containing the main() function, which will instantiate a resistor object and test its member functions. STEP 2: Required Class Members Back to top The resistor class will, at minimum, have members that do the following. store the nominal resistance value of a resistor store the tolerance of a resistor initialize any and all nominal-resistance values to correct, EIA, nonzero values that are greater than 0 and less than 1,000,000 ohms initialize any and all resistance-tolerance values to correct, E12, E24, E48, or E96 resistance-tolerance values allow the nominal-resistance and tolerance values of a resistor object to be changed by the user All member functions should have a test message stating the name of the function. All the test messages should be displayed or not displayed, depending on the value of a Boolean variable declared in main(). If the Boolean value = true, display the message. If the Boolean value = false, do not display the message. STEP 3: Program Operations Back to top Function main() should instatiate two objects of class resistor. Function main() should display the current values of all resistor objects. Function main() should also calculate and display the minimum and maximum in-tolerance resistance values of each resistor object from the resistor data members. Function main() should allow the user to change the values of the nominal resistance and the resistor tolerance of both resistor objects, and it should also correctly handle out of numeric-range input. Main() is also responsible for making sure that the user can successfully enter only correct, EIA resistance and tolerance values. The user should be given the following data-entry choices: accept current EIA values for resistance and tolerance; The function main() should display the new, modified values of the resistor object, including the new min and max in-tolerance resistance values. The function main() should be executed twice: once with the test messages displayed and once without. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> <<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>> //Filename: ResistorMain.cpp //Description: Contains CResistor class test function //Class: COMP 220 //Student Name: ? #include "Resistor.h" #include #include #include #include using namespace std; //EIA Standard array element sizes per tolerance class const int E12 = 12; const int E24 = 24; const int E48 = 48; const int E96 = 96; //EIA Standard Resistor Values //E12 10% tolerance //E24 5% tolerance //E48 2% tolerance //E96 1% tolerance //10% standard values const int nominalE12Values[E12] = { 100, 120, 150, 180, 220, 270, 330, 390, 470, 560, 680, 820}; //5% standard values const int nominalE24Values[E24] = { 100, 110, 120, 130, 150, 160, 180, 200, 220, 240, 270, 300, 330, 360, 390, 430, 470, 510, 560, 620, 680, 750, 820, 910}; //2% standard values const int nominalE48Values[E48] = { 100, 105, 110, 115, 121, 127, 133, 140, 147, 154, 162, 169, 178, 187, 196, 205, 215, 226, 237, 249, 261, 274, 287, 301, 316, 332, 348, 365, 383, 402, 422, 442, 464, 487, 511, 536, 562, 590, 619, 649, 681, 715, 750, 787, 825, 866, 909, 953}; //1% standard values const int nominalE96Values[E96] = { 100, 102, 105, 107, 110, 113, 115, 118, 121, 124, 127, 130, 133, 137, 140, 143, 147, 150, 154, 158, 162, 165, 169, 174, 178, 182, 187, 191, 196, 200, 205, 210, 215, 221, 226, 232, 237, 243, 249, 255, 261, 267, 274, 280, 287, 294, 301, 309, 316, 324, 332, 340, 348, 357, 365, 374, 383, 392, 402, 412, 422, 432, 442, 453, 464, 475, 487, 499, 511, 523, 536, 549, 562, 576, 590, 604, 619, 634, 649, 665, 681, 698, 715, 732, 750, 768, 787, 806, 825, 845, 866, 887, 909, 931, 953, 976}; void DisplayResistance(CResistor &, bool ); void EnterResistance(CResistor &, bool); void main(void) { //Control variable to display function names when called bool fnDisp = false; CResistor Res1(4700.0, 0.10, "Res1", fnDisp); CResistor Res2(330.0, 0.10, "Res2", fnDisp); CResistor Res3(10000.0,0.10, "Res3", fnDisp); DisplayResistance(Res1, fnDisp); DisplayResistance(Res2, fnDisp); DisplayResistance(Res3, fnDisp); EnterResistance(Res1, fnDisp); DisplayResistance(Res1, fnDisp); system("pause"); } // Function displays all data member values of a CResistor object void DisplayResistance(CResistor & resObj, bool fnDisplay) { //Local variables to hold CResistor data copies double nom, tol, min, max; nom = resObj.getNominal(fnDisplay); tol = resObj.getTolerance(fnDisplay); min = nom * (1.0 - tol); max = nom * (1.0 + tol); cout << endl << "Resistor object name is " << resObj.getResName(fnDisplay) << endl; cout << setiosflags(ios::fixed) << setiosflags(ios::showpoint) << setprecision(3); cout << endl << "Nominal resistance value = " << setw(15) << nom << " ohms "; cout << endl << "Tolerance = " << setw(15) << tol * 100 << " %"; cout << endl << "Minimum Resistance = " << setw(15) << min << " ohms"; cout << endl << "Maximum Resistance = " << setw(15) << max << " ohms"; cout << endl << endl; } // Function allows user to enter new values for CResistor data members void EnterResistance(CResistor & resObj, bool fnDisplay) { //Local variables to hold CResistor data copies double nom, tol; string name; //Local variable for user data entry int nomEdit = 0; int tolEdit = 0; int powerOfTen = 0; //Valid EIA entry value check boolean bool validEIA = false; //Local loop counter int i = 0; nom = resObj.getNominal(fnDisplay); tol = resObj.getTolerance(fnDisplay); name = resObj.getResName(fnDisplay); cout << endl << endl; cout << "Resistor being edited: " << name << endl << endl; do { cout << "Current resistance tolerance = " << tol * 100 << " %" << endl; cout << "Valid tolerances are 1%, 2%, 5% or 10%" << endl << endl; cout << "Enter 1, 2, 5 or 10: "; cin >> tolEdit; cout << endl; } while(tolEdit != 1 && tolEdit != 2 && tolEdit != 5 && tolEdit != 10); cout << "Tolerance set to " << tolEdit << " %" << endl << endl; resObj.setTolerance((double)tolEdit*0.01, fnDisplay); do { cout << "Current nomimal resistance = " << nom << " ohms" << endl; cout << "Standard 10% Resistance Values, First Three Digits" << endl << endl; if(tolEdit == 10) { for( i = 0; i < E12; i++) { if(!(i % 10)) cout << endl; cout << nominalE12Values[i] << " "; } } else if(tolEdit == 5) { for( i = 0; i < E24; i++) { if(!(i % 10)) cout << endl; cout << nominalE24Values[i] << " "; } } else if(tolEdit == 2) { for( i = 0; i < E48; i++) { if(!(i % 10)) cout << endl; cout << nominalE48Values[i] << " "; } } else { for( i = 0; i < E96; i++) { if(!(i % 10)) cout << endl; cout << nominalE96Values[i] << " "; } } cout << endl << endl << "Enter first three digits: "; cin >> nomEdit; cout << "You entered " << nomEdit << endl; validEIA = false; if(tolEdit == 10) { for( i = 0; i < E12; i++) { if(nomEdit == nominalE12Values[i]) { validEIA = true; cout << "Valid EIA value entered" << endl; } } } else if(tolEdit == 5) { for( i = 0; i < E24; i++) { if(nomEdit == nominalE24Values[i]) { validEIA = true; cout << "Valid EIA value entered" << endl; } } } else if(tolEdit == 2) { for( i = 0; i < E48; i++) { if(nomEdit == nominalE48Values[i]) { validEIA = true; cout << "Valid EIA value entered" << endl; } } } else { for( i = 0; i < E96; i++) { if(nomEdit == nominalE96Values[i]) { validEIA = true; cout << "Valid EIA value entered" << endl; } } } if (validEIA == false) { cout << "Invalid EIA value entered, try again" << endl; } } while(validEIA == false); do { cout << endl << "Enter a power of ten multiplier between -2 (0.01) and 3 (1000): "; cin >> powerOfTen; cout << "You entered " << powerOfTen << endl; } while(powerOfTen < -2 || powerOfTen > 3); resObj.setNominal((double)nomEdit * pow(10.0,(double)powerOfTen), fnDisplay); }

Explanation / Answer

// file Resistor.h
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
class Resistor
{
private:
string name;
double value;
double tolerance;
double minValue;
double maxValue;
public:
void DisplayResistor();
void GetResistance();
};
// file Resistor.cpp
#include "Resistor.h"

void Resistor::DisplayResistor()
{
};
void Resistor::GetResistance()
{
};

// file Main.cpp
#include "Resistor.h"

void main()
{
Resistor R1, R2
// Simple centered title line for resistor program
cout<<setw(50)<<"Resistance is Futile ";
R1.GetResistance();
R1.DisplayResistor();
R2.GetResistance();
R2.DisplayResistor();
}

-------------------------------------------------------------------------------------------------------
ans2:
#include<iostream>
#include<iomanip>
#include<string>
using namespace std;
class ResistorClass
{
private:
double m_dResValue;
double m_dTolerance;
double m_dMinResistance;
double m_dMaxResistance;
public:
string m_cResistorName;
void DisplayResistor( void );
void EnterResistance (void );
void AddSeries ( ResistorClass Resistor1, ResistorClass Resistor2 );
ResistorClass( );
ResistorClass( string Name, double nominalResistance, double Tolerance );
ResistorClass( const ResistorClass &ResistorObject );
~ResistorClass( );
};
int main( void )
{
ResistorClass oResOne;
Resistor tolerance = 20%
ResistorClass oResTwo("Resistor 2",4700,20);
ResistorClass oResThree(oResTwo);
oResOne.DisplayResistor();
oResTwo.DisplayResistor();
oResThree.DisplayResistor();
system("pause");
return 0;
}
void ResistorClass:: DisplayResistor ( void )
{
cout << fixed << setprecision (2);
cout<<"Values for "<<m_cResistorName<<" are: "<<endl;
cout<<"Resistor Nominal Value = "<<m_dResValue<<endl;
cout<<"ohmsResistorTolerance = "<<m_dTolerance*100<<" %"<<endl;
cout<<"Mininimum Resistance = "<<m_dMinResistance<<" ohms"<<endl;
cout<<"Maximum Resistance = "<<m_dMaxResistance<<" ohms"<<endl;
cout<<endl;
}
void ResistorClass::EnterResistance (void)
{
m_dResValue = -1;
while (m_dResValue < 1)
{
cout << "Enter Resistor Value: " <<endl;
cin >> m_dResValue;
if (m_dResValue < 1 || m_dResValue > 10000000)
{
cout << "Input Error Resistor Value must be > 1" << endl;
cout << "Please Enter a value that is > 1: " << endl;
cin >> m_dResValue;
}
else break;
}
m_dTolerance = -1;
while (m_dTolerance < 1)
{
cout << "Enter Resistor Tolerance: " << endl;
cin >> m_dTolerance;
if (m_dTolerance < 1 || m_dTolerance > 10000000)
{
cout << "Input Error Resistor Tolerance Value must be > 1: " << endl;
cout << "Please Enter a value that is > 1: " << endl;
cin >> m_dTolerance;
}
else break;
}
m_dTolerance = m_dTolerance/100;
m_dMinResistance = m_dResValue - (m_dResValue * m_dTolerance);
m_dMaxResistance = m_dResValue + (m_dResValue * m_dTolerance);
cout<<endl;
}
void ResistorClass:: AddSeries ( ResistorClass Resistor1, ResistorClass Resistor2)
{
if( Resistor1.m_dTolerance > Resistor2.m_dTolerance )
m_dTolerance = Resistor1.m_dTolerance;
else
m_dTolerance = Resistor2.m_dTolerance;
m_dResValue = Resistor1.m_dResValue + Resistor2.m_dResValue;
m_dMinResistance = m_dResValue - (m_dResValue * m_dTolerance);
m_dMaxResistance = m_dResValue + (m_dResValue * m_dTolerance);
cout<<endl;
}
ResistorClass::ResistorClass( )
{
cout << "Enter Resistor Name <default>: " ;
getline(cin, m_cResistorName, ' ');
m_dResValue = 1000.0;
m_dTolerance = 0.10;
m_dMinResistance = m_dResValue - (m_dResValue * m_dTolerance);
m_dMaxResistance = m_dResValue + (m_dResValue * m_dTolerance);
cout <<endl<< "Default Constructor Called:" <<endl;
}

ResistorClass::ResistorClass( string Name, double nominalResistance, double Tolerance )
{
cout <<endl<<"Parameterized Constructor Called:" <<endl;
m_dResValue = nominalResistance;
m_dTolerance = double(Tolerance/100);
m_cResistorName = Name;
m_dMinResistance = m_dResValue - (m_dResValue * m_dTolerance);
m_dMaxResistance = m_dResValue + (m_dResValue * m_dTolerance);
}
ResistorClass::ResistorClass(const ResistorClass &ResistorObject)
{
cout<<endl <<"Enter Resister Name <copy>: ";
getline(cin, m_cResistorName, ' ');
m_dResValue=ResistorObject.m_dResValue;
m_dTolerance=ResistorObject.m_dTolerance;
m_dMaxResistance=ResistorObject.m_dMaxResistance;
m_dMinResistance=ResistorObject.m_dMinResistance;
cout <<endl<<"Copy Constructor Called:"<<endl;
}
ResistorClass:: ~ResistorClass( )
{
cout << "Destructor Called "<<endl;
}

pls rate first. thank you