Форум программистов, компьютерный форум CyberForum.ru

Написать калькулятор, используя класс - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Не работают cin и cout. iostream included, но пишет, что это неизвестные идентификаторы. VC++ 2008 express http://www.cyberforum.ru/cpp-beginners/thread987070.html
Может кто-то подскажет, почему у меня не работают cin и cout? iostream included, но пишет, что эт онеизвестные идентификаторы. Пользуюсь VC++ 2008 express
Visual C++ Не найден идентификатор при вызове функции (работа в MFC) void Rect::Draw(CPaintDC &dc) { int x1,x2,x3,x4; x1 = GetTop(); x2 = GetLeft(); x3 = GetRight(); x4 = GetBottom(); dc.Rectangle(x1,x2,x3,x4); } // реализация метода http://www.cyberforum.ru/cpp-beginners/thread987067.html
Записать текст в массив из файла C++
Подскажите пожалуйста как реализовать такое : нужно записать в массив текст из файла , который расположен между 2-й и 4-й запятой ( в пределах одной строки ) .
C++ Доступ к закрытым конструкторам и деструкторам
Как осуществить доступ к закрытым конструктором и деструкторам и конструкторам через методы класса?
C++ Выберите из файла числа и занесите в очередь. Выведите содержимое и посчитайте количество положительных чисел http://www.cyberforum.ru/cpp-beginners/thread987038.html
Даны текстовый файл, содержащий числовую информацию. Выберите из него числа и занесите в очередь. Выведите содержимое очереди на экран и посчитайте количество положительных чисел.
C++ не вижу ошибки у меня при любом в воде числа из заданного пользователем диапазона выводит угадали. Суть игры: пользователю предлагается вводить число из некоторого диапазона до тех пор, пока он его не угадает. Если пользователь вводит чис- ло, большее чем загаданное, то программа выводит сообщение «Перелет». Если пользо- ватель вводит число, меньшее чем загаданное, то программа выводит сообщение «Недо-... подробнее

Показать сообщение отдельно
KOPOJI
Модератор
 Аватар для KOPOJI
16242 / 6453 / 390
Регистрация: 12.06.2012
Сообщений: 19,347
07.10.2014, 14:54     Написать калькулятор, используя класс
Если по простому, то можно как-то так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include <iostream>
 
struct BadExpression{};
 
class Calculator
{
    enum { MINUS = '-', PLUS = '+' };
    double number;
    char operation;
    double result;
 
public:
    void parse(const std::string&);
    double getResult() const ;
    inline bool isDigitOrDot(const char);
    inline bool isValidSymbol(const char);
};
 
int main(int argc, char *argv[])
{
    std::string line;
    
    std::cout << "Enter expression.." << std::endl;
    std::getline(std::cin, line);
    
    try
    {
        Calculator calc;
        calc.parse(line);
        std::cout << std::endl << "Result: " << calc.getResult() << std::endl;
    }
    catch(BadExpression)
    {
        std::cout << "Bad expression" << std::endl;
    }
}
 
 
void Calculator::parse(const std::string& expression)
{
    result = 0.;
    bool first = true;
    
    for(std::size_t i = 0, cnt = expression.size(); i < cnt; ++i)
    {
        if(!isValidSymbol(expression[i]))
            throw BadExpression();
        if(!isDigitOrDot(expression[i]))
            operation = expression[i++];
        if(!isDigitOrDot(expression[i]))
            throw BadExpression();
        std::string tmp = "";
        while(i < cnt && isDigitOrDot(expression[i]))
            tmp += expression[i++];
        --i;
        number = std::atof(tmp.c_str());
        if(first)
        {
            first = false;
            result = number;
            continue;
        }
        if(operation == MINUS)
            result -= number;
        else if(operation == PLUS)
            result += number;
    }
}
 
double Calculator::getResult() const
{
    return result;
}
 
inline bool Calculator::isDigitOrDot(const char c)
{
    return c == '.' || isdigit(c);
}
 
inline bool Calculator::isValidSymbol(const char c)
{
    return isDigitOrDot(c) || c == MINUS || c == PLUS;
}
 
Текущее время: 10:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru