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

Консольный калькулятор - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 40, средняя оценка - 4.78
pavelstrokov
0 / 0 / 0
Регистрация: 21.12.2011
Сообщений: 9
21.12.2011, 15:44     Консольный калькулятор #1
Мне задали реализовать консольный калькулятор с выводом функций через параметры. Функции + - * /
Пример использования:
#myCalck 172+16*3/7
Программа должна подсчитать значение и вывести в терминал.
Все это осуществить в С++. Сделать как приложение да, а вот консольный... помогите чем кто может, заранее спасибо
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
co6ak
Кошковед
 Аватар для co6ak
403 / 496 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
21.12.2011, 15:46     Консольный калькулятор #2
ну считываешь все это в строку. парсишь это строку. и считаешь.

Добавлено через 26 секунд
вот буквально
pavelstrokov
0 / 0 / 0
Регистрация: 21.12.2011
Сообщений: 9
21.12.2011, 15:53  [ТС]     Консольный калькулятор #3
А для примера посмотреть готовые где-нибудь коды или сразу консоль можно? я просто непонимаю как выглядеть то это должно всё в итоге.
co6ak
Кошковед
 Аватар для co6ak
403 / 496 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
21.12.2011, 15:58     Консольный калькулятор #4
бррр. это ни как не должно выглядеть по идеи.
вот тебе вариант решения:
ищи по форуму "калькулятор из файла" и меняй ввод/вывод
что бы запустил программку. появилась консолька. накалякал там подобие формулы. нажал ентр. тебе строчкой ниже ответик выскочит

что бы консолько не закрылась пока печатаешь, делать ввод до ентера ( while key != "\n" ) {...}
pavelstrokov
0 / 0 / 0
Регистрация: 21.12.2011
Сообщений: 9
21.12.2011, 16:05  [ТС]     Консольный калькулятор #5
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
 
namespace Калькулятор__с__считыванием_данных
{
    
    class Program
    {
        static void Main(string[] args)
        {
 
            StreamReader streamReader = new StreamReader("7.txt");
            string a = null;
            string b = null;
            string m = null;
            
            //string rezult = " ";
           
            while (!streamReader.EndOfStream)
            {
 
                a += streamReader.ReadLine();
                b += streamReader.ReadLine();
                m = streamReader.ReadLine();
            }
                
            Console.WriteLine("Документ содержит");
            Console.WriteLine(a + ";" + b + ";" + m);
            double a1 = double.Parse(a);
            double b1 = double.Parse(b);
            
            switch (m)
            {
                case "*":
                Console.WriteLine(a + " * " + b + " = " + " {0}", a1 * b1);
                break;
                case "/":
                Console.WriteLine(a + " * " + b + " = " + " {0}", a1 / b1);
                break;
                case "+":
                Console.WriteLine(a + " * " + b + " = " + " {0}", a1 + b1);
                break;
                case "-":
                Console.WriteLine(a + " * " + b + " = " + " {0}", a1 - b1);
                break;
                default:
                Console.WriteLine("Вы ввели неверное значение");
                StreamWriter sw = new StreamWriter("8.txt", false);
 
                sw.Write("Вы ввели некоректное значение");
 
                sw.Close();
                break;
            }
                     
            repit:
                Console.WriteLine("Если хотите записать  результат в файл 8.txt - нажмите 1");
                Console.WriteLine("Если хотите выйти нажмите 2");
                int d = int.Parse(Console.ReadLine());
                switch (d){
                    case 1:
                        StreamWriter sw = new StreamWriter("8.txt", false);
 
                        sw.Write(a + " * " + b + " = " + " {0}", a1 * b1);
 
                        sw.Close();
                        break;
                    case 2:
                        Console.ReadKey();
                        break;
                    default:
                        Console.WriteLine("Вы ввели не корекное значение, попробуйте ищо раз");
                        goto repit;
                        break;
                }
            
            
        }
    }
}
И где тут что поменять надо?
co6ak
Кошковед
 Аватар для co6ak
403 / 496 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
21.12.2011, 16:10     Консольный калькулятор #6
ну имей совесть та.
я тебе уже упрощенный вариант написал. даже до какого момента считывать написанное >_<
pavelstrokov
0 / 0 / 0
Регистрация: 21.12.2011
Сообщений: 9
21.12.2011, 16:15  [ТС]     Консольный калькулятор #7
Я бы с удовольствием поимел совесть, только я в с++ нуб и понятия не имею как сделать чтобы у меня что-то там запускалось и делалось))
~enGiNe.O`
 Аватар для ~enGiNe.O`
6 / 6 / 1
Регистрация: 06.08.2011
Сообщений: 45
21.12.2011, 16:24     Консольный калькулятор #8
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
#include <iostream>
using namespace std;
int main(){
    int x,y,sum;
    char znak;
    begin:
    cout << "Vvedite deystvie(+,-,*,/): ";
    cin >> znak;
    cout << endl;
    cout << "Vvedite pervoe chislo: ";
    cin >> x;
    cout << endl;
    cout << "Vvedite vtoroe chislo: ";
    cin >> y;
    cout << endl;
    if (znak=='+'){
                   sum=x+y;
                   cout << "Otvet: " << sum << endl;
                   goto begin;
                   }
    else if (znak=='-'){
                   sum=x-y;
                   cout << "Otvet: " << sum << endl;
                   goto begin;
                   }
    else if (znak=='*'){
                   sum=x*y;
                   cout << "Otvet: " << sum << endl;
                   goto begin;
                   }
    else if (znak=='/'){
                   sum=x/y;
                   cout << "Otvet: " << sum << endl;
                   goto begin;
                   }
}
Держи, проще я думаю способа нет...
pavelstrokov
0 / 0 / 0
Регистрация: 21.12.2011
Сообщений: 9
22.12.2011, 13:06  [ТС]     Консольный калькулятор #9
Вставил код в борладн С++ 5, вот такую фигню пишет после компелирования:

[Linker Error] Unresolved external '_Form1' referenced from C:\DOCUMENTS AND SETTINGS\PAVEL STROKOV\РАБОЧИЙ СТОЛ\PROJECT1.OBJ
[Linker Error] Unresolved external 'TForm1::' referenced from C:\DOCUMENTS AND SETTINGS\PAVEL STROKOV\РАБОЧИЙ СТОЛ\PROJECT1.OBJ

Добавлено через 15 часов 33 минуты
Дальше что делать?
~enGiNe.O`
 Аватар для ~enGiNe.O`
6 / 6 / 1
Регистрация: 06.08.2011
Сообщений: 45
22.12.2011, 16:22     Консольный калькулятор #10
Зайди на вкладки: File => New => Project => Cansole Application
И вписывай туда код.
pavelstrokov
0 / 0 / 0
Регистрация: 21.12.2011
Сообщений: 9
22.12.2011, 17:24  [ТС]     Консольный калькулятор #11
В с++ билдер 5 нет такого, а в console wizard написал ошибки:
[Linker Error] Unresolved external '__InitVCL' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER5\LIB\CP32MTI.LIB|crtlvcl
[Linker Error] Unresolved external '__ExitVCL' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER5\LIB\CP32MTI.LIB|crtlvcl
darkknight2008
 Аватар для darkknight2008
61 / 61 / 6
Регистрация: 16.10.2011
Сообщений: 200
22.12.2011, 17:38     Консольный калькулятор #12
Если нужна обработка приоритета операций, скобок и .т.д. Советую почитать про обратную польскую запись. Помнится в школе как раз при помощи нее и делали, правда кода уже не сохранилось.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2011, 18:28     Консольный калькулятор
Еще ссылки по теме:

Простой калькулятор и калькулятор с парсингом C++
C++ Консольный калькулятор на вычитание
C++ Консольный калькулятор, в чем ошибка?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
pavelstrokov
0 / 0 / 0
Регистрация: 21.12.2011
Сообщений: 9
22.12.2011, 18:28  [ТС]     Консольный калькулятор #13
Всем спасиба! Разобрался!
Yandex
Объявления
22.12.2011, 18:28     Консольный калькулятор
Ответ Создать тему
Опции темы

Текущее время: 09:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru