Code for creating a Calculater in C++ ( Calculater.CPP )


#include
#include
#include
#include
#include
#include

  class graphics
     {
       public:
      void screen(int x1,int y1,int x2,int y2)
          {
           setcolor(0);
           setfillstyle(1,0);
           rectangle(x1,y1,x2,y2);
           floodfill(x1+2,y1+2,0);
           setcolor(15);
           Rectangle(x1,y1,x2,y2,15,8);
           Rectangle(x1-1,y1-1,x2+1,y2+1,15,8);
           gotoxy(30,9);
           cout<<"0";
          }
      /*   void button(int x1,int y1,int x2,int y2,char *ch,int true)
        {
           int col;
           setcolor(15);
           rectangle(x1,y1,x2,y2);
           if(true==1)
         col=4;
        else
         col=5;
           setcolor(col);
           setfillstyle(1,col);
           rectangle(x1+2,y1+2,x2-2,y2-2);
           floodfill(x1+4,y1+4,col);
           setcolor(15);
           rectangle(x1+2,y1+2,x2-2,y2-2);
           setcolor(15);
           settextstyle(2,0,6);
           outtextxy(x1+12,y1+4,ch);
        }*/
    void button(int x1,int y1,int x2,int y2,char *ch,int col)
         {
          int color;
          setcolor(col);
          setfillstyle(1,col);
          rectangle(x1,y1,x2,y2);
          floodfill(x1+2,y1+2,col);
          Rectangle(x1-1,y1-1,x2+1,y2+1,0,15);
          if(col==4)
         color=15;
         else
          color=0;
          setcolor(color);
          settextstyle(2,0,6);
          outtextxy(x1+12,y1+3,ch);
         }
      void pressed_button(int x1,int y1,int x2,int y2,char *ch,int col1,int col2)
        {
          button(x1,y1,x2,y2,ch,col1);
          delay(200);
          button(x1,y1,x2,y2,ch,col2);
        }

       void Rectangle(int x1,int y1,int x2,int y2,int col1,int col2)
        {
         setcolor(col1);
         line(x2,y1,x2,y2);
         line(x1,y2,x2,y2);
         setcolor(col2);
         line(x1,y1,x2,y1);
         line(x1,y1,x1,y2);
        }
       void Form(int x1,int y1,int x2,int y2,int col1,int col2,char *ch)
        {
          setcolor(col1);
          setfillstyle(1,col1);
          rectangle(x1,y1,x2,y2);
          floodfill(x1+2,y1+2,col1);
          setcolor(col2);
          setfillstyle(1,col2);
          rectangle(x1,y1,x2,y1+20);
          floodfill(x1+2,y1+2,col2);
          Rectangle(x1-1,y1-1,x2+1,y2+1,8,15);
          Rectangle(x1-2,y1-2,x2+2,y2+2,8,15);
          setcolor(15);
          settextstyle(2,0,5);
          outtextxy(x1+8,y1+2,ch);
       }
       void Interface()
       {
        setcolor(15);
        settextstyle(1,0,4);
        outtextxy(170,20,"Simple Calculator");
        setcolor(0);
        setfillstyle(1,0);
        rectangle(220,90,410,340);
        floodfill(222,92,0);
        Form(210,80,400,330,7,4,"Calculator");
        screen(225,120,385,145);
        int x1=220,y1=175,x2=250,y2=200;
         int col=4;
        button(x1,y1,x2,y2,"7",col);
        button(x1+=35,y1,x2+=35,y2,"8",col);
        button(x1+=35,y1,x2+=35,y2,"9",col);
        button(x1+=35,y1,x2+=35,y2,"û",col);
        button(x1+=35,y1,x2+=35,y2,"C",col);
      y1+=35;
      y2+=35;
      x1=220;
      x2=250;
   button(x1,y1,x2,y2,"4",col);
   button(x1+=35,y1,x2+=35,y2,"5",col);
   button(x1+=35,y1,x2+=35,y2,"6",col);
   button(x1+=35,y1,x2+=35,y2,"*",col);
   button(x1+=35,y1,x2+=35,y2,"/",col);
      y1+=35;
      y2+=35;
      x1=220;
      x2=250;
   button(x1,y1,x2,y2,"1",col);
   button(x1+=35,y1,x2+=35,y2,"2",col);
   button(x1+=35,y1,x2+=35,y2,"3",col);
   button(x1+=35,y1,x2+=35,y2,"+",col);
   button(x1+=35,y1,x2+=35,y2,"-",col);
      y1+=35;
      y2+=35;
      x1=220;
      x2=250;
   button(x1,y1,x2,y2,"0",col);
   button(x1+=35,y1,x2+=35,y2,".",col);
   button(x1+=35,y1,x2+=35,y2,"ã",col);
   button(x1+=35,y1,x2+=35,y2,"A",col);
   button(x1+=35,y1,x2+=35,y2,"=",col);

        setcolor(14);
        settextstyle(1,0,3);
        outtextxy(185,380,"Press Escape To Exit");
        setcolor(15);
        settextstyle(7,0,2);
        outtextxy(440,100,"Instructions");
        setcolor(10);
        settextstyle(8,0,1);
        outtextxy(430,150,"Press 'u' For û");
        outtextxy(430,200,"Press 'p' For ã");
        outtextxy(430,250,"Press 'c' For Clear");
        setcolor(15);
        settextstyle(7,0,2);
        outtextxy(20,100,"Designer & ");
        outtextxy(50,140,"Progrmmer");
        setcolor(10);
        settextstyle(7,0,2);
        outtextxy(20,180,"M. Zafar Saleem");
        setcolor(15);
        outtextxy(20,225,"Group Name");
        setcolor(10);
        outtextxy(50,270,"Educators (é)");

       }
     };


