Note: see lines 26-28 in ResistorMain.cpp file this is pertaining to my question
Note: driver file ResistorMain.cpp was given to me as well as some of the functions in Resisitor.cpp.
I keep running around this and cannot seem to get this one part to compile correctly.
This code requires a class header file and two .cpp files.
the errors I receive when floating my cursor on the value is: Error no instance of constructor "CResistor::CResistor" matches the argument list.
The complied Error I get for all three(yes There are three: line 26 4700.0 line 27 330.0 line 28 10000.0 ) values where the error is states \resistormain.cpp(26): error C2661: 'CResistor::CResistor' : no overloaded function takes 4 arguments.
My question is how can I resolve this error and what do I need to add to the header file or the secondary cpp file to accomplish this?
A point in the right Direction or an addition to my files given is much appreciated.
I am so close I just need help on this one part!
// file name Resistor.h
class CResistor
{
public:
double getNominal(double);
double getTolerance(double);
char getResName(char);
double setTolerance(double, double);
double setNominal(double , double);
double getRes1();
void DisplayResistance(void);
void EnterResistance(void);
CResistor (CResistor Res1, CResistor Res2, CResistor Res3);
CResistor();
CResistor(double Name, double Nominal , double Tolerance);
CResistor(const CResistor &resObj);
~CResistor();
private:
string name;
double nom;
double tol;
double min;
double max;
};
//Filename: ResistorMain.cpp
//Description: Contains CResistor class test function
//Class: COMP 220
//Student Name: Antonio Moreno
#include <iostream>
#include <iomanip>
#include <Windows.h>
#include <math.h>
#include <string>
using namespace std;
#include "Resistor.h"
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); //focus is in these parts
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");
cin.ignore(2);
}
//file Resistor.cpp
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
#include "Resistor.h"
//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};
// 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);
}