⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1.c

📁 DOS下简易计算器
💻 C
字号:
#include "stdio.h"
#include "conio.h"
double tmpnum=0;
double tmpans=0;
int todo=0;
int x0,y0;
int ctrin=0;
int ponset=0;
long ponpos=0;
void drawm()
{
    textbackground(1);
    textcolor(14);
    clrscr();
    x0=15,y0=3;
    gotoxy(x0,y0);puts("1    2     3     +");
    gotoxy(x0,y0+=2);puts("4    5     6     -");
    gotoxy(x0,y0+=2);puts("7    8     9     *");
    gotoxy(x0,y0+=2);puts("0    .     =     /");
    gotoxy(7,y0+=3);puts("Esc: Exit the program.");
    gotoxy(7,y0+=1);puts("C: Clear the screen.");
    gotoxy(0,y0+=4);puts("Please press the key:");
    y0+=2;x0=0;gotoxy(0,y0+=4);
    tmpnum=0;tmpans=0;todo=0;ctrin=0;
    setpon(0);
}
setpon(int t)
{
    if(t==1)
    {
        if(ponset==0)
        {
            ponset=1;
            ponpos=10;
            printf(".");
        }
    }
    else
    {
        ponset=0;
        ponpos=1;
    }
}
void intn(int t)
{
    if (ponset==0)
    {        
        tmpnum=tmpnum*10+(double)t;
    }
    else
    {
        tmpnum=tmpnum+(double)t/ponpos;
        ponpos*=10;
    }
    printf("%d",t);
    ctrin=0;
}
void calc(int t)
{
    if (ctrin!=0) goto endl;
    switch(t)
    {
        case 1:printf("+");break;
        case 2:printf("-");break;
        case 3:printf("*");break;
        case 4:printf("/");break;
    }
    switch(todo)
    {
        case 0:tmpans=tmpnum;break;
        case 1:tmpans+=tmpnum;break;
        case 2:tmpans-=tmpnum;break;
        case 3:tmpans*=tmpnum;break;
        case 4:tmpans/=tmpnum;break;
    }
    tmpnum=0;
    todo=t;
    ctrin=1;
    setpon(0);
endl:;
}
void outans()
{
    switch(todo)
    {
        case 0:tmpans=tmpnum;if(tmpnum==0)printf("%d",tmpnum);break;
        case 1:tmpans+=tmpnum;break;
        case 2:tmpans-=tmpnum;break;
        case 3:tmpans*=tmpnum;break;
        case 4:tmpans/=tmpnum;break;
    }
    printf("=");
    tmpnum=0;
    printf("%g",tmpans);
    tmpans=0;
    printf("\n");
    todo=0;
    ctrin=0;
    setpon(0);
}
main()
{
      char a;
      drawm();
      while(1)
      {
          a=0;
            a=bioskey(0)%256;
        switch(a)
        {
            case '1':
            case '2':
            case '3':
            case '4':
            case '5':
            case '6':
            case '7':
            case '8':
            case '9':
            case '0':intn(a-'0');break;
            case 13:
            case '=':outans();break;
            case '/':calc(4);break;
            case '*':calc(3);break;
            case '+':calc(1);break;
            case '-':calc(2);break;
            case 27:exit(0);break;
            case 99:drawm();break;
            case '.':setpon(1);break;
            default:break;
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -