Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.01.2010, 00:51   #1
spirit_trapper
Пользователь
 
Регистрация: 04.12.2009
Сообщений: 19
Печаль UNIX Графический интерфейс для калькулятора (С)

Написал калькулятор. Строковый. Вот такой:

Код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <ctype.h>
#include <assert.h>

int tok;
double tokval;

int next() 
{
	for(;;)
	{  
		int c = getchar();
		if (c == EOF || strchr("+-*/^()\n", c) != NULL) return tok = c;
		if (isspace(c)) continue;
		if (isdigit(c) || c == '.') 
		{
			ungetc(c, stdin);
			scanf(" %lf", &tokval);
			return tok = 'n';
		}
		fprintf(stderr, "Некорректный ввод: %c\n", c); abort();
	}
	// return 0;
}

void skip(int t) 

	{ assert(tok == t); next(); }

double expr();

double numpar() 
{
	if (tok == 'n') 
	{ double x = tokval; skip('n'); return x; }
	skip('('); double x = expr(); skip(')'); 
	return x;
}

double factor() 
{
	double x = numpar();
	if (tok == '^') 
	{ skip('^'); x = pow(x, factor()); }
	return x;
}

double term() 
{
	double x = factor();
	for (;;) 
	{
		if (tok == '*') { skip('*'); x *= factor(); }
		else 
		if (tok == '/') { skip('/'); x /= factor(); }
		else 
		return x;
	}
}

double expr() 
{
	 double x = term();
	 for (;;) 
	 {
		if (tok == '+') { skip('+'); x += term(); }
		else 
		if (tok == '-') { skip('-'); x -= term(); }
		else 
		return x;
    }
}

int main() 
{
	 printf("\n\n");
	 printf("\nВведите выражение:");
	 printf("\n");
	 next();
		while (tok != EOF) 
		{
			if (tok == '\n') 
			{ skip('\n'); continue; }
			printf("%.9g\n", expr());
		}
	return 0;
}
Проблема вот в чем: надо сделать простейший графический интерфейс. Чтоб не отдельное приложение а запускалось прямо в Баше. Хотя бы окно ввода и кнопки "Вычислить" и "Сброс". Однако я совсем не представляю как работать с графикой в UNIX. Какие есть библиотеки для работы с примитивной графикой и как ими пользоваться? Помогите, пожалуиста.

Последний раз редактировалось spirit_trapper; 09.01.2010 в 16:20.
spirit_trapper вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оболочка (интерфейс) для java - веб и десктоп PoMkaNik Общие вопросы по Java, Java SE, Kotlin 3 11.07.2009 15:17
Интерфейс для программы написанной в MS-DOS Скарам Общие вопросы C/C++ 6 15.05.2009 20:37
Графический интерфейс aTBepTKa Общие вопросы C/C++ 2 04.02.2009 16:18
Как можно сотворить свой оригинальный графический интерфейс Elm0 Общие вопросы Delphi 10 05.01.2009 17:16