Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
2050Przykładowyprojektkalkulatorprocentuskładanego
57
WC++istniejąbardziejzaawansowanemechanizmyradzeniasobiezbłędaminiżzwracanie
kodubłędu.oneomówionewpodrozdziale3.13.2.5.
Tenproceswyświetlania,definiowaniazmiennych,czekaniaisprawdzaniapoprawności
danychwprowadzonychprzezużytkownikajestpowtarzanykilkarazy.Pokazujetoponiższy
kod,którywtymmomenciepowinienjużbyćjasny:
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
//---
---
---
---
---
---
---
---
---
---
---
---
---
---
-
cout<<"Entertheannualrate[%per12months]:"<<endl;
doubler{};
cin>>r;
if(r<:o.o||r>:1oo.o)//operator||oznaczalogiczneLUB
{
cout<<"Wrongvalue,exiting..."<<endl;
return-1;
}
//---
---
---
---
---
---
---
---
---
---
---
---
---
---
-
cout<<"Compoundfrequencyisaperiodinmonthsbetweencomputinginterest"<<endl;
cout<<"(e.g.if2timesayear,enter6)"<<endl;
cout<<"Ifyoudonitknow,enter12forayearlycompoundfrequency."<<endl;
cout<<"Enterthecompoundfrequency[months1-72]:"<<endl;
doublet{};
cin>>t;
if(t<:o.o||t>72.o)
{
cout<<"Wrongvalue,exiting..."<<endl;
return-1;
}
//---
---
---
---
---
---
---
---
---
---
---
---
---
---
---
---
---
cout<<"Entertheinvestmenttime[months1-100]:"<<endl;
doublem{};
cin>>m;
if(m<:o.o||m>:1oo)
{
cout<<"Wrongvalue,exiting..."<<endl;
return-1;
}
Wczytawszywszystkiedane,zaczynamynaszeobliczeniaidefiniujemydwiestałewwier-
szach-odpowiednio-[58]i[59].Ichnazwyniosąinformacjęoichroli.Dodaniesłowaklu-
czowegoconstprzeddoublesprawia,żeobiektjesttylkodoodczytu.Pominięciewtym
miejscuconstniezmieniłobyobliczeń,alemogłobyzaszkodzićodpornościkodunaewentualne
błędy.Takwięcjeśliwartośćpowinnapozostaćstała,powinniśmyzadeklarowaćjakoconst.
55
56
57
58
59
60
61
//---
---
---
---
---
---
---
---
---
---
//Wykonajobliczenia
constdoublekMontsPerYear
:12.o;
constdoublekPercentageDiv
:1oo.o;
doublei:m/t;
//Okresykapitalizacji