# include & ltmath.h & gt
# include & ltgraphics.h & gt
# include & ltstdio.h & gt
# include & ltprocess.h & gt
#定義EXCAPE 27
#定義輸入13
main(){
int press,I,x,y,x1,y1,ch _ z = 0;
int Dian = 0;
char ch =“0”;/ *輸入+ - * / */
char emp[80],sum[80],*e,* s;
雙元= 0.000000000000;
void init(void);
void clear _ z(char * u);
double strtoflt(char * p);
int getkey();
int gd=DETECT,GM;
init graph(& amp;gd,& ampgm,“”;
e = emp
s =總和;
init();
x =(get maxx()/2)-120;
y =(get maxy()/2)-150;
x 1 =(get maxx()/2)+120;
y 1 =(get maxy()/2)+150;
while(1){
press = getkey();
開關(按下){
案例摘錄:
退出(0);
案例47:
bar (x + 10,y + 80 + 10,x + 60 - 10,y+80+60-10);
延時(8000);
init();
如果(ch!='0'){
開關(通道){
案例“/”:
if (strtoflt(emp)==0.0){
ch =“0”;
ch _ z = 0;
Dian = 0;
EMP[0]= ' \ 0 ';
sum[0]= ' \ 0 ';
e = emp
s =總和;
outtextxy(x+30,y+40,"錯誤!!!!!");
打破;
}
元= strtoflt(sum)/strtoflt(EMP);
sprintf(sum," %0.10f ",元);
clear _ z(sum);
outtextxy(x+30,y+40,sum);
打破;
大小寫' * ':
元= strtoflt(sum)* strtoflt(EMP);
sprintf(sum," %0.10f ",元);
clear _ z(sum);
outtextxy(x+30,y+40,sum);
打破;
大小寫“+”:
袁= strtoflt(sum)+strtoflt(EMP);
sprintf(sum," %0.10f ",元);
clear _ z(sum);
outtextxy(x+30,y+40,sum);
打破;
大小寫'-':
if (strtoflt(sum)>=strtoflt(emp)){
袁= strtoflt(sum)-strtoflt(EMP);
sprintf(sum," %0.10f ",元);
}
否則{
袁= strtoflt(EMP)-strtoflt(sum);
sprintf(sum,"-%0.10f ",元);
}
clear _ z(sum);
outtextxy(x+30,y+40,sum);
EMP[0]= ' \ 0 ';
}
}
否則{
if (ch_z==0){
outtextxy(x+30,y+40,EMP);
stpcpy(sum,EMP);
}
否則{
outtextxy(x+30,y+40,sum);
}
}
ch = '/';
ch _ z = 0;
EMP[0]= ' \ 0 ';
e = emp
Dian = 0;
打破;
案例42:
bar (x + 60 + 10,y + 80 + 10,x + 60 * 2 - 10,y+80+60-10);
延時(8000);
init();
如果(ch!='0'){
開關(通道){
案例“/”:
元= strtoflt(sum)/strtoflt(EMP);
sprintf(sum," %0.10f ",元);
clear _ z(sum);
outtextxy(x+30,y+40,sum);
EMP[0]= ' \ 0 ';
e = emp
打破;
大小寫' * ':
元= strtoflt(sum)* strtoflt(EMP);
sprintf(sum," %0.10f ",元);
clear _ z(sum);
outtextxy(x+30,y+40,sum);
EMP[0]= ' \ 0 ';
e = emp
打破;
大小寫“+”:
袁= strtoflt(sum)+strtoflt(EMP);
sprintf(sum," %0.10f ",元);
clear _ z(sum);
outtextxy(x+30,y+40,sum);
EMP[0]= ' \ 0 ';
e = emp
打破;
大小寫'-':
if (strtoflt(sum)>=strtoflt(emp)){
袁= strtoflt(sum)-strtoflt(EMP);
sprintf(sum," %0.10f ",元);
}
否則{
袁= strtoflt(EMP)-strtoflt(sum);
sprintf(sum,"-%0.10f ",元);
}
clear _ z(sum);
outtextxy(x+30,y+40,sum);
EMP[0]= ' \ 0 ';
e = emp
打破;
}
}
否則{
if (ch_z==0){
outtextxy(x+30,y+40,EMP);
stpcpy(sum,EMP);
e = emp
}
其他
outtextxy(x+30,y+40,sum);
}
ch = ' *
ch _ z = 0;
Dian = 0;
打破;
案例45:
bar (x + 60 * 2 + 10,y + 80 + 10,x + 60 * 3 - 10,y+80+60-10);
延時(8000);
init();
如果(ch!='0'){
開關(通道){
案例“/”:
元= strtoflt(sum)/strtoflt(EMP);
sprintf(sum," %0.10f ",元);
clear _ z(sum);
outtextxy(x+30,y+40,sum);
EMP[0]= ' \ 0 ';
e = emp
打破;
大小寫' * ':
元= strtoflt(sum)* strtoflt(EMP);
sprintf(sum," %0.10f ",元);
clear _ z(sum);
outtextxy(x+30,y+40,sum);
EMP[0]= ' \ 0 ';
e = emp
打破;
大小寫“+”:
袁= strtoflt(sum)+strtoflt(EMP);
sprintf(sum," %0.10f ",元);
clear _ z(sum);
outtextxy(x+30,y+40,sum);
EMP[0]= ' \ 0 ';
e = emp
打破;
大小寫'-':
if (strtoflt(sum)>=strtoflt(emp)){
袁= strtoflt(sum)-strtoflt(EMP);
sprintf(sum," %0.10f ",元);
}
否則{
袁= strtoflt(EMP)-strtoflt(sum);
sprintf(sum,"-%0.10f ",元);
}
clear _ z(sum);
outtextxy(x+30,y+40,sum);
EMP[0]= ' \ 0 ';
e = emp
打破;
}
}
否則{
if (ch_z==0){
outtextxy(x+30,y+40,EMP);
stpcpy(sum,EMP);
e = emp
}
其他
outtextxy(x+30,y+40,sum);
}
ch = '-';
ch _ z = 0;
Dian = 0;
打破;
案例43:
bar (x + 60 * 3 + 10,y + 80 + 10,x + 60 * 4 - 10,y+80+60-10);
延時(8000);
init();
如果(ch!='0'){
開關(通道){
案例“/”:
元= strtoflt(sum)/strtoflt(EMP);
sprintf(sum," %0.10f ",元);
clear _ z(sum);
outtextxy(x+30,y+40,sum);
EMP[0]= ' \ 0 ';
e = emp
打破;
大小寫' * ':
元= strtoflt(sum)* strtoflt(EMP);
sprintf(sum," %0.10f ",元);
clear _ z(sum);
outtextxy(x+30,y+40,sum);
EMP[0]= ' \ 0 ';
e = emp
打破;
大小寫“+”:
袁= strtoflt(sum)+strtoflt(EMP);
sprintf(sum," %0.10f ",元);
clear _ z(sum);
outtextxy(x+30,y+40,sum);
EMP[0]= ' \ 0 ';
e = emp
打破;
大小寫'-':
if (strtoflt(sum)>=strtoflt(emp)){
袁= strtoflt(sum)-strtoflt(EMP);
sprintf(sum," %0.10f ",元);
}
否則{
袁= strtoflt(EMP)-strtoflt(sum);
sprintf(sum,"-%0.10f ",元);
}
clear _ z(sum);
outtextxy(x+30,y+40,sum);
EMP[0]= ' \ 0 ';
e = emp
打破;
}
}
否則{
if (ch_z==0){
outtextxy(x+30,y+40,EMP);
stpcpy(sum,EMP);
e = emp
}
其他
outtextxy(x+30,y+40,sum);
}
ch = '+';
ch _ z = 0;
Dian = 0;
打破;
案例49:
bar (x + 10,y + 80 + 53 + 10,x + 60 - 10,y+80+53 * 2-4);
延時(8000);
init();
for(I = 0;我& lt=79;i++){
if (emp[i]=='\0 ')
打破;
}
if (ch_z==0){
* e = ' 1 ';e++;* e = ' \ 0
outtextxy(x+30,y+40,EMP);
}
否則{
outtextxy(x+30,y+40,sum);
}
打破;
案例50:
bar (x + 60 + 10,y + 80 + 53 + 10,x + 60 * 2 - 10,y+80+53 * 2-4);
延時(8000);
init();
for(I = 0;我& lt=79;i++){
if (emp[i]=='\0 ')
打破;
}
if (ch_z==0){
* e = ' 2e++;* e = ' \ 0
outtextxy(x+30,y+40,EMP);
}
否則{
outtextxy(x+30,y+40,sum);
}
打破;
案例51:
bar (x + 60 * 2 + 10,y + 80 + 53 + 10,x + 60 * 3 - 10,y+80+53 * 2-4);
延時(8000);
init();
for(I = 0;我& lt=79;i++){
if (emp[i]=='\0 ')
打破;
}
if (ch_z==0){
* e = ' 3e++;* e = ' \ 0
outtextxy(x+30,y+40,EMP);
}
否則{
outtextxy(x+30,y+40,sum);
}
打破;
案例輸入:
bar (x + 60 * 3 + 10,y + 80 + 53 + 10,x + 60 * 4 - 10,y+80+53 * 2-4);
延時(8000);
init();
如果(ch!='0'){
開關(通道){
案例“/”:
元= strtoflt(sum)/strtoflt(EMP);
sprintf(sum," %0.10f ",元);
clear _ z(sum);
outtextxy(x+30,y+40,sum);
EMP[0]= ' \ 0 ';
e = emp
打破;
大小寫' * ':
元= strtoflt(sum)* strtoflt(EMP);
sprintf(sum," %0.10f ",元);
clear _ z(sum);
outtextxy(x+30,y+40,sum);
EMP[0]= ' \ 0 ';
e = emp
打破;
大小寫“+”:
袁= strtoflt(sum)+strtoflt(EMP);
sprintf(sum," %0.10f ",元);
clear _ z(sum);
outtextxy(x+30,y+40,sum);
EMP[0]= ' \ 0 ';
e = emp
打破;
大小寫'-':
if (strtoflt(sum)>=strtoflt(emp)){
袁= strtoflt(sum)-strtoflt(EMP);
sprintf(sum," %0.10f ",元);
}
否則{
袁= strtoflt(EMP)-strtoflt(sum);
sprintf(sum,"-%0.10f ",元);
}
clear _ z(sum);
outtextxy(x+30,y+40,sum);
EMP[0]= ' \ 0 ';
e = emp
打破;
}
}
否則{
if (ch_z==0){
outtextxy(x+30,y+40,EMP);
stpcpy(sum,EMP);
e = emp
}
否則{
outtextxy(x+30,y+40,sum);
}
}
ch =“0”;
ch _ z = 1;
Dian = 0;
打破;
案例52:
bar (x + 10,y + 80 + 53 * 2 + 10,x + 60 - 10,y+80+53 * 3-4);
延時(8000);
init();
if (ch_z==0){
* e = ' 4e++;* e = ' \ 0
outtextxy(x+30,y+40,EMP);
}
否則{
outtextxy(x+30,y+40,sum);
}
打破;
案例53:
bar (x + 60 + 10,y + 80 + 53 * 2 + 10,x + 60 * 2 - 10,y+80+53 * 3-4);
延時(8000);
init();
if (ch_z==0){
* e = ' 5e++;* e = ' \ 0
outtextxy(x+30,y+40,EMP);
}
否則{
outtextxy(x+30,y+40,sum);
}
打破;
案例54:
bar (x + 60 * 2 +10,y + 80 + 53 * 2 + 10,x + 60 * 3 - 10,y+80+53 * 3-4);
延時(8000);
init();
if (ch_z==0){
* e = ' 6e++;* e = ' \ 0
outtextxy(x+30,y+40,EMP);
}
否則{
outtextxy(x+30,y+40,sum);
}
打破;
案例46:
bar (x + 60 * 3 + 10,y + 80 + 53 * 2 + 10,x + 60 * 4 - 10,y+80+53 * 3-4);
延時(8000);
init();
if (dian==0){
if (ch_z==0){
*e= ' . ';e++;* e = ' \ 0
outtextxy(x+30,y+40,EMP);
}
否則{
outtextxy(x+30,y+40,sum);
}
}
否則{
if (ch_z==0)
outtextxy(x+30,y+40,EMP);
其他
outtextxy(x+30,y+40,sum);
}
Dian = 1;
打破;
案例55:
bar (x + 10,y + 80 + 53 * 3 + 10,x + 60 - 10,y+80+53 * 4-4);
延時(8000);
init();
if (ch_z==0){
* e = ' 7e++;* e = ' \ 0
outtextxy(x+30,y+40,EMP);
}
否則{
outtextxy(x+30,y+40,sum);
}
打破;
案例56:
bar (x + 60 + 10,y + 80 + 53 * 3 + 10,x + 60 * 2 -10,y+80+53 * 4-4);
延時(8000);
init();
if (ch_z==0){
* e = ' 8e++;* e = ' \ 0
outtextxy(x+30,y+40,EMP);
}
否則{
outtextxy(x+30,y+40,sum);
}
打破;
案例57:
bar (x + 60 * 2 + 10,y + 80 + 53 * 3 + 10,x + 60 * 3 - 10,y+80+53 * 4-4);
延時(8000);
init();
if (ch_z==0){
* e = ' 9e++;* e = ' \ 0
outtextxy(x+30,y+40,EMP);
}
否則{
outtextxy(x+30,y+40,sum);
}
打破;
案例48:
bar (x + 60 * 3 + 10,y + 80 + 53 * 3 + 10,x + 60 * 4 - 10,y+80+53 * 4-4);
延時(8000);
init();
if (ch_z==0){
* e = ' 0e++;* e = ' \ 0
outtextxy(x+30,y+40,EMP);
}
否則{
outtextxy(x+30,y+40,sum);
}
打破;
案例32:
EMP[0]= ' \ 0 ';
sum[0]= ' \ 0 ';
e = emp
s =總和;
ch =“0”;
ch _ z = 0;
Dian = 0;
init();
打破;
案例8:
延時(8000);
for(I = 0;我& lt=79;i++){
if (emp[i]=='\0 ')
打破;
}
如果(i==0)
打破;
如果(我!= 79 & amp& amp我!=0){
I-;
EMP[I]= ' \ 0 ';
e = & ampEMP[I];
}
init();
outtextxy(x+30,y+40,EMP);
打破;
}
}
}
/* - */
void init(void){
int x,y,x1,y1,I,j;
char emp
x =(get maxx()/2)-120;
y =(get maxy()/2)-150;
x 1 =(get maxx()/2)+120;
y 1 =(get maxy()/2)+150;
clear device();
setbkcolor(3);
setfillstyle(1,15);
set color(15);
settextstyle(1,0,1);
矩形(x,y,x1,y 1);
矩形(x - 7,y - 7,x1 + 7,y 1+7);
矩形(x + 10,y + 10,x1 - 10,y+80-10);
線(x,y + 80,x1,y+80);
y = y+80;
for(j = 1;j & lt= 4;j++){
x =(get maxx()/2)-120;
for(I = 1;我& lt= 4;i++){
/* bar (x + 10,y + 10,x + 60 - 10,y+60-10);*/
矩形(x + 10,y + 10,x + 60 - 10,y+60-10);
if (j == 1){
if (i == 1)
outtextxy(x + 20,y + 20,“/”);
如果(i == 2)
outtextxy(x + 25,y + 20,“*”);
如果(i == 3)
outtextxy(x + 27,y + 20,"-");
如果(i == 4)
outtextxy(x + 25,y + 20,"+");
}
if (j == 2){
if (i == 1)
outtextxy(x + 25,y + 20," 1 ");
如果(i == 2)
outtextxy(x + 25,y + 20," 2 ");
如果(i == 3)
outtextxy(x + 25,y + 20," 3 ");
如果(i == 4)
outtextxy(x + 25,y + 20," = ");
}
if (j == 3){
if (i == 1)
outtextxy(x + 25,y + 20," 4 ");
如果(i == 2)
outtextxy(x + 25,y + 20," 5 ");
如果(i == 3)
outtextxy(x + 25,y + 20," 6 ");
如果(i == 4)
outtextxy(x + 25,y + 20," ");
}
if (j == 4){
if (i == 1)
outtextxy(x + 25,y + 20," 7 ");
如果(i == 2)
outtextxy(x + 25,y + 20," 8 ");
如果(i == 3)
outtextxy(x + 25,y + 20," 9 ");
如果(i == 4)
outtextxy(x + 25,y + 20," 0 ");
}
x = x+60;
}
y = y+53;
}
}
/* - */
int getkey(){
char lowbyte
int press
while(BIOS key(1)= = 0);
按= BIOS key(0);
新聞=新聞& amp0xff?新聞與出版。0x ff:press & gt;& gt8;
返回(按);
}
double strtoflt(char *p)
{
雙RTL = 0.000000000000;
double pnt = 0.000000000000
雙t = 10;
int is point = 0;
while (*p!='\0'||*p!='.'){
if(* p & lt;0 ' | | * p & gt'9')
打破;
RTL * = 10;
RTL+= * p-' 0 ';
p++;
}
if (*p== ' . '){
is point = 1;
p++;
}
while(ispoint & amp;& amp*p!='\0'){
pnt+=(double)(* p-' 0 ')/t;
t * = 10;
p++;
}
RTL+= pnt;
返回(RTL);
}
/* - */
void clear_z(char u[]){
int I;
for(I = strlen(u)-1;我& gt=0;我- ){
if (u[i]!='0')
打破;
}
if (u[i]== ' . '){
u[I]= ' \ 0 ';
}
否則{
i++;
u[I]= ' \ 0 ';
}
}