Ledger Nano X - The secure hardware wallet
SHARE
TWEET

OOP8

VolodiaKost Apr 4th, 2020 149 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //---------------------------------------------------------------------------
  2.  
  3. #include <vcl.h>
  4. #pragma hdrstop
  5.  
  6. #include "Unit1.h"
  7. //---------------------------------------------------------------------------
  8. #pragma package(smart_init)
  9. #pragma resource "*.dfm"
  10. TForm1 *Form1;
  11. //---------------------------------------------------------------------------
  12. __fastcall TForm1::TForm1(TComponent* Owner)
  13.         : TForm(Owner)
  14. {
  15. }
  16. //---------------------------------------------------------------------------
  17.  
  18. BankAccount Standart;
  19. SocialAcc Social;
  20. VIPAcc VIP;
  21.  
  22. BankAccount::BankAccount()
  23. {
  24.         amountOfMoney = 0;
  25.         commissionForUtilitiesPayment = 0;
  26.         commissionForMoneyTransfer = 0;
  27.         commissionForCashWithdrawal = 0;
  28.         numberOfTransactions = 0;
  29.         Transactions = new AnsiString[1];
  30. }
  31.  
  32. BankAccount::BankAccount(float amountOfMoney_, float commissionForUtilitiesPayment_, float commissionForMoneyTransfer_, float commissionForCashWithdrawal_)
  33. {
  34.         amountOfMoney = amountOfMoney_;
  35.         commissionForUtilitiesPayment = commissionForUtilitiesPayment_;
  36.         commissionForMoneyTransfer = commissionForMoneyTransfer_;
  37.         commissionForCashWithdrawal = commissionForCashWithdrawal_;
  38. }
  39.  
  40. BankAccount::~BankAccount()
  41. {
  42.  
  43. }
  44.  
  45. void BankAccount::SetAmountOfMoney(TEdit *Edit)
  46. {
  47.         if(Edit->Text != "")
  48.                 amountOfMoney = StrToFloat(Edit->Text);
  49. }
  50.  
  51. void BankAccount::SetCommissionForUtilitiesPayment(TEdit *Edit)
  52. {
  53.         if(Edit->Text != "")
  54.                 commissionForUtilitiesPayment = StrToFloat(Edit->Text);
  55. }
  56.  
  57. void BankAccount::SetCommissionForMoneyTransfer(TEdit *Edit)
  58. {
  59.         if(Edit->Text != "")
  60.                 commissionForMoneyTransfer = StrToFloat(Edit->Text);
  61. }
  62.  
  63. void BankAccount::SetCommissionForCashWithdrawal(TEdit *Edit)
  64. {
  65.         if(Edit->Text != "")
  66.                 commissionForCashWithdrawal = StrToFloat(Edit->Text);
  67. }
  68.  
  69. float BankAccount::GetAmountOfMoney()
  70. {
  71.         return amountOfMoney;
  72. }
  73.  
  74. float BankAccount::GetCommissionForUtilitiesPayment()
  75. {
  76.         return commissionForUtilitiesPayment;
  77. }
  78.  
  79. float BankAccount::GetCommissionForMoneyTransfer()
  80. {
  81.         return commissionForMoneyTransfer;
  82. }
  83.  
  84. float BankAccount::GetCommissionForCashWithdrawal()
  85. {
  86.         return commissionForCashWithdrawal;
  87. }
  88.  
  89. int BankAccount::GetNumberOfTransactions()
  90. {
  91.         return numberOfTransactions;
  92. }
  93.  
  94. bool BankAccount::UtilitiesPayment(double sum)
  95. {
  96.         float minus = sum + sum * commissionForUtilitiesPayment;
  97.         if(amountOfMoney >= minus)
  98.         {
  99.                 amountOfMoney -= minus;
  100.                 return true;
  101.         }
  102.         else
  103.                 return false;
  104. }
  105.  
  106. bool BankAccount::MoneyTransfer(double sum)
  107. {
  108.         float minus = sum + sum * commissionForMoneyTransfer;
  109.         if(amountOfMoney >= minus)
  110.         {
  111.                 amountOfMoney -= minus;
  112.                 return true;
  113.         }
  114.         else
  115.                 return false;
  116. }
  117.  
  118. bool BankAccount::CashWithdrawal(double sum)
  119. {
  120.         float minus = sum + sum * commissionForCashWithdrawal;
  121.         if(amountOfMoney >= minus)
  122.         {
  123.                 amountOfMoney -= minus;
  124.                 return true;
  125.         }
  126.         else
  127.                 return false;
  128. }
  129.  
  130. AnsiString BankAccount::print(int n)
  131. {
  132.         switch (n)
  133.         {
  134.                 case 1:  return "BankAccount";
  135.                 case 2:  return "SocialAcc";
  136.                 case 3:  return "VIPAcc";
  137.                 default: return "Wrong number";
  138.         }
  139. }
  140.  
  141. void BankAccount::addNewTransaction(AnsiString newTransaction)
  142. {
  143.         AnsiString *temporary = new AnsiString[numberOfTransactions];
  144.         for(int k = 0; k < numberOfTransactions; ++k)
  145.                 temporary[k] = Transactions[k];
  146.         delete [] Transactions;
  147.         Transactions = new AnsiString[numberOfTransactions + 1];
  148.         for(int k = 0; k < numberOfTransactions; ++k)
  149.                 Transactions[k] = temporary[k];
  150.         Transactions[numberOfTransactions] = newTransaction;
  151.         numberOfTransactions += 1;
  152. }
  153.  
  154. void SocialAcc::SetPercents(TEdit *Edit)
  155. {
  156.         if(Edit->Text != "")
  157.                 percents = StrToFloat(Edit->Text);
  158. }
  159.  
  160. float SocialAcc::GetPercents()
  161. {
  162.         return percents;
  163. }
  164.  
  165. float SocialAcc::GetAdditionalSum()
  166. {
  167.         return additionalSum;
  168. }
  169.  
  170. void SocialAcc::CalculateAdditionalSum()
  171. {
  172.         additionalSum = amountOfMoney * percents;
  173.         amountOfMoney += additionalSum;
  174. }
  175.  
  176. void VIPAcc::SetCreditLimit(TEdit *Edit)
  177. {
  178.         if(Edit->Text != "")
  179.                 creditLimit = StrToFloat(Edit->Text);
  180. }
  181.  
  182. void VIPAcc::SetSmallPercent(TEdit *Edit)
  183. {
  184.         if(Edit->Text != "")
  185.                 smallPercentForUsingCredit = StrToFloat(Edit->Text);
  186. }
  187.  
  188. void VIPAcc::SetBigPercent(TEdit *Edit)
  189. {
  190.         if(Edit->Text != "")
  191.                 bigPercentForUsingCredit = StrToFloat(Edit->Text);
  192. }
  193.  
  194. void VIPAcc::SetSumForPercent(TEdit *Edit)
  195. {
  196.         if(Edit->Text != "")
  197.                 sumForBiggerPercent = StrToFloat(Edit->Text);
  198. }
  199.  
  200. float VIPAcc::GetCreditLimit()
  201. {
  202.         return creditLimit;
  203. }
  204.  
  205. float VIPAcc::GetSmallPercent()
  206. {
  207.         return smallPercentForUsingCredit;
  208. }
  209.  
  210. float VIPAcc::GetBigPercent()
  211. {
  212.         return bigPercentForUsingCredit;
  213. }
  214.  
  215. float VIPAcc::GetSumForBiggerPercent()
  216. {
  217.         return sumForBiggerPercent;
  218. }
  219.  
  220. bool VIPAcc::UtilitiesPaymentByCredit(double sum)
  221. {
  222.         if(creditLimit >= sum)
  223.         {
  224.                 if(amountOfMoney <= sumForBiggerPercent)
  225.                 {
  226.                         if(sum * smallPercentForUsingCredit <= amountOfMoney)
  227.                         {
  228.                                 creditLimit -= (sum * commissionForUtilitiesPayment + sum);
  229.                                 amountOfMoney -= sum * smallPercentForUsingCredit;
  230.                                 return true;
  231.                         }
  232.                         else if(sum * smallPercentForUsingCredit > amountOfMoney)
  233.                         {
  234.                                 return false;
  235.                         }
  236.                 }
  237.  
  238.  
  239.                 else if(amountOfMoney > sumForBiggerPercent)
  240.                 {
  241.                      if(sum * bigPercentForUsingCredit <= amountOfMoney)
  242.                      {
  243.                                 creditLimit -= (sum * commissionForUtilitiesPayment + sum);
  244.                                 amountOfMoney -= sum * bigPercentForUsingCredit;
  245.                                 return true;
  246.                      }
  247.                      else if(sum * bigPercentForUsingCredit > amountOfMoney)
  248.                      {
  249.                                 return false;
  250.                      }
  251.  
  252.                 }
  253.         }
  254.         else
  255.         {
  256.                 return false;
  257.         }
  258. }
  259.  
  260. bool VIPAcc::MoneyTransferByCredit(double sum)
  261. {
  262.         if(creditLimit >= sum)
  263.         {
  264.                 if(amountOfMoney <= sumForBiggerPercent)
  265.                 {
  266.                         if(sum * smallPercentForUsingCredit <= amountOfMoney)
  267.                         {
  268.                                 creditLimit -= (sum * commissionForMoneyTransfer + sum);
  269.                                 amountOfMoney -= sum * smallPercentForUsingCredit;
  270.                                 return true;
  271.                         }
  272.                         else if(sum * smallPercentForUsingCredit > amountOfMoney)
  273.                         {
  274.                                 return false;
  275.                         }
  276.                 }
  277.  
  278.  
  279.                 else if(amountOfMoney > sumForBiggerPercent)
  280.                 {
  281.                      if(sum * bigPercentForUsingCredit <= amountOfMoney)
  282.                      {
  283.                                 creditLimit -= (sum * commissionForMoneyTransfer + sum);
  284.                                 amountOfMoney -= sum * bigPercentForUsingCredit;
  285.                                 return true;
  286.                      }
  287.                      else if(sum * bigPercentForUsingCredit > amountOfMoney)
  288.                      {
  289.                                 return false;
  290.                      }
  291.  
  292.                 }
  293.         }
  294.         else
  295.         {
  296.                 return false;
  297.         }
  298. }
  299.  
  300. bool VIPAcc::CashWithdrawalByCredit(double sum)
  301. {
  302.         if(creditLimit >= sum)
  303.         {
  304.                 if(amountOfMoney <= sumForBiggerPercent)
  305.                 {
  306.                         if(sum * smallPercentForUsingCredit <= amountOfMoney)
  307.                         {
  308.                                 creditLimit -= (sum * commissionForCashWithdrawal + sum);
  309.                                 amountOfMoney -= sum * smallPercentForUsingCredit;
  310.                                 return true;
  311.                         }
  312.                         else if(sum * smallPercentForUsingCredit > amountOfMoney)
  313.                         {
  314.                                 return false;
  315.                         }
  316.                 }
  317.  
  318.  
  319.                 else if(amountOfMoney > sumForBiggerPercent)
  320.                 {
  321.                      if(sum * bigPercentForUsingCredit <= amountOfMoney)
  322.                      {
  323.                                 creditLimit -= (sum * commissionForCashWithdrawal + sum);
  324.                                 amountOfMoney -= sum * bigPercentForUsingCredit;
  325.                                 return true;
  326.                      }
  327.                      else if(sum * bigPercentForUsingCredit > amountOfMoney)
  328.                      {
  329.                                 return false;
  330.                      }
  331.  
  332.                 }
  333.         }
  334.         else
  335.         {
  336.                 return false;
  337.         }
  338. }
  339. //---------------------------------------------------------------------------
  340. //---------------------------------------------------------------------------
  341. //---------------------------------------------------------------------------
  342.  
  343. void __fastcall TForm1::ButtonOK1Click(TObject *Sender)
  344. {
  345.         Standart.SetAmountOfMoney(EditAmountOfMoney1);
  346.         Standart.SetCommissionForUtilitiesPayment(EditUtilitiesCom1);
  347.         Standart.SetCommissionForMoneyTransfer(EditTransferCom1);
  348.         Standart.SetCommissionForCashWithdrawal(EditWithdrawalCom1);
  349. }
  350. //---------------------------------------------------------------------------
  351.  
  352.  
  353.  
  354. void __fastcall TForm1::ButtonOK2Click(TObject *Sender)
  355. {
  356.         Social.SetAmountOfMoney(EditAmountOfMoney2);
  357.         Social.SetCommissionForUtilitiesPayment(EditUtilitiesCom2);
  358.         Social.SetCommissionForMoneyTransfer(EditTransferCom2);
  359.         Social.SetCommissionForCashWithdrawal(EditWithdrawalCom2);
  360.         Social.SetPercents(EditPercents);
  361. }
  362. //---------------------------------------------------------------------------
  363.  
  364. void __fastcall TForm1::ButtonOK3Click(TObject *Sender)
  365. {
  366.         VIP.SetAmountOfMoney(EditAmountOfMoney3);
  367.         VIP.SetCommissionForUtilitiesPayment(EditUtilitiesCom3);
  368.         VIP.SetCommissionForMoneyTransfer(EditTransferCom3);
  369.         VIP.SetCommissionForCashWithdrawal(EditWithdrawalCom3);
  370.         VIP.SetSmallPercent(EditSmallPercent);
  371.         VIP.SetBigPercent(EditBigPercent);
  372.         VIP.SetCreditLimit(EditCreditLimit);
  373.         VIP.SetSumForPercent(EditSumForBigPercent);
  374. }
  375. //---------------------------------------------------------------------------
  376.  
  377.  
  378.  
  379.  
  380. void __fastcall TForm1::ButtonPay1Click(TObject *Sender)
  381. {
  382.         if(EditUtilitiesSum1->Text != "")
  383.         {
  384.                 if(Standart.UtilitiesPayment(StrToFloat(EditUtilitiesSum1->Text)))
  385.                 {
  386.                         LabelResultNum1->Caption = FloatToStr(Standart.GetAmountOfMoney());
  387.                         Standart.addNewTransaction("Utilities payment " + EditUtilitiesSum1->Text);
  388.                 }
  389.                 else
  390.                         LabelResultNum1->Caption = "Not enough money";
  391.         }
  392. }
  393. //---------------------------------------------------------------------------
  394.  
  395. void __fastcall TForm1::ButtonTransfer1Click(TObject *Sender)
  396. {
  397.         if(EditTransferSum1->Text != "")
  398.         {
  399.                 if(Standart.MoneyTransfer(StrToFloat(EditTransferSum1->Text)))
  400.                 {
  401.                         LabelResultNum1->Caption = FloatToStr(Standart.GetAmountOfMoney());
  402.                         Standart.addNewTransaction("Transfer money " + EditTransferSum1->Text);
  403.                 }
  404.                 else
  405.                         LabelResultNum1->Caption = "Not enough money";
  406.         }
  407. }
  408. //---------------------------------------------------------------------------
  409.  
  410. void __fastcall TForm1::ButtonWithdrawal1Click(TObject *Sender)
  411. {
  412.         if(EditWithdrawalSum1->Text != "")
  413.         {
  414.                 if(Standart.CashWithdrawal(StrToFloat(EditWithdrawalSum1->Text)))
  415.                 {
  416.                         LabelResultNum1->Caption = FloatToStr(Standart.GetAmountOfMoney());
  417.                         Standart.addNewTransaction("Withdrawal " + EditWithdrawalSum1->Text);
  418.                 }
  419.                 else
  420.                         LabelResultNum1->Caption = "Not enough money";
  421.         }
  422.  
  423. }
  424. //---------------------------------------------------------------------------
  425.  
  426.  
  427. void __fastcall TForm1::ButtonPay2Click(TObject *Sender)
  428. {
  429.         if(EditUtilitiesSum2->Text != "")
  430.         {
  431.                 if(Social.UtilitiesPayment(StrToFloat(EditUtilitiesSum2->Text)))
  432.                 {
  433.                         LabelResultNum2->Caption = FloatToStr(Social.GetAmountOfMoney());
  434.                         Social.addNewTransaction("Utilities payment " + EditUtilitiesSum2->Text);
  435.                 }
  436.                 else
  437.                         LabelResultNum2->Caption = "Not enough money";
  438.         }
  439. }
  440. //---------------------------------------------------------------------------
  441.  
  442. void __fastcall TForm1::ButtonTransfer2Click(TObject *Sender)
  443. {
  444.         if(EditTransferSum2->Text != "")
  445.         {
  446.                 if(Social.MoneyTransfer(StrToFloat(EditTransferSum2->Text)))
  447.                 {
  448.                         LabelResultNum2->Caption = FloatToStr(Social.GetAmountOfMoney());
  449.                         Social.addNewTransaction("Transfer money " + EditTransferSum2->Text);
  450.                 }
  451.                 else
  452.                         LabelResultNum2->Caption = "Not enough money";
  453.         }
  454. }
  455. //---------------------------------------------------------------------------
  456.  
  457. void __fastcall TForm1::ButtonWithdrawal2Click(TObject *Sender)
  458. {
  459.         if(EditWithdrawalSum2->Text != "")
  460.         {
  461.                 if(Social.CashWithdrawal(StrToFloat(EditWithdrawalSum2->Text)))
  462.                 {
  463.                         LabelResultNum2->Caption = FloatToStr(Social.GetAmountOfMoney());
  464.                         Social.addNewTransaction("Withdrawal " + EditWithdrawalSum2->Text);
  465.                 }
  466.                 else
  467.                         LabelResultNum2->Caption = "Not enough money";
  468.         }
  469. }
  470. //---------------------------------------------------------------------------
  471.  
  472. void __fastcall TForm1::ButtonPercentsClick(TObject *Sender)
  473. {
  474.         if(EditPercents->Text != "")
  475.         {
  476.                 Social.CalculateAdditionalSum();
  477.                 LabelResultNum2->Caption = FloatToStr(Social.GetAmountOfMoney());
  478.                 Social.addNewTransaction("Percents " + FloatToStr(Social.GetAdditionalSum()));
  479.         }
  480. }
  481. //---------------------------------------------------------------------------
  482.  
  483. void __fastcall TForm1::ButtonPay3Click(TObject *Sender)
  484. {
  485.         if(EditUtilitiesSum3->Text != "")
  486.         {
  487.                 if(VIP.UtilitiesPayment(StrToFloat(EditUtilitiesSum3->Text)))
  488.                 {
  489.                         LabelResultNum3->Caption = FloatToStr(VIP.GetAmountOfMoney());
  490.                         VIP.addNewTransaction("Utilities payment " + EditUtilitiesSum3->Text);
  491.                 }
  492.                 else
  493.                         LabelResultNum3->Caption = "Not enough money";
  494.         }
  495.  
  496. }
  497. //---------------------------------------------------------------------------
  498.  
  499.  
  500. void __fastcall TForm1::ButtonTransfer3Click(TObject *Sender)
  501. {
  502.         if(EditTransferSum3->Text != "")
  503.         {
  504.                 if(VIP.MoneyTransfer(StrToFloat(EditTransferSum3->Text)))
  505.                 {
  506.                         LabelResultNum3->Caption = FloatToStr(VIP.GetAmountOfMoney());
  507.                         VIP.addNewTransaction("Utilities payment " + EditTransferSum3->Text);
  508.                 }
  509.                 else
  510.                         LabelResultNum3->Caption = "Not enough money";
  511.         }
  512. }
  513. //---------------------------------------------------------------------------
  514.  
  515. void __fastcall TForm1::ButtonWithdrawal3Click(TObject *Sender)
  516. {
  517.         if(EditWithdrawalSum3->Text != "")
  518.         {
  519.                 if(VIP.CashWithdrawal(StrToFloat(EditWithdrawalSum3->Text)))
  520.                 {
  521.                         LabelResultNum3->Caption = FloatToStr(VIP.GetAmountOfMoney());
  522.                         VIP.addNewTransaction("Withdrawal " + EditWithdrawalSum3->Text);
  523.                 }
  524.                 else
  525.                         LabelResultNum3->Caption = "Not enough money";
  526.         }
  527. }
  528. //---------------------------------------------------------------------------
  529.  
  530.  
  531. void __fastcall TForm1::ButtonNameClick(TObject *Sender)
  532. {
  533.         LabelName->Caption = Standart.print() + "\n" + Social.print() + "\n" + VIP.print();
  534. }
  535. //---------------------------------------------------------------------------
  536.  
  537.  
  538.  
  539. void __fastcall TForm1::Button1Click(TObject *Sender)
  540. {
  541.         if(EditUtilitiesSum3->Text != "")
  542.         {
  543.                 if(VIP.UtilitiesPaymentByCredit(StrToFloat(EditUtilitiesSum3->Text)))
  544.                 {
  545.                         LabelResultNum3->Caption = FloatToStr(VIP.GetAmountOfMoney()) + "\n" + FloatToStr(VIP.GetCreditLimit());
  546.                         VIP.addNewTransaction("Utilities payment by credit " + EditUtilitiesSum3->Text);
  547.                 }
  548.                 else
  549.                         LabelResultNum3->Caption = "Not enough money";
  550.         }
  551. }
  552. //---------------------------------------------------------------------------
  553.  
  554. void __fastcall TForm1::Button2Click(TObject *Sender)
  555. {
  556.         if(EditTransferSum3->Text != "")
  557.         {
  558.                 if(VIP.MoneyTransferByCredit(StrToFloat(EditTransferSum3->Text)))
  559.                 {
  560.                         LabelResultNum3->Caption = FloatToStr(VIP.GetAmountOfMoney()) + "\n" + FloatToStr(VIP.GetCreditLimit());
  561.                         VIP.addNewTransaction("Transfer money " + EditTransferSum3->Text);
  562.                 }
  563.                 else
  564.                         LabelResultNum3->Caption = "Not enough money";
  565.         }
  566.  
  567. }
  568. //---------------------------------------------------------------------------
  569.  
  570. void __fastcall TForm1::Button3Click(TObject *Sender)
  571. {
  572.         if(EditWithdrawalSum3->Text != "")
  573.         {
  574.                 if(VIP.CashWithdrawalByCredit(StrToFloat(EditWithdrawalSum3->Text)))
  575.                 {
  576.                         LabelResultNum3->Caption = FloatToStr(VIP.GetAmountOfMoney()) + "\n" + FloatToStr(VIP.GetCreditLimit());
  577.                         VIP.addNewTransaction("Withdrawal " + EditWithdrawalSum3->Text);
  578.                 }
  579.                 else
  580.                         LabelResultNum3->Caption = "Not enough money";
  581.         }
  582. }
  583. //---------------------------------------------------------------------------
  584.  
  585. void __fastcall TForm1::ButtonHistory1Click(TObject *Sender)
  586. {
  587.         LabelHistory1->Caption = "";
  588.         for(int i = 0; i < Standart.GetNumberOfTransactions(); ++i)
  589.                 LabelHistory1->Caption = LabelHistory1->Caption + "\n" + Standart.Transactions[i];
  590. }
  591. //---------------------------------------------------------------------------
  592.  
  593. void __fastcall TForm1::ButtonHistory2Click(TObject *Sender)
  594. {
  595.         LabelHistory2->Caption = "";
  596.         for(int i = 0; i < Social.GetNumberOfTransactions(); ++i)
  597.                 LabelHistory2->Caption = LabelHistory2->Caption + "\n" + Social.Transactions[i];
  598.  
  599. }
  600. //---------------------------------------------------------------------------
  601.  
  602. void __fastcall TForm1::ButtonHistory3Click(TObject *Sender)
  603. {
  604.         LabelHistory3->Caption = "";
  605.         for(int i = 0; i < VIP.GetNumberOfTransactions(); ++i)
  606.                 LabelHistory3->Caption = LabelHistory3->Caption + "\n" + VIP.Transactions[i];
  607. }
  608. //---------------------------------------------------------------------------
  609.  
  610.  
  611.  
  612.  
  613. //---------------------------------------------------------------------------
  614.  
  615. #ifndef Unit1H
  616. #define Unit1H
  617. //---------------------------------------------------------------------------
  618. #include <Classes.hpp>
  619. #include <Controls.hpp>
  620. #include <StdCtrls.hpp>
  621. #include <Forms.hpp>
  622. //---------------------------------------------------------------------------
  623. class TForm1 : public TForm
  624. {
  625. __published:    // IDE-managed Components
  626.         TLabel *LabelAccStandart;
  627.         TLabel *LabelAmountOfMoney1;
  628.         TLabel *LabelWithdrawal1;
  629.         TLabel *LabelTransferCom1;
  630.         TLabel *LabelUtilitiesCom1;
  631.         TEdit *EditWithdrawalCom1;
  632.         TEdit *EditTransferCom1;
  633.         TEdit *EditUtilitiesCom1;
  634.         TEdit *EditAmountOfMoney1;
  635.         TButton *ButtonOK1;
  636.         TLabel *LabelAccSocial;
  637.         TLabel *LabelAmountOfMoney2;
  638.         TLabel *LabelWithdrawal2;
  639.         TLabel *LabelTransferCom2;
  640.         TLabel *LabelUtilitiesCom2;
  641.         TEdit *EditWithdrawalCom2;
  642.         TEdit *EditTransferCom2;
  643.         TEdit *EditUtilitiesCom2;
  644.         TEdit *EditAmountOfMoney2;
  645.         TButton *ButtonOK2;
  646.         TLabel *LabelPercents;
  647.         TEdit *EditPercents;
  648.         TLabel *LabelAccVIP;
  649.         TLabel *LabelAmountOfMoney3;
  650.         TLabel *LabelWithdrawal3;
  651.         TLabel *LabelTransferCom3;
  652.         TLabel *LabelUtilitiesCom3;
  653.         TEdit *EditAmountOfMoney3;
  654.         TEdit *EditWithdrawalCom3;
  655.         TEdit *EditTransferCom3;
  656.         TEdit *EditUtilitiesCom3;
  657.         TLabel *LabelSmallPercent;
  658.         TLabel *LabelBigPercent;
  659.         TLabel *LabelCreditLimit;
  660.         TLabel *LabelSumForBiggerPercent;
  661.         TEdit *EditSmallPercent;
  662.         TEdit *EditSumForBigPercent;
  663.         TEdit *EditCreditLimit;
  664.         TEdit *EditBigPercent;
  665.         TButton *ButtonOK3;
  666.         TButton *ButtonPay1;
  667.         TButton *ButtonTransfer1;
  668.         TButton *ButtonWithdrawal1;
  669.         TLabel *LabelSum1;
  670.         TEdit *EditWithdrawalSum1;
  671.         TEdit *EditTransferSum1;
  672.         TEdit *EditUtilitiesSum1;
  673.         TButton *ButtonPay2;
  674.         TButton *ButtonTransfer2;
  675.         TButton *ButtonWithdrawal2;
  676.         TButton *ButtonPercents;
  677.         TEdit *EditUtilitiesSum2;
  678.         TEdit *EditTransferSum2;
  679.         TEdit *EditWithdrawalSum2;
  680.         TLabel *LabelResult1;
  681.         TLabel *LabelSum2;
  682.         TLabel *LabelResultNum1;
  683.         TLabel *LabelResultNum2;
  684.         TLabel *LabelResult2;
  685.         TButton *ButtonPay3;
  686.         TButton *ButtonTransfer3;
  687.         TButton *ButtonWithdrawal3;
  688.         TEdit *EditUtilitiesSum3;
  689.         TEdit *EditTransferSum3;
  690.         TEdit *EditWithdrawalSum3;
  691.         TLabel *LabelSum3;
  692.         TLabel *LabelResultNum3;
  693.         TLabel *LabelResult3;
  694.         TButton *ButtonName;
  695.         TLabel *LabelName;
  696.         TButton *Button1;
  697.         TButton *Button2;
  698.         TButton *Button3;
  699.         TButton *ButtonHistory1;
  700.         TLabel *LabelHistory1;
  701.         TLabel *LabelHistory2;
  702.         TButton *ButtonHistory2;
  703.         TLabel *LabelHistory3;
  704.         TButton *ButtonHistory3;
  705.         void __fastcall ButtonOK1Click(TObject *Sender);
  706.         void __fastcall ButtonOK2Click(TObject *Sender);
  707.         void __fastcall ButtonOK3Click(TObject *Sender);
  708.         void __fastcall ButtonPay1Click(TObject *Sender);
  709.         void __fastcall ButtonTransfer1Click(TObject *Sender);
  710.         void __fastcall ButtonWithdrawal1Click(TObject *Sender);
  711.         void __fastcall ButtonPay2Click(TObject *Sender);
  712.         void __fastcall ButtonTransfer2Click(TObject *Sender);
  713.         void __fastcall ButtonWithdrawal2Click(TObject *Sender);
  714.         void __fastcall ButtonPercentsClick(TObject *Sender);
  715.         void __fastcall ButtonPay3Click(TObject *Sender);
  716.         void __fastcall ButtonTransfer3Click(TObject *Sender);
  717.         void __fastcall ButtonWithdrawal3Click(TObject *Sender);
  718.         void __fastcall ButtonNameClick(TObject *Sender);
  719.         void __fastcall Button1Click(TObject *Sender);
  720.         void __fastcall Button2Click(TObject *Sender);
  721.         void __fastcall Button3Click(TObject *Sender);
  722.         void __fastcall ButtonHistory1Click(TObject *Sender);
  723.         void __fastcall ButtonHistory2Click(TObject *Sender);
  724.         void __fastcall ButtonHistory3Click(TObject *Sender);
  725. private:    // User declarations
  726. public:     // User declarations
  727.         __fastcall TForm1(TComponent* Owner);
  728. };
  729.  
  730. class BankAccount
  731. {
  732.         protected:
  733.                 float amountOfMoney;
  734.                 float commissionForUtilitiesPayment;
  735.                 float commissionForMoneyTransfer;
  736.                 float commissionForCashWithdrawal;
  737.  
  738.                 int numberOfTransactions;
  739.         public:
  740.                 BankAccount();
  741.                 BankAccount(float amountOfMoney_, float commissionForUtiliesPayment_, float commissionForMoneyTransfer_, float commissionForCashWithdrawal_);
  742.                 ~BankAccount();
  743.                 AnsiString *Transactions;
  744.                 void SetAmountOfMoney(TEdit *Edit);
  745.                 void SetCommissionForUtilitiesPayment(TEdit *Edit);
  746.                 void SetCommissionForMoneyTransfer(TEdit *Edit);
  747.                 void SetCommissionForCashWithdrawal(TEdit *Edit);
  748.  
  749.                 float GetAmountOfMoney();
  750.                 float GetCommissionForUtilitiesPayment();
  751.                 float GetCommissionForMoneyTransfer();
  752.                 float GetCommissionForCashWithdrawal();
  753.                 int GetNumberOfTransactions();
  754.  
  755.                 bool UtilitiesPayment(double sum);
  756.                 bool MoneyTransfer(double sum);
  757.                 bool CashWithdrawal(double sum);
  758.  
  759.                 AnsiString print(int n);
  760.                 AnsiString print(){ return "BankAccount";};
  761.                 void addNewTransaction(AnsiString newTransaction);
  762. };
  763.  
  764. class SocialAcc : public BankAccount
  765. {
  766.         float percents;
  767.         float additionalSum;
  768.  
  769.         public:
  770.                 void SetPercents(TEdit *Edit);
  771.  
  772.                 float GetPercents();
  773.                 float GetAdditionalSum();
  774.  
  775.                 void CalculateAdditionalSum();
  776.  
  777.                 AnsiString print() { return "SocialAcc";};
  778. };
  779.  
  780. class VIPAcc : public BankAccount
  781. {
  782.         float creditLimit;
  783.         float smallPercentForUsingCredit;
  784.         float bigPercentForUsingCredit;
  785.         float sumForBiggerPercent;
  786.  
  787.         public:
  788.                 void SetCreditLimit(TEdit *Edit);
  789.                 void SetSmallPercent(TEdit *Edit);
  790.                 void SetBigPercent(TEdit *Edit);
  791.                 void SetSumForPercent(TEdit *Edit);
  792.  
  793.                 float GetCreditLimit();
  794.                 float GetSmallPercent();
  795.                 float GetBigPercent();
  796.                 float GetSumForBiggerPercent();
  797.  
  798.                 bool UtilitiesPaymentByCredit(double sum);
  799.                 bool MoneyTransferByCredit(double sum);
  800.                 bool CashWithdrawalByCredit(double sum);
  801.  
  802.                 AnsiString print(){ return "VIPAcc";};
  803. };
  804.  
  805. //---------------------------------------------------------------------------
  806. extern PACKAGE TForm1 *Form1;
  807. //---------------------------------------------------------------------------
  808. #endif
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top