Write a C program that displays characteristics of a number
Write a C++ program that displays characteristics of a number depending on whether it is a real or a complex number.
 1.The user is asked if he wants the characteristics of a real number (choice 1) or a complex number (choice 2).
 2. The following applies to CHOICE 1:
 a. Obtain a real number (whole number) from the user.
 b. Display the following characteristics:
 i. Integer Part
 ii. Fractional Part
 iii. Round: Rounding value to the next integer if the fractional part is > 0.5 else it is approximated to the integer part of the number.
 iv. Floor
 v. Ceil
 2. The following applies to CHOICE 2:
 a. Obtain the real part of the complex number and the imaginary part of the complex number from the user. (Ex: X + Yj => X is the real part and Y is the complex part)
 b. Display the following characteristics:
 i. Real Part
 ii. Imaginary Part
 iii. Complex conjugate: Complex conjugate is obtained by reversing the sign of the complex part entered by the user. For ex: If X + Yj is the complex conjugate of X – Yj)
 iv. Magnitude of the complex number: Formula: sqrt (X2 + Y2 )
 v. Phase of the complex number, in degrees: Formula = atan (Y/X) * (180/PI)
 Note: atan is a pre-defined function in cmath and PI is a const defined in cmath
 Requirements:
 1. You are not required to check for wrong inputs from the user. Assume right values for Choices 1 and 2.
 2. You are required to use functions (user-defined functions) for the following operations:
 a. Round for choice 1
 b. Magnitude for choice 2
 c. Phase for choice 2
 3. You are required to use pre-defined (library) functions for the following operations:
 a. Floor for Choice 1
 b. Ceil for Choice 1
 4. For the remaining characteristics, using functions is optional.
 5. Be careful about dividing by zero for a pure-complex number (X=0) while computing the phase of the complex number. In this case, you can set the Phase of the complex number (in degrees) to 90.
 A sample run of your program should look like: (BOLD RED implies User’s input and Blue NOT BOLD implies screen output)
 Run 1:
 Enter 1 to obtain the characteristics of a real number and 2 for a complex number:
 1
 To obtain the characteristics of a real number, please enter a whole number:
 4.5
 The characteristics of 4.5 are as follows:
 Number Integer Fraction Round Floor Ceil
 4.5 4 0.5 5 4 5
 Run 2:
 Enter 1 to obtain the characteristics of a real number and 2 for a complex number:
 2
 To obtain the characteristics of a complex number, please enter the integer and imaginary part of the number:
 -3 4
 The characteristics of 3 + 4j are as follows:
 Number Real Imaginary Conjugate Magnitude-Phase (degrees)
 -3 + 4j -3 4 -3 - 4j 5 -53.13
Solution
/**
 C++ program that prompts user to enter the user choice for characteristics
 of real number and complex number.
 */
 //test.cpp
 #include<iostream>
 #include<cmath>
 #include<iomanip>
 using namespace std;
 //function prototypes
 int round(double x);
 double maginitude(double r, double i);
 double phase(double r, double i);
 //PI constant
 const double PI=3.1417;
 //main function
 int main()
 {
   int userChoice;
    cout<<\"\ \ Enter 1 to obtain the characteristics of a real number and 2 for a complex number:\";
    cin>>userChoice;
    //for userchoice is 1
    if(userChoice==1)
    {
        float real;
        cout<<\"To obtain the characteristics of a real number, please enter a whole number:\";
        cin>>real;
       cout<<\" The characteristics of \"<<real<<\" are as follows\ :\";
        cout<<\" Number Integer Fraction Round Floor Ceil\ \";
        double fractpart, intpart;
      
        fractpart = modf (real , &intpart);
        cout<<real<<\"\\t\"<<intpart<<\"\\t\"<<fractpart<<\"\\t\"
             <<round(real)<<\"\\t\"<<floor(real)<<\"\\t\"<<round(real);
     }
    //for choice =2
    else if(userChoice==2)
    {
        int realNum;
        int imgNum;
        cout<<\"To obtain the characteristics of a complex number, please enter the integer and imaginary part of the number:\";
        cin>>realNum>>imgNum;
cout<<\" The characteristics of \"<<realNum<<\" + \"<<imgNum<<\"j are as follows:\";
       cout<<realNum<<\"+\"<<imgNum<<\"j \";
        cout<<realNum<<\"\\t\"<<imgNum<<\" \";
       if(imgNum>0)
        {
            imgNum=(-1)*imgNum;      
            cout<<realNum<<\"-\"<<imgNum<<\"j\"<<\" \"<<maginitude(realNum,imgNum);
        }
        else
            cout<<realNum<<\"-\"<<imgNum<<\"j\"<<\" \"<<maginitude(realNum,imgNum);
       cout<<fixed<<setprecision(2)<<phase(realNum,imgNum);
     }
    system(\"pause\");
    return 0;
 }
//Return round value
 int round(double x)
 {
    return ceil(x);
 }
 //returns the magnitude of the complex number
 double maginitude(double r, double i)
 {
    return sqrt(r*r+i*i);
 }
 //Returns the phase of the complex number
 double phase(double r, double i)
 {
    return atan (i/r) * (180/PI);
 }
------------------------------------------------------------------------------
Sample output:
Enter 1 to obtain the characteristics of a real number and 2 for a complex numbe
 r:1
 To obtain the characteristics of a real number, please enter a whole number:4.5
 The characteristics of 4.5 are as follows
 : Number Integer Fraction Round Floor Ceil
 4.5     4       0.5     5       4       5
Run2:
Enter 1 to obtain the characteristics of a real number and 2 for a complex numbe
 r:2
 To obtain the characteristics of a complex number, please enter the integer and
 imaginary part of the number:-3
 4
 The characteristics of -3 + 4j are as follows:-3+4j -3 4 -3--4j 5 53.13



