0% found this document useful (0 votes)
83 views

Calcprog

This code defines a graphical calculator program. It initializes the graphics and defines button objects for the numbers, operators, and other functions. When a button is clicked, it displays the corresponding number or performs the operation. It tracks the current number, operation, and running total, updating the display after each button press.

Uploaded by

Jimmy P Madhu
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
83 views

Calcprog

This code defines a graphical calculator program. It initializes the graphics and defines button objects for the numbers, operators, and other functions. When a button is clicked, it displays the corresponding number or performs the operation. It tracks the current number, operation, and running total, updating the display after each button press.

Uploaded by

Jimmy P Madhu
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

#include "calc.

h"
main()
{
int driver,mode;
driver=EGA;
mode=EGAHI;
initgraph(&driver,&mode,"\\borlandc\\bgi");
border border1(SCREEN,240,30,480,330);
output output1(&border1,20,20,220,60,BLUE,WHITE);
button button0(&border1,30,230,65,265,BLACK,"0");
button button1(&border1,30,180,,65,215,BLACK,"1");
button button2(&border1,78,180,113,215,BLACK,"2");
button button3(&border1,127,180,162,215,BLACK,"3");
button button4(&border1,30,130,65,165,BLACK,"4");
button button5(&border1,78,130,113,165.BLACK,"5");
button button6(&border1,127,130,162,165,BLACK,"6");
button button7(&border1,30,80,65,115,BLACK,"7");
button button8(&border1,78,80,113,115,BLACK,"8");
button button9(&border1,127,80,162,115,BLACK,"9");
button buttondiv(&border1,175,80,210,115,BLUE,"/");
button buttonmul(&border1,175,130,210,165,BLUE,"*");
button buttonsub(&border1,175,180,210,215,BLUE,"-");
button buttondot(&border1,78,230,113,265.BLACK,".");
button buttonclr(&border1,127,230,162,265,RED,"clr");
button buttonadd(&border1,175,230,210,265,BLUE,"+");
button buttonequals(&border1,175,230,210,265,BLUE,"=");
border1.display();
output1.display();
button7.display();
button4.display();
button1.display();
button8.display();
button5.display();
button2.display();
button9.display();
button6.display();
button3.display();
buttonsub.display();
buttonmul.display();
buttondiv.display();
buttonadd.display();
button0.display();
buttondot.display();
buttonclr.display();
output1.number(0.0);
const char esc=27;
char dstring[80];
char tempbuf[80];
int numchars=0;
char ch;
char oper;
boolean isfirst=true;
boolean chain=false;
double number1,number2;
double answer;
while((ch=getch())!=esc)
{
if(ch>='0'&&ch<='9')||ch=='.')
{
switch(ch)
{
case '0': button0.click();break;
case '1': button1.click();break;
case '2': button2.click();break;
case '3': button3.click();break;
case '4': button4.click();break;
case '5': button5.click();break;
case '6': button6.click();break;
case '7': button7.click();break;
case '8': button8.click();break;
case '9': button9.click();break;
case '.': buttondot.click();break;
}
dstring[numchars++]=ch;
dstring[numchars]='\0';
if(atof(dstring)>99999999999.99||numchars>11)
{
delay(100);sound(200);delay(300);nosound();
dstring[--numchars]='\0';
}
output1.text(dstring);
}
else
if(ch=='/'||ch=='*'||ch=='-'||ch=='+'||ch=='=')
{
strcpy(tempbuf,dstring);
numchars=0;
dstring[numchars]='\0';
output1.text(dstring);
if(isfirst)
{
number1=(chain)?answer:atof(tempbuf);
isfirst=false;
switch(ch)
{
case '/': buttondiv.click();oper='/';break;
case '*': buttonmul.click();oper='*';break;
case '-': buttonsub.click();oper='-';break;
case '+': buttonadd.click();oper='+';break;
case '=': buttonequals.click();oper='=';break;
}
else
{
buttonadd.click();
number2=atof(tempbuf);
switch(oper)
{
case '/': answer=number1/number2;break;
case '*': answer=number1*number2;break;
case '-': answer=number1-number2;break;
case '+': answer=number1+number2;break;
}
if(answer>999999999.99)
output1.Text("overflow!");
else
{
output1.number(answer);
number1=answer;
}
isfirst=true;
chain=true;
}
}
else if(ch=='C'||ch='c')
{
buttonclr.click();
isfirst=true;chain false;
numchars=0;
dstring[numchars]='\0';
output1.number(0.0);
}
else
{
delay(100);sound(200);delay(300);nosound();
}
}
closegraph();
}

You might also like