Advertisement
FocusMePlss

For Partial - POO, God pls help

Apr 18th, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 11.19 KB | None | 0 0
  1. #######################################
  2.                 TRIUNGHI
  3. #######################################
  4.  
  5. #include<stdio.h>
  6. #include<conio.h>
  7. #include<iostream>
  8. #include<math.h>
  9. #pragma warning(disable:4996)
  10.  
  11. using namespace std;
  12.  
  13. class Punct;
  14.  
  15. class Triunghi {
  16. private:
  17.     int n;
  18.     Punct *varfuri;
  19. public:
  20.     Triunghi(int n, Punct v[]);
  21.     ~Triunghi();
  22.     double getPerimetru();
  23.     double getArie();
  24.     void verificare();
  25.     void afisare();
  26.  
  27. };
  28.  
  29. class Punct {
  30. private:
  31.     double x, y;
  32. public:
  33.     Punct(double x = 0, double y = 0);
  34.     friend void Triunghi::afisare();
  35.     friend double lungime(Punct A, Punct B);
  36. };
  37.  
  38.  
  39. Punct::Punct(double x, double y) {
  40.     this->x = x;
  41.     this->y = y;
  42. }
  43.  
  44. double lungime(Punct A, Punct B) {
  45.     return sqrt(pow(int(B.x) - int(A.x), 2) + pow(int(B.y) - int(A.y), 2));
  46. }
  47.  
  48. Triunghi::Triunghi(int n, Punct v[]) {
  49.     this->n = n;
  50.     varfuri = new Punct[n];
  51.     for (int i = 0; i < n; i++) {
  52.         varfuri[i] = v[i];
  53.     }
  54. }
  55.  
  56. void Triunghi::afisare() {
  57.     cout << "[";
  58.     for (int i = 0; i<n; i++) {
  59.         cout << "(" << varfuri[i].x << ","
  60.             << varfuri[i].y << ")";
  61.     }
  62.     cout << "]";
  63. }
  64.  
  65. double Triunghi::getPerimetru() {
  66.     double p = 0;
  67.     int i=0;
  68.     p = lungime(varfuri[0], varfuri[1]) + lungime(varfuri[1], varfuri[2]) + lungime(varfuri[2], varfuri[0]);
  69.     return p;
  70.  
  71. }
  72.  
  73. double Triunghi::getArie() {
  74.     double a = 1;
  75.     double p = getPerimetru();
  76.     double sp = p / 2;
  77.     a = sqrt(sp*(sp - lungime(varfuri[0], varfuri[1]))*(sp - lungime(varfuri[1], varfuri[2]))*(sp - lungime(varfuri[2], varfuri[0])));
  78.  
  79.     return a;
  80. }
  81.  
  82. void Triunghi::verificare(){
  83.     while (n != 3) {
  84.         cout<<"Un triunghi are 3 puncte. n= ";
  85.         cin >> n;
  86.     }
  87.  
  88.     if (((lungime(varfuri[0], varfuri[1]) + lungime(varfuri[1], varfuri[2])) > lungime(varfuri[2], varfuri[0])) &&
  89.         ((lungime(varfuri[1], varfuri[2]) + lungime(varfuri[2], varfuri[0])) > lungime(varfuri[1], varfuri[0])) &&
  90.         ((lungime(varfuri[2], varfuri[0]) + lungime(varfuri[1], varfuri[0])) > lungime(varfuri[1], varfuri[2]))) {
  91.         printf("\nPunctele formeaza un triunghi.");
  92.     }
  93.     else {
  94.         printf("\nPunctele nu pot forma un triunghi.");
  95.         _getch();
  96.         exit(0);
  97.     }
  98. }
  99.  
  100.  
  101. Triunghi::~Triunghi() {
  102.     delete[]varfuri;
  103. }
  104.  
  105.  
  106. void main() {
  107.     Punct b[3] = { Punct(0, 0), Punct(4,0), Punct(0,3) };
  108.     Triunghi t(3, b);
  109.     t.afisare();
  110.     t.verificare();
  111.    
  112.     printf("\n Perimetrul este %.2f.", t.getPerimetru());
  113.     printf("\n Aria este: %.2f.", t.getArie());
  114.  
  115.     _getch();
  116. }
  117.  
  118.  
  119. #######################################
  120.                 Persoana
  121. #######################################
  122.  
  123. #include<stdio.h>
  124. #include<conio.h>
  125. #include<iostream>
  126. #pragma warning(disable:4996)
  127.  
  128. using namespace std;
  129.  
  130. class Persoana {
  131. protected:
  132.     char *nume;
  133.     int varsta;
  134. public:
  135.     Persoana(char *nume = " ", int varsta = 0);
  136.     Persoana(const Persoana&p);
  137.     ~Persoana();
  138.     void print();
  139. };
  140.  
  141. Persoana::Persoana(char *nume, int varsta) {
  142.     this->varsta = varsta;
  143.     if (nume != NULL) {
  144.         this->nume = new char[strlen(nume) + 1];
  145.         strcpy(this->nume, nume);
  146.     }
  147.     else
  148.         this->nume = NULL;
  149. }
  150.  
  151. Persoana::Persoana(const Persoana&p) {
  152.     varsta = p.varsta;
  153.     if (p.nume != NULL) {
  154.         nume = new char[strlen(p.nume) + 1];
  155.         strcpy(nume, p.nume);
  156.     }
  157.     else
  158.         nume = NULL;
  159.  
  160. }
  161.  
  162. Persoana::~Persoana() {
  163.     if (nume != NULL)
  164.         delete nume;
  165.     nume = NULL;
  166. }
  167.  
  168. void Persoana::print() {
  169.     cout << "Numele: " << nume;
  170.     cout << "\nVarsta: " << varsta;
  171. }
  172.  
  173. class Student:public Persoana {
  174. protected:
  175.     char *facultate;
  176. public:
  177.     Student(char *nume, int varsta, char *facultate) :Persoana(nume, varsta) {
  178.         if (facultate != NULL) {
  179.             this->facultate = new char[strlen(facultate) + 1];
  180.             strcpy(this->facultate, facultate);
  181.         }
  182.         else
  183.             this->facultate = NULL;
  184.     }
  185.  
  186.     Student(const Student &s) :Persoana(nume, varsta) {
  187.         if (s.facultate != NULL) {
  188.             facultate = new char[strlen(s.facultate) + 1];
  189.             strcpy(facultate, s.facultate);
  190.         }
  191.         else
  192.             facultate = NULL;
  193.     }
  194.  
  195.     ~Student(){
  196.         if (facultate != NULL)
  197.             delete facultate;
  198.         facultate = NULL;
  199.     }
  200.  
  201.     void print() {
  202.         cout << "\n\nNumele: " << nume;
  203.         cout << "\nVarsta: " << varsta;
  204.         cout << "\nFacultatea: " << facultate;
  205.     }
  206.  
  207. };
  208.  
  209. void main() {
  210.     Persoana p1("Ion", 12);
  211.     p1.print();
  212.     Student s1("Andrei", 23, "Info");
  213.     s1.print();
  214.  
  215.     _getch();
  216. }
  217. #######################################
  218.         Polinom fara get x , y
  219. #######################################
  220. #include<stdio.h>
  221. #include<conio.h>
  222. #include<iostream>
  223.  
  224. using namespace std;
  225.  
  226. class Polinom {
  227. private:
  228.     int n;
  229.     double *coef;
  230. public:
  231.     Polinom();
  232.     Polinom(int n);
  233.     Polinom(const Polinom &p);
  234.     ~Polinom();
  235.     void citire();
  236.     void afisare();
  237.     Polinom &operator=(const Polinom&);
  238.     friend Polinom operator +(Polinom p, Polinom q);
  239. };
  240.  
  241. Polinom::Polinom() {
  242.  
  243. }
  244.  
  245. Polinom::Polinom(int n) {
  246.     this->n = n;
  247.     this->coef = new double[n + 1];
  248.     for (int i = 0; i < n+1; i++)
  249.         coef[i] = 0;
  250. }
  251.  
  252. Polinom::Polinom(const Polinom &p) {
  253.     n = p.n;
  254.     coef = new double[n + 1];
  255.     for (int i = 0; i < n+1; i++) {
  256.         coef[i] = p.coef[i];
  257.     }
  258. }
  259.  
  260. Polinom::~Polinom() {
  261.     delete[]coef;
  262. }
  263.  
  264. void Polinom::citire() {
  265.     int g;                                              //se poate fara citirea gradului
  266.     cout << "Gradul polinomului este: ";
  267.     cin >> g;
  268.     if (n > g) {
  269.         delete coef;
  270.         coef = new double[n + 1];
  271.     }
  272.  
  273.     n = g;
  274.    
  275.     cout << "Coeficientii sunt: \n";
  276.     for (int i = 0; i < n+1; i++) {
  277.         cout << "coef[" << i << "]= ";
  278.         cin >> coef[i];
  279.     }
  280. }
  281.  
  282. void Polinom::afisare() {
  283.     for (int i = 0; i < n+1; i++) {
  284.         if (coef[i] > 0 && i != 0)
  285.             cout << "+" << coef[i]<<"X^"<<i;
  286.         else
  287.             cout << coef[i]<<"X^"<<i;
  288.        
  289.     }
  290.     printf("\n");
  291. }
  292.  
  293. Polinom& Polinom::operator=(const Polinom &p) {
  294.     if (this != &p) {
  295.         if (n != p.n)
  296.             delete[]coef;
  297.         n = p.n;
  298.         coef = new double[n + 1];
  299.         for (int i = 0; i < n + 1; i++)
  300.             coef[i] = p.coef[i];
  301.     }
  302.     return *this;
  303. }
  304.  
  305. Polinom operator+(Polinom p1, Polinom p2) {
  306.     int max = (p1.n > p2.n) ? p1.n : p2.n;
  307.     Polinom r(max);
  308.     for (int i = 0; i < p1.n; i++)
  309.         r.coef[i] += p1.coef[i];
  310.     for (int i = 0; i < p2.n; i++)
  311.         r.coef[i] += p2.coef[i];
  312.  
  313.     return r;
  314. }
  315.  
  316. void main() {
  317.     Polinom p1(2);
  318.     Polinom p2(3);
  319.  
  320.     p1.citire();
  321.     p1.afisare();
  322.     p2.citire();
  323.     p2.afisare();
  324.  
  325.     Polinom p3 = p1 + p2;
  326.     p3.afisare();
  327.  
  328.  
  329.     _getch();
  330. }
  331.  
  332.  
  333. #######################################
  334.                 Vector
  335. #######################################
  336.  
  337. #include<stdio.h>
  338. #include<conio.h>
  339. #include<iostream>
  340. #pragma warning (disable:4996)
  341.  
  342. using namespace std;
  343.  
  344.  
  345. class Vector {
  346. private:
  347.     int n;
  348.     float *t;
  349. public:
  350.     Vector(int n);
  351.     Vector(const Vector &v);
  352.     int getSize();
  353.     float getElement(int i);
  354.     void setElement(int i, float val);
  355.     ~Vector();
  356.     void citire();
  357.     void afisare();
  358. };
  359.  
  360.  
  361. Vector::Vector(int n){
  362.     this->n = n;
  363.     t = new float[n];
  364.     for (int i = 0; i < n; i++)
  365.         t[i] = 0;
  366. }
  367.  
  368. Vector::Vector(const Vector &v) {              //constructor de copiere
  369.     n = v.n;
  370.     t = new float[n];
  371.     for (int i = 0; i < n; i++) {
  372.         t[i] = v.t[i];
  373.     }
  374. }
  375.  
  376. Vector::~Vector() {
  377.     delete t;
  378. }
  379.  
  380. void Vector::citire() {
  381.     int m;
  382.     cout << "Dati dimensiunea vectorului: ";
  383.     cin >> m;
  384.     if (n > m) {
  385.         delete t;
  386.         t = new float[n];
  387.     }
  388.     n = m;
  389.  
  390.     for (int i = 0; i < n; i++) {
  391.         cout << "Elementul[" << i << "] = ";
  392.         cin >> t[i];
  393.     }
  394. }
  395.  
  396. void Vector::afisare() {
  397.     cout << "[";
  398.     for (int i = 0; i < n; i++)
  399.         cout << t[i] << " ";
  400.     cout << "]";
  401. }
  402.  
  403. int Vector::getSize() {
  404.     return n;
  405. }
  406.  
  407. float Vector::getElement(int i) {
  408.     if (i >= 0 && i < n)
  409.         return t[i];
  410.     else
  411.         return 0;
  412. }
  413.  
  414. void main() {
  415.     Vector v(3);
  416.     v.citire();
  417.     v.afisare();
  418.  
  419.     _getch();
  420. }
  421.  
  422. #######################################
  423.                 Fractie
  424. #######################################
  425. class Fractie {
  426. private:
  427.     int numarator;
  428.     int numitor;
  429. public:
  430.     Fractie(int a = 0, int b = 1);
  431.     void citire();
  432.     void afisare();
  433.     void simplificare();
  434.    
  435. };
  436.  
  437. Fractie::Fractie(int a, int b) {
  438.     numarator = a;
  439.     numitor = b;
  440.     printf("Apel constructor\n");
  441. }
  442.  
  443. void Fractie::citire() {
  444.     printf("Dati numaratorul: ");
  445.     scanf("%d", &numarator);
  446.     printf("Dati numitorul: ");
  447.     scanf("%d", &numitor);
  448. }
  449.  
  450. void Fractie::afisare() {
  451.     printf("%d/%d\n", numarator, numitor);
  452.  
  453. }
  454.  
  455. int cmmdc(int a, int b) {
  456.     if (a == b) {
  457.         return a;
  458.     }
  459.     else {
  460.         if (a > b) {
  461.             return cmmdc(a - b, b);
  462.         }
  463.         else
  464.             return cmmdc(a, b - a);
  465.     }
  466. }
  467.  
  468. void Fractie::simplificare() {
  469.     int cmmdcval;
  470.     cmmdcval = cmmdc(numarator, numitor);
  471.     printf("cmmdc= %d\n", cmmdcval);
  472.     numarator = numarator / cmmdcval;
  473.     numitor = numitor / cmmdcval;
  474.  
  475. }
  476.  
  477.  
  478. int main() {
  479.     Fractie f(9, 3);
  480.     f.afisare();
  481.     Fractie f1;
  482.     f1.citire();
  483.     f1.afisare();
  484.     f1.simplificare();
  485.     f1.afisare();
  486.    
  487.  
  488.     _getch();
  489. #######################################
  490.                 Segment
  491. #######################################
  492. class Segment;
  493.  
  494. class Punct {
  495. private:
  496.     float x;
  497.     float y;
  498. public:
  499.     Punct(float a = 0, float b = 0);
  500.     void citire();
  501.     void afisare();
  502.     float getx();
  503.     float gety();
  504.    
  505. };
  506.  
  507. float Punct::getx() {
  508.     return x;
  509. }
  510.  
  511. float Punct::gety() {
  512.     return y;
  513. }
  514.  
  515. class Segment {
  516.     Punct A;
  517.     Punct B;
  518. public:
  519.     Segment(Punct O, Punct V);
  520.     double lungime();
  521. };
  522.  
  523. Punct::Punct(float a, float b) {
  524.     x = a;
  525.     y = b;
  526.     printf("Apel constructor\n");
  527.  
  528. }
  529.  
  530. void Punct::citire() {
  531.     printf("Dati coordonata x= ");
  532.     scanf("%f", &x);
  533.     printf("Dati coordonata y= ");
  534.     scanf("%f", &y);
  535. }
  536.  
  537. void Punct::afisare() {
  538.     printf("A(%.2f, %.2f)", x, y);
  539. }
  540.  
  541. Segment::Segment(Punct O, Punct V) {
  542.     A = O;
  543.     B = V;
  544.     printf("Apel constructor.");
  545. }
  546.  
  547. double Segment::lungime() {
  548.     return sqrt(pow(int(B.getx) - int(A.getx), 2) + pow(int(B.gety) - int(A.gety), 2));
  549.    
  550. }
  551.  
  552.  
  553. void main() {
  554.     Punct A;
  555.     A.citire();
  556.     A.afisare();
  557.     Punct B;
  558.     B.citire();
  559.     B.afisare();
  560.     Segment s(A, B);
  561.     printf("Lungimea segmentului este: %f.", s.lungime());
  562.  
  563.  
  564.     _getch();
  565. }
  566. #######################################
  567.             Perimetru Poligon
  568. #######################################
  569.  
  570. #includestdio.h
  571. #includeconio.h
  572. #includeiostream
  573. #includemath.h
  574.  
  575. using namespace std;
  576.  
  577. class Punct;
  578.  
  579. class PoligonConvex {
  580.     Punct varfuri;
  581.     int n;
  582. public
  583.     PoligonConvex();
  584.     PoligonConvex(int n, Punct v[]);
  585.     double getPerimetru();
  586.     ~PoligonConvex();
  587.     void afiseaza();
  588. };
  589.  
  590. PoligonConvexPoligonConvex() {
  591.  
  592. }
  593.  
  594. class Punct {
  595. private
  596.     double x, y;
  597. public
  598.     Punct(double x = 0, double y = 0);
  599.     friend void PoligonConvexafiseaza();
  600.     friend double lungime(Punct A, Punct B);
  601. };
  602.  
  603.  
  604. PunctPunct(double x, double y) {
  605.     this-x = x;
  606.     this-y = y;
  607. }
  608.  
  609. double lungime(Punct A, Punct B) {
  610.     return sqrt(pow(int(B.x) - int(A.x), 2) + pow(int(B.y) - int(A.y), 2));
  611.  
  612. }
  613.  
  614. double PoligonConvexgetPerimetru() {
  615.     double p = 0;
  616.     int i;
  617.     for (i = 0; i  n-1; i++) {
  618.         p = p + lungime(varfuri[i], varfuri[i + 1]);
  619.     }
  620.     p = p + lungime(varfuri[i - 1], varfuri[0]);
  621.     return p;
  622. }
  623.  
  624. PoligonConvexPoligonConvex(int n, Punct v[]) {
  625.     this-n = n;
  626.     varfuri = new Punct[n];
  627.     for (int i = 0; in; i++) {
  628.         varfuri[i] = v[i];
  629.     }
  630. }
  631.  
  632.  
  633. PoligonConvex~PoligonConvex() {
  634.     delete[]varfuri;
  635. }
  636.  
  637.  
  638. void PoligonConvexafiseaza() {
  639.     cout  [;
  640.     for (int i = 0; in; i++) {
  641.         cout  (  varfuri[i].x  ,
  642.              varfuri[i].y  );
  643.     }
  644.     cout  ];
  645. }
  646.  
  647. void main() {
  648.     Punct t[3] = { Punct(0,0), Punct(3,0),
  649.         Punct(3,4) };
  650.     PoligonConvex p(3, t);
  651.     p.afiseaza();
  652.     int perimetru = p.getPerimetru();
  653.     printf(n Perimetrul este %d., perimetru);
  654.  
  655.     _getch();
  656. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement