Question: Read the following program project.cpp carefully. Complete the missing code as indicated by the comments. Then compile, debug and test your program using the command


Read the following program project.cpp carefully. Complete the missing code as indicated by the comments. Then compile, debug and test your program using the command lines below before your submission: CH -o project project.cpp Center> /projectl n mk Center> Where n is the size of the stack, m is the modular of the real part and imagination part of a random complex number, and k is the number of elements displayed per line. In the main function, you need to 1 Get the values n, m, and k from the command line 2 Declare a complex number stack of size n, generate n random complex numbers and push them into the stack. Meantime display all these numbers, k numbers per line. 3. Display all elements of the stack, k elements per line. 4. Create two random complex numbers cl and c2, display cl, c2 and the results of the addition cl+c2, the subtraction cl-c2, the multiplication cl*c2, and the division c/c2. // Student Name // Student ID // project1.cpp #include #include #include cetime using namespace std; class Complex float re; float im // complex number class // real part // imagination part public: Complex(float r=0.0. float i=0.0){re=r; im=i:) Complex(const Complex& c){re=c.re; im c.im;) void operator =(const Complex& c){re=c.re; im-c.im;) Complex operator -Oconst { return Complex(-re, -im):) Complex operator +(const Complex&) const; Complex operator -(const Complex&) const; Complex operator (const Complex&) const: Complex operator (const Complex&) const; friend ostream& operator class my Stack T *ptr: int size; int top: // storage body // storage size // top position public: myStack(int); -myStackO{free(ptr):) bool emptyO{return top-1:) bool full({retum top=size-1;} int hold({return top+1:} void push(Tv){ptr[+topl-v;) T pop({retum ptr[top--):) void display(int): // constructor // destructor // empty or not // full or not // number of items hold // put an item on top // take an item from top // display items // constructor that creates an empty stack, to be implemented template myStack:myStack(ints)) // display function, k items per line, to be implemented template void myStack::display(int k) // Operator Overloading and Stack Template Program int main(int argc, char **argv){ // get n, m, and k from command line and create a complex number stack s(n) // generate n number of random complex numbers and push them onto the stack, // meantime display these complex numbers, k items per line // display all complex numbers in the stack, k elements per line // create two random complex numbers cl and c2, display c1, c2 // display the results of the addition cl+c2, the subtraction cl-c2, the multiplication cl*c2, and the division cl/c2. return 0; }