Complex Numbers C# Sharp Exercise

Exercise

Complex Numbers

Objetive

A complex number has two parts: the real part and the imaginary part. In a number such as a+bi (2-3i, for example) the real part would be "a" (2) and the imaginary part would be "b" (-3).

Create a class ComplexNumber with:
A constructor to set the values for the real part and the imaginary part.
Setters and getters for both.
A method "ToString", which would return "(2,-3)"
A method "GetMagnitude" to return the magnitude of the complex number (square root of a2+b2)
A method "Add", to sum two complex numbers (the real part will be the sum of both real parts, and the imaginary part will be the sum of both imaginary parts)
Create a test program, to try these capabilities.

Example Code

using System;
class ComplexNumber
{
    protected double a, b;

    public ComplexNumber(double realPart, double imaginaryPart)
    {
        a = realPart;
        b = imaginaryPart;
    }


    public double GetReal()
    {
        return a;
    }


    public void SetReal(double a)
    {
        this.a = a;
    }


    public double GetImaginary()
    {
        return b;
    }


    public void SetImaginary(double b)
    {
        this.b = b;
    }


    public new string ToString()
    {
        return "(" + a + "," + b + ")";
    }


    public double GetMagnitude()
    {
        return Math.Sqrt((a * a) + (b * b));
    }


    public void Add(ComplexNumber c2)
    {
        a += c2.GetReal();
        b += c2.GetImaginary();
    }

}

class ComplexTest
{
    static void Main()
    {
        bool debug = false;

        ComplexNumber number = new ComplexNumber(5, 2);
        Console.WriteLine("Number is: " + number.ToString());

        number.SetImaginary(-3);
        Console.WriteLine("Number is: " + number.ToString());

        Console.Write("Magnitude is: ");
        Console.WriteLine(number.GetMagnitude());

        ComplexNumber number2 = new ComplexNumber(-1, 1);
        number.Add(number2);
        Console.Write("After adding: ");
        Console.WriteLine(number.ToString());

        if (debug)
            Console.ReadLine();
    }
}

More C# Sharp Exercises of OOP More On Classes

Array Of Objects: Table
Create a class named "Table". It must have a constructor, indicating the width and height of the board. It will have a method "ShowData" which will wr...
House
Create a class "House", with an attribute "area", a constructor that sets its value and a method "ShowData" to display "I am a house, my area is 200 m...
Table + Coffetable + Array
Create a project named "Tables2", based on the "Tables" project. In it, create a class "CoffeeTable" that inherits from "Table". Its method "ShowDa...
Encrypter
Create a class "Encrypter" to encrypt and decrypt text. It will have a "Encrypt" method, which will receive a string and return another string. It ...
Table + Coffetable + Leg
Extend the example of the tables and the coffee tables, to add a class "Leg" with a method "ShowData", which will write "I am a leg" and then it will ...
Catalog
Create the classes diagram and then, using Visual Studio, a project and the corresponding classes for a catalog utility: It will be able to store i...
Random Number
Create a class RandomNumber, with three static methods: - GetFloat will return a number between 0 and 1 using the following algorithm: seed = (s...
Text To HTML
Create a class "TextToHTML", which must be able to convert several texts entered by the user into a HTML sequence, like this one: Hola Soy yo Ya ...
Class Screentext
Create a class ScreenText, to display a certain text in specified screen coordinates. It must have a constructor which will receive X, Y and the strin...
Enhanced Complexnumber Class
Improve the "ComplexNumber" class, so that it overloads the operators + and - to add and subtract numbers....
3D Point
Create a class "Point3D", to represent a point in 3-D space, with coordinates X, Y and Z. It must contain the following methods: MoveTo, which will...
Catalog + Menu
Improve the Catalog program, so that "Main" displays a menu to allow entering new data of any kind, as well as displaying all the data stored....