1 / 1 / 0
Регистрация: 17.12.2013
Сообщений: 230
1

Что такое "эхо печать"? И как через такую печать сделать калькулятор?

30.09.2015, 19:03. Показов 5354. Ответов 3
Метки нет (Все метки)

Само задание такое: Создать программу-калькулятор, обеспечивающую ввод с клавиатуры в режиме эхо-печати только цифр, а также обработку нажатия клавиш +, -, *,/ с помощью акселераторов.
Я не пойму фразу "ввод с клавиатуры в режиме эхо-печати". Что она означает? Гугл упорно суёт мне PHP. Но мне надо сделать на C++ (Win API).
Что такое эхо-печать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.09.2015, 19:03
Ответы с готовыми решениями:

Калькулятор для работы с знаками "+" "-" "/" "*" через string без приоритетов
Нужно написать калькулятор для работы с знаками "+" "-" "/" "*" через string. Приоритеты действий...

Объяснить что такое "раздельная компиляция", что такое "интерфейс класса" и "реализация класса" на примере
Есть класс, содержащий объекты и конструктор. Конструктор объявляется в одном из cpp файлов(их...

Что такое "широкие" и "узкие" С-строки
Гуглила, и не нашла более-менее нормального ответа на вопрос: "Что же такое "широкие" и "узкие"...

Что такое "нейронная сеть" и как она работает?
Здравствуйте, объясните что такое нейронная сеть, как работает. Если можете дайте какой-нибудь...

3
374 / 371 / 213
Регистрация: 29.03.2013
Сообщений: 867
01.10.2015, 09:08 2
Darkness190, насколько я понимаю, ввод с клавиатуры в режиме эхо-печати цифр, означает, что введенные цифры будут сразу выводиться на экран калькулятора. Т.е. как на обычном калькуляторе, жмешь цифры - они появляются на экране, жмешь клавиши +, -, *,/, = - они не отображаются на экране.
0
1 / 1 / 0
Регистрация: 17.12.2013
Сообщений: 230
01.10.2015, 19:19  [ТС] 3
Людвиг Бодмер, Допустим, я эхо-печать сделал:
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
#include "stdafx.h"
#include "Win32Project4.h"
#include <xstring> 
typedef std::basic_string<TCHAR, std::char_traits<TCHAR>, std::allocator<TCHAR> > String;
 
.............
 
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    int wmId, wmEvent;
    PAINTSTRUCT ps;
    HDC hdc;
    static String str; 
    
    switch (message)
    {
    case WM_COMMAND:
        wmId    = LOWORD(wParam);
        wmEvent = HIWORD(wParam);
        // Разобрать выбор в меню:
        switch (wmId)
        {
        case IDM_ABOUT:
            DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
            break;
        case IDM_EXIT:
            DestroyWindow(hWnd);
            break;
        default:
            return DefWindowProc(hWnd, message, wParam, lParam);
        }
        break;
    
    case WM_CHAR:       //эхо-печать
        str += (TCHAR)wParam; 
        InvalidateRect(hWnd, NULL, TRUE); 
        break;
    
    case WM_PAINT:
        hdc = BeginPaint(hWnd, &ps);
        TextOut(hdc, 0, 0, str.data(), str.size()); 
        EndPaint(hWnd, &ps);
        
        break;
    
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
    }
    return 0;
}
Но я ума не приложу как можно в таком виде складывать или умножать 2 числа! Через EDIT всё понятно. Присвоил, допустим, "а" это число введённое в EDIT1, a "b" число в EDIT2, нажал на кнопку, сложил с=а+b, и в EDIT3 вывел "с"
Но тут ни числа не удаляются, ни на другую строчку не перевести, и не только цифры но и буквы вводятся. И идентификатор числу не присвоить!!! И инфы в гугле нет нифига!...
0
374 / 371 / 213
Регистрация: 29.03.2013
Сообщений: 867
02.10.2015, 13:36 4
Darkness190, предлагаю попросить модератора перенести тему в раздел "С++ WinApi" и дать более осмысленное название или создать там новую тему самому. Надо определиться с интерфейсом программы и логикой работы. Может окно типа CEdit создавать и туда выводить введенные с клавиатуры символы. Я так понимаю надо будет фильтровать ввод и акселераторы еще привязать правильно.
Про акселераторы можно здесь почитать: http://www.cyberguru.ru/progra... tcuts.html
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.10.2015, 13:36
Помогаю со студенческими работами здесь

Что такое "bool " и #include <algorithm>? Кто знает , как они работают ?
Вот код: #include &quot;stdafx.h&quot; #include &lt;algorithm&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; ...

Дана строка. На печать выдать слова, имеющие больше одной буквы "е"
Составить программу на языке С++ для обработки строк с использованием файлов и указателей. Дана...

Описать шаблон класса АТД: "Участник очереди на печать издания: фамилия, телефон, количество страниц"
Шаблоны классов с++. Нужно доделать задачу. 1. Описать шаблон класса АТД: &quot;Участник очереди на...

Error C2440: инициализация: невозможно преобразовать "void *" в "listnode *". подскажите, что можно сделать?
#include &lt;iostream&gt; struct listnode { char *data; int value; struct listnode *next; };...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru