28/01/2014 MCAFEE SECURE 認證的網站

https://www.mcafeesecure.com/RatingVerify?ref=www.HongKongCupid.com

2013年8月20日 星期二

***THE Calculator C++ Coders & Programmer**~!

*****THE Calculator C++ Coders & Programmer**~! **

**C++ Coders & Programmers
Here are the few functions this calculator performs.
•It performs the conversion from decimal to (Binary, Octal and Hex decimal) values.
•Calculates Sign, Tangant and Sec, Coses, Cot.
•Log, Antilog, Exponent, power values.
•Also it can store numbers in memory, find the square root of any number.


--------------------------------------
*/
#include<stdio.h>
#include<conio.h>
#include<process.h>
#include<dos.h>
#include<stdlib.h>
#include<iostream.h>
#include<graphics.h>
#include<math.h>
#include<string.h>

float *mem;
int X=0, Y=0;
int row=17,col=5;
char dummy;
char flag='d',flagp='0';
char bflag='u',bflagp='u';
int mflag=0;
char ch,ch1,ch2;
int sflag=0;
int midx,midy;
# define UNCLICKED 0
# define CLICKED 1
# define PI 3.14159


char str1[]={"Muhammad Saqib Roll# 014"};

void typeit (int x,int y,int spacing,char string[])
{
char temp[2];
for (int i=0;i<strlen(string);i++)
                {
                         delay(100);
                         temp[0]=string
;
                         temp[1]='\0';
                         outtextxy(x+(i+1)*spacing,y,temp);
                }//endfor

}
void front()
{
int x,y,h;
for(x=0;x<=100;x++)
{
  settextjustify(CENTER_TEXT,CENTER_TEXT);
  setcolor(1);
  settextstyle(1,0,4);
  setusercharsize(x,6,x,3);
  setcolor(14);
  moveto(310,135);
  outtext("..");
  setcolor(6);
  moveto(310,130);
  outtext("I I");
  if(x<50)
  delay(30);
  else
  delay(20);
}
for(y=0;y<=100;y++)
{
  setcolor(0);
  settextstyle(1,0,4);
  setusercharsize(y,6,y,3);
  moveto(310,135);
  outtext("..");
  moveto(310,130);
  outtext("I I");
if(y>20)
{
  settextstyle(7,0,3);
  setusercharsize(y-20,35,y-20,30);
  setcolor(9);
  outtext("CALCULATER");
  setcolor(2);
  outtext("___________");
  delay(15);
  if(y<100)
  {
   settextstyle(7,0,3);
   setusercharsize(y-20,35,y-20,30);
   setcolor(0);
   outtext("CALCULATER");
  }
}
}
//delay(1000);
settextstyle(3,0,2);
delay(50);
outtextxy(midx-200,midy,"Group Members:-");
//x=10,y=10;
setcolor(6);
settextstyle(4,0,4);
typeit(midx-200,midy+50,15,str1);
getch();
//closegraph();
}

char input();
double add(double,double,char);
double angle_conv(double);
void basecng(double,double);
/************************************************************/
/*                                                                   */
/*   THIS FUNCTION DRAWS THE BUTTONS OF THE CALCULATER      */
/*                                                          */
/************************************************************/
void button_3d(int x1,int y1,int x2,int y2,int check,char* text,int color)
{
int up,low;
setfillstyle(1,7);
bar(x1,y1,x2,y2);
if(check==0)    //Unclicked
up=15,low=8;
else
up=8,low=15;     //Clicked
setcolor(low);
line(x2,y1,x2,y2);
line(x2-1,y1,x2-1,y2);
line(x1,y2,x2,y2);
line(x1+1,y2-1,x2,y2-1);

setcolor(up);
line(x1,y1,x2,y1);
line(x1+1,y1+1,x2-1,y1+1);
line(x1,y1,x1,y2);
line(x1+1,y1+1,x1+1,y2-1);
setcolor(color);

settextjustify(CENTER_TEXT,CENTER_TEXT);
outtextxy(x1+(x2 - x1)/2,(y1+(y2 - y1)/2)-2, text);

}
/*********************************************************************/
/*                                                                   */
/*               This function makes the opening screen              */
/*                                                                   */
/*********************************************************************/

void frontpage(void)
{
int mx, my;

mx = (getmaxx() / 2);
my = (getmaxy() / 2);

//SET baqckground color
setfillstyle(9, 1);
bar(0,0,getmaxx(),getmaxy());

//DRAW a bar, and make it look like a 3d bar
setfillstyle(1,7);
bar(50,20,600,400);

//DRAW lines for the top and left side
setcolor(15);
line(50,20,600,20);
line(51,21,599,21);
line(50,20,50,400);
line(51,21,51,399);

//DRAW lines for the bottom and right side
setcolor(8);
line(600,20,600,400);
line(599,21,599,400);
line(50,400,600,400);
line(51,399,600,399);

//DRAW two 3D bars for the left and right side

setfillstyle(9,8);
bar(70,40,100,380);
//getch();
bar(545,40,575,380);
setcolor(8);
rectangle(70,40,100,380);
rectangle(545,40,575,380);
setcolor(15);
line(100,40,100,380);
line(70,380,100,380);
line(575,40,575,380);
line(545,380,575,380);

//DRAW two 3D divider lines on both sides
setcolor(8);
line(110, 40, 110, 380);
line(535, 40, 535, 380);
setcolor(15);
line(111, 40, 111, 380);
line(536, 40, 536, 380);

//PRINT 3D text CALENDAR 2002
settextstyle(1, 0, 4);
settextjustify(1,1);
setcolor(15);
outtextxy(mx+2, my - 46, "MY CALCULATER");
setcolor(7);
outtextxy(mx + 1, my - 45, "MY CALCULATER");
setcolor(8);
outtextxy(mx + 2, my - 44, "MY CALCULATER");

//PRINT 3D text 2002
setcolor(15);
outtextxy(mx, my + 10, "2002");
setcolor(7);
outtextxy(mx + 1, my + 11, "2002");
setcolor(8);
outtextxy(mx + 2, my + 12, "2002");

//PRINT copyright notice
settextstyle(2, 0, 5);
setcolor(1);
outtextxy(mx + 1, my + 85, "Copyright 2002 by ASAS Creations");

getch(); //PAUSE for a while
}

/*********************************************************************/
/*                                                                   */
/*               This function makes the claculating screen          */
/*                                                                   */
/*********************************************************************/

void screen(int x1, int y1, int x2, int y2)
{
   setlinestyle(0,0,1);
   setfillstyle(SOLID_FILL, 8);
   bar(x1, y1, x2, y2);
   setfillstyle(SOLID_FILL, BLACK);
   bar(x1+1, y1+1, x2-1, y2-1);



   settextjustify(CENTER_TEXT, CENTER_TEXT);
  setcolor(15);
       line(x1+1, y1+1, x1+1, y2-1);
       line(x1+1, y1+1, x2-1, y1+1);
       line(x1+2, y1+2, x1+2, y2-2);
       line(x1+2, y1+2, x2-2, y1+2);
       setcolor(8);
       line(x1+1, y2-1, x2-1, y2-1);
       line(x2-1, y1+1, x2-1, y2-1);
       line(x1+2, y2-2, x2-2, y2-2);
       line(x2-2, y1+2, x2-2, y2-2);

   }


/************************************************************************/
/*                                                                      */
/*                           Mouse Related Functions                     */
/*                                                                      */
/************************************************************************/

void init_mouse()
{
        union REGS iregs, oregs;

        iregs.x.ax = 0;
        int86 (0x33, &iregs, &oregs);

        if (oregs.x.ax == 0)
        {
                cleardevice();
                printf("mouse not installed\n");
                getch();
                exit(1);
        }
       iregs.x.ax = 1;
       int86 (0x33, &iregs ,&oregs);
}
/*************************************************************/

void mouse()
{
        int button,x1,y1;
        union REGS iregs, oregs;

        iregs.x.ax = 3;
        int86 (0x33, &iregs ,&oregs);

        button = oregs.x.bx & 3;
        x1 = oregs.x.cx;
        y1 = oregs.x.dx;

        if(oregs.x.bx & 1)
        {
                X = x1 ; Y = y1;
        }

        if(button == 3)
                exit(0);
}



/*************************************************************/

void hide_mouse()
{
        union REGS ioRegs;
        ioRegs.x.ax=2;
        int86(0x33,&ioRegs,&ioRegs);
}



/*************************************************************/
void show_mouse()
{
        union REGS ioRegs;
        ioRegs.x.ax=1;
        int86(0x33,&ioRegs,&ioRegs);
}

/*************************************************************/
void remove_mouse()
{
        union REGS ioRegs;
        ioRegs.x.ax=0;
        int86(0x33,&ioRegs,&ioRegs);
}


/*************************************************************************/
/*                                                                       */
/*        THIS FUNCTION DRAWS THE CALCULATER ON THE SCREEN                 */
/*                                                                       */
/*************************************************************************/
void        structure()
        {
        init_mouse();
        setbkcolor(0);
        cleardevice();
        hide_mouse();
//**********************************************************
//   Buttons Making

        front();
        frontpage();
        settextstyle(2,0,4);
        button_3d(50,20,600,400,UNCLICKED,"",1);     // main box
        screen(100,50,545,120);          // screen


        setfillstyle(1,8);
        bar(52,22,598,42);
        button_3d(575,23,595,40,UNCLICKED,"x",0);
        setcolor(0);
        outtextxy(120,30,"Calculater v1.0");
        button_3d(108,140,208,160,UNCLICKED,"DEC",15); // box of decimal
        button_3d(218,140,318,160,UNCLICKED,"OCT",0); // box of octal
        button_3d(328,140,428,160,UNCLICKED,"HEX",0); // box of hexal
        button_3d(438,140,538,160,UNCLICKED,"BIN",0); // box of binary

        button_3d(350,205,380,225,UNCLICKED,"7",0);  // Box Of 7
        button_3d(390,205,420,225,UNCLICKED,"8",0);  // Box Of 8
        button_3d(430,205,460,225,UNCLICKED,"9",0);  // Box Of 9

        button_3d(350,230,380,250,UNCLICKED,"4",0);   // Box Of 4
        button_3d(390,230,420,250,UNCLICKED,"5",0);   // Box Of 5
        button_3d(430,230,460,250,UNCLICKED,"6",0);   // Box Of 6

        button_3d(480,230,510,250,UNCLICKED,"*",0);   // Box Of *
        button_3d(515,230,545,250,UNCLICKED,"/",0);   // Box Of \
        button_3d(480,205,510,225,UNCLICKED,"AC",4);        //Box Of AllClear (AC)
        button_3d(515,205,545,225,UNCLICKED,"CE",4);        //Box Of Clear (C)

        button_3d(350,255,380,275,UNCLICKED,"1",0);   // Box Of 1
        button_3d(390,255,420,275,UNCLICKED,"2",0);   // Box Of 2
        button_3d(430,255,460,275,UNCLICKED,"3",0);   // Box Of 3

        button_3d(350,280,380,300,UNCLICKED,"0",0);   // Box Of Zero (0)
        button_3d(390,280,420,300,UNCLICKED,".",0);   // Box Of Period (.)
        button_3d(430,280,460,300,UNCLICKED,"pi",0); // Box Of PhiFunction

        button_3d(480,255,510,275,UNCLICKED,"-",0);   //  Box Of -
        button_3d(515,255,545,275,UNCLICKED,"+",0);   //  Box Of +
        button_3d(350,305,460,325,UNCLICKED,"=",0);   // Box Of Equality
        button_3d(480,305,545,325,UNCLICKED,"shift",BLUE);   // Box Of shift

        button_3d(480,280,510,300,UNCLICKED,"sqrt",0);     //Box of x^n
        button_3d(515,280,545,300,UNCLICKED,"inv",0);      //box of 1/x

        button_3d(100,205,150,230,UNCLICKED,"Sin",0);          // Box OfSin Function
        button_3d(160,205,210,230,UNCLICKED,"Cos",0);     // Box Of CosFunction
        button_3d(220,205,270,230,UNCLICKED,"Tan",0);          // Box Of Tan Function


        button_3d(100,250,150,275,UNCLICKED,"sin^-1",0);    // Box Of sin^-1
        button_3d(160,250,210,275,UNCLICKED,"cos^-1",0);    // Box Of cos^-1
        button_3d(220,250,270,275,UNCLICKED,"tan^-1",0);    // Box Of tan^-1

        button_3d(100,300,150,325,UNCLICKED,"ln",0);    // Box Of ln
        settextjustify(CENTER_TEXT,CENTER_TEXT);
        setcolor(BLUE);
        settextstyle(2,0,4);
        outtextxy(125,290,"e");
        outtextxy(185,290,"10^x");
        outtextxy(245,290,"x^3");
        button_3d(160,300,210,325,UNCLICKED,"log",0);    // Box Of log
        button_3d(220,300,270,325,UNCLICKED,"x^2",0);    // Box Of x^2

        button_3d(100,350,150,370,UNCLICKED,"deg",15);
        button_3d(160,350,210,370,UNCLICKED,"rad",0);
        button_3d(220,350,270,370,UNCLICKED,"gra",0);
        button_3d(480,350,545,370,UNCLICKED,"Off",4);


        button_3d(350,350,380,370,UNCLICKED,"M+",0);
        button_3d(390,350,420,370,UNCLICKED,"M-",0);
        button_3d(430,350,460,370,UNCLICKED,"MR",0);



        }
/*********************************************************/
/*                                                       */
/*                        Main starts                         */
/*                                                       */
/*********************************************************/
void main()
{
clrscr();

double y=0,z=0,pnt,pnt1=0,x=0,r=0;

int gdriver = DETECT, gmode, errorcode;
int i;
initgraph(&gdriver, &gmode, "f:\\tc\\bgi");
midx=getmaxx()/2;midy=getmaxy()/2;
structure();
gotoxy(row,col);
printf("\t\t\t\t\t");
gotoxy(row,col);
printf("0");
mem=(float*)malloc(y*sizeof(float));
while( ch!=27&&ch1!=27)   //While Escape is not pressed
{                                      //and if base is not 10
  pnt1=0;//no doubleing point entered Yet
  ch2='0';
//  for(int a=0;ch!=27;a++)//a indicates whether a no. has been entered or not
  while(ch2!=27)
  //a=0 means that no no. has been entered yet
  {
  if(bflagp!='u')
       {
         //gotoxy(row,col);
         dummy=input();
         if(dummy!='o')
         {
         gotoxy(row,col);
         printf("The trail version does not support this feature");
         input();
         gotoxy(row,col);
         printf("\t\t\t\t\t\t");
        // ch='0';
         }
          y=0;z=0;ch='0';
         gotoxy(row,col);
         printf("\t\t\t\t\t\t");
         gotoxy(row,col);
         printf("0");

        // bflagp='u';
       }


   ch=input();
   if(ch=='>'||ch=='<'||ch=='?')
   { sflag=0;
    if(ch=='>')   //M+
    *mem+=y;
    if(ch=='<')   //M-
    *mem-=y;
    if(ch=='?')    //MR
    {
    y=*mem;
    gotoxy(row,col);
    printf("\t\t\t\t\t\t");
    gotoxy(row,col);
    printf("%g",y);
    }
    if(*mem==0)
    mflag=0;
    if(*mem!=0)
    mflag=1;
   }
   if(mflag==0)
   {
   gotoxy(row,7);

   printf(" ");

   }
   if(mflag!=0)
   {
   gotoxy(row,7);

   printf("M");
   }
   gotoxy(row,col);

   if(ch=='a')
   {     sflag=0;
         y=0;
         gotoxy(row,col);
         printf("\t\t\t\t\t");
         gotoxy(row,col);
         printf("0");
   }

   if(ch=='o')
    //for clearing the screen of the calculater
       {
       sflag=0;
       y=0;z=0;
       gotoxy(row,col);
       printf("\t\t\t\t    ");
       gotoxy(row,col);
       printf("0");
       gotoxy(row,col);
       break;
       }

   if(ch=='q')
     {
       sflag=0;
       y=sqrt(y);
       gotoxy(row,col);
       printf("\t\t\t\t    ");
       gotoxy(row,col);
       printf("%g",y);
     }
   if(ch=='m')
   {
        sflag=0;
        y=1/y;
        gotoxy(row,col);
       printf("\t\t\t\t    ");
       gotoxy(row,col);
       printf("%g",y);
     }
   if(ch=='+'||ch=='-'||ch=='/'||ch=='\\'||ch=='='||ch=='*')
       {
       sflag=0;
       break;
       }
   if(ch=='.') //case for a decimal point
       {
       sflag=0;
       if(pnt1==0) //ie no decimal has been entered yet
        {
         gotoxy(row,col);
         printf("\t\t\t\t    ");//         double
         gotoxy(row,col);
         printf("%g.",y);
         pnt1=.1;   //ie one decimal point no has been entered
         continue;  //go back to the begining and get the next number
        }
       else     //decimal point has alredy been entered and thus no change in the screen
        {
         sflag=0;
         continue; //go back to the begining
        }
       }//out of the '.' condition

if(pnt1!=0)  //ie we have a doubleing point
  {  sflag=0;
   if(ch<='9'&&ch>='0') //input integer
   {
//   printf("%c",ch);
   x=(double)ch;//type cast the character into double to perforn further operations
   x-=48;      //since character digit indoubleing -48 gives the corresponding ASCII
   x=x*pnt1;   //make it a decimal
   y=x+y;      //add it in result
   pnt1*=.1;   //shift to the second doubleing point
   gotoxy(row,col);
   printf("%g",y);
   gotoxy(row,col);
   continue;   //back to the top
   }
  }
   //if no decimal point number then proceed

  if(ch<='9'&&ch>='0')
  { sflag=0;
   x=(double)ch;     //typecast to double
   x-=48;           //get corresponding ASCII
   y=(y*10)+x;      //add to right of result
   gotoxy(row,col);  //go back to start of the calc screen
   printf("\t\t\t\t    ");  //clear the screen
   gotoxy(row,col);
   printf("%g",y);  //print the number
  }
if(ch=='u'||ch=='v'||ch=='w'||ch=='x')
  { sflag=0;
  if(bflagp==bflag&&bflag=='u')
  continue;
  else
  basecng(y,pnt1);
  }
if(ch=='d'||ch=='r'||ch=='g')
   {sflag=0;
    y=angle_conv(y);
    gotoxy(row,col);
    printf("\t\t\t\t    ");
    gotoxy(row,col);
    printf("%g",y);
  //  gotoxy(row,col);
//   printf("%g",y);
  //  continue;
   }
  if(ch=='s'||ch=='c'||ch=='t'||ch=='i'||ch=='j'||ch=='k'||ch=='n'||ch=='l'||ch=='p'||ch=='h')
  //ie the user opted for a function
  {
    if(ch=='s'||ch=='c'||ch=='t')  //sin  /cos/tan
   { sflag=0;
    if(flag!='r')
    {
    flagp=flag;
    flag='r';
    y=angle_conv(y);
    flag=flagp;
    }
  //  gotoxy(row,col);
  //  printf("%g",y);getch();
    switch(ch)
    {

    case 's':        y=sin(y);  break;
    case 'c':   y=cos(y);  break;
    case 't':          y=tan(y);  break;
    }
   }
   if(ch=='i'||ch=='j'||ch=='k')
    {sflag=0;
    if(flag!='r')
     {
     // flagp=flag;
      flagp='r';
      //y=angle_conv(y);
     }
    switch(ch)
    {
    case 'i':   y=asin(y);  break;
    case 'j':        y=acos(y);  break;
    case 'k':        y=atan(y);  break;
    }
    if(flag!='r')
    y=angle_conv(y);
   }
   else if(ch=='n')
        {
        if(sflag==1)
        {
        y=exp(y);
        sflag=0;
        }
        else
        y=log(y);     //ln
        }
   else if(ch=='l')
        {
        if(sflag==1)
        {
         y=pow(10,y);
         sflag=0;
        }
        else
        y=log10(y);    //log
        }
   else if(ch=='p')
        {
        if(sflag==1)
        {
         y=pow(y,3);
         sflag=0;
        }
        else
        y=pow(y,2);    //square
        }
   else if(ch=='h')
        {
        sflag=0;
        y=PI;          //pi
        }

   gotoxy(row,col);
   printf("\t\t\t\t    ");//Clear the screen
   gotoxy(row,col);
   printf("%g",y);
  }//else condition

}//out of second condition  ie we now have the first no. or function or operater

for(;ch!=27&&ch1!='='&&ch!='=';)//ie the characters input are not ESCAPE or Equal to

        {
        pnt1=0;z=0;
        if(ch=='o'||ch1=='o')     // For Clear The Screen
        {

        sflag=0;
        y=0;z=0;
        gotoxy(row,col);
        printf("\t\t\t\t    ");
       //        gotoxy(col,row);
        gotoxy(row,col);
        printf("0");
        gotoxy(row,col);
        break;
        }
        for(;ch1!=27;)
        {
        gotoxy(row,col);
      //         printf("%g",z);
       //        z=0;
        ch1=input();

        if(ch1=='>'||ch1=='<'||ch1=='?')
     {
     if(ch1=='>')   //M+
     *mem+=z;
     if(ch1=='<')   //M-
    *mem-=z;
    if(ch1=='?')    //MR
    {
    z=*mem;
    gotoxy(row,col);
    printf("\t\t\t\t    ");
    gotoxy(row,col);
    printf("%g",z);
    }
    if(*mem==0)
    mflag=0;
    if(*mem!=0)
    mflag=1;
   }
   if(mflag==0)
   {
   gotoxy(row,7);
   printf(" ");
   }
   if(mflag!=0)
   {
   gotoxy(row,7);
   printf("M");
   }
   gotoxy(row,col);


        if(ch1=='a')
        {
        z=0;
         gotoxy(row,col);
         printf("\t\t\t\t  ");
         gotoxy(row,col);
         printf("0");
   }

        if(ch=='o'||ch1=='o')     // For Clear The Screen
        {
        y=0;z=0;
        gotoxy(row,col);
        //cout<<"                ";
        printf("\t\t\t\t    ");
        gotoxy(row,col);
        printf("0");
        gotoxy(row,col);
        break;
        }
        if(ch1=='q')
     {
       z=sqrt(z);
       gotoxy(row,col);
       printf("\t\t\t\t    ");
       gotoxy(row,col);
       printf("%g",z);
     }
   if(ch1=='m')
   {
        z=1/z;
        gotoxy(row,col);
       printf("\t\t\t\t    ");
       gotoxy(row,col);
       printf("%g",z);
     }

        if(ch1=='.')
        {
        if(pnt1==0)
        {
        gotoxy(row,col);
        printf("\t\t\t\t    ");
        gotoxy(row,col);
        //cout<<z<<".";
        printf("%g.",z);
        pnt1=.1;
        continue;
        }
        else
        {
        continue;
        }
        }
        if(pnt1!=0)
        {
        if(ch1<='9'&&ch1>='0')
        {
//        printf("%c",ch1);
        x=(double)ch1;
        x-=48;
        x=x*pnt1;
        z=x+z;
        pnt1=pnt1*.1;
        gotoxy(row,col);
        printf("\t\t\t\t    ");
        gotoxy(row,col);
        printf("%g",z);
        continue;
        }
        }

if(ch1=='+'||ch1=='-'||ch1=='*'||ch1=='/'||ch1=='=')
break;
if(ch1>='0'&&ch1<='9')
{
x=(double)ch1;
x=x-48;
gotoxy(row,col);
printf("\t\t\t\t    ");
gotoxy(row,col);
z=(z*10)+x;
printf("%g",z);
}
if(ch=='u')
if(ch=='d'||ch=='r'||ch=='g')
{
z=angle_conv(z);
gotoxy(row,col);
printf("\t\t\t\t    ");
gotoxy(row,col);
printf("%g",z);
// continue;
}
if(ch1=='s'||ch1=='c'||ch1=='t'||ch1=='i'||ch1=='j'||ch1=='k'||ch1=='n'||ch1=='l'||ch1=='p'||ch1=='h')
  //ie the user opted for a function
  {
   if(ch1=='s'||ch1=='c'||ch1=='t')  //sin
    {
    if(flag!='r')
     {
      flagp=flag;
      flag='r';
      angle_conv(z);
      flag=flagp;
     }
    switch(ch1)
    {
    case 's':   z=sin(z);  break;
    case 'c':        z=cos(z);  break;
    case 't':        z=tan(z);  break;
    }
   }
if(ch1=='i'||ch1=='j'||ch1=='k')
   {
   if(flag!='r')
     {
      flagp='r';
     }
    switch(ch1)
    {
    case 'i':   z=asin(z);  break;
    case 'j':        z=acos(z);  break;
    case 'k':        z=atan(z);  break;
    }
   z=angle_conv(z);
   }
  else if(ch1=='l')
        {
        z=log10(z);    //log
        }
   else if(ch1=='p')
        {
        z=pow(z,2);    //square
        }
   else if(ch1=='h')
        {
        z=PI;          //pi
        }

   gotoxy(row,col);
   printf("\t\t\t\t    ");
   gotoxy(row,col);
   printf("%g",z);
   gotoxy(row,col);
}
}

if(ch1=='+'||ch1=='-'||ch1=='=')
{
y=add(y,z,ch);
if(ch2!='0')
{
y=add(r,y,ch2);
ch2='0';
}
}
else
{
if(ch=='*'||ch=='/')
y=add(y,z,ch);
else
{
ch2=ch;
r=y;
y=z;
}
}
gotoxy(row,col);
printf("\t\t\t\t    ");
gotoxy(row,col);
printf("%g",y);
ch=ch1;
ch1='0';
if(ch=='='||ch1=='=')
break;
}
        if(ch=='o'||ch1=='o')     // For Clear The Screen
        { y=0;z=0;
        gotoxy(row,col);
        printf("\t\t\t\t    ");
        gotoxy(row,col);
        printf("0");
        gotoxy(row,col);
        continue;
        }
        gotoxy(row,col);
        printf("\t\t\t\t    ");
        gotoxy(row,col);
        printf("%g",y);
        z=0;
        }

     //        getch();
        closegraph();
      remove_mouse();
      exit(0);

}

/*************************************************************/
/*                                                             */
/*          This function gets the user's Input                     */
/*                                                             */
/*************************************************************/

char input()
          {
          X=0;Y=0;
          char ch;
          show_mouse();
          if(bflag!='u')
          {
         button_3d(108,140,208,160,UNCLICKED,"DEC",15);
         button_3d(218,140,318,160,UNCLICKED,"OCT",0);
         button_3d(328,140,428,160,UNCLICKED,"HEX",0);
         button_3d(438,140,538,160,UNCLICKED,"BIN",0);
          bflag='u';
          }
          do
          {
          mouse();
          if (X>=350 && X<=380 && Y>=205 && Y<=225) // Condition For 7
          {
          hide_mouse();
          button_3d(350,205,380,225,CLICKED,"7",0);
          show_mouse();
          delay(250);
          hide_mouse();
          button_3d(350,205,380,225,UNCLICKED,"7",0);
          show_mouse();
          ch='7';
          return ch;
          }


        //**********************************************

         if (X>=390 && X<=420 && Y>=205 && Y<=225) // Condition For 8
         {

         hide_mouse();
         button_3d(390,205,420,225,CLICKED,"8",0);
         show_mouse();
         delay(250);
         hide_mouse();
         button_3d(390,205,420,225,UNCLICKED,"8",0);
         show_mouse();
         ch='8';
         return ch;
         }


        //*****************************************

         if (X>=430 && X<=460 && Y>=205 && Y<=225) // Condition For 9
         {
         hide_mouse();
         button_3d(430,205,460,225,CLICKED,"9",0);
         show_mouse();
         delay(250);
         hide_mouse();
         button_3d(430,205,460,225,UNCLICKED,"9",0);
         show_mouse();
         ch='9';
         return ch;
         }


        //***********************************

         if (X>=350 && X<=380 && Y>=230 && Y<=250) // Condition For 4
         {
         hide_mouse();
         button_3d(350,230,380,250,CLICKED,"4",0);
         show_mouse();
         delay(250);
         hide_mouse();
         button_3d(350,230,380,250,UNCLICKED,"4",0);
         show_mouse();
         ch='4';
         return ch;
         }


        //***********************************

        if (X>=390 && X<=420 && Y>=230 && Y<=250) // Condition For 5
        {
        hide_mouse();
        button_3d(390,230,420,250,CLICKED,"5",0);
        show_mouse();
        delay(250);
        hide_mouse();
        button_3d(390,230,420,250,UNCLICKED,"5",0);
        show_mouse();
        ch='5';
        return ch;
        }


        //***********************************

        if (X>=430 && X<=460 && Y>=230 && Y<=250) // Condition For 6
        {
        hide_mouse();
        button_3d(430,230,460,250,CLICKED,"6",0);
        show_mouse();
        delay(250);
        hide_mouse();
        button_3d(430,230,460,250,UNCLICKED,"6",0);
        show_mouse();
        ch='6';
        return ch;
        }


        //***********************************

        if (X>=480 && X<=510 && Y>=230 && Y<=250) // Condition For *
        {
        hide_mouse();
        button_3d(480,230,510,250,CLICKED,"*",0);
        show_mouse();
        delay(250);
        hide_mouse();
        button_3d(480,230,510,250,UNCLICKED,"*",0);
        show_mouse();
        ch='*';
        return ch;
        }
       //***********************************

        if (X>=515 && X<=545 && Y>=230 && Y<=250) // Condition For /
        {
        hide_mouse();
        button_3d(515,230,545,250,CLICKED,"/",0);
        show_mouse();
        delay(250);
        hide_mouse();
        button_3d(515,230,545,250,UNCLICKED,"/",0);
        show_mouse();
        ch='/';
        return ch;
        }

        //***********************************
        int  a,b;
        if (X>=350 && X<=380 && Y>=255 && Y<=275) // Condition For 1
        {
        hide_mouse();
        button_3d(350,255,380,275,CLICKED,"1",0);
        show_mouse();
        delay(250);
        hide_mouse();
        button_3d(350,255,380,275,UNCLICKED,"1",0);
        show_mouse();
        ch='1';
        return ch;
        }

           // *************************************

        if (X>=390 && X<=420 && Y>=255 && Y<=275) // Condition For 2
        {
        hide_mouse();
        button_3d(390,255,420,275,CLICKED,"2",0);
        show_mouse();
        delay(250);
        hide_mouse();
        button_3d(390,255,420,275,UNCLICKED,"2",0);
        show_mouse();
        ch='2';
        return ch;
        }

           // *************************************

        if (X>=430 && X<=460 && Y>=255 && Y<=275) // Condition For 3
        {
        hide_mouse();
        button_3d(430,255,460,275,CLICKED,"3",0);
        show_mouse();
        delay(250);
        hide_mouse();
        button_3d(430,255,460,275,UNCLICKED,"3",0);
        show_mouse();
        ch='3';
        return ch;
        }

           // *************************************

        if (X>=350 && X<=380 && Y>=280 && Y<=300) // Condition For 0
        {
        hide_mouse();
        button_3d(350,280,380,300,CLICKED,"0",0);
        show_mouse();
        delay(250);
        hide_mouse();
        button_3d(350,280,380,300,UNCLICKED,"0",0);
        show_mouse();
        ch='0';
        return ch;
        }

           // *************************************

        if (X>=390 && X<=420 && Y>=280 && Y<=300) // Condition For .
        {
        hide_mouse();
        button_3d(390,280,420,300,CLICKED,".",0);
        show_mouse();
        delay(250);
        hide_mouse();
        button_3d(390,280,420,300,UNCLICKED,".",0);
        show_mouse();
        ch='.';
        return ch;
        }

        //**********************************************

        if (X>=430 && X<=460 && Y>=280 && Y<=300) // Condition For pi
        {
        hide_mouse();
        button_3d(430,280,460,300,CLICKED,"pi",0);
        show_mouse();
        delay(250);
        hide_mouse();
        button_3d(430,280,460,300,UNCLICKED,"pi",0);
        show_mouse();
        ch='h';
        return ch;
        }

         //***********************************************

        if (X>=480 && X<=510 && Y>=255 && Y<=275) // Condition For -
        {
        hide_mouse();
        button_3d(480,255,510,275,CLICKED,"-",0);
        show_mouse();
        delay(250);
        hide_mouse();
        button_3d(480,255,510,275,UNCLICKED,"-",0);
        show_mouse();
        ch='-';
        return ch;
        }

        //**************************************************

        if (X>=515 && X<=545 && Y>=255 && Y<=275) // Condition For +
        {
        hide_mouse();
        button_3d(515,255,545,275,CLICKED,"+",0);
        show_mouse();
        delay(250);
        hide_mouse();
        button_3d(515,255,545,275,UNCLICKED,"+",0);
        show_mouse();
        ch='+';
        return ch;
        }

        //*****************************************************

        if (X>=350 && X<=460 && Y>=305 && Y<=325) // Condition For =
        {
        hide_mouse();
        button_3d(350,305,460,325,CLICKED,"=",0);
        show_mouse();
        delay(250);
        hide_mouse();
        button_3d(350,305,460,325,UNCLICKED,"=",0);
        show_mouse();
        ch='=';
        return ch;
        }

        //*****************************************************

        if (X>=480 && X<=545 && Y>=305 && Y<=325) // Condition For shift
        {
        hide_mouse();
        button_3d(480,305,545,325,CLICKED,"shift",BLUE);
        show_mouse();
        delay(250);
        hide_mouse();
        button_3d(480,305,545,325,UNCLICKED,"shift",BLUE);
        show_mouse();
        ch='~';
        sflag=1;
        return ch;
        }


        //*************************************

        if (X>=480 && X<=510 && Y>=205 && Y<=225) // Condition For AC
        {
        hide_mouse();
        button_3d(480,205,510,225,CLICKED,"AC",4);
        show_mouse();
        delay(250);
        hide_mouse();
        button_3d(480,205,510,225,UNCLICKED,"AC",4);
        show_mouse();
        ch='o';
        return ch;
        }
        /********************C*/
        if (X>=515 && X<=545 && Y>=205 && Y<=225) // Condition For C
        {
        hide_mouse();
        button_3d(515,205,545,225,CLICKED,"CE",4);
        show_mouse();
        delay(250);
        hide_mouse();
        button_3d(515,205,545,225,UNCLICKED,"CE",4);
        show_mouse();
        ch='a';
        return ch;
        }

          // ****************************************

        if (X>=100 && X<=150 && Y>=205 && Y<=230) // Condition For Sin
        {
        hide_mouse();
        button_3d(100,205,150,230,CLICKED,"Sin",0);
        show_mouse();
        delay(250);
        hide_mouse();
        button_3d(100,205,150,230,UNCLICKED,"Sin",0);
        show_mouse();
        ch='s';
        return ch;
        }

        //***********************************

        if (X>=160 && X<=210 && Y>=205 && Y<=230) // Condition For Cos
        {
        hide_mouse();
        button_3d(160,205,210,230,CLICKED,"Cos",0);
        show_mouse();
        delay(250);
        hide_mouse();
        button_3d(160,205,210,230,UNCLICKED,"Cos",0);
        show_mouse();
        ch='c';
        return ch;
        }

         //***********************************

        if(X>=515&&X<=545&&Y>=280&&Y<=300)     //inverse
         {
        hide_mouse();
        button_3d(515,280,545,300,CLICKED,"inv",0);
        show_mouse();
        delay(250);
        hide_mouse();
        button_3d(515,280,545,300,UNCLICKED,"inv",0);
        show_mouse();
        ch='m';
        return ch;
        }


        if (X>=220 && X<=270 && Y>=205 && Y<=230) // Condition For Tan
        {
        hide_mouse();
        button_3d(220,205,270,230,CLICKED,"Tan",0);
        show_mouse();
        delay(250);
        hide_mouse();
        button_3d(220,205,270,230,UNCLICKED,"Tan",0);
        show_mouse();
        ch='t';
        return ch;
        }

        //***********************************  */


        if (X>=100 && X<=150 && Y>=250 && Y<=275) // Condition For sin^-1
        {
        hide_mouse();
        button_3d(100,250,150,275,CLICKED,"sin^-1",0);
        show_mouse();
        delay(150);
        hide_mouse();
        button_3d(100,250,150,275,UNCLICKED,"sin^-1",0);
        show_mouse();
        ch='i';
        return ch;
        }
                    //**************************

        if (X>=160 && X<=210 && Y>=250 && Y<=275) // Condition For cos^-1
        {
        hide_mouse();
        button_3d(160,250,210,275,CLICKED,"cos^-1",0);
        show_mouse();
        delay(250);
        hide_mouse();
        button_3d(160,250,210,275,UNCLICKED,"cos^-1",0);
        show_mouse();
        ch='j';
        return ch;
        }
                    //**************************

        if (X>=430 && X<=460 && Y>=350 && Y<=370) // Condition For MR
        {
        hide_mouse();
        button_3d(430,350,460,370,CLICKED,"MR",0);
        show_mouse();
        delay(250);
        hide_mouse();
        button_3d(430,350,460,370,UNCLICKED,"MR",0);
        show_mouse();
        ch='?';
        return ch;
        }
        if (X>=390 && X<=420 && Y>=350 && Y<=370) // Condition For M-
        {
        hide_mouse();
        button_3d(390,350,420,370,CLICKED,"M-",0);
        show_mouse();
        delay(250);
        hide_mouse();
        button_3d(390,350,420,370,UNCLICKED,"M-",0);
        show_mouse();
        ch='<';
        return ch;
        }
        if (X>=350 && X<=380 && Y>=350 && Y<=370) // Condition For M+
        {
        hide_mouse();
        button_3d(350,350,380,370,CLICKED,"M+",0);
        show_mouse();
        delay(250);
        hide_mouse();
        button_3d(350,350,380,370,UNCLICKED,"M+",0);
        show_mouse();
        ch='>';
        return ch;
        }

        if (X>=220 && X<=270 && Y>=250 && Y<=275) // Condition For tan^-1
        {
        hide_mouse();
        button_3d(220,250,270,275,CLICKED,"tan^-1",0);
        show_mouse();
        delay(250);
        hide_mouse();
        button_3d(220,250,270,275,UNCLICKED,"tan^-1",0);
        show_mouse();
        ch='k';
        return ch;
        }
                    //**************************


        if (X>=100 && X<=150 && Y>=300 && Y<=325) // Condition For ln
        {
        hide_mouse();
        button_3d(100,300,150,325,CLICKED,"ln",0);
        show_mouse();
        delay(250);
        hide_mouse();
        button_3d(100,300,150,325,UNCLICKED,"ln",0);
        show_mouse();
        ch='n';
        return ch;
        }
                    //**************************

        if (X>=160 && X<=210 && Y>=300 && Y<=325) // Condition For log
        {
        hide_mouse();
        button_3d(160,300,210,325,CLICKED,"log",0);
        show_mouse();
        delay(150);
        hide_mouse();
        button_3d(160,300,210,325,UNCLICKED,"log",0);
        show_mouse();
        ch='l';
        return ch;
        }
                    //**************************

        if (X>=220 && X<=270 && Y>=300 && Y<=325) // Condition For X^2
        {
        hide_mouse();
        button_3d(220,300,270,325,CLICKED,"x^2",0);
        show_mouse();
        delay(250);
        hide_mouse();
        button_3d(220,300,270,325,UNCLICKED,"x^2",0);
        show_mouse();
        ch='p';
        return ch;
        }
        if (X>=100 && X<=150 && Y>=350 && Y<=370) // Condition For deg
        {
        hide_mouse();
        button_3d(100,350,150,370,CLICKED,"deg",15);
        button_3d(160,350,210,370,UNCLICKED,"rad",0);
        button_3d(220,350,270,370,UNCLICKED,"gra",0);
        show_mouse();
        delay(250);
        hide_mouse();
        button_3d(100,350,150,370,UNCLICKED,"deg",15);
        show_mouse();
        ch='d';
        flagp=flag;
        flag=ch;
        return ch;
        }            //**************************
        if (X>=160 && X<=210 && Y>=350 && Y<=370) // Condition For rad
                {
        hide_mouse();
        button_3d(100,350,150,370,UNCLICKED,"deg",0);
        button_3d(160,350,210,370,CLICKED,"rad",15);
        button_3d(220,350,270,370,UNCLICKED,"gra",0);
        show_mouse();
        delay(250);
        hide_mouse();
        button_3d(160,350,210,370,UNCLICKED,"rad",15);
        show_mouse();
        ch='r';
        flagp=flag;
        flag=ch;

        return ch;
        }
        if (X>=220 && X<=270 && Y>=350 && Y<=370) // Condition For gra
        {
        hide_mouse();
        button_3d(100,350,150,370,UNCLICKED,"deg",0);
        button_3d(160,350,210,370,UNCLICKED,"rad",0);
        button_3d(220,350,270,370,CLICKED,"gra",15);
        show_mouse();
        delay(250);
        hide_mouse();
        button_3d(220,350,270,370,UNCLICKED,"gra",15);
        show_mouse();
        ch='g';
        flagp=flag;
        flag=ch;
        return ch;

        }
        if ((X>=480 && X<=545 &&Y>=350 &&Y <=370)||(X>=575&&X<=595&&Y>=23&&Y<=40))   //OFF
        {
        free(mem);
        exit(0);
        }
        if (X>=108 && X<=208 && Y>=140 && Y<=160) // Condition For dec
        {
        hide_mouse();
        button_3d(108,140,208,160,CLICKED,"DEC",15);
        button_3d(218,140,318,160,UNCLICKED,"OCT",0);
        button_3d(328,140,428,160,UNCLICKED,"HEX",0);
        button_3d(438,140,538,160,UNCLICKED,"BIN",0);
        show_mouse();
        delay(250);
        hide_mouse();
        button_3d(108,140,208,160,UNCLICKED,"DEC",15);
        show_mouse();
        ch='u';
        bflagp=bflag;
        bflag=ch;
        return ch;
        }
        if (X>=218 && X<=318 && Y>=140 && Y<=160) // Condition For oct
        {
        hide_mouse();
        button_3d(108,140,208,160,UNCLICKED,"DEC",0);
        button_3d(218,140,318,160,CLICKED,"OCT",15);
        button_3d(328,140,428,160,UNCLICKED,"HEX",0);
        button_3d(438,140,538,160,UNCLICKED,"BIN",0);
        show_mouse();
        delay(250);
        hide_mouse();
        button_3d(218,140,318,160,UNCLICKED,"OCT",15);
        show_mouse();
        ch='v';
        bflagp=bflag;
        bflag=ch;
        return ch;
        }
        if (X>=328 && X<=428 && Y>=140 && Y<=160) // Condition For hex
        {
        hide_mouse();
        button_3d(108,140,208,160,UNCLICKED,"DEC",0);
        button_3d(218,140,318,160,UNCLICKED,"OCT",0);
        button_3d(328,140,428,160,CLICKED,"HEX",15);
        button_3d(438,140,538,160,UNCLICKED,"BIN",0);
        show_mouse();
        delay(250);
        hide_mouse();
        button_3d(328,140,428,160,UNCLICKED,"HEX",15);
        show_mouse();
        ch='w';
        bflagp=bflag;
        bflag=ch;
        return ch;
       }
       if (X>=438 && X<=538 && Y>=140 && Y<=160) // Condition For dec
        {
        hide_mouse();
        button_3d(108,140,208,160,UNCLICKED,"DEC",0);
        button_3d(218,140,318,160,UNCLICKED,"OCT",0);
        button_3d(328,140,428,160,UNCLICKED,"HEX",0);
        button_3d(438,140,538,160,CLICKED,"BIN",15);
        show_mouse();
        delay(250);
        hide_mouse();
        button_3d(438,140,538,160,UNCLICKED,"BIN",15);
        show_mouse();
        ch='x';
        bflagp=bflag;
        bflag=ch;
        return ch;
        }
        if(X>=480&&X<=510&&Y>=280&&Y<=300)
        {
        hide_mouse();
        button_3d(480,280,510,300,CLICKED,"sqrt",0);
        show_mouse();
        delay(250);
        hide_mouse();
        button_3d(480,280,510,300,UNCLICKED,"sqrt",0);
        show_mouse();
        ch='q';
        return ch;
        }

        }while(kbhit() == 0);
        ch=getch();
        return ch;
        }

/*************************************************************************/
/*                                                                         */
/*                This function performs the Calculations                         */
/*                                                                         */
/*************************************************************************/
double add(double x,double y,char ch)
{
        switch(ch)
        {
        case '+':
        y=x+y;
        break;
        case '-':
        y=x-y;
        break;
        case '*':
        y=x*y;
        break;
        case '/':
        y=x/y;
        }
        return y;
}

double  angle_conv(double no)
{
if(flagp=='d')
{
  if(flag=='r')
  {
   no=no*PI/180;
  }
  if(flag=='g')
  {
  no=no*1.1111111;
  }
}
else if(flagp=='r')
{
  if(flag=='d')
  {
  no=no*180/PI;
  }
  if(flag=='g')
  {
  no=no*180/PI*1.1111111;
  }
}
else if(flagp=='g')
{
  if(flag=='r')
  {
  no=no/(180*1.1111111)*PI;
  }
  if(flag=='d')
  {
  no=no/1.1111111;
  }
}
return(no);
}


void basecng(double y,double pnt1)
{
char str[17];
if(pnt1!=0)
{
  gotoxy(row,col);
  printf("The trial version does not support this feature");
  getch();
  bflag='u';
  bflagp='0';
   main();
}
if(bflagp!='u')
{
  gotoxy(row,col);
  printf("The trial version does not support this feature ");
  getch();
bflagp='0';
bflag='u';
  main();
}
switch(bflag)
{
case 'v':
itoa(y,str,8);
gotoxy(row,col);
printf("\t\t\t\t    ");
gotoxy(row,col);
printf("%s",str);
bflagp='0';
break;

case 'w':
itoa(y,str,16);
gotoxy(row,col);
printf("\t\t\t\t    ");
gotoxy(row,col);
printf("%s",str);
bflagp='0';
// getch();
break;

case 'x':
itoa(y,str,2);
gotoxy(row,col);
printf("\t\t\t\t    ");
gotoxy(row,col);
printf("%s",str);
// getch();
bflagp='0';
break;
}
bflag='u';
}

===========================THE Calculator C++ Coders & Programmers=====END
**

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

沒有留言:

張貼留言


if you like make fds, wellcome you here~~anytime***

my free place for everyones who want the good software,

come & download them~ wellcome!!