void main()
 {
  int d,m;
   d=DETECT;
   initgraph(&d,&m,"..\\bgi");
   cleardevice();
   /////////////////////  backcolor
          int col=1;     // Adgust Background color
          setcolor(col);
          setfillstyle(1,col);
          rectangle(0,0,625,475);
          floodfill(2,2,col);
          setcolor(7);
          rectangle(0,0,625,475);
          rectangle(1,1,624,474);
          rectangle(3,3,622,472);
   /////////////////////////////////////
   graphics g;
   g.Interface();

 char ch,a1[25],a2[25];
 int x=0,c=30,r=9,pi=0;
 int clear=0,equals=0,equal1=0,answer=0;
 float val1,val2;
 float result;
 int sum=0,mul=0,div=0,sub=0;
 do
  {
  gotoxy(c,r);
  ch=getch();
  if(clear==1||equals==1||answer==1||pi==1)
    {
    gotoxy(30,9);
    cout<<"0                 ";
    clear=0;
    equals=0;
    answer=0;
    pi=0;
    }
  if(x>9&&(!(ch=='+'||ch=='-'||ch=='*'||ch=='/'||ch=='='||ch=='c'||ch=='C'||ch=='u'||ch=='U')))
      continue;
  gotoxy(c,r);
  switch(ch)
   {
    case '1':
    g.pressed_button(220,245,250,270,"1",14,4);
    cout<<"1";
    break;
    case '2':
    g.pressed_button(255,245,285,270,"2",14,4);
    cout<<"2";
    break;
    case '3':
    g.pressed_button(290,245,320,270,"3",14,4);
    cout<<"3";
    break;
    case '4':
    g.pressed_button(220,210,250,235,"4",14,4);
    cout<<"4";
    break;
    case '5':
    g.pressed_button(255,210,285,235,"5",14,4);
    cout<<"5";
    break;
    case '6':
    g.pressed_button(290,210,320,235,"6",14,4);
    cout<<"6";
    break;
    case '7':
    g.pressed_button(220,175,250,200,"7",14,4);
    cout<<"7";
    break;
    case '8':
    g.pressed_button(255,175,285,200,"8",14,4);
    cout<<"8";
    break;
    case '9':
    g.pressed_button(290,175,320,200,"9",14,4);
    cout<<"9";
    break;
    case 'C':case 'c':
      g.pressed_button(360,175,390,200,"C",14,4);
      gotoxy(30,9);
      cout<<"0                  ";
      sum=0;mul=0;div=0;sub=0;
      c=30;r=9;x=0;
      clear=1;
      continue;
      break;
    case '*':
       g.pressed_button(325,210,355,235,"*",14,4);
      a1[x]='\0';
      val1=atof(a1);
      mul=1;
      c=30;r=9;x=0;
      clear=1;
      continue;
    break;
    case '/':
      g.pressed_button(360,210,390,235,"/",14,4);
      a1[x]='\0';
      val1=atof(a1);
      div=1;
      c=30;r=9;x=0;
      clear=1;
      continue;
    break;

    case '+':
      g.pressed_button(325,245,355,270,"+",14,4);
      a1[x]='\0';
      val1=atof(a1);
      sum=1;
      c=30;r=9;x=0;
      clear=1;
      continue;
    break;
    case '-':
      g.pressed_button(360,245,390,270,"-",14,4);
      a1[x]='\0';
      val1=atof(a1);
      sub=1;
      c=30;r=9;x=0;
      clear=1;
      continue;
    break;
    case 'p':case 'P':
    g.pressed_button(290,280,320,305,"ã",14,4);
    gotoxy(30,9);
    cout<<"                   " ;
    gotoxy(30,9);
    cout<<"3.14";
    pi=1;
    continue;
    break;
    case 'U': case 'u':
      g.pressed_button(325,175,355,200,"û",14,4);
      a1[x]='\0';
      val1=atof(a1);
      result=sqrt(val1);
      gotoxy(30,9);
      cout<<"             ";
      gotoxy(30,9);
      cout<
      c=30;r=9;x=0;
      clear=1;
      continue;
    break;
    case 'A':case 'a':
    g.pressed_button(325,280,355,305,"A",14,4);
    if(equal1==1)
    {
    gotoxy(30,9);
    cout<<"                ";
    gotoxy(30,9);
    cout<
    }
    answer=1;
    continue;
    break;
    case '=':
      a2[x]='\0';
      val2=atof(a2);
      g.pressed_button(360,280,390,305,"=",14,4);
      gotoxy(30,9);
      cout<<"0                 ";
      if(sum==1)
      {
      result=val1+val2;
      gotoxy(30,9);
      cout<
      }
      else
      if(div==1)
      {
    if(val2==0)
      {
      gotoxy(30,9);
      cout<<"ì";
     }
      else
      {
      result=val1/val2;
      gotoxy(30,9);
      cout<
      }
      }
      else
      if(mul==1)
      {
      result=val1*val2;
      gotoxy(30,9);
      cout<
      }
      else
      if(sub==1)
      {
      result=val1-val2;
      gotoxy(30,9);
      cout<
      }
    equals=1;
    equal1=1;
       c=30;r=9,x=0;
       continue;
    break;
    case '.':
      g.pressed_button(255,280,285,305,".",14,4);
      if(x>0)
      cout<<".";
      else
       continue;
    break;
    case '0':
      g.pressed_button(220,280,250,305,"0",14,4);
      if(x>0)
      cout<<"0";
      else
    continue;
    break;
  default:
       continue;
   }
   c++;
   if(sum==0&&sub==0&&mul==0&&div==0)
       a1[x]=ch;
    else
       a2[x]=ch;
    x++;

  }while(ch!=27);

  closegraph();
 }

Read Users' Comments (0)

0 Response to "Code for creating a Calculater in C++ ( Calculater.CPP )"

Post a Comment