CS201 Assignment No 2 Solution



Assignment No. 02
Semester: Fall 2011


CS201: Introduction to Programming


Total Marks: 20

Due Date:21/11/2011



Problem Statement:


Write a program which calculates the increase or decrease in the annual income of a company for each year.
Detailed Description:

The program should start by asking the user to enter the company’s annual income for each year starting from the year 2000 till 2009. Income must be taken in million. Implementation of the following user-defined functions are mandatory for this program: A function GetAnnualIncome(), which will take and store the income for each year in an input array. The input entered by the user should be integer only. The input array should be passed as argument to the function. While taking the input, if annual income entered by the user is a negative value, the program should prompt the user to enter the income again for that year.
A function CalcIncChange(), which will take two arrays as its arguments. This function will calculate the increase or decrease in the annual income of the company for each year by subtracting the current year income from the income of the previous year. For example, to calculate income increase or decrease for the year 2001, the following formula can be used:
Income increase or decrease for year 2001 = Income of Year 2001 – Income of Year 2000
Income of year 1999 = 1000 million

The increase or decrease in the income for each year will be stored in another array. Calculated increase or decrease in the income for each year should also be displayed on the screen.
A function CalcChangePercent(), will calculate the percentage of income increase or decrease for each year and then will display this calculated percentage on the screen. The function will take array as its argument and calculates the percentage for each year using the formula given below:
Income increase or decrease in percentage for year 2001 = (Income increase or decrease for year 2001 / Income of Year 2000) * 100
After calculating the percentage for each year, it should be displayed on the screen as well.

A function IncDecYears(), will be used to display the years in which the company income increased and years in which company income decreased.
A function MaxIncDecYears(), will take a pointer to an array and by using pointer arithmetic displays only those two years in which the company faced a maximum increase and maximum decrease in its income.
Sample Output:

The sample output of program is given below:


                    






---------------------------------------------------------------


SOLUTION


#include<iostream.h>

#include<conio.h>


void GetAnnualIncome(int[],int);

void CalcIncChange(int[], double[],int);

void CalcChangePercent(int[], double[], float[], int);

void IncDecYears(double[], int);

void MaxIncDecYears(int,int);


main()

{

int anlIncm[10];

double chngInc[10];

float chngIncPer[10];


cout<<"\n\n .... ABC Company Income Sheet ....\n"<<endl;

cout<<"Enter Income for Past 10 Years (in Millions)\n"<<endl;

GetAnnualIncome(anlIncm,10);

CalcIncChange(anlIncm, chngInc, 10);

CalcChangePercent(anlIncm, chngInc,chngIncPer, 10);

IncDecYears(chngInc, 10);

cout<<endl<<endl;

system("pause");

}


void GetAnnualIncome(int inc[],int size)

{

int var;

for(int i=0;i<size;i++)

{

cout<<"Income for Year "<<2000+i<<" : ";

cin>>var;

if(var < 0)

{

i--;

}

else if(var >=0 )

{

inc[i] = var;

}

}

}


void CalcIncChange(int inc[], double chg[],int size)

{

cout<<"\n\n";


chg[0] = inc[0] -1000;

for(int i=1;i<size;i++)

{

chg[i] = inc [i] - inc[i-1];

}

for(int i=0;i<size;i++)

{

if (chg[i] >= 0)

{

cout<<"Income Increase in Year "<<2000+i<<" : "<<chg[i]<<"million"<<endl;

}

else if (chg[i] < 0)

{

cout<<"Income Decrease in Year "<<2000+i<<" : "<<chg[i]*-1<<"million"<<endl;

}

}

}

void CalcChangePercent(int inc[], double chg[], float per[], int size)

{


cout<<"\n\n";

per[0] = (chg[0]*100 / 1000);

for(int i=1;i<size;i++)

{

per[i] = (chg [i]*100 / inc[i-1]);

}

for(int i=0;i<size;i++)

{

if (per[i] >= 0)

{

cout<<"Income Increase in Year "<<2000+i<<": "<<per[i]<<"%"<<endl;

}

else if (per[i] < 0)

{

cout<<"Income Decrease in Year "<<2000+i<<": "<<per[i]*-1<<"%"<<endl;

}

}

}



void IncDecYears(double chg[], int size)

{

int max, min;

cout<<"\n\nIncome Increased in the following years: "<<endl;

for(int i=0;i<size;i++)

{

max=min=0;

if (chg[i] >= 0)

{


if(chg[max] < chg[i])

{

max = i;

}

cout<<2000+i<<", ";

}

}

cout<<"\n\nIncome Decreased in the following years: "<<endl;

for(int i=0;i<size;i++)

{

if (chg[i] < 0)

{

if(chg[min] > chg[i])

{

min = i;

}

cout<<2000+i<<", ";

}

}

MaxIncDecYears(max+2000,min+2000);

}

void MaxIncDecYears(int max,int min)

{

cout<<"\n\nYear with maximium income Increase: "<<max<<endl;

cout<<"Year with maximium income Decrease: "<<min<<endl;

system("pause");

}


No comments:

Post a Comment