Language Bar

Monday, November 14, 2011

CS201 Assignment No 2 Solution


Assignment No. 02
Semester: Fall 2011
CS201: Introduction to Programming
Total Marks: 20

Due Date:21/11/2011

Instructions:

Please read the following instructions carefully before submitting assignment. It should be clear that your assignment will not get any credit if:
§         The assignment is submitted after due date.
§         The submitted assignment does not open or file is corrupt.
§         Assignment is copied(partial or full) from any source (websites, forums, students, etc)

Note: You have to upload only .cpp file. Assignment in any other format (extension) will not be accepted and will be awarded with zero marks. For example, if you submit code in .doc (Word document) or .txt files, no reward will be given in any case.


Objectives:

The objective of this assignment is to provide hands on experience of:

§         Functions
§         Arrays Manipulation
§         Pointers with Arrays


Guidelines:

§         Code should be properly indented and well commented.
§         Follow C/C++ rules while writing variable names, function names etc
§         Use only dev-C++ for this assignment.
§         Use appropriate C/C++ structure i.e. if-else; switch statement etc to get inputs from user where required (Marks will be deducted if inappropriate structure will be used).









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 year 2000 till 2009. Income must be taken in million. Implementation of  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 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 previous year. For example, to calculate income increase or decrease for 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 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");
        }
      






              



         

4 comments:

  1. This code is not working

    ReplyDelete
  2. Heya і'm for the first time here. I found this board and I find It really useful & it helped me out a lot. I hope to give something back and help others like you helped me.

    Look at my homepage; http://www.bornhigh.com/user.php?login=donzjsbil

    ReplyDelete
  3. I do believe all thе idеas уou've introduced to your post. They're really сonvincing and can dеfinitely worκ.
    Ѕtill, the ρosts are very short foг bеginnerѕ.
    Μay you please extеnd them a bit from
    nеxt time? Thank yοu for the рost.


    Alѕo visit my blog :: anti aging veloura

    ReplyDelete
  4. Ηі thеre, just became aware of yοuг blοg through Googlе, anԁ fоund
    that it's truly informative. I am gonna watch out for brussels. I'll be gгateful if
    you continue this in future. Numerouѕ ρeople will be benefited
    fгom yоur writіng. Cheeгs!


    Fеel free to visit my pagе: Best supplement for Energy boost

    ReplyDelete

Amazon

Disqus

comments powered by Disqus

CONTACT US FORM