You are on page 1of 27

INTRODUCTION

Scientific Calculator

0.

The calculator was written by Rolf Howarth in early 1996. A fully featured scientific calculator with proper operator precedence is implemented, including trig functions and logarithms, factorials, 12 levels of parentheses, logs to base 2 (a handy function for information entropists!), bitwise logical operators, hex, octal, binary and ASCII display. The calculator is written in JavaScript and you are welcome to view the JavaScript source (visible within the HTML page) for personal educational purposes as long as you recognize that it is copyrighted and not in the public domain. This calculator is now available as part of Hummingbird's Enterprise Information Portal. All enquiries regarding licensing the calculator should be directed to Hummingbird Ltd.

Basic Functions Addition The addition (sum function) is used by clicking on the "+" button or using the keyboard. The function results in a+b.

Subtraction The subtraction (minus function) is used by clicking on the "-" button or using the keyboard. The function results in a-b. Multiplication The multiplication (times function) is used by clicking on the "x" button or using the keyboard "*" key. The function results in a*b. Division The division (divide function) is used by clicking on the "/" button or using the keyboard "/" key. The function results in a/b. Sign The sign key (negative key) is used by clicking on the "(-)" button. The function results in -1*x. Square The square function is used by clicking on the "x^2" button or type "^2". The function results in x*x. Square Root The square root function is used by clicking on the "x" button or type "sqrt()". This function represents x^.5 where the result squared is equal to x. Raise to the Power The raise to the power (y raised to the x function) is used by clicking on the "y^x" button or type "^". Natural Exponential The natural exponential (e raised to the x) is used by clicking on the "e^x" button or type "exp()". The result is e (2.71828...) raised to x. Logarithm The logarithm (LOG) is used by clicking on the "LOG" button or type "LOG()".

Natural Logarithm The Natural logarithm (LN) is used by clicking on the "LN" button or type "LN()". Inverse Multiplicative inverse (reciprocal function) is used by pressing the "1/x" button or typing "inv()". This function is the same as x^-1 or dividing 1 by the number. Exponent Numbers with exponents of 10 are displayed with an "e", for example 4.5e+100 or 4.5e-100. This function represents 10^x. Numbers are automatically displayed in the format when the number is too large or too small for the display. To enter a number in this format use the exponent key "EEX". To do this enter the mantissa (the non exponent part) then press "EEX" or type"e" and then enter the exponent. Factorial The Factorial function is used by clicking the "!" button or type "!". PI PI is a mathematical constant of the ratio of a circle's circumference to its diameter.

PROPOSED SYSTEM

The following documentation is a project the Name of the term paper allotted. It is a detailed summary of all the drawbacks of the old system and how the new proposed system overcomes these shortcomings. The new system takes into account the various factors while designing a new system. It keeps into the account the Economical bandwidth available for the new system. The foremost thing that is taken care of is the Need and Requirements of the User.

DESCRIPTION

Before developing software we keep following things in mind that we can develop powerful and quality software PROBLEM STATEMENT o Problem statement was to design a module: o Which is user friendly o Which will restrict the user from accessing other users data. o Which will help user in viewing his data and privileges. o Which will help the administrator to handle all the changes. FUNCTIONS TO BE PROVIDED: The system will be user friendly and completely menu driven so that the users shall have no problem in using all options. o The system will be efficient and fast in response. o The system will be customized according to needs. o (View o Add o Delete o Modify) SYSTEM REQUIRMENTS Operating system: MS Windows XP or Windows Vista

Language: C Language Processor: Pentium IV Processor RAM: 512 MB Hard disk: 5 GB

SYSTEM DESIGN

Then we began with the design phase of the system. System design is a solution, a HOW TO approach to the creation of a new system. It translates system requirements into ways by which they can be made operational. It is a translational from a user oriented document to a document oriented programmers. For that, it provides the understanding and procedural details necessary for the implementation. Here we use Flowchart to supplement the working of the new system. The system thus made should be reliable, durable and above all should have least possible maintenance costs. It should overcome all the drawbacks of the Old existing system and most important of all meet the user requirements.

START

Welcome to main menu of Scientific Calculator

Enter Your Choice?

On calculator

Do your any task

Trignometery(sin,cos)

Inverse(1/x)

Yes Do you want to continue? No Switch off calculator

STOP

CODING #include<string.h> #include<mouse.h> #include<stdlib.h> #include<conio.h> #include<math.h> #include<graphics.h> #include<stdio.h> #include<alloc.h> #define pi 3.1415265 union REGS i,o; int sr,dpf; char *no[]={"1","2","3","4","5","6","7","8","9","0",".","+/-"}, *cal[]={"+","-","*","/","=",""}, *sci[]={"Sin","Cos","Tan","Sinh","Cosh","Tanh","Exp","ln","log","xrty","1/x","x^2","x^y","sqrt ","fact","Hypot","eqn","DEG",}, *ms[]={"AC","HEX","BIN","OCT","BKSP"}; long com(long,int); long double back(long double),equ(),alg(long double,int); double ns(long double,int); int box(int,int,int,int,int); char *z2; long double *z1; int xy1[3]; void draw() { int gm,gd=DETECT; int x,y,x1,y1,i,j; //-----DRAW THE BODY OF CALCULATOR

initgraph(&gd,&gm,"c:\\tc\\bgi"); z2=(char * ) malloc(sizeof(char)*10); x=getmaxx();y=getmaxy();

//INITIALISE GRAPHICS /*ALLOCATE MEMORY TO z2*/

setcolor(DARKGRAY); setfillstyle(1,CYAN); floodfill(5,5,DARKGRAY);

//CYAN outer body

setcolor(BLACK);setfillstyle(1,LIGHTGRAY); rectangle(20,20,x-20,y-20); //grey calculator body

floodfill(50,50,BLACK); setcolor(BLACK); line(20,20,x-20,20); line(20,20,20,y-20); //black outline

setcolor(BLUE);setfillstyle(1,BLUE); rectangle(21,20,x-21,40); floodfill(25,25,BLUE); /* blue quit rectangle*/ setcolor(BLACK); outtextxy(x/5,8,"Scientific Calculator by-: Akash(02512) & Akhil(02514)"); initmouse(); showmouse(); setmouse(0,0); setcolor(WHITE);setfillstyle(1,WHITE); rectangle(30,55,x-30,70); floodfill(32,59,WHITE);

//---white i/o box

outtextxy(x-220,27,"Press Any Key To Quit."); setcolor(DARKGRAY); line(235,95,235,y-30); setfillstyle(1,LIGHTGRAY);

//---Quit

//grey partition line

/*------------------printing nos.---------------------*/ i=0; for(x1=40;x1<150;x1+=30) { j=0; for(y1=100;y1<450;y1+=40) { box(x1,y1,40,WHITE,BLACK); setcolor(BLUE); if(i==1&&j==10) outtextxy(x1+10,y1+20,no[i+j]); else outtextxy(x1+15,y1+20,no[i+j]); y1+=20; j+=2; } i++; x1+=40; }

/*---------------------------------------------------------------*/ /*--------printing simple algebric functions:(+,-,*,/)----------*/ for(x1;x1<=180;x1+=40) { j=0; for(y1=100;y1<450;y1+=40) /*x1=180*/ { box(x1,y1,40,WHITE,BLACK); setcolor(BLUE); outtextxy(x1+15,y1+20,cal[j]); y1+=20; j++; } } x1+=30; /*-----------------------------------------------------------------*/ /*--------------------print scientific functions-------------------*/ i=0; for(x1;x1<501;x1+=30) { j=0; for(y1=100;y1<450;y1+=40) { box(x1,y1,70,WHITE,BLACK); /*x1=220*/ setcolor(BLUE); outtextxy(x1+15,y1+20,sci[i+j]); y1+=20; j+=3; } xy1[i]=x1; /*store X coordinates*/ i++; x1+=70; } /*-----------------------------------------------------------------*/ /*------------------print MATHEMATICAL SYSTEMS: BIN,HEX-------------*/ for(x1;x1<=550;x1+=30) { j=0; for(y1=100;y1<450;y1+=40) /*x1=550*/ { if(j==5) break; box(x1,y1,55,WHITE,BLACK); setcolor(RED); outtextxy(x1+15,y1+20,ms[j]); y1+=20; j++;

} } mouse(); } void main() { password(); draw(); } //MAIN DECLARATION

/*-----------MOUSE PROGRAMMING------------*/ mouse() { int button,x,y; char s[13]={" "}; int x1,y1,i,j,flag=1,l; long double n,k; while(!kbhit()) { Again: getmouse(&button,&x,&y); while(button==1) { getmouse(&button,&x,&y); sr=1; } if(sr==1) { i=0; sr=0; if(x>=xy1[0]&&x<=(xy1[0]+70)) { colm1(n,y); dpf=0; strcpy(s," "); } if(x>=xy1[1]&&x<=(xy1[1]+70)) { colm2(n,y); dpf=0; strcpy(s," "); } if(x>=xy1[2]&&x<=(xy1[2]+70))

/*fourth column check*/

/*fifth column check*/

/*sixth column check*/

{ colm3(n,y); dpf=0; strcpy(s," "); } for(x1=40;x1<150;x1+=30) //1st & 2nd column check { j=0; setcolor(DARKGRAY); for(y1=100;y1<450;y1+=40) { if(x>=x1 && y>=y1 && x<=x1+40 && y<=y1+40) { box(x1,y1,40,BLACK,WHITE); delay(200); box(x1,y1,40,WHITE,BLACK); if((strcmp(no[i+j],no[11]))==0) { if(flag==1) { n*=-1; // +/- sign s[0]='-'; flag=0; } else { n*=-1; s[0]=' '; setcolor(LIGHTGRAY); setfillstyle(1,WHITE); floodfill(32,59,LIGHTGRAY); flag=1; } goto NEXT; } if(strlen(s)>=11) goto Again; if((strcmp(no[i+j],no[10]))==0) { if(dpf==0) { strcat(s,no[i+j]); //save no. to string s dpf=1; } } else strcat(s,no[i+j]); //save no. to string s NEXT: n=_atold(s); //array to long double setcolor(DARKGRAY);

outtextxy(30,60,s); goto Again; } y1+=20; j+=2; } i++; x1+=40; } if(x>550 && x<605 && y>340 && y<380) { delay(100); setcolor(LIGHTGRAY); setfillstyle(1,WHITE); floodfill(32,59,LIGHTGRAY); l=strlen(s); if(s[l-1]=='.') dpf=0; s[l-1]=s[l]; setcolor(DARKGRAY); outtextxy(30,60,s); goto Again; }

// display no. in i/o box

//BACKSPACE

if(x>550 && x<605) // 7th column { setcolor(LIGHTGRAY); setfillstyle(1,WHITE); floodfill(32,59,LIGHTGRAY); dpf=0; ns(n,y); strcpy(s," "); goto Again; } if(x>180 && x<220) { setcolor(LIGHTGRAY); setfillstyle(1,WHITE); floodfill(32,59,LIGHTGRAY); dpf=0; if(y>400 && y<440) { // 3rd column

// pi value

box(180,400,40,BLACK,WHITE); delay(200); box(180,400,40,WHITE,BLACK);

n=pi; setcolor(DARKGRAY); outtextxy(30,60," 3.1415265"); goto Again; } alg(n,y); strcpy(s," "); goto Again; } } } return; } /*-------perform algebric calculations---------*/ long double alg(long double n, int y ) { int y1; static int i; long double r; z1[i]=n; //copy no. to z1 if(y>100 && y<140) { box(180,100,40,BLACK,WHITE); delay(200); box(180,100,40,WHITE,BLACK); z2[i]=43; i++; return 0; } if(y>160 && y<200) { box(180,160,40,BLACK,WHITE); delay(200); box(180,160,40,WHITE,BLACK); z2[i]=45; i++; return 0; } if(y>220 && y<260) { box(180,220,40,BLACK,WHITE); delay(200); box(180,220,40,WHITE,BLACK); z2[i]=42; i++; return 0; //--add

// add(n);

//subtract

// sub(n);

//multiply

//mul(n);

} if(y>280 && y<320) { box(180,280,40,BLACK,WHITE); delay(200); box(180,280,40,WHITE,BLACK); z2[i]=47; i++; return 0; } if(y>340 && y<380) { box(180,340,40,BLACK,WHITE); delay(200); box(180,340,40,WHITE,BLACK); z1[i+1]=z2[i]='\0'; equ(); i=0; return 0; } return 0; } /*---------solve algebric functions--------*/ long double equ() { int i,j; char ch[50]={" "};

//divide

//div(n);

//equal

for(i=0;z2[i]!='\0';) { if(z2[i]=='/') /*------perform division------*/ { z1[i]/=z1[i+1]; for(j=i;z2[j]!='\0';j++) { z1[j+1]=z1[j+2]; z2[j]=z2[j+1]; } } else i++; } /*--------------*/ for(i=0;z2[i]!='\0';) { if(z2[i]=='*')

/*------perform multiplication------*/

{ z1[i]*=z1[i+1]; for(j=i;z2[j]!='\0';j++) { z1[j+1]=z1[j+2]; z2[j]=(int)z2[j+1]; } } else i++; } for(i=0;z2[i]!='\0';) { if(z2[i]=='+') { if(z2[i-1]=='-') z1[i+1]*=-1; z1[i]+=z1[i+1]; for(j=i;z2[j]!='\0';j++) { z1[j+1]=z1[j+2]; z2[j]=z2[j+1]; } } else i++; }

/*--------------*/

/*------perform addition------*/

/*--------------*/

for(i=0;z2[i]!='\0';) { if(z2[i]=='-') /*------perform subtraction------*/ { z1[i]-=z1[i+1]; for(j=i;z2[j]!='\0';j++) { z1[j+1]=z1[j+2]; z2[j]=z2[j+1]; } } else i++; } /*--------------*/ if(z2[1]=='r') /*------find yth roots------*/ z1[0]=pow(z1[2],1/z1[0]);

if(z2[1]=='p') /*------find yth power------*/ z1[0]=pow(z1[2],z1[0]);

if(z2[1]=='h') /*------find hypotenuse------*/ z1[0]=hypot(z1[2],z1[0]);

gcvt(z1[0],15,ch); setcolor(DARKGRAY); outtextxy(35,60,ch); press(); return 0; }

/*------copy result to array----------*/ //display result

/*-------perform numeric system calculations--------*/ double ns(long double b, int y ) { int y1; long n; n=b; if(y>100 && y<140) // AC function { box(550,100,55,BLACK,WHITE); delay(200); box(550,100,55,WHITE,BLACK); return 0; } if( y>160 && y<200) // HEX function { box(550,160,55,BLACK,WHITE); delay(200); box(550,160,55,WHITE,BLACK); com(n,16); } if( y>220 && y<260) // BINARY function { box(550,220,55,BLACK,WHITE); delay(200); box(550,220,55,WHITE,BLACK); com(n,2); } if( y>280 && y<320) //OCTAL function {

box(550,280,55,BLACK,WHITE); delay(200); box(550,280,55,WHITE,BLACK); com(n,8); } return 0; } /*---------common for HEX, BINARY & OCTAL-------------*/ long com(long b,int k) { char *str; int i=0; itoa(b,str,k); // integer to array if(k==16) { while(str[i]!='\0') { if(str[i]>96 && str[i]<103) str[i]-=32; i++; } } setcolor(DARKGRAY); outtextxy(35,60,str); press(); return 0; } /*Program to find roots of a Quad. Eqn. */ roots( ) { float a,b,c,disc,r1,r2,s,x,y; int k=253; closegraph(); restorecrtmode(); printf("Input values of a, b, c in ax%c+bx+c\n ",k); scanf("%f%f%f",&a,&b,&c); disc= b*b-4*a*c; if(disc<0) { printf("\n roots are IMAGINERY \n");

s=-disc; x=sqrt(s)/(2*a); y=-b/(2*a); printf("\n r1=%f+i%f",y,x); printf("\n r2=%f-i%f",y,x); } else { r1=(-b+sqrt(disc))/(2.0*a); r2=(-b-sqrt(disc))/(2.0*a); printf("\n r1=%f \n r2=%f \n",r1,r2); } getch(); return; } /*---------------BUTTONS------------------------*/ int box(int x1,int y1,int l,int c1,int c2) { setcolor(c1); setfillstyle(1,LIGHTGRAY); rectangle(x1,y1,x1+l,y1+40); floodfill(x1+3,y1+10,c1); setcolor(c2); line(x1+l,y1,x1+l,y1+40); line(x1,y1+40,x1+l,y1+40); return 0; } /*password at start screen*/ password() { int i,x=270,gm,gd=DETECT; char ch,pass[10]; initgraph(&gd,&gm,"c:\\tc\\bgi"); rectangle(15,15,615,465); setcolor(LIGHTBLUE); setfillstyle(1,LIGHTBLUE); floodfill(50,50,15); settextstyle(1,HORIZ_DIR,3); setcolor(BLACK); outtextxy(200,50,"Enter the password"); for(i=0;i<=10;i++,x+=10) {

ch=getch(); if(ch==13) break; outtextxy(x,150,"*"); sound(300); delay(50); nosound(); pass[i]=ch; } pass[i]='\0'; if(!strcmp(pass,"as")) //compare entered string with password return 0; else cleardevice(); rectangle(15,15,615,465); setcolor(LIGHTBLUE); setfillstyle(1,LIGHTBLUE); floodfill(50,50,15); settextstyle(1,HORIZ_DIR,3); setcolor(RED); outtextxy(220,50,"Wrong Password"); outtextxy(80,150,"This program will terminate in 5 seconds"); for(i=5;i>=0;i--) { setcolor(LIGHTBLUE); setfillstyle(1,LIGHTBLUE); bar(300,240,330,300); setcolor(RED); outtextxy(310,250,itoa(i,pass,10)); sound(1000*i+500); delay(300); nosound(); delay(700); } exit(0); return 0; }

/*-----------solving scientific functions------------*/ //---the no. entered is in RADIANS /*-----------check for first column------------------*/ colm1(long double a,int y) {

double cal; char *str; z1[2]=a; setcolor(WHITE); setfillstyle(1,WHITE); bar(30,55,610,70); if(y>=100 && y<=140) // SINE of entered no. { box(xy1[0],100,70,BLACK,WHITE); delay(200); box(xy1[0],100,70,WHITE,BLACK); cal=sin(a); } if(y>=160 && y<=200) // HYPERBOLIC SINE of entered no. { box(xy1[0],160,70,BLACK,WHITE); delay(200); box(xy1[0],160,70,WHITE,BLACK); cal=sinh(a); } if(y>=220 && y<=260) // EXPONENTIAL of entered no. { box(xy1[0],220,70,BLACK,WHITE); delay(200); box(xy1[0],220,70,WHITE,BLACK); cal=exp(a); } if(y>=280 && y<=320) // Yth ROOT of entered no. { box(xy1[0],280,70,BLACK,WHITE); delay(200); box(xy1[0],280,70,WHITE,BLACK); z2[1]='r'; return 0; } if(y>=340 && y<=380) // Yth POWER of entered no. { box(xy1[0],340,70,BLACK,WHITE); delay(200); box(xy1[0],340,70,WHITE,BLACK); z2[1]='p'; return 0; } if(y>=400 && y<=440) // HYPOTENUSE of entered no. {

box(xy1[0],400,70,BLACK,WHITE); delay(200); box(xy1[0],400,70,WHITE,BLACK); z2[1]='h'; return 0; } setcolor(DARKGRAY); gcvt(cal,10,str); outtextxy(35,60,str); press(); return(0); } /*-----------check for second column------------------*/ colm2(long double a,int y) { double cal; int i; char *str; setcolor(WHITE); setfillstyle(1,WHITE); bar(30,55,610,70); if(y>=100 && y<=140) // COSINE of entered no. { box(xy1[1],100,70,BLACK,WHITE); delay(200); box(xy1[1],100,70,WHITE,BLACK); cal=cos(a); } if(y>=160 &&y<=200) // HYPERBOLIC COSINE of entered no. { box(xy1[1],160,70,BLACK,WHITE); delay(200); box(xy1[1],160,70,WHITE,BLACK); cal=cosh(a); } if(y>=220 && y<=260) // NATURAL LOG of entered no. { box(xy1[1],220,70,BLACK,WHITE); delay(200); box(xy1[1],220,70,WHITE,BLACK); cal=log(a); }

if(y>=280 && y<=320) // INVERSE of entered no. { box(xy1[1],280,70,BLACK,WHITE); delay(200); box(xy1[1],280,70,WHITE,BLACK); cal=1/a; } if(y>=340 && y<=380) // SQRT of entered no. { box(xy1[1],340,70,BLACK,WHITE); delay(200); box(xy1[1],340,70,WHITE,BLACK); cal=sqrt(a); } if(y>=400 && y<=440) // QUADRATIC EQN. { box(xy1[1],400,70,BLACK,WHITE); delay(200); box(xy1[1],400,70,WHITE,BLACK); roots(); draw(); return 0; } setcolor(DARKGRAY); gcvt(cal,10,str); outtextxy(35,60,str); press(); return 0; } /*-----------check for third column------------------*/ colm3(long double a,int y) { double cal; char *str; setcolor(WHITE); setfillstyle(1,WHITE); bar(30,55,610,70); if(y>=100 && y<=140) // TANGENT of entered no. { box(xy1[2],100,70,BLACK,WHITE); delay(200); box(xy1[2],100,70,WHITE,BLACK); cal=tan(a);

} if(y>=160 && y<=200) //HYPERBOLIC TANGENT of entered no. { box(xy1[2],160,70,BLACK,WHITE); delay(200); box(xy1[2],160,70,WHITE,BLACK); cal=tanh(a); } if(y>=220 && y<=260) // LOG TO THE BASE 10 of entered no. { box(xy1[2],220,70,BLACK,WHITE); delay(200); box(xy1[2],220,70,WHITE,BLACK); cal=log10(a); } if(y>=280 && y<=320) // SQUARE of entered no. { box(xy1[2],280,70,BLACK,WHITE); delay(200); box(xy1[2],280,70,WHITE,BLACK); cal=pow(a,2); } if(y>=340 && y<=380) // FACTORIAL of entered no. { box(xy1[2],340,70,BLACK,WHITE); delay(200); box(xy1[2],340,70,WHITE,BLACK); cal=1; for(;a>=1;a--) cal=cal*a; } if(y>=400 && y<=440) // conversion of DEGREES to RADIANS { box(xy1[2],400,70,BLACK,WHITE); delay(200); box(xy1[2],400,70,WHITE,BLACK); cal=(180*a)/pi; } setcolor(DARKGRAY); gcvt(cal,10,str); outtextxy(35,60,str); press(); return(0); }

//Changing the blue rectangle contents press() { int x; x=getmaxx(); setcolor(BLACK); setfillstyle(1,RED); bar(21,20,x-21,40); floodfill(25,25,BLACK); /* blue rectangle*/ setcolor(WHITE); outtextxy(x-250,27,"Press Any Key To Continue"); /*---Continue---*/ getch(); setcolor(LIGHTGRAY); setfillstyle(1,WHITE); floodfill(32,59,LIGHTGRAY); setcolor(BLACK);setfillstyle(1,BLUE); rectangle(21,20,x-21,40); floodfill(25,25,BLACK); /* blue rectangle*/ setcolor(WHITE); outtextxy(x-220,27,"Press Any Key To Quit."); /*---Quit---*/ } /*-----------------------END--------------------------------------*/

APPLICATIONS In most countries, students use calculators for schoolwork. There was some initial resistance to the idea out of fear that basic arithmetic skills would suffer. There remains disagreement about the importance of the ability to perform calculations "in the head", with some curricula restricting calculator use until a certain level of proficiency has been obtained, while others concentrate more on teaching estimation techniques and problem-solving. Research suggests that inadequate guidance in the use of calculating tools can restrict the kind of mathematical thinking that students engage in. Others have argued that calculator use can even cause core mathematical skills to atrophy, or that such use can prevent understanding of advanced algebraic concepts. There are other concerns - for example, that a pupil could use the calculator in the wrong fashion but believe the answer because that was the result given. Teachers try to combat this by encouraging the student to make an estimate of the result manually and ensuring it roughly agrees with the calculated result. Also, it is possible for a child to type in 1 1 and obtain the correct answer '1' without realizing the principle involved. In this sense, the calculator becomes a crutch rather than a learning tool, and it can slow down students in exam conditions as they check even the most trivial result on a calculator.

FUTURE SCOPE OF THE PROJECT

Our project will be able to implement in future after making some changes and modifications as we make our project at a very low level. So the modifications that can be done in our project are: To make it screen touch so no need to touch key buttons and one more change which can we made is to add snaps of the person who use it.

TESTING Testing is the major control measure used during software development. Its basic function is to detect errors in the software. During requirement analysis and design, the output is a document that is usually textual and no executable. After the coding phase, computer programs are available that can be executed for testing purpose. This implies that testing not only, has to uncover errors introduced during coding, but also errors introduced during previous phase. Thus the goal of testing is to uncover the requirements, design and coding errors in the programs. The Sourcecode declared above for the program of Scientific Calculator has been tested and it has been found that the above source code is okay and correct.The program involves many type of conversions. These conversions has to done carefully

You might also like