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

C++ Калькулятор - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ как заполнить класс из файла? http://www.cyberforum.ru/cpp-beginners/thread657867.html
доброго времени суток! начал пытать лабу по безопасности! класс должен считать все данные из файла и заполнится. я для этого использую конструктор по умолчанию. но уменя высвечивает всего по одному символу из строки, и то неверных! помогите содержимое файла: login password acces tiva qwerty 1 asdf zxcv 2 ... и тд у меня не считывается строка вообще. я пока не знаю как сделать, чтоб...
C++ Определить какая из точек ближе всего лежит к началу координаты Заданы 3 точки р1(х1,у1),р2(х2,у2),р3(х3,у3).Определить какая из точек ближе всего лежит к началу координаты. http://www.cyberforum.ru/cpp-beginners/thread657863.html
C++ do while - как выйти из цикла?
Подскажите пожалуйста, а то я уже всю голову "сломал", почему при вводе "А" цикл не прерывается??? #include <iostream> #include <string> using namespace std; int main() { setlocale(LC_ALL, "Russian");
ошибка,не правильно работают функции косинуса и синуса! C++
#include <iostream> #include <conio.h> #include <math.h> #include <fstream> #include <iomanip> using namespace std; double coss(double xx) { double ss=0; double tt=1; for(double i=0;i<=80;i++)
C++ Определить сумарный пробег за 10 дней http://www.cyberforum.ru/cpp-beginners/thread657833.html
Спортсмен в первый день пробежал 2 км.Каждый последующий день он увеличивал свой пробег на 20%.Определить его сумарный пробег за 10 дней.
C++ Чтение файла в бинарном режиме Открываю двоичный файл и читаю, например, 200 байт файла int main() { char buffer; char FileName; fstream F; cout<<"Input Name of file :";cin>>FileName; F.open(FileName, ios::in | ios::binary); F.read(buffer, 200); подробнее

Показать сообщение отдельно
#pragma
Временно недоступен
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
25.09.2012, 19:32     C++ Калькулятор
Вот набросок калькулятора, который просто считает 2+2 (вводим 2+2, получаем 4 ). В твоём коде я не понял логики, попытался исправить код, но в итоге от твоего кода ничего не осталось (почти).
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
84
85
86
87
#include <iostream>
#include <cstdlib>
#include <cstring>
using namespace std;
 
int main()
{
    char s[100];
    cout << "Vvedite primer: \n";
    cin >> s;
 
    long result = 0;
    int first_operand, second_operand;
 
    char first_string[20];
    char second_string[20];
 
    memset( first_string,0, 20);
    memset(second_string,0, 20);
 
    char cur_operator = ' ';
 
    char Operator[] = {'+', '-', '*', '/'};
 
    bool error = false;
 
    unsigned i;
 
    for (i = 0; isdigit(s[i]) ; ++i)
    {
       first_string[i]=s[i];
    }
 
    for (unsigned j = 0; j < sizeof(Operator); ++j) {
 
       if (s[i] != Operator[j]) {
          error = true;
       }
       else {
          error = false;
          cur_operator = Operator[j];
          break;
       }
    }
    if (error) {
       cout << "WRONG OPERATOR: " << s[i];
       return -1;
    }
 
    for (unsigned j = 0; isdigit(s[++i]) && i < sizeof(s) ; ++j)
    {
       second_string[j]=s[i];
    }
 
    first_operand  = atoi( first_string);
    second_operand = atoi(second_string);
 
    switch(cur_operator) {
 
       case '+': if(first_operand) result = first_operand + second_operand;
                 else result += second_operand;
       break;
       case '-': if(first_operand) result = first_operand - second_operand;
                 else result -= second_operand;
       break;
       case '*': if(first_operand) result = first_operand * second_operand;
                 else {
                    std::cout << "ERROR: Operand missing";
                    return -1;
                 }
       break;
       case '/': if(first_operand) result = first_operand / second_operand;
                 else {
                    std::cout << "ERROR: Operand missing";
                    return -1;
                 }
       break;
       default:
          std::cout << "ERROR";
          return -1;
    }
    cout << '=' << result;
 
    cin.get();
 
    return 0;
}
А вообще советую почитать исходники от Evg, тогда поймёшь, как идёт разбор выражений (если интересно)
Представление выражения в двоичном дереве Чуть ниже есть пояснения
 
Текущее время: 08:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru