Advertisement
Guest User

Untitled

a guest
Aug 1st, 2012
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 16.28 KB | None | 0 0
  1. //main.cpp***********************************************************************************************
  2.  
  3. #include <conio.h>
  4. #include <iostream>
  5. #include <iomanip>
  6.  
  7. #include "Capacitor.h"
  8. #include "Resistor.h"
  9. #include "Filter.h"
  10.  
  11. int main()
  12. {
  13. // Local variable for text data entry
  14.     char tempName[16];
  15. // Local variable for component value data entry
  16.     double tempValue;
  17.  
  18.     std::cout << "Instantiate one object of class Filter" << std::endl << std::endl;
  19.  
  20.     std::cout << "Enter a name for the new filter object:  ";
  21.     std::cin.getline (tempName, 15, '\n');
  22.  
  23.     Filter filt1;
  24.  
  25. // Display filter values
  26.     std::cout << setiosflags (std::ios::fixed)
  27.          << setiosflags (std::ios::right)
  28.          << setiosflags (std::ios::showpoint)
  29.          << std::setprecision (3);
  30.     std::cout << std::endl << std::endl;
  31.     std::cout << "Nominal Filter Frequency =   " << std::setw (10) << filt1.getFilter() << " Hertz" << std::endl;
  32.     std::cout << "Minimum Filter Frequency =   " << std::setw (10) << filt1.getMaxFilter() << " Hertz" << std::endl;
  33.     std::cout << "Maximum Filter Frequency =   " << std::setw (10) << filt1.getMinFilter() << " Hertz" << std::endl;
  34.     std::cout << "Filter Bandwidth Frequency = " << std::setw (10) << filt1.getFilterTol() << " Hertz" << std::endl;
  35.  
  36. // Display resistor values
  37.     std::cout << std::setiosflags (std::ios::fixed)
  38.          << std::setiosflags (std::ios::right)
  39.          << std::setiosflags (std::ios::showpoint)
  40.          << std::setprecision (3);
  41.     std::cout << std::endl << std::endl;
  42.     std::cout << "Nominal Resistance Value =   " << std::setw (10) << filt1.getResistance() << " ohms" << std::endl;
  43.     std::cout << "Resistor Tolerance Value =   " << std::setw (10) << filt1.getResTolerance() * 100 << " Percent" << std::endl;
  44.     std::cout << "Maximum Resistance Value =   " << std::setw (10) << filt1.getMaxResistance() << " ohms" << std::endl;
  45.     std::cout << "Minimum Resistance Value =   " << std::setw (10) << filt1.getMinResistance() << " ohms" << std::endl;
  46.     std::cout << std::endl << std::endl;
  47.  
  48. // Display capacitor values
  49.     std::cout << std::setiosflags (std::ios::fixed)
  50.          << std::setiosflags (std::ios::showpoint)
  51.          << std::setiosflags (std::ios::left)
  52.          << std::setprecision (3);
  53.     std::cout << "Nominal Capacitance Value =  " << std::setw (10) << filt1.getCapacitance() * 1000000 << " micro Farads" << std::endl;
  54.     std::cout << "Capacitor Tolerance Value =  " << std::setw (10) << filt1.getCapTolerance() * 100 << " Percent" << std::endl;
  55.     std::cout << "Maximum Capacitance Value =  " << std::setw (10) << filt1.getMaxCapacitance() * 1000000 << " micro Farads" << std::endl;
  56.     std::cout << "Minimum Capacitance Value =  " << std::setw (10) << filt1.getMinCapacitance() * 1000000 << " micro Farads" << std::endl;
  57.     std::cout << std::endl << std::endl;
  58.  
  59. //filt1.FilterSave();
  60.  
  61.     std::cout << "Enter new nominal resistance value for filter:  ";
  62.     std::cin >> tempValue;
  63.     filt1.setResistance (tempValue);
  64.  
  65.     std::cout << "Enter new resistance tolerance value for filter:  ";
  66.     std::cin >> tempValue;
  67.     filt1.setResTolerance (tempValue / 100.0);
  68.  
  69.     std::cout << "Enter new nominal micro Farad capacitance value for filter:  ";
  70.     std::cin >> tempValue;
  71.     filt1.setCapacitance (tempValue / 1000000.0);
  72.  
  73.     std::cout << "Enter new capacitance tolerance value for filter:  ";
  74.     std::cin >> tempValue;
  75.     filt1.setResTolerance (tempValue / 100.0);
  76.  
  77. // Calculate filter values based on new resistance and capacitance values
  78.     filt1.calculateFilter();
  79.  
  80. // Display filter values
  81.     std::cout << std::setiosflags (std::ios::fixed)
  82.          << std::setiosflags (std::ios::right)
  83.          << std::setiosflags (std::ios::showpoint)
  84.          << std::setprecision (3);
  85.     std::cout << std::endl << std::endl;
  86.     std::cout << "Nominal Filter Frequency =   " << std::setw (10) << filt1.getFilter() << " Hertz" << std::endl;
  87.     std::cout << "Minimum Filter Frequency =   " << std::setw (10) << filt1.getMaxFilter() << " Hertz" << std::endl;
  88.     std::cout << "Maximum Filter Frequency =   " << std::setw (10) << filt1.getMinFilter() << " Hertz" << std::endl;
  89.     std::cout << "Filter Bandwidth Frequency = " << std::setw (10) << filt1.getFilterTol() << " Hertz" << std::endl;
  90.  
  91. // Display resistor values
  92.     std::cout << std::setiosflags (std::ios::fixed)
  93.          << std::resetiosflags (std::ios::left)
  94.          << std::setiosflags (std::ios::right)
  95.          << std::setiosflags (std::ios::showpoint)
  96.          << std::setprecision (3);
  97.     std::cout << std::endl << std::endl;
  98.     std::cout << "Nominal Resistance Value =   " << std::setw (10) << filt1.getResistance() << " ohms" << std::endl;
  99.     std::cout << "Resistor Tolerance Value =   " << std::setw (10) << filt1.getResTolerance() * 100 << " Percent" << std::endl;
  100.     std::cout << "Maximum Resistance Value =   " << std::setw (10) << filt1.getMaxResistance() << " ohms" << std::endl;
  101.     std::cout << "Minimum Resistance Value =   " << std::setw (10) << filt1.getMinResistance() << " ohms" << std::endl;
  102.     std::cout << std::endl << std::endl;
  103.  
  104.     std::cout << std::setiosflags (std::ios::fixed)
  105.          << std::setiosflags (std::ios::showpoint)
  106.          << std::setiosflags (std::ios::left)
  107.          << std::setprecision (3);
  108.     std::cout << "Nominal Capacitance Value =  " << std::setw (10) << filt1.getCapacitance() * 1000000 << " micro Farads" << std::endl;
  109.     std::cout << "Capacitor Tolerance Value =  " << std::setw (10) << filt1.getCapTolerance() * 100 << " Percent" << std::endl;
  110.     std::cout << "Maximum Capacitance Value =  " << std::setw (10) << filt1.getMaxCapacitance() * 1000000 << " micro Farads" << std::endl;
  111.     std::cout << "Minimum Capacitance Value =  " << std::setw (10) << filt1.getMinCapacitance() * 1000000 << " micro Farads" << std::endl;
  112.     std::cout << std::endl << std::endl;
  113.  
  114.  
  115.     filt1.FilterRead("filenamehere.txt");
  116. }
  117.  
  118. //Filter.h***********************************************************************************************
  119. #ifndef FILTER_H
  120. #define FILTER_H
  121.  
  122. #include "Capacitor.h"
  123. #include "Resistor.h"
  124. #include <fstream>
  125.  
  126. class Filter
  127. {
  128. private:
  129.     Resistor resistor;
  130.     Capacitor capacitor;
  131.     double filterTol;
  132.     double maxFilter;
  133.     double minFilter;
  134.     double resistance;
  135.     double resTol;
  136.     double capacitance;
  137.     double cutOffFrequency;
  138.     double maxFrequency;
  139.     double minFrequency;
  140.     std::string filterType;
  141. public:
  142. Filter();
  143.     void getResistor();
  144.     void getCapacitor();
  145.     void getFilterType();
  146.     void calculateFilter();
  147.     double getFilter();
  148.     double getMaxFilter();
  149.     double getMinFilter();
  150.     double getMaxResistance();
  151.     double getMinResistance();
  152.     double getFilterTol();
  153.     double getResTolerance();
  154.     double getCapacitance();
  155.     double getCapTolerance();
  156.     double getMinCapacitance();
  157.     double getMaxCapacitance();
  158.     double getResistance();
  159.     void setResistance(double);
  160.     void setResTolerance(double);
  161.     void setCapacitance(double);
  162.     void writeToFile();
  163.     void FilterRead (std::string);
  164. };
  165. #endif
  166.  
  167. //Filter.cpp*********************************************************************************************
  168.  
  169.  
  170. #include "Filter.h"
  171.  
  172. #include <iostream>
  173. #include "Capacitor.h"
  174. #include "Resistor.h"
  175. #include <fstream>
  176.  
  177.  
  178. const double PI = 3.141592654;
  179.  
  180. Filter::Filter()
  181. {
  182.     std::cout << "D:" << std::endl;
  183. }
  184.  
  185. void Filter::getResistor()
  186. {
  187.     double res;
  188.     double tol;
  189.     std::cout << std::endl << "Enter resistor's resistance:  ";
  190.     std::cin >> res;
  191.     std::cout << std::endl << "Enter resistor tolerance : ";
  192.     std::cin >> tol;
  193.     resistor.setResistance (res);
  194.     resistor.setResTolerance (tol);
  195. }
  196.  
  197. void Filter::getCapacitor()
  198. {
  199.     double cap;
  200.     double tol;
  201.     std::cout << std::endl << "Enter capacitor capacitance:  ";
  202.     std::cin >> cap;
  203.     std::cout << std::endl << "Enter capacitor tolerance : ";
  204.     std::cin >> tol;
  205.     capacitor.setCapacitance (cap);
  206.     capacitor.setCapTolerance (tol);
  207. }
  208. void Filter::getFilterType()
  209. {
  210.     std::string type;
  211.     std::cout << std::endl << "Enter Filter type(Low, High) : ";
  212.     std::cin >> type;
  213.     filterType = type;
  214. }
  215.  
  216. void Filter::calculateFilter()
  217. {
  218.     cutOffFrequency = 1 / (2 * 3.14 * (resistor.getResistance() * capacitor.getCapacitance()));
  219.     maxFrequency = 1 / (2 * 3.14 * (resistor.getResistance() + resistor.getResTolerance()) * (capacitor.getCapacitance() + capacitor.getCapTolerance()));
  220.     minFrequency = 1 / (2 * 3.14 * (resistor.getResistance() - resistor.getResTolerance()) * (capacitor.getCapacitance() - capacitor.getCapTolerance()));
  221. }
  222.  
  223. double Filter::getFilter()
  224. {
  225.     return cutOffFrequency;
  226. }
  227.  
  228. double Filter::getMaxFilter()
  229. {
  230.     return maxFilter;
  231. }
  232.  
  233. double Filter::getMinFilter()
  234. {
  235.     return minFilter;
  236. }
  237.  
  238. double Filter::getResTolerance()
  239. {
  240.     return resTol;
  241. }
  242.  
  243. double Filter::getMaxResistance()
  244. {
  245.     return resistor.getMaxResistance();
  246. }
  247.  
  248. double Filter::getMinResistance()
  249. {
  250.     return resistor.getMinResistance();
  251. }
  252.  
  253. double Filter::getFilterTol()
  254. {
  255.     return filterTol;
  256. }
  257.  
  258. double Filter::getResistance()
  259. {
  260.     return resistance;
  261. }
  262.  
  263. double Filter::getCapacitance()
  264. {
  265.     return capacitor.getCapacitance();
  266. }
  267.  
  268. double Filter::getCapTolerance()
  269. {
  270.     return capacitor.getCapTolerance();
  271. }
  272.  
  273. double Filter::getMinCapacitance()
  274. {
  275.     return capacitor.getMinCapacitance();
  276. }
  277.  
  278. double Filter::getMaxCapacitance()
  279. {
  280.     return capacitor.getMaxCapacitance();
  281. }
  282.  
  283. void Filter::setResistance(double res)
  284. {
  285.     resistance = res;
  286. }
  287.  
  288. void Filter::setResTolerance(double rest)
  289. {
  290.     resTol = rest;
  291. }
  292.  
  293. void Filter::setCapacitance(double cap)
  294. {
  295.     capacitance = cap;
  296. }
  297.  
  298. void Filter::writeToFile()
  299. {
  300.     std::string filename;
  301.     std::cout << "Enter file name: ";
  302.     std::cin >> filename;
  303.  
  304.     std::ofstream fout;
  305.  
  306.     fout.open (filename);
  307.  
  308.     fout << "Resistor resistance: " << resistor.getResistance();
  309.     fout << std::endl << "Resistor tolerance: " << resistor.getResTolerance();
  310.     fout << std::endl << "Resistor Min resistance: " << resistor.getMinResistance();
  311.     fout << std::endl << "Resistor Max resistance: " << resistor.getMaxResistance();
  312.     fout << std::endl << "Capacitor capacitance: " << capacitor.getCapacitance();
  313.     fout << std::endl << "Capacitor tolerance: " << capacitor.getCapTolerance();
  314.     fout << std::endl << "Capacitor max capacitance: " << capacitor.getMaxCapacitance();
  315.     fout << std::endl << "Capacitor min capacitance: " << capacitor.getMinCapacitance();
  316.     fout << std::endl << "Cut off frequency: " << cutOffFrequency;
  317.     fout << std::endl << "Max frequency: " << maxFrequency;
  318.     fout << std::endl << "Min frequency: " << minFrequency;
  319.     fout << std::endl << "Filter Type: " << filterType;
  320.     fout.close();
  321. }
  322.  
  323. void Filter::FilterRead (std::string filename)
  324. {
  325.     std::ifstream fin;
  326.     fin.open (filename);
  327.  
  328.     if (!fin)
  329.     {
  330.         std::cout << "File do not exist.";
  331.         return;
  332.     }
  333.     else
  334.     {
  335.         std::string line;
  336.  
  337.         while (fin)
  338.         {
  339.             getline (fin, line);
  340.             std::cout << line << std::endl;
  341.         }
  342.     }
  343.  
  344.     fin.close();
  345. }
  346.  
  347. //Resistor.h*********************************************************************************************
  348.  
  349. //The Class Declaration
  350. #ifndef RESISTOR_H
  351. #define RESISTOR_H
  352.  
  353. #include <string>
  354.  
  355. class Resistor
  356. {
  357.  
  358. private:
  359.     double m_dResValue;
  360.     double m_dTolerance;
  361.     double m_dMinRResistance;
  362.     double m_dMaxResistance;
  363. protected:
  364.     double resValues[4];
  365. public:
  366.     Resistor (std::string Name, double resistorValue, double resistorTolerance);
  367.     Resistor (const Resistor &resistorObject);
  368.     std::string m_cResistorName;
  369.     void DisplayResistor (void);
  370.     void EnterResistance (void);
  371.     // Returns minimum  tolerance resistance
  372.     double getMinResistance (void);
  373.     // Set FiltRes nominal resistance
  374.     void setResistance (double);
  375.     void setResTolerance (double);
  376.     Resistor (double nom = 1000.0, double tol = 0.10);
  377.     ~Resistor();
  378.     // Returns resistance value
  379.     double getResistance (void);
  380.     // Returns maximum tolerance resistance
  381.     double getMaxResistance (void);
  382.     // Returns resistor tolerance
  383.     double getResTolerance (void);
  384.  
  385. };
  386. #endif
  387.  
  388. //Resistor.cpp*******************************************************************************************
  389.  
  390. #include "Resistor.h"
  391.  
  392. Resistor::~Resistor()
  393. {
  394. }
  395.  
  396. Resistor::Resistor (double nom, double tol)
  397. {
  398.     resValues[0] = nom;
  399.     resValues[1] = tol;
  400.     resValues[2] = nom * (1.0 + tol);
  401.     resValues[3] = nom * (1.0 - tol);
  402. }
  403.  
  404. void Resistor::setResistance (double newResistance)
  405. {
  406.     resValues[0] = newResistance;
  407.     resValues[2] = resValues[0] * (1.0 - resValues[1]);
  408.     resValues[3] = resValues[0] * (1.0 + resValues[1]);
  409. }
  410.  
  411. void Resistor::setResTolerance (double newResTolerance)
  412. {
  413.     resValues[1] = newResTolerance;
  414.     resValues[2] = resValues[0] * (1.0 - resValues[1]);
  415.     resValues[3] = resValues[0] * (1.0 + resValues[1]);
  416. }
  417.  
  418. // Returns resistance value
  419. double Resistor::getResistance (void)
  420. {
  421.     return resValues[0];
  422. }
  423.  
  424. // Returns minimum  tolerance resistance
  425. double Resistor::getMinResistance (void)
  426. {
  427.     return resValues[3];
  428. }
  429.  
  430. // Returns maximum tolerance resistance
  431. double Resistor::getMaxResistance (void)
  432. {
  433.     return resValues[2];
  434. }
  435.  
  436. // Returns resistor tolerance
  437. double Resistor::getResTolerance (void)
  438. {
  439.     return resValues[1];
  440. }
  441.  
  442. //Capacitor.h********************************************************************************************
  443.  
  444.  
  445. #ifndef CAPACITOR_H
  446. #define CAPACITOR_H
  447. class Capacitor
  448. {
  449. public:
  450.     // Returns capacitance value
  451.     double getCapacitance (void);
  452.     // Returns minimum tolerance capacitance
  453.     double getMinCapacitance (void);
  454.     // Returns max tolerance capacitance
  455.     double getMaxCapacitance (void);
  456.     // Returns capacitor tolerance
  457.     double getCapTolerance (void);
  458.     double getFilter;
  459.     double getMinFilter();
  460.     double getMaxFilter();
  461.     double getFilterTol();
  462.     void calculateFilter();
  463.     int FilterRead (void);
  464.     void setCapacitance (double);
  465.     void setCapTolerance (double);
  466.     Capacitor (double nom = 0.000001, double tol = 0.20);
  467.     ~Capacitor();
  468.  
  469.  
  470. private:
  471.     double capValues[4];
  472.  
  473. };
  474. #endif
  475.  
  476. //Capacitor.cpp******************************************************************************************
  477.  
  478.  
  479. #include "Capacitor.h"
  480.  
  481. Capacitor::Capacitor (double nom, double tol)
  482. {
  483.     capValues[0] = nom;
  484.     capValues[1] = tol;
  485.     capValues[2] = nom * (1.0 + tol);
  486.     capValues[3] = nom * (1.0 - tol);
  487. }
  488.  
  489. Capacitor::~Capacitor()
  490. {
  491. }
  492.  
  493. void Capacitor::setCapacitance (double newCapacitance)
  494. {
  495.     capValues[0] = newCapacitance;
  496.     capValues[2] = capValues[0] * (1.0 + capValues[1]);
  497.     capValues[3] = capValues[0] * (1.0 - capValues[1]);
  498. }
  499.  
  500. void Capacitor::setCapTolerance (double newCapTolerance)
  501. {
  502.     capValues[1] = newCapTolerance;
  503.     capValues[2] = capValues[0] * (1.0 + capValues[1]);
  504.     capValues[3] = capValues[0] * (1.0 - capValues[1]);
  505. }
  506.  
  507. // Returns capacitance value
  508. double Capacitor::getCapacitance (void)
  509. {
  510.     return capValues[0];
  511. }
  512.  
  513. // Returns minimum tolerance capacitance
  514. double Capacitor::getMinCapacitance (void)
  515. {
  516.     return capValues[3];
  517. }
  518.  
  519. // Returns max tolerance capacitance
  520. double Capacitor::getMaxCapacitance (void)
  521. {
  522.     return capValues[2];
  523. }
  524.  
  525. // Returns capacitor tolerance
  526. double Capacitor::getCapTolerance (void)
  527. {
  528.     return capValues[1];
  529. }
  530.  
  531. //D:\Programming\C++\Projects\CPP\Resistor\Capacitor.cpp||In constructor 'Capacitor::Capacitor(double, double)':|
  532. //D:\Programming\C++\Projects\CPP\Resistor\Capacitor.cpp|3|warning: 'Capacitor::getFilter' should be initialized in the member initialization list|
  533. //obj\Debug\Filter.o:D:\Programming\C++\Projects\CPP\Resistor\Filter.cpp|137|undefined reference to `std::basic_ofstream<char, std::char_traits<char> >::open(std::string const&, std::_Ios_Openmode)'|
  534. //obj\Debug\Filter.o:D:\Programming\C++\Projects\CPP\Resistor\Filter.cpp|157|undefined reference to `std::basic_ifstream<char, std::char_traits<char> >::open(std::string const&, std::_Ios_Openmode)'|
  535. //||=== Build finished: 2 errors, 1 warnings ===|
  536.  
  537. //I have no idea how you can get an undefined reference to an std library function
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement