How to create a window reference and use the reference on the window form

 

  1. Create a blank solution

 

  1. Add a class library.NET application

 

name the project addLib2

 

  1. Double click on addLib2
  2. change Class1 to add
  3. Enter the following codes.

// addLib2.h

 

#pragma once

 

using namespace System;

 

namespace addLib2

{

       public __gc class add

       {

       private:

              double num1;

              double num2;

       public:

              add();

              add(double n1, double n2);

              String *display();

              __property double get_n1()

              {

                     return num1;

              }

              __property double get_n2()

              {

                     return num2;

              }

       };

}

 

  1. double click on addLib2.cpp, enter the following codes.

// This is the main DLL file.

 

#include "stdafx.h"

 

#include "addLib2.h"

using namespace addLib2;

add::add()

{

       num1 =0;

       num2 = 0;

}

add::add(double n1, double n2)

{

       num1 = n1;

       num2 = n2;

}

String *add::display()

{     

       return String::Concat("the sum is ", (num1 + num2).ToString());

}

 

  1. Create a blank solution to use the addLib2 namespace.

 

  1. Add a window form application

 

  1. right click on the reference and add the reference

 

add the addLib2.dll to your project

 

10.

Add the label , textbox, button controls to the form.

 

 

  1. Double click on the sum button

Enter the codes below.

private: System::Void button1_Click(System::Object *  sender, System::EventArgs *  e)

               {

                     double n1 , n2;

                     n1 = Convert::ToDouble(this->textBox1->Text);

                     n2 = Convert::ToDouble(this->textBox2->Text);

                     add *a1 = new add(n1,n2);

                     this->ansLabel->Text= a1->display();

               }

 

1.

// convertTemp.h

 

#pragma once

 

using namespace System;

 

namespace convertTemp

{

       public __gc class convert

      {

              private:

                     double celcius;

                    

              public:

                    

                     convert();

                     convert(double c );

                     double cTof(double c);

                     __property double get_c()

                     {

                           return celcius;

                     }

                    

                     __property void set_c(double c)

                     {

                           celcius = c;

                     }

                    

       };

}

// This is the main DLL file.

 

#include "stdafx.h"

#include "convertTemp.h"

using namespace convertTemp;

convert::convert()

{

       celcius =0;

}

convert::convert(double c)

{

       celcius = c;

}

double convert::cTof(double c)

{

       return  (c * 9/5) +32;

}

  1. add the reference to your project

right click on reference and add convertTemp.dll

 

  1.  the application program

 

add the controls to your form

 

  1. double click on the button and enter the codes below

private: System::Void button1_Click(System::Object *  sender, System::EventArgs *  e)

                      {

                            double c,f;

                            c = Convert::ToDouble(this->textBox1->Text);

                convert *con = new convert(c);

                           this->ansLabel->Text = Convert::ToString(con->cTof(c));

                      }

 

   };

 

·       getcurrent project

 

private: System::Void button1_Click(System::Object *  sender, System::EventArgs *  e)

                      {

                          

                            this->label1->Text = Convert::ToString(System::DateTime::Now);

                                   

                      }

 

Create a program with 2 phrases

 

Phrase 1.  Create three files

#pragma once

#using <mscorlib.dll>

using namespace System;

public __value class fraction

{

public:

          fraction(void);

          fraction(int n, int d);

          void reduce();

          String *display();

          // overload the addition operator

           static fraction op_Addition(fraction f1, fraction f2);

           static fraction op_Subtraction(fraction f1, fraction f2);

           static fraction op_Multiply(fraction f1, fraction f2);

           static fraction op_Division(fraction f1, fraction f2);

           

           

         

private:

          int numerator;

          int denominator;

         

};

Fraction.cpp

#include "StdAfx.h"

#include ".\fraction.h"

#using <mscorlib.dll>

using namespace System;

fraction::fraction(void)

{

          numerator =0;

          denominator =1;

}

fraction::fraction(int n, int d)

{

          numerator = n;

          denominator = d;

}

 

String *fraction::display()

{

          return String::Concat(numerator.ToString(), S"/", denominator.ToString());

}

fraction fraction::op_Addition(fraction f1, fraction f2)

{

           

      if (f1.denominator == f2.denominator)

           

             return      fraction(f1.numerator + f2.numerator, f1.denominator );

           

           else

                    return fraction(f1.numerator * f2.denominator + f2.numerator * f1.denominator,f1.denominator * f2.denominator);

           

         

}

fraction fraction::op_Subtraction(fraction f1, fraction f2)

{

           

      if (f1.denominator == f2.denominator)

           

             return      fraction(f1.numerator - f2.numerator, f1.denominator );

           

           else

                    return fraction(f1.numerator * f2.denominator - f2.numerator * f1.denominator,f1.denominator * f2.denominator);

         

}

fraction fraction::op_Multiply(fraction f1, fraction f2)

{

          return fraction(f1.numerator * f2.numerator,f1.denominator* f2.denominator);

}

fraction fraction::op_Division(fraction f1, fraction f2)

{

          return fraction(f1.numerator * f2.denominator,f1.denominator* f2.numerator);

         

}

void fraction::reduce()

{

          int gcf = 1;

                   for (int i = 2; i <=(numerator < denominator? numerator:denominator);i++)

          {

                   if (numerator % i==0 && denominator %i==0)

                   {

                    gcf =i;

                   }

          }

          numerator /= gcf;

          denominator /= gcf;

         

}

  1. useFraction.cpp

// useFraction.cpp

// use fraction class

#include "stdafx.h"

#include "fraction.h"

#using <mscorlib.dll>

#using <system.windows.forms.dll>

using namespace System;

using namespace System::Windows::Forms;

 

int _tmain()

{

   fraction f1 =  fraction(3,4);

   fraction f2 =  fraction(1,2);

   fraction f7 = fraction(4,8);

   fraction f3,f4,f5,f6 ;

   String *output;

   f3 = f1 + f2;

          f3.reduce();  

          f4 = f1 - f2;

           f4.reduce();

           f5 = f1 * f2;

           f5.reduce();

           f6 = f1/f2;

           f6.reduce();

           f7.reduce();

          output = String::Concat(f3.display(), S"\n",f4.display(),S"\n",f5.display(), S"\n",f6.display(),S"\n",f7.display());

   MessageBox::Show(output,"CIT126");

          return 0;

}

 

 

Phrase 2 –

Create class library file.

fractionLibrary.h  

And fractionLibrary.cpp

Copy fraction.h codes into fractionLibrary.h

Copy fraction.cpp codes into fractionLibrary.cpp

a.            fractionLibrary.h

// fractionLibrary.h

 

#pragma once

 

using namespace System;

 

namespace fractionLibrary

{

          public __value class fraction

          {

          public:

                   fraction(void);

                   fraction(int, int);

                   //use of __property allows users to use the private variables

                   //in their own methods.

                   __property int get_Numerator()

                   {

                             return numerator;

                   }

                   __property void set_Numerator(int value)

                   {

                             numerator = value;

                   }

 

                   __property int get_Denominator()

                   {

                             return denominator;

                   }

                   __property void set_Denominator(int value)

                   {

                             denominator = value;

                   }

 

                   //operator overloading page 400

 

                   static fraction op_Addition(fraction, fraction);

                   static fraction op_Subtraction(fraction, fraction);

                   static fraction op_Multiply(fraction, fraction);

                   static fraction op_Division(fraction, fraction);

                   String *display(void);

                   void reduce();

                   //        ~fraction(void);

 

          private:

                   int numerator;

                   int denominator;

                  

          };

 

b.              fractionLibrary.cpp

// This is the main DLL file.

 

// This is the main DLL file.

 

#include "stdafx.h"

#include "fractionLibrary.h"

#using <mscorlib.dll>

using namespace System;

using namespace fractionLibrary;

 

fraction::fraction()

{

          Numerator = 0;

          Denominator = 1;

}

 

fraction::fraction(int n, int d)

{

          Numerator = n;

          Denominator = d;

}

 

fraction fraction::op_Addition(fraction f1, fraction f2)

{

          if (f1.Denominator == f2.Denominator)

                   return fraction(f1.Numerator + f2.Numerator, f1.Denominator);

          else

                   return fraction(f1.Numerator * f2.Denominator + f2.Numerator * f1.Denominator, f1.Denominator * f2.Denominator);

}

 

fraction fraction ::op_Subtraction(fraction f1, fraction f2)

{

          if (f1.Denominator == f2.Denominator)

                   return fraction(f1.Numerator - f2.Numerator, f1.Denominator);

          else

                   return fraction(f1.Numerator * f2.Denominator - f2.Numerator * f1.Denominator, f1.Denominator * f2.Denominator);

}

fraction fraction::op_Multiply(fraction f1, fraction f2)

{

          return fraction(f1.Numerator * f2.Numerator, f1.Denominator * f2.Denominator);

}

 

fraction fraction::op_Division(fraction f1, fraction f2)

{

          return fraction(f1.Numerator * f2.Denominator, f1.Denominator * f2.Numerator);

}

 

String *fraction::display()

{

          return String::Concat(S"The fraction is ",Numerator.ToString(), S" / ", Denominator.ToString(), S"\n\n");

}

 

void fraction::reduce()

{

          int gcf = 1;

                   for (int i = 2; i <=(Numerator < Denominator? Numerator:Denominator);i++)

          {

                   if (Numerator % i==0 && Denominator %i==0)

                   {

                             gcf = i;

                   }

          }

                   Numerator /= gcf;

                   Denominator /= gcf;

         

         

}

useFraction3.cpp

 

 

Put the codes in the initialization

public:

        Form1(void)

                   {

                             InitializeComponent();

                             int n1,n2,d1,d2;

Random *r = new Random();

                             n1 = r->Next(1,11);

                             n2 = r->Next(1,11);

                             d1 = r->Next(1,11);

                             d2=  r->Next(1,11);

                             this->textBoxN1->Text = Convert::ToString(n1);

                             this->textBoxD1->Text = Convert::ToString(d1);

                             this->textBoxN2->Text = Convert::ToString(n2);

                             this->textBoxD2->Text = Convert::ToString(d2);

                            

                                      }

 

Put this codes in the add button click event

buttonAdd_Click(System::Object *  sender, System::EventArgs *  e)

                              {

                                       int n1,n2,d1,d2;

                                       n1 = Convert::ToInt32(this->textBoxN1->Text);

                             n2 = Convert::ToInt32(this->textBoxN2->Text);

                             d1 = Convert::ToInt32(this->textBoxD1->Text);

                             d2 = Convert::ToInt32(this->textBoxD1->Text);

                            

                                       fraction f1 = fraction(n1,d1);

                                       fraction f2 = fraction(n2,d2);

                                       fraction f3;

                 f3 = f1 + f2;

                                       f3.reduce();

                                       this->labelN->Text = (f3.Numerator).ToString();

                                       this->labelD->Text =(f3.Denominator).ToString();

                                     

                              }

Put this codes in the doAgain button click event

button1_Click(System::Object *  sender, System::EventArgs *  e)

                    {

                               int n1,n2,d1,d2;

                                       Random *r = new Random();

                                       n1 = r->Next(1,11);

                                      n2 = r->Next(1,11);

                                      d1 = r->Next(1,11);

                                      d2 = r->Next(1,11);

                                      this->textBoxN1->Text = Convert::ToString(n1);

                             this->textBoxD1->Text = Convert::ToString(d1);

                             this->textBoxN2->Text = Convert::ToString(n2);

                             this->textBoxD2->Text = Convert::ToString(d2);

                            

 

                    }