Blogger news

Followers

Friday, September 27, 2013
Design,develop,and execute a program in C++ to create a class called OCTAL, which has the characteristics of an octal number, Implement the following operations by writing an appropriate constructor and an overloaded operator +.
<![if !supportLists]>1.       <![endif]>OCTAL h=x;where x is an integer
<![if !supportLists]>2.       <![endif]>Int y=h+k; where h is an OCTAL object and k is an integer.
Display the OCTAL result by overloading the operator<<. Also display the values of h and y.

#include<iostream.h>
#include<conio.h>

class octal
{
  int onum;

  public:
                octal(int);
                friend ostream& operator<<(ostream&,octal&);
                int operator+(int);
};

octal::octal(int x)
{

  //decimal to octal conversion
  int base=1,rem;
  onum=0;
  while(x>0)
  {
    rem=x%8;
    x=x/8;
    onum=onum+rem*base;
    base=base*10;
  }
}

ostream& operator<<(ostream& dout,octal& h)
{
  dout<<h.onum;
  return dout;
}

octal::operator+(int k)
{
  //conversion from octal to conversion
  int rem,base=1,dnum=0,y;

  while(onum>0)
  {
   rem=onum%10;
   onum=onum/10;
   dnum=dnum+rem*base;
   base=base*8;
   y=dnum+k;
  }

 return(y);
}

void main()
{

 int x,k,y;
 clrscr();

 cout<<"enter the value of x \n";
 cin>>x;
 octal h=x;
 cout<<"the value of h is"<<h<<endl;
 cout<<"enter the value of k \n";
 cin>>k;
 y=h+k;
 cout<<"value of y="<<y;
 getch();
}
Screenshot:
Thursday, September 26, 2013
Design, develop and execute a program in C to Evaluate a valid postfix expression using stack. Assume that the postfix expression is read as a single line consisting of non-negative single digit operands and binary arithmetic operators. The arithmetic operators are +(add),-(subtract),*(multiply) and / (divide)

#include<stdio.h>
 #include<conio.h>
 #include<ctype.h>
 #include<math.h>

 char postfix[20];
 int top=-1;
 float value[20],stack[20];
 float eval();

 void push(float);
 float pop();

 void main()
 {
  int i=0;
  float result;
  clrscr();

  printf("enter a valid postfix expression\n");
  scanf("%s",postfix);
  while(postfix[i]!='\0')
  {
    if(isalpha(postfix[i]))
    {
     printf("enter the value of %c\n",postfix[i]);
     scanf("%f",&value[i]);
    }
   i++;
  }
  result=eval();
  printf("the value of the expression is %.2f\n",result);

  getch();
 }

 float eval()
 {
  int i=0;
  float op1,op2,result;

  while(postfix[i]!='\0')
  {
    if(isalpha(postfix[i]))
      push(value[i]);
    else
    {
      op2=pop();
      op1=pop();

      switch(postfix[i])
      {
                case'+':
                       push(op1+op2);
                       break;
                case'-':
                       push(op1-op2);
                       break;
                case'*':
                       push(op1*op2);
                       break;
                case'/':
                       push(op1/op2);
                       break;
      };
    }
   i++;
  }
 result=pop();
 return result;
}

void push(float value)
{
  top=top+1;
  stack[top]=value;
  return;
}


float pop()
{
  return stack[top--];
}
Screenshot:
#include<iostream.h>
 #include<conio.h>

 class student
 {
   protected:
     int rollno;
   public:
    void getroll()
    {
      cout<<"enter the roll no"<<endl;
      cin>>rollno;
    }
 };
 class marks:public student
 {
   protected:
     int marks;
  public:
     void getmarks()
     {
       cout<<"enter the marks"<<endl;
       cin>>marks;
     }
     void display()
     {
      getroll();
      cout<<"roll no:"<<rollno<<endl<<"marks:"<<marks;
     }
 };


 void main()
 {
   marks b;
   clrscr();
   b.getmarks();
   b.display();
   getch();
 }

Screenshot: