Advertisement
eniodordan

[OOP] LV1 - Zadaci + Analiza

Oct 17th, 2018
198
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.12 KB | None | 0 0
  1. // Zadaci
  2. // 1. zadatak
  3. class Die {
  4. private:
  5.     int mDice[6];
  6.     int RollDice();
  7.     void SetDice(int, int);
  8.  
  9. public:
  10.     int GetDice(int);
  11.     Die();
  12.     Die(int, int, int, int, int, int);
  13. };
  14.  
  15. int Die::RollDice()
  16. {
  17.     int random = rand() % 6 + 1;
  18.  
  19.     return random;
  20. }
  21.  
  22. void Die::SetDice(int n, int number)
  23. {
  24.     mDice[n] = number;
  25. }
  26.  
  27. int Die::GetDice(int n)
  28. {
  29.     return mDice[n];
  30. }
  31.  
  32. Die::Die()
  33. {
  34.     int i;
  35.  
  36.     std::srand((unsigned int)std::time(0));
  37.     for (i = 0; i < 6; i++)
  38.     {
  39.         SetDice(i, RollDice());
  40.     }
  41. }
  42.  
  43. Die::Die(int dice1, int dice2, int dice3, int dice4, int dice5, int dice6)
  44. {
  45.     mDice[0] = dice1;
  46.     mDice[1] = dice2;
  47.     mDice[2] = dice3;
  48.     mDice[3] = dice4;
  49.     mDice[4] = dice5;
  50.     mDice[5] = dice6;
  51. }
  52.  
  53. int main()
  54. {
  55.     Die Igrac1;
  56.     Die Igrac2(1, 2, 3, 4, 5, 6);
  57.     int i, sum1 = 0, sum2 = 0;
  58.    
  59.     for (i = 0; i < 6; i++)
  60.     {
  61.         sum1 += Igrac1.GetDice(i);
  62.     }
  63.  
  64.     for (i = 0; i < 6; i++)
  65.     {
  66.         sum2 += Igrac2.GetDice(i);
  67.     }
  68.  
  69.     if (sum1 > sum2)
  70.     {
  71.             cout << "Igrac1 wins!" << endl;
  72.     }
  73.     else if (sum2 > sum1)
  74.     {
  75.             cout << "Igrac2 wins!" << endl;
  76.     }
  77. }
  78.  
  79. // 2. zadatak
  80. class Kompleksni
  81. {
  82. private:
  83.     int realni;
  84.     int imaginarni;
  85.     friend Kompleksni Zbroj(Kompleksni, Kompleksni);
  86. public:
  87.     float Modul();
  88.     int getRealni();
  89.     int getImaginarni();
  90.     Kompleksni();
  91.     Kompleksni(int, int);
  92.     void setRealni(int);
  93.     void setImaginarni(int);
  94. };
  95.  
  96. Kompleksni::Kompleksni()
  97. {
  98. }
  99.  
  100. Kompleksni::Kompleksni(int a, int b)
  101. {
  102.     realni = a;
  103.     imaginarni = b;
  104. }
  105.  
  106. float Kompleksni::Modul()
  107. {
  108.     float modul;
  109.     modul = sqrt(pow(realni, 2) + pow(imaginarni, 2));
  110.  
  111.     return modul;
  112. }
  113.  
  114. int Kompleksni::getRealni()
  115. {
  116.     return realni;
  117. }
  118.  
  119. int Kompleksni::getImaginarni()
  120. {
  121.     return imaginarni;
  122. }
  123.  
  124. void Kompleksni::setRealni(int a)
  125. {
  126.     realni = a;
  127. }
  128.  
  129. void Kompleksni::setImaginarni(int b)
  130. {
  131.     imaginarni = b;
  132. }
  133.  
  134. Kompleksni Zbroj(Kompleksni a, Kompleksni b)
  135. {
  136.     Kompleksni zbroj(a.getRealni() + b.getRealni(), a.getImaginarni() + b.getImaginarni());
  137.  
  138.     return zbroj;
  139. }
  140.  
  141. int main()
  142. {
  143.     Kompleksni prvi;
  144.     Kompleksni drugi(5, 2);
  145.     int a, b;
  146.  
  147.     cin >> a;
  148.     cin >> b;
  149.     prvi.setRealni(a);
  150.     prvi.setImaginarni(b);
  151.     cout << Zbroj(prvi, drugi).getRealni() << "+" << Zbroj(prvi, drugi).getImaginarni() << "i" << endl;
  152.     cout << prvi.Modul() << endl;
  153.     cout << drugi.Modul() << endl;
  154.  
  155.     system("PAUSE");
  156.     return 0;
  157. }
  158.  
  159. // 3. zadatak
  160. class Point2D {
  161. private:
  162.     int mX;
  163.     int mY;
  164. public:
  165.     int GetX();
  166.     int GetY();
  167.     void SetX(int);
  168.     void SetY(int);
  169.     Point2D();
  170.     Point2D(int, int);
  171. };
  172.  
  173. int Point2D::GetX() {
  174.     return mX;
  175. }
  176.  
  177. int Point2D::GetY() {
  178.     return mY;
  179. }
  180.  
  181. void Point2D::SetX(int x) {
  182.     mX = x;
  183. }
  184.  
  185. void Point2D::SetY(int y) {
  186.     mY = y;
  187. }
  188.  
  189. Point2D::Point2D() {
  190. }
  191.  
  192. Point2D::Point2D(int x, int y) : mX(x), mY(y) {
  193. }
  194.  
  195. class Line {
  196. private:
  197.     Point2D Dot;
  198. public:
  199.     void SetDot(int, int);
  200.     int GetDotX();
  201.     int GetDotY();
  202.     void PrintLine(Point2D, Point2D);
  203. };
  204.  
  205. void Line::PrintLine(Point2D D1, Point2D D2)
  206. {
  207.     float k = ((D2.GetX() - D1.GetX()) / (D2.GetY() - D1.GetY()));
  208.     float l = D1.GetY() - k * (D1.GetX());
  209.  
  210.     cout << k << "x +" << l << endl;
  211. }
  212.  
  213. int Line::GetDotX() {
  214.     return Dot.GetX();
  215. }
  216.  
  217. int Line::GetDotY() {
  218.     return Dot.GetY();
  219. }
  220.  
  221. int main()
  222. {
  223.     Line Line;
  224.     Point2D D1(4, 2);
  225.     Point2D D2(5, 3);
  226.  
  227.     Line.PrintLine(D1, D2);
  228.  
  229.     return 0;
  230. }
  231.  
  232. // Analiza
  233. //1. Definirajte klasu koja predstavlja bankovni tekući račun s atributima za stanje,
  234. //za postavljanje i dohvaćanje atributa, metode za uplatu i isplatu
  235. //(voditi računa o limitu), metodu za pripis kamate te metodu za ispis stanja.
  236. //Povesti računa o enkapsulaciji.
  237.  
  238. class BankAccount {
  239. private:
  240.     float mBalance;
  241.     float mInterest;
  242.     float mLimit;
  243. public:
  244.     float GetBalance() { return mBalance; }
  245.     float GetInterest() { return mInterest; }
  246.     float GetLimit() { return mLimit; }
  247.     void SendPayment(float);
  248.     void RequestPayment(float);
  249.     void InterestAssignment(float);
  250.     BankAccount();
  251.     BankAccount(float, float, float);
  252. };
  253.  
  254. void BankAccount::SendPayment(float payment) {
  255.     int i, count = 0, status = 0;
  256.  
  257.     for (i = 0; i < payment; i++) {
  258.         if (mBalance >= 0) {
  259.             mBalance += 1;
  260.         }
  261.         else if (mBalance < 0) {
  262.             mBalance += 1;
  263.             count++;
  264.             status = 1;
  265.         }
  266.     }
  267.  
  268.     if (status) {
  269.         mBalance -= count * (mInterest / 100);
  270.     }
  271. }
  272.  
  273. void BankAccount::RequestPayment(float payment) {
  274.     int i, count = 0, status = 0;
  275.     float balance = mBalance;
  276.  
  277.     for (i = 0; i < payment; i++) {
  278.         if (balance >= 0) {
  279.             balance -= 1;
  280.         }
  281.         else if (balance < 0) {
  282.             balance -= 1;
  283.             count++;
  284.             status = 1;
  285.         }
  286.     }
  287.  
  288.     if (status) {
  289.         balance -= count * (mInterest / 100);
  290.     }
  291.  
  292.     count = 0;
  293.     status = 0;
  294.  
  295.     if (balance > mLimit) {
  296.         for (i = 0; i < payment; i++) {
  297.             if (mBalance >= 0) {
  298.                 mBalance -= 1;
  299.             }
  300.             else if (mBalance < 0) {
  301.                 mBalance -= 1;
  302.                 count++;
  303.                 status = 1;
  304.             }
  305.         }
  306.  
  307.         if (status) {
  308.             mBalance -= count * (mInterest / 100);
  309.         }
  310.     }
  311.     else
  312.         cout << "Error!" << endl;
  313. }
  314.  
  315. void BankAccount::InterestAssignment(float interest) {
  316.     mInterest += interest;
  317. }
  318.  
  319. BankAccount::BankAccount() : mBalance(0), mInterest(0), mLimit(0)
  320. {
  321. }
  322.  
  323. BankAccount::BankAccount(float balance, float interest, float limit) : mBalance(balance), mInterest(interest), mLimit(limit)
  324. {
  325. }
  326.  
  327. int main() {
  328.     BankAccount N(500, 4, -1000);
  329.     int menu;
  330.     float payment;
  331.     float interest;
  332.  
  333.     cout << "Welcome to your Bank Account menu." << endl;
  334.     cout << "1 - Check balance, interest and limit." << endl;
  335.     cout << "2 - Send payment." << endl;
  336.     cout << "3 - Request payment." << endl;
  337.     cout << "4 - Change interest assignment." << endl;
  338.     cout << "0 - Exit." << endl;
  339.  
  340.     do {
  341.         cout << endl << "Please enter specific number: ";
  342.         cin >> menu;
  343.         switch (menu) {
  344.         case 0:
  345.             break;
  346.         case 1:
  347.             cout << "Balance: " << N.GetBalance() << "$" << endl;
  348.             cout << "Interest: " << N.GetInterest() << "%" << endl;
  349.             cout << "Limit: " << N.GetLimit() << "$" << endl;
  350.             break;
  351.         case 2:
  352.             do {
  353.                 cout << "Enter payment amount: ";
  354.                 cin >> payment;
  355.             } while (payment < 0);
  356.             N.SendPayment(payment);
  357.             cout << "New balance: " << N.GetBalance() << "$" << endl;
  358.             break;
  359.         case 3:
  360.             do {
  361.                 cout << "Enter payment amount: ";
  362.                 cin >> payment;
  363.             } while (payment < 0);
  364.             N.RequestPayment(payment);
  365.             cout << "New balance: " << N.GetBalance() << "$" << endl;
  366.             break;
  367.         case 4:
  368.             do {
  369.                 cout << "Enter interest assignment: ";
  370.                 cin >> interest;
  371.             } while (interest < 0);
  372.             N.InterestAssignment(interest);
  373.             cout << "New interest: " << N.GetInterest() << "%" << endl;
  374.             break;
  375.         default:
  376.             cout << "1 - Check balance, interest and limit." << endl;
  377.             cout << "2 - Send payment." << endl;
  378.             cout << "3 - Request payment." << endl;
  379.             cout << "4 - Change interest assignment." << endl;
  380.             cout << "0 - Exit." << endl;
  381.             break;
  382.         }
  383.     } while (menu != 0);
  384.  
  385.     return 0;
  386. }
  387.  
  388. //2. Definirajte klasu koja predstavlja pravokutnik, omogućuje pristup atributima
  389. //te nudi mogućnost računanja površine i opsega pravokutnika.Napisati
  390. //funkciju koja uspoređuje tri pravokutnika po veličini i ispisuje površinu
  391. //najvećeg.Povesti računa o enkapsulaciji.
  392.  
  393. class Rectangle {
  394. private:
  395.     int mA, mB;
  396. public:
  397.     float CalculateArea();
  398.     float CalculateExtent();
  399.     Rectangle();
  400.     Rectangle(int, int);
  401. };
  402.  
  403. float Rectangle::CalculateArea() {
  404.     return (mA * mB);
  405. }
  406.  
  407. float Rectangle::CalculateExtent() {
  408.     return (2 * mA + 2 * mB);
  409. }
  410.  
  411. Rectangle::Rectangle() : mA(0), mB(0)
  412. {
  413. }
  414.  
  415. Rectangle::Rectangle(int a, int b) : mA(a), mB(b)
  416. {
  417. }
  418.  
  419. int main() {
  420.     Rectangle N1(4, 5);
  421.     Rectangle N2(3, 7);
  422.     Rectangle N3(9, 6);
  423.  
  424.     if (N1.CalculateExtent() > N2.CalculateExtent() && N1.CalculateExtent() > N3.CalculateExtent()) {
  425.         cout << N1.CalculateExtent() << endl;
  426.     }
  427.     else if (N2.CalculateExtent() > N3.CalculateExtent()) {
  428.         cout << N2.CalculateExtent() << endl;
  429.     }
  430.     else {
  431.         cout << N3.CalculateExtent() << endl;
  432.     }
  433.  
  434.     return 0;
  435. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement