KySoto

lab10a

Nov 2nd, 2013
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 10.03 KB | None | 0 0
  1. /*DIRECTIONS Design and implement a Triangle class.
  2.  
  3. *Code a constructor with defaults as well as get and set functions.
  4. ** Instantiate a vector of at least 3 valid triangles and demonstrate use of the class.
  5. mathew myers
  6. Template blank Source document*/
  7.  
  8. #include<iostream>
  9. #include<string>
  10. #include<sstream>
  11. #include<cmath>
  12. #include<vector>
  13. #include<stdlib.h>
  14.  
  15. //globals
  16. using namespace std;
  17. bool intTryparse(string s,int& i);
  18. int charToNum(char c);
  19. bool runAgain(void);
  20. char numToChar(int i);
  21.  
  22. class triangle
  23. {
  24. private:
  25.     double sideA;
  26.     double sideB;
  27.     double sideC;
  28.     double angleA;
  29.     double angleB;
  30.     double angleC;
  31.     //commented this out because im not sure if the naming will conflict with the globals and so i renamed it.
  32.         /*double calcAngleA(double sideA,double sideB,double sideC)
  33.         {
  34.         return ((pow(sideB,2)+pow(sideC,2)-pow(sideA,2))/(2*sideB*sideC)) ;
  35.         }
  36.  
  37.         double calcAngleB(double sideA,double sideB,double sideC)
  38.         {
  39.         return ((pow(sideA,2)+pow(sideC,2)-pow(sideB,2))/(2*sideA*sideC)) ;
  40.         }
  41.  
  42.         double calcAngleC(double sideA,double sideB,double sideC)
  43.         {
  44.         return ((pow(sideB,2)+pow(sideA,2)-pow(sideC,2))/(2*sideB*sideA)) ;
  45.         }*/
  46.         double calcAngleA(double a,double b,double c)
  47.         {
  48.         return ((pow(b,2)+pow(c,2)-pow(a,2))/(2*b*c)) ;
  49.         }
  50.  
  51.         double calcAngleB(double a,double b,double c)
  52.         {
  53.         return ((pow(a,2)+pow(c,2)-pow(b,2))/(2*a*c)) ;
  54.         }
  55.  
  56.         double calcAngleC(double a,double b,double c)
  57.         {
  58.         return ((pow(b,2)+pow(a,2)-pow(c,2))/(2*b*a)) ;
  59.         }
  60.  
  61. public:
  62.     triangle()
  63.     {
  64.         sideA = 0;
  65.         sideB = 0;
  66.         sideC = 0;
  67.         angleA = 0;
  68.         angleB = 0;
  69.         angleC = 0;
  70.     }
  71.         triangle(double a,double b, double c)
  72.     {
  73.         sideA = a;
  74.         sideB = b;
  75.         sideC = c;
  76.         calcAngles();
  77.     }
  78.         void setSideA(double a)
  79.         {
  80.             sideA = a;
  81.         }
  82.         void setSideB(double b)
  83.         {
  84.             sideB = b;
  85.         }
  86.         void setSideC(double c)
  87.         {
  88.             sideC = c;
  89.         }
  90.         double getSideA()
  91.         {
  92.             return sideA;
  93.         }
  94.         double getSideB()
  95.         {
  96.             return sideB;
  97.         }
  98.         double getSideC()
  99.         {
  100.             return sideC;
  101.         }
  102.         double getAngleA()
  103.         {
  104.             return angleA;
  105.         }
  106.         double getAngleB()
  107.         {
  108.             return angleB;
  109.         }
  110.         double getAngleC()
  111.         {
  112.             return angleC;
  113.         }
  114.         void calcAngles()
  115.         {
  116.         angleA = cos(calcAngleA(sideA,sideB,sideC));
  117.         angleB = cos(calcAngleB(sideA,sideB,sideC));
  118.         angleC = cos(calcAngleC(sideA,sideB,sideC));
  119.         }
  120.         void printTriangle()
  121.         {
  122.             cout<<"\nAngle A: "<< angleA <<"\nAngle B: "<< angleB<<"\nAngle C: "<< angleC<<"\nSide A: "<< sideA<<"\nSide B: "<< sideB<<"\nSide C: "<< sideC;
  123.         }
  124. }; 
  125.  
  126. void main()
  127. {
  128. //Declarations
  129.  
  130.     do{
  131.         string temp = "";
  132.         double d = 0;
  133.         bool b = false;
  134.         vector<triangle> triangles(2);
  135.         triangles[0].setSideA(3);
  136.         triangles[0].setSideB(4);
  137.         triangles[0].setSideC(5);
  138.         triangles[0].calcAngles();
  139. //inputs
  140.         do{
  141.             if(temp == "")
  142.             {
  143.                 cout<<"Please enter the First side of the triangle: ";
  144.                 getline(cin,temp);
  145.             }
  146.             else
  147.             {
  148.                 cout<<"Please enter a number for the First side of the triangle: ";
  149.                 getline(cin,temp);
  150.             }
  151.             b = doubleTryparse(temp,d);
  152.         }
  153.         while (!b && (d > 0));
  154.         triangles[1].setSideA(d);
  155.         b = false;
  156.         d=0;
  157.         do{
  158.             if(temp == "")
  159.             {
  160.                 cout<<"Please enter the Second side of the triangle: ";
  161.                 getline(cin,temp);
  162.             }
  163.             else
  164.             {
  165.                 cout<<"Please enter a number for the Second side of the triangle: ";
  166.                 getline(cin,temp);
  167.             }
  168.             b = doubleTryparse(temp,d);
  169.         }
  170.         while (!b && (d > 0));
  171.         triangles[1].setSideB(d);
  172.         b = false;
  173.         d=0;
  174.                 do{
  175.             if(temp == "")
  176.             {
  177.                 cout<<"Please enter the Third side of the triangle: ";
  178.                 getline(cin,temp);
  179.             }
  180.             else
  181.             {
  182.                 cout<<"Please enter a number for the Third side of the triangle: ";
  183.                 getline(cin,temp);
  184.             }
  185.             b = doubleTryparse(temp,d);
  186.         }
  187.         while (!b && (d > 0));
  188.         triangles[1].setSideC(d);
  189.         triangles[1].calcAngles;
  190.         triangles.push_back(triangle(6,8,10));
  191.  
  192.  
  193. //outputs
  194.     }while( runAgain() );
  195.  
  196. }
  197.  
  198. bool intTryparse(string s,int& i)
  199. {
  200.     char temp[11];
  201.     int t = 0;
  202.     if (s.length <= 11)
  203.     {
  204.     for (int j = 0; (s.length-1)>j;j++)
  205.     {
  206.         if( (s[j] == '0') || (s[j] == '1') || (s[j] == '2') || (s[j] == '3') || (s[j] == '4') || (s[j] == '5') || (s[j] == '6') || (s[j] == '7') || (s[j] == '8') || (s[j] == '9') )
  207.         {
  208.             temp[t] = s[j];
  209.             t++;
  210.         }
  211.         else
  212.         {
  213.             if((s[0] == '-' || s[0] == '+') && j == 0)
  214.             {
  215.                 if (s[0] == '-')
  216.                 {
  217.                 temp[t] = s[0];
  218.                 t++;
  219.                 }
  220.             }
  221.             else
  222.             {
  223.                 i = 0;
  224.                 return false;
  225.             }
  226.         }
  227.     }
  228.     if(temp[0] == '-' && t == 11) // since this is a signed int, i need to check if its between 2,147,483,647 and -2,147,483,648 cuz errors.
  229.     {
  230.         if (temp[1]== '0' || temp[1]== '1' || temp[1]== '2')
  231.         {
  232.             if (temp[2]== '0' || temp[2]== '1')
  233.             {
  234.                 if (temp[3]== '0' || temp[3]== '1'|| temp[3]== '2' || temp[3]== '3' || temp[3]== '4')
  235.                 {
  236.                     if (temp[4]== '0' || temp[4]== '1' || temp[4]== '2' || temp[4]== '3' || temp[4]== '4' || temp[4]== '5' || temp[4]== '6' || temp[4]== '7')
  237.                     {
  238.                         if (temp[5]== '0' || temp[5]== '1' || temp[5]== '2' || temp[5]== '3' || temp[5]== '4')
  239.                         {
  240.                             if (temp[6]== '0' || temp[6]== '1' || temp[6]== '2' || temp[6]== '3' || temp[6]== '4' || temp[6]== '5' || temp[6]== '6' || temp[6]== '7' || temp[6]== '8')
  241.                             {
  242.                                 if (temp[7]== '0' || temp[7]== '1' || temp[7]== '2' || temp[7]== '3')
  243.                                 {
  244.                                     if (temp[8]== '0' || temp[1]== '1' || temp[1]== '2' || temp[1]== '3' || temp[1]== '4' || temp[1]== '5' || temp[1]== '6')
  245.                                     {
  246.                                         if (temp[9]== '0' || temp[9]== '1' || temp[9]== '2' || temp[9]== '3' || temp[9]== '4' )
  247.                                         {
  248.                                             if (temp[10]== '0' || temp[10]== '1' || temp[10]== '2' || temp[10]== '3' || temp[10]== '4' || temp[10]== '5' || temp[10]== '6' || temp[10]== '7' || temp[10]== '8')
  249.                                             {
  250.                                                 i = atoi(temp);
  251.                                                 return true;
  252.                                             }
  253.                                             else
  254.                                                 {
  255.                                                 i = 0;
  256.                                                 return false;
  257.                                                 }
  258.                                         }
  259.                                         else
  260.                                             {
  261.                                             i = 0;
  262.                                             return false;
  263.                                             }
  264.                                     }
  265.                                     else
  266.                                         {
  267.                                         i = 0;
  268.                                         return false;
  269.                                         }
  270.                                 }
  271.                                 else
  272.                                     {
  273.                                     i = 0;
  274.                                     return false;
  275.                                     }
  276.                             }
  277.                             else
  278.                                 {
  279.                                 i = 0;
  280.                                 return false;
  281.                                 }
  282.                         }
  283.                         else
  284.                             {
  285.                             i = 0;
  286.                             return false;
  287.                             }
  288.                     }
  289.                     else
  290.                         {
  291.                         i = 0;
  292.                         return false;
  293.                         }
  294.                 }
  295.                 else
  296.                     {
  297.                     i = 0;
  298.                     return false;
  299.                     }
  300.             }
  301.             else
  302.                 {
  303.                 i = 0;
  304.                 return false;
  305.                 }
  306.         }
  307.         else
  308.         {
  309.             i = 0;
  310.             return false;
  311.         }
  312.     }
  313.     else if(t==10)
  314.     {
  315.             if (temp[0]== '0' || temp[0]== '1' || temp[0]== '2')
  316.         {
  317.             if (temp[1]== '0' || temp[1]== '1')
  318.             {
  319.                 if (temp[2]== '0' || temp[2]== '1'|| temp[2]== '2' || temp[2]== '3' || temp[2]== '4')
  320.                 {
  321.                     if (temp[3]== '0' || temp[3]== '1' || temp[3]== '2' || temp[3]== '3' || temp[3]== '4' || temp[3]== '5' || temp[3]== '6' || temp[3]== '7')
  322.                     {
  323.                         if (temp[4]== '0' || temp[4]== '1' || temp[4]== '2' || temp[4]== '3' || temp[4]== '4')
  324.                         {
  325.                             if (temp[5]== '0' || temp[5]== '1' || temp[5]== '2' || temp[5]== '3' || temp[5]== '4' || temp[5]== '5' || temp[5]== '6' || temp[5]== '7' || temp[5]== '8')
  326.                             {
  327.                                 if (temp[6]== '0' || temp[6]== '1' || temp[6]== '2' || temp[6]== '3')
  328.                                 {
  329.                                     if (temp[7]== '0' || temp[7]== '1' || temp[7]== '2' || temp[7]== '3' || temp[7]== '4' || temp[7]== '5' || temp[7]== '6')
  330.                                     {
  331.                                         if (temp[8]== '0' || temp[8]== '1' || temp[8]== '2' || temp[8]== '3' || temp[8]== '4' )
  332.                                         {
  333.                                             if (temp[9]== '0' || temp[9]== '1' || temp[9]== '2' || temp[9]== '3' || temp[9]== '4' || temp[9]== '5' || temp[9]== '6' || temp[9]== '7' )
  334.                                             {
  335.                                                 temp[10] = ' ';
  336.                                                 i = atoi(temp);
  337.                                                 return true;
  338.                                             }
  339.                                             else
  340.                                                 {
  341.                                                 i = 0;
  342.                                                 return false;
  343.                                                 }
  344.                                         }
  345.                                         else
  346.                                             {
  347.                                             i = 0;
  348.                                             return false;
  349.                                             }
  350.                                     }
  351.                                     else
  352.                                         {
  353.                                         i = 0;
  354.                                         return false;
  355.                                         }
  356.                                 }
  357.                                 else
  358.                                     {
  359.                                     i = 0;
  360.                                     return false;
  361.                                     }
  362.                             }
  363.                             else
  364.                                 {
  365.                                 i = 0;
  366.                                 return false;
  367.                                 }
  368.                         }
  369.                         else
  370.                             {
  371.                             i = 0;
  372.                             return false;
  373.                             }
  374.                     }
  375.                     else
  376.                         {
  377.                         i = 0;
  378.                         return false;
  379.                         }
  380.                 }
  381.                 else
  382.                     {
  383.                     i = 0;
  384.                     return false;
  385.                     }
  386.             }
  387.             else
  388.                 {
  389.                 i = 0;
  390.                 return false;
  391.                 }
  392.         }
  393.         else
  394.         {
  395.             i = 0;
  396.             return false;
  397.         }
  398.     }
  399.     else
  400.     {
  401.         for(t;11>t;t++)//just to ensure that the array has only whitespaces at the end of it so the number isnt compramised since i didnt "zero" the array.
  402.         {
  403.             temp[t] = ' ';
  404.         }
  405.     i = atoi(temp);
  406.     return true;
  407.     }
  408.     }
  409.     else
  410.     {
  411.         i = 0;
  412.         return false;
  413.     }
  414.    
  415. }
  416.  
  417. bool doubleTryparse(string s,double& d)
  418. {
  419.     char temp[300];
  420.     int t = 0;
  421.     bool b = true;
  422.     if (s.length <= 300)
  423.     {
  424.     for (int j = 0; (s.length-1)>j;j++)
  425.     {
  426.         if( (s[j] == '0') || (s[j] == '1') || (s[j] == '2') || (s[j] == '3') || (s[j] == '4') || (s[j] == '5') || (s[j] == '6') || (s[j] == '7') || (s[j] == '8') || (s[j] == '9') )
  427.         {
  428.             temp[t] = s[j];
  429.             t++;
  430.         }
  431.         else
  432.         {
  433.             if((s[j] == '-' || s[j] == '+') && j == 0)
  434.             {
  435.                 temp[t] = s[j];
  436.                 t++;
  437.             }
  438.             else if(s[j] == '.' && b )
  439.             {
  440.                 temp[t] = s[j];
  441.                 t++;
  442.                 b = false;
  443.             }
  444.             else
  445.             {
  446.                 d = 0;
  447.                 return false;
  448.             }
  449.         }
  450.     }
  451.     if (t== 300)
  452.     {
  453.     d = atof(temp);
  454.     return true;
  455.     }
  456.     else
  457.     {
  458.         for(t;11>t;t++)
  459.         {
  460.             temp[t] = ' ';
  461.         }
  462.             d = atof(temp);
  463.         return true;
  464.     }
  465.     }
  466.     else
  467.     {
  468.         d = 0;
  469.         return false;
  470.     }
  471.    
  472. }
  473. bool runAgain(void){
  474.     char userResponse;
  475.  
  476.     cout << "\nWould you like to run again (y or n): ";
  477.     cin >> userResponse;
  478.  
  479.     if(userResponse == 'y')
  480.         return(true);
  481.  
  482.     return(false);
  483. }
  484. /* lazy copy stuff
  485. if()
  486.     {
  487.     }
  488. else if()
  489.     {
  490.     }
  491. else
  492.     {
  493.     }
  494.  
  495. for( int i = 0; i < x;i++)
  496.     {
  497.     }
  498. switch()
  499.     {
  500.         case :
  501.         break;
  502.         case :
  503.         break;
  504.         default:
  505.     }
  506. */
Advertisement
Add Comment
Please, Sign In to add comment