图形化界面实现计算器EGE
时间: 2023-12-08 09:05:05 浏览: 115
基于图形界面的计算器
您好,图形化界面实现计算器可以使用EGE库来完成,以下是实现的示例代码:
```c++
#include <graphics.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define KEY_NUM 18
#define KEY_W 70
#define KEY_H 50
#define KEY_X0 20
#define KEY_Y0 80
#define KEY_XM 130
#define KEY_YM 100
#define CALC_W 300
#define CALC_H 400
#define CALC_X0 100
#define CALC_Y0 100
char keys[KEY_NUM][8] = {"7", "8", "9", "+", "4", "5", "6", "-", "1", "2", "3", "*", "C", "0", ".", "/", "(", ")",};
char input[100] = "";
void draw_key(int x, int y, char *s)
{
setfillcolor(WHITE);
setlinecolor(BLACK);
rectangle(x, y, x + KEY_W, y + KEY_H);
outtextxy(x + 20, y + 15, s);
}
void draw_frame()
{
setfillcolor(LIGHTGRAY);
setlinecolor(BLACK);
rectangle(CALC_X0, CALC_Y0, CALC_X0 + CALC_W, CALC_Y0 + CALC_H);
settextcolor(BLACK);
setbkcolor(LIGHTGRAY);
outtextxy(CALC_X0 + 10, CALC_Y0 + 10, "Calculator");
setfillcolor(WHITE);
for (int i = 0; i < KEY_NUM; i++)
{
int x = i % 4;
int y = i / 4;
draw_key(KEY_X0 + x * KEY_W, KEY_Y0 + y * KEY_H, keys[i]);
}
}
void get_input()
{
char c;
while (kbhit())
{
c = getch();
if (c == '\r')
{
strcat(input, "=");
}
else if (c == '\b')
{
int len = strlen(input);
input[len - 1] = '\0';
}
else
{
strncat(input, &c, 1);
}
}
}
int main()
{
initgraph(640, 480);
draw_frame();
while (1)
{
get_input();
outtextxy(CALC_X0 + 10, CALC_Y0 + 40, input);
delay(100);
}
closegraph();
return 0;
}
```
在这个示例代码中,我们使用EGE库来实现图形化界面,同时使用数组来存储计算器的按键,使用字符串类型的变量来存储输入的字符,通过不断监听键盘输入的方式来更新输入的字符,并在屏幕上显示出来。
这只是一个简单的示例,如果您想要实现一个完整的计算器,还需要实现按键的响应,以及对输入的字符进行解析计算等功能。
阅读全文