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

Сложить два числа

16.05.2017, 19:04. Показов 2479. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, помогите, пожалуйста, дополнить программу, чтобы она могла складывать два числа (из edit) и потом выводить результат при нажатии на кнопку, как на скриншоте ниже.

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
88
89
90
91
92
93
94
/*WinAPI приложение. Минимальный 
набор функций для отображения окна. 
Эта программа станет базовой заготовкой для всех последующих программ*/ 
 
#include <windows.h>
 
//Создаём прототип функции окна 
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); 
//объявляем имя программы 
char szProgName[]="Имя программы"; 
 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow) 
{ 
HWND hWnd; //идентификатор окна 
MSG lpMsg; 
 
WNDCLASS w; //создаём экземпляр структуры WNDCLASS и начинаем её заполнять 
 
w.lpszClassName=szProgName; //имя программы 
w.hInstance=hInstance; //идентификатор текущего приложения 
w.lpfnWndProc=WndProc; //указатель на функцию окна 
w.hCursor=LoadCursor(NULL, IDC_ARROW); //загружаем курсор в виде стрелки 
w.hIcon=0; //иконки у нас не будет пока 
w.lpszMenuName=0; //и меню пока не будет 
w.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH); //цвет фона окна - белый 
w.style=CS_HREDRAW|CS_VREDRAW; //стиль окна - перерисовываемое по х и по у 
w.cbClsExtra=0; 
w.cbWndExtra=0; 
 
//Если не удалось зарегистрировать класс окна - выходим 
if(!RegisterClass(&w)) 
return 0; 
 
//Создадим окно в памяти, заполнив аргументы CreateWindow 
 
hWnd=CreateWindow(szProgName, //Имя программы 
"Моя первая программа! ", //Заголовок окна 
WS_OVERLAPPEDWINDOW, //Стиль окна - перекрывающееся 
100, //положение окна на экране по х 
100, //по у 
500, //размеры по х 
400, //по у 
(HWND)NULL, //идентификатор родительского окна 
(HMENU)NULL, //идентификатор меню 
(HINSTANCE)hInstance, //идентификатор экземпляра программы 
(HINSTANCE)NULL); //отсутствие дополнительных параметров 
 
//Выводим окно из памяти на экран 
ShowWindow(hWnd, nCmdShow); 
//Обновим содержимое окна 
UpdateWindow(hWnd); 
 
//Цикл обработки сообщений 
 
while(GetMessage(&lpMsg, NULL, 0, 0)) { //Получаем сообщение из очереди 
TranslateMessage(&lpMsg); //Преобразуем сообщения клавиш в символы 
DispatchMessage(&lpMsg); //Передаём сообщение соответствующей функции окна 
} 
return(lpMsg.wParam); 
} 
 
//Функция окна 
LRESULT CALLBACK WndProc(HWND hWnd, UINT messg, 
WPARAM wParam, LPARAM lParam) 
{ 
HDC hdc; //создаём контекст устройства 
PAINTSTRUCT ps; //создаём экземпляр структуры графического вывода 
 
//Цикл обработки сообщений 
switch(messg) 
{ 
//сообщение рисования 
case WM_PAINT : 
//начинаем рисовать 
hdc=BeginPaint(hWnd, &ps); 
//здесь вы обычно вставляете свой текст: 
TextOut(hdc, 150,150, "Здравствуй, WIN 32 API!!!!", 26); 
//закругляемся 
//обновляем окно 
ValidateRect(hWnd, NULL); 
//заканчиваем рисовать 
EndPaint(hWnd, &ps); 
break; 
 
//сообщение выхода - разрушение окна 
case WM_DESTROY: 
PostQuitMessage(0); //Посылаем сообщение выхода с кодом 0 - нормальное завершение 
break; 
 
default: 
return(DefWindowProc(hWnd, messg, wParam, lParam)); 
} 
return 0; 
}
Миниатюры
Сложить два числа  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.05.2017, 19:04
Ответы с готовыми решениями:

Как сложить два плюс два? если оба числа символьные?
Не могу сложить два числа в символьном виде, что бы получить третье (как сумма двух первых),...

Даны два числа: одно размером dd, другое dw. Сложить эти числа
Дана задачка на ассемблере помогите сделать, а то совсем не шарю Даны два числа одно размером -...

Даны два длинных целых числа (256+) требуется сложить эти числа
Даны два длинных целых числа (256+ символов) требуется сложить эти числа,и подсчитать что получилось

Сложить два числа
Вот вроде бы простая программа, которая должна сложить два числа. Но она не работает: private...

2
Software Developer
315 / 229 / 113
Регистрация: 03.05.2017
Сообщений: 1,330
16.05.2017, 21:00 2
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
88
89
90
91
92
93
94
95
96
#include <windows.h>
#include <windowsx.h>
 
HWND edit1, edit2, edit3;
 
LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    switch (msg)
    {
         case WM_CREATE:
         {
              DWORD dwEditStyle = WS_CHILDWINDOW | WS_VISIBLE | ES_AUTOHSCROLL | WS_BORDER | ES_NUMBER;
              
              edit1 = CreateWindow ("EDIT", "0", dwEditStyle, 10, 10, 80, 20, hwnd, (HMENU) 0, NULL, NULL);
              edit2 = CreateWindow ("EDIT", "0", dwEditStyle, 10, 40, 80, 20, hwnd, (HMENU) 0, NULL, NULL);
              edit3 = CreateWindow ("EDIT", "0", dwEditStyle, 10, 70, 80, 20, hwnd, (HMENU) 0, NULL, NULL);
              
              CreateWindow ("BUTTON", "+", WS_CHILDWINDOW | WS_VISIBLE, 100, 40, 20, 20, hwnd, (HMENU) 1, NULL, NULL);
         }
         break;
         
         case WM_COMMAND:
         {
              switch (wParam)
              {
                   case 1:
                   {
                        char buff1 [128] = {""};
                        char buff2 [128] = {""};
                        SendMessage (edit1, WM_GETTEXT, MAX_PATH, (LPARAM) buff1);
                        SendMessage (edit2, WM_GETTEXT, MAX_PATH, (LPARAM) buff2);
                        
                        char out [128] = {""};
                        wsprintf (out, "%d", atoi (buff1) + atoi (buff2));
                        SetWindowText (edit3, out);
                   }
                   break;
                        
                   default:
                        DefWindowProc (hwnd, msg, wParam, lParam);
              }
              break;
         }
         break;
         
         case WM_DESTROY:
              PostQuitMessage (0);
              break;
    }
    return DefWindowProc (hwnd, msg, wParam, lParam);
}
 
int WINAPI WinMain (HINSTANCE hInst, HINSTANCE, LPSTR, int)
{
    char Class [] = "Window_Class";
    
    WNDCLASS wc      = {0};
    ZeroMemory (&wc, sizeof (wc) );
    
    wc.style         = CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc   = WindowProcedure;
    wc.hInstance     = hInst;
    wc.hIcon         = LoadIcon (NULL, IDI_APPLICATION);
    wc.hCursor       = LoadCursor (NULL, IDC_ARROW);
    wc.hbrBackground = GetStockBrush (WHITE_BRUSH);
    wc.lpszClassName = Class;
    wc.lpszMenuName  = NULL;
    wc.cbClsExtra    = 0;
    wc.cbWndExtra    = 0;
    
    if (!RegisterClass (&wc))
    {
         MessageBox (NULL, "Window Registration Failed!", "Error!", MB_OK | MB_ICONERROR);
         return 0;
    }
    
    HWND hwnd = CreateWindow (Class, "Window", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 150, 150, NULL, NULL, hInst, NULL);
    if (!hwnd)
    {
         MessageBox (NULL, "Window Creation Failed!", "Error!", MB_OK | MB_ICONERROR);
         return 0;
    }
    
    ShowWindow (hwnd, SW_SHOW);
    UpdateWindow (hwnd);
    
    MSG msg;
    while (GetMessage (&msg, NULL, 0, 0))
    {
         DispatchMessage (&msg);
         TranslateMessage (&msg);
    }
    
    UnregisterClass (Class, hInst);
    return (int) msg.wParam;
}
0
0 / 0 / 0
Регистрация: 15.11.2021
Сообщений: 9
07.03.2022, 02:36 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
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#include <windows.h>
#include <windowsx.h>
#include <stdlib.h>
#include <string.h>
#include <tchar.h>
// Global variables
 
#define idEdit 101
#define idButton 201
 
// The main window class name.
static TCHAR szWindowClass[] = _T("win32app");
 
// The string that appears in the application's title bar.
static TCHAR szTitle[] = _T("Win32 Guided Tour Application");
 
HINSTANCE hInst;
 
// Forward declarations of functions included in this code module:
LRESULT CALLBACK WindowProcedure(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
 
HWND edit1, edit2, edit3;
 
 
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR, int)
{
    char Class[] = "Window_Class";
 
    WNDCLASS wc = { 0 };
    ZeroMemory(&wc, sizeof(wc));
 
    wc.style = CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc = WindowProcedure;
    wc.hInstance = hInst;
    wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = GetStockBrush(WHITE_BRUSH);
    wc.lpszClassName = szWindowClass;
    wc.lpszMenuName = NULL;
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
 
    if (!RegisterClass(&wc))
    {
        MessageBox(NULL, L"Window Registration Failed!", L"Error!", MB_OK | MB_ICONERROR);
        return 0;
    }
 
    HWND hwnd = CreateWindow(
        szWindowClass,
        szTitle,
        WS_OVERLAPPEDWINDOW, 
        CW_USEDEFAULT, 
        CW_USEDEFAULT, 
        150, 150, 
        NULL, 
        NULL, 
        hInst, 
        NULL
    );
 
    if (!hwnd)
    {
        MessageBox(NULL, L"Window Creation Failed!", L"Error!", MB_OK | MB_ICONERROR);
        return 0;
    }
 
    ShowWindow(hwnd, SW_SHOW);
    UpdateWindow(hwnd);
 
    MSG msg;
    while (GetMessage(&msg, NULL, 0, 0))
    {
        DispatchMessage(&msg);
        TranslateMessage(&msg);
    }
 
    UnregisterClass(szWindowClass, hInst);
    return (int)msg.wParam;
}
 
LRESULT CALLBACK WindowProcedure(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    switch (msg)
    {
    case WM_CREATE:
    {
        DWORD dwEditStyle = WS_CHILDWINDOW | WS_VISIBLE | ES_AUTOHSCROLL | WS_BORDER | ES_NUMBER;
 
        edit1 = CreateWindow(L"EDIT", L"0", dwEditStyle, 10, 10, 80, 20, hwnd, (HMENU)0, NULL, NULL);
        edit2 = CreateWindow(L"EDIT", L"0", dwEditStyle, 10, 40, 80, 20, hwnd, (HMENU)0, NULL, NULL);
        edit3 = CreateWindow(L"EDIT", L"0", dwEditStyle, 10, 70, 80, 20, hwnd, (HMENU)0, NULL, NULL);
 
        CreateWindow(L"BUTTON", L"+", WS_CHILDWINDOW | WS_VISIBLE, 100, 40, 20, 20, hwnd, (HMENU)1, NULL, NULL);
    }
    break;
 
    case WM_COMMAND:
    {
        switch (wParam)
        {
        case 1:
        {
            char buff1[128] = { "" };
            char buff2[128] = { "" };
            SendMessage(edit1, WM_GETTEXT, MAX_PATH, (LPARAM)buff1);
            SendMessage(edit2, WM_GETTEXT, MAX_PATH, (LPARAM)buff2);
 
            char out[128] = { "" };
            wsprintf((LPWSTR)out, L"%d", atoi(buff1) + atoi(buff2));
            SetWindowText(edit3, (LPWSTR)out);
        }
        break;
 
        default:
            DefWindowProc(hwnd, msg, wParam, lParam);
        }
        break;
    }
    break;
 
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    }
    return DefWindowProc(hwnd, msg, wParam, lParam);
}
0
07.03.2022, 02:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.03.2022, 02:36
Помогаю со студенческими работами здесь

Сложить два числа
Задача такая: на ввод подается 2 числа, необходимо найти их сумму и вывести на экран.

Tasm. Сложить два произвольных числа и проверить: полученная сумма больше или меньше третьего числа
нужна помощь: Сложить два произвольных числа и проверить: полученная сумма больше или меньше...

Сложить два больших числа
Сообственно сабж.Идея понятна.Тк такого типа который может вместить все разряды не существует,я...

Как сложить два числа?
не получается сложить два числа, они просто стоят друг за другом Private Sub Button1_Click(ByVal...


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

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

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