Thursday, May 30, 2013

Miscellaneous : Copy Constructor - C++ [ I ]





Example :  For Converting Degree to Radian and vice-versa

 #include<iostream.h>

       class radian
      {
           private:
               float r1;
           public:
               radian()
                    {
                         r1=0.0;
                    }
               radian(float r2)
                    {
                         r1=r2;
                    }
               float getrad()
                    {
                         return r1;
                    }
               void input()
                    {
                         cout<<"\n\n\tEnter Radian : ";
                         cin>>r1;
                    }
               void disp()
                    {
                         cout<<"\n\t Radian = "<<getrad();
                    }
      };

  class degree
      {
           private:
               float d1;
           public:
               degree()
                    {
                         d1=0.0;
                    }
               degree(radian r1)
                    {
                         d1=(180.0/((22/7.0))*r1.getrad());
                    }
               operator radian()
                    {
                         return (radian((d1*22/7.0)/180.0));
                    }
               void input()
                    {
                         cout<<"\n\tEnter Degree:";
                         cin>>d1;
                    }
               void disp()
                    {
                         cout<<"\n\tDegree = "<<d1;
                    }
      };

  void main()
      {
           clrscr();
           degree d1,d2;
           radian r1,r2;
           d1.input();
           r1=d1;
           r1.disp();
           r2.input();
           d2=r2;
           d2.disp();
           getch();
      }



Example :  For Converting Rupee to Dollar and vice-versa

 #include<iostream.h>

  class rupees
      {
           private:
               float r1;
           public:
               rupees()
                    {
                         r1=0.0;
                    }
               rupees(float r2)
                    {
                         r1=r2;
                    }
               float getrupees()
                    {
                         return r1;
                    }
               void input()
                    {
                         cout<<"\n\n\tEnter the Rupees : ";
                         cin>>r1;
                    }
               void disp()
                    {
                         cout<<"\n\tRupees = "<<getrupees();
                    }
      };

  class dollars
      {
           private:
               float d1;
           public:
               dollars()
                    {
                         d1=0.0;
                    }
               dollars(rupees r1)
                    {
                         d1=r1.getrupees()/50;
                    }
               float getdollars()
                    {
                         return d1;
                    }
               operator rupees()
                    {
                         return (rupees(d1*50));
                    }
               void input()
                    {
                         cout<<"\n\tEnter the Dollar : ";
                         cin>>d1;
                    }
               void disp()
                    {
                         cout<<"\n\tThe Dollar : "<<d1;
                    }
      };

  void main()
      {
           clrscr();
           dollars do1,do2;
           rupees ru1,ru2;
           do1.input();
           ru1=do1;
           ru1.disp();
           ru2.input();
           do2=ru2;
           do2.disp();
           getch();
      }

Thursday, May 23, 2013

File Handling – C++




A small Example on File Handling.



Example :

#include<fstream.h>
#include<string.h>
#include <stdio.h>

  class File
      {
           private:
              char empnm[20];
              float sal;
           public:
              void Append();
              void Print();
              void Modify();
              void Del();
      };
  void File::Append()
      {
           File F;
           fstream fptr;
           fptr.open("emp.dat",ios::app);
           cout<<"\n\tEnter Employee Name : ";
           cin.ignore();
           cin.get(F.empnm,20);
           cout<<"\n\tEnter Employee Salary : ";
           cin>>F.sal;
           fptr.write((char *)&F,sizeof(F));
           fptr.close();
      }
  void File::Print()
      {
           File F;
           fstream fptr;
           fptr.open("emp.dat",ios::in);
           while(fptr.read((char *)&F,sizeof(F)))
              {
                   cout<<"\n\tEmployee Name : "<<F.empnm;
                   cout<<"\n\tEmployee Salary : "<<F.sal<<"\n";
              }
           fptr.close();
      }
  void File::Modify()
      {
      long pos;
      File F;
      char name[20];
      fstream fptr;
      fptr.open("emp.dat",ios::out|ios::in);
      cout<<"\n\tEnter Name to Delete : ";
      cin.ignore();
      cin.get(name,20);
      while(fptr.read((char *)&F,sizeof(F)))
           {
              if(strcmpi(name,F.empnm)==0)
                   {
                        cout<<"\n\tEnter New Salary : ";
                        cin>>F.sal;
                        pos=fptr.tellg();
                        cout<<pos<<"\n";
                        fptr.seekg(pos-sizeof(F));
                        fptr.write((char *)&F,sizeof(F));
                   }
           }
      fptr.close();
  }

  void File::Del()
      {
           long pos;
           File F;
           char name[20];
           fstream fptr,fptr1;
           fptr.open("emp.dat",ios::in);
           fptr1.open("temp.dat",ios::out);
           cout<<"\n\tEnter Name to Delete : ";
           cin.ignore();
           cin.get(name,20);
           while(fptr.read((char *)&F,sizeof(F)))
              {  if(strcmpi(name,F.empnm)!=0)
                        {
                              fptr1.write((char *)&F,sizeof(F));
                        }
              }
           fptr.close();
           fptr1.close();
           remove("emp.dat");
           rename("temp.dat","emp.dat");
      }

  int main()
      {
           File f;
           int ch=0;
           while(ch!=5)
              {
                   cout<<"\n\t1. Append";
                   cout<<"\n\t2. Print";
                   cout<<"\n\t3. Modify";
                   cout<<"\n\t4. Delete";
                   cout<<"\n\t5. Exit";
                   cout<<"\n\tChoice? ";
                   cin>>ch;
                   switch(ch)
                        {
                            case 1: f.Append();break;
                            case 2: f.Print();break;
                            case 3: f.Modify();break;
                            case 4: f.Del();break;
                            case 5: break;
                        }
              }
           return 0;
      }