473,326 Members | 2,124 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,326 software developers and data experts.

Trying to figure a Banking Program

I'm working on a program that will compute interest on a savings
account. The interest is compounded monthly for 30 years, and a
desposit is made on the account at the beginning of each year. My
problem is that my C++ skills are pretty limited, and this needs to be
done within a few days. I've figured out a basic structure, but need
help understanding what is and what is not working. Here's what I've
got so far:

#include <iostream>
using namespace std;

int main()
{
double I, P, R;
int i, x;

P=2000.00;
R=00.06;

{
for (i=0; i<30; i++)
{
for (x=0; x<12; x++)
I=P+P*R;

cout<< i << " "<< I<<endl;
i++2000.00;
}
}
return 0;
}

I know that I have to use a nested loop at some point, but I'm not sure
if I set it up correctly. I also realize that this is pretty barebones
in terms of actual programming, as I'm not an expert and trying to keep
this as simple for myself as possible. Any advice would be extremely
helpful and appreciated.

Feb 11 '06 #1
2 3053
<ja*******@hotmail.com> wrote:
I'm working on a program that will compute interest on a savings
account. The interest is compounded monthly for 30 years, and a
desposit is made on the account at the beginning of each year. My
problem is that my C++ skills are pretty limited, and this needs to be
done within a few days. I've figured out a basic structure, but need
help understanding what is and what is not working. Here's what I've
got so far:

#include <iostream>
using namespace std;

int main()
{
double I, P, R;
int i, x;

P=2000.00;
R=00.06;

{
for (i=0; i<30; i++)
{
for (x=0; x<12; x++)
I=P+P*R;

cout<< i << " "<< I<<endl;
i++2000.00;
}
}
return 0;
}

I know that I have to use a nested loop at some point, but I'm not sure
if I set it up correctly. I also realize that this is pretty barebones
in terms of actual programming, as I'm not an expert and trying to keep
this as simple for myself as possible. Any advice would be extremely
helpful and appreciated.


Nothing leaps out at me as being terribly wrong with what you have. But
since the indentation got lost somewhere it's a bit hard to look at. I am a
great believer in using a lot of functions, even for trivial things. I
would write two functions, one to credit the interest every month and
another to add to the principal every year. main would just manage the
process. Note that many nested loops disappear, as if by magic, when this
is done. Using a pidgin pseudocode main would be something like::

for(int year =0; year<30; year++)
do_something
for(int month =0; month<12; month++)
do_something else
Feb 11 '06 #2

<ja*******@hotmail.com> wrote in message
news:11**********************@g14g2000cwa.googlegr oups.com...
I'm working on a program that will compute interest on a savings
account. The interest is compounded monthly for 30 years, and a
desposit is made on the account at the beginning of each year. My
problem is that my C++ skills are pretty limited, and this needs to be
done within a few days. I've figured out a basic structure, but need
help understanding what is and what is not working. Here's what I've
got so far:

#include <iostream>
using namespace std;

int main()
{
double I, P, R;
int i, x;

P=2000.00;
R=00.06;

{
for (i=0; i<30; i++)
{
for (x=0; x<12; x++)
I=P+P*R;

cout<< i << " "<< I<<endl;
i++2000.00;


i++2000.00; does not compile for me.

Did you mean i+= 2000.00; and if so, why are you tring to add 2000.00; to
your for counter? Did you mean I? So I += 2000.00; ? And if so, why would
you add 2000.00 to your interest?

If this 2000.00 is deposited every year, isnt' it the Principal that
increases? So wouldn't it be
P += 2000.00;
?

But, your Interest, I you are already adding the princpal into I see.
Okay...

I = P + P*R;
That makes your Interest equal to Your Principal plus your prinicpal times
rate. Wrong. Your PRINCIPAL becomes your Principal + Interest, which is
Principal * Rate. So a few things gotta be fixed.

#include <iostream>

double Dollars( const double& Amount )
{
return ( static_cast<float>( static_cast<int>( Amount * 100.00 ) ) /
100.00 );
}

int main()
{
double I, P, R;
int y, m;
P = 0.0;
R = 00.06 / 12.00;
for (y = 0; y < 30; y++)
{
std::cout <<"Principal:" << P << " *** Deposit ***:" << 2000.00 << "
New Balance:" << P + 2000.00 << std::endl;
P += 2000.00;
for (m = 0; m < 12; m++)
{
I = Dollars( P * R );
std::cout << "Year:" << y + 1 << " Month:" << m + 1 << "
Principal:" << P << " Interest:" << I << " New Balance:" << P + I <<
std::endl;
P += I;
}
std::string wait;
std::getline( std::cin, wait );
}
std::string wait;
std::getline( std::cin, wait );
return 0;
}

Notice I changed i and x to y and m for Year and Month. Myself, I would go
ahead and use Year and Month as the counters themselves. Gets rid of the
type of confusion you had. Also, I doubt highly if the bank is going to
give you 6% monthy interest. That's 72% yearly interest not even
compounded. So each month one way to calculate it is to simply divide the
yearly rate by 12. Like I said, one way, different loans, even "simple
interest" are calculated different ways sometimes. This one is just common.
So, your monthly interest is 6% divided by 12 months, or 00.06 / 12.

Also, I gave a few more columns so you could see what was going on.

Also, I included a Dollars function. The reason being, the bank doesn't
give you half pennies, it drops them.

Also, changed the payments to the beginning of the year, not the end. Why?
Because otherwise you have 31 payments of 2000 instead of 31 (one at the
very end of the term).

I tested this and it looks somewhat right. The last line I see is:

Year:30 Month:12 Principal:172045 Interest:860.22 New Balance:172905
Feb 12 '06 #3

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
by: Gill Bates | last post by:
I'm trying to login to a banking site (https://www.providentconnection.com) using vb.net. I've tried many variations of WebClient and HttpWebRequest; none of which I've got to work. My latest...
13
by: ashu | last post by:
hi to all, Please read the following ques. first. assume that a bank maintains 2 kinds of accounts for customers one called as savings accounts & other as current account. the savings account...
3
by: mazubair | last post by:
I am going to develop a Banking Solution for very small branches of a Bank. The branches are standalone and no remote transactions will be made i.e. only the individual branch will be under...
0
by: jason1551 | last post by:
I'm working on a program that will compute interest on a savings account. The interest is compounded monthly for 30 years, and a desposit is made on the account at the beginning of each year. My...
11
by: cj | last post by:
Lets assume all calculations are done with decimal data types so things are as precise as possible. When it comes to the final rounding to cut a check to pay dividends for example in VB rounding...
5
by: Jervin | last post by:
Project Requirements The key elements of the project are that the project: • Needs a database support. • Have rather well defined functions with certain degree of complexity. ...
2
by: techgirl | last post by:
Hi All- I was wondering if anyone could help me with this issue. I am trying to run this 3rd party application called "CoreFTP.exe" from within C#. I have tested my code with "Notepad.exe" and...
8
lifeisgreat20009
by: lifeisgreat20009 | last post by:
What might be the possible cause ? I have created a website using struts framework, jsp In my transaction page the money is not getting transferred.. When I hit the submit button in my...
1
by: zacharyrs | last post by:
So I've made easy math programs with C before, but my task at hand is a bit complex for where my knowledge is at the moment. I need to take the calculator found here (calculator:...
0
by: DolphinDB | last post by:
Tired of spending countless mintues downsampling your data? Look no further! In this article, you’ll learn how to efficiently downsample 6.48 billion high-frequency records to 61 million...
0
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
0
by: Vimpel783 | last post by:
Hello! Guys, I found this code on the Internet, but I need to modify it a little. It works well, the problem is this: Data is sent from only one cell, in this case B5, but it is necessary that data...
0
by: jfyes | last post by:
As a hardware engineer, after seeing that CEIWEI recently released a new tool for Modbus RTU Over TCP/UDP filtering and monitoring, I actively went to its official website to take a look. It turned...
0
by: ArrayDB | last post by:
The error message I've encountered is; ERROR:root:Error generating model response: exception: access violation writing 0x0000000000005140, which seems to be indicative of an access violation...
1
by: PapaRatzi | last post by:
Hello, I am teaching myself MS Access forms design and Visual Basic. I've created a table to capture a list of Top 30 singles and forms to capture new entries. The final step is a form (unbound)...
1
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
1
by: Defcon1945 | last post by:
I'm trying to learn Python using Pycharm but import shutil doesn't work
1
by: Shællîpôpï 09 | last post by:
If u are using a keypad phone, how do u turn on JavaScript, to access features like WhatsApp, Facebook, Instagram....

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.