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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ нужна только блок-схема http://www.cyberforum.ru/cpp-beginners/thread120352.html
ЗАДАЧА 7 В газетный киоск стоит очередь желающих купить популярные издания «Караван» и «Казахстанская правда». Каждый из стоящих имеет намерение купить один или несколько экземпляров интересующих его изданий, но продавец продает только по одному экземпляру каждого издания. Издания подвозят двумя партиями по М штук, причем в каждой партии издания только одного наименования. Разработать функцию...
C++ Кольцевой список Пытаюсь написать программу,но столкнулся с проблемой.Написал ф-ю создания списка из n элементов,объявил её тип сначала как void ,выдал ошибку пробовал int тоже ошибка.Причем если тоже самое написать без ф-ии все нормально работает.Программирую в среде Dev c++ #include <iostream.h> #include <iomanip.h> #include <conio.h> void makelist(List *&head,int n) { List *p; int k; head=new... http://www.cyberforum.ru/cpp-beginners/thread120347.html
C++ Разработать программу, моделирующую организацию и поддержание очереди
ПОМОГИТЕ НАПИСАТЬ ПРОГРАММУ НА С++............. В специализированном магазине по продаже холодильников организована предварительная запись. Фамилии потенциальных покупателей заносят в список и снабжают порядковыми номерами. Периодически производится перерегистрация покупателей, причем не явившиеся на нее из списка удаляются, а оставшиеся в списке перенумеровываются. Разработать функцию,...
C++ Потоки
Доброго времени суток! Задание такое Создание списка слов отсортированных по алфавиту (выбрать алгоритм с возможностью параллельного исполнения); вот код, уже сбился с ног ища в чем ошибка, все надо реализовать с использованием потоков #include "stdafx.h"
C++ нужно исправить выдает не верный ответ http://www.cyberforum.ru/cpp-beginners/thread120325.html
вот то что я сделал , но сдесь наверное что то не так с условием #include<iostream> #include<math.h> #include<clocale> using namespace std; // подпрограмма double fun ( double a,double b, double c,double i) { double f;
C++ Центрирование строк в текстовом файле Длина строк текстового файла не может превышать 80 символов. Нужно разместить все эти строки по центру. Вроде как идея такая... Сначала считаем количество пробелов слева. Потом определяем длину строки за вычетом левых пробелов.Исходя из того, что строка должна иметь длину в 80 символов, подсчитываем сколько пробелов нужно добавить (слева и справа). Добавляем нужное количество пробелов слева к... подробнее

Показать сообщение отдельно
N3sh
1 / 1 / 0
Регистрация: 21.04.2010
Сообщений: 7

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

22.04.2010, 10:48. Просмотров 767. Ответов 7
Метки (Все метки)

Всем привет.Решил учить программирование графических приложений в windows и сразу же застопорился на калькуляторе.Произвести сложение пытаюсь сложив два буфера,а затем вывести результат в третий. Вот такая каша получается.
Если кто знает подскажите пожалуйста,как правильно сделать.Не судите строго я токо начал постигать постигать.
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
#include <windows.h>
#include "stdafx.h"
wchar_t buff[16];
wchar_t buff1[16];
wchar_t buff2[16];
HWND edit_p;
HWND edit_h;
HWND edit_y;
// объявление функций
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
ATOM RegMyWindowClass(HINSTANCE, LPCTSTR);
 
////////////////////////////////////////////////////////////////////////// 
// функция вхождений программы WinMain
int APIENTRY WinMain(HINSTANCE hInstance,
             HINSTANCE         hPrevInstance,
             LPSTR             lpCmdLine,
             int               nCmdShow)
{
 
  // имя будущего класса
  LPCTSTR lpzClass = TEXT("My Window Class!");
  wchar_t form_class_edit[]=L"edit";
  wchar_t form_class_button[]=L"button";
  wchar_t sTitle_edit[]=L"";
  wchar_t sTitle_button[]=L"Плюс";
  // регистрация класса
  if (!RegMyWindowClass(hInstance, lpzClass))
    return 1;
 
  // вычисление координат центра экрана
  RECT screen_rect;
  GetWindowRect(GetDesktopWindow(),&screen_rect); // разрешение экрана
  int x = screen_rect.right / 2 - 150;
  int y = screen_rect.bottom / 2 - 75;
 
  // создание диалогового окна
  HWND hWnd = CreateWindow(lpzClass, TEXT("калькулятор"), 
    WS_OVERLAPPEDWINDOW | WS_VISIBLE, x, y, 500, 400, NULL, NULL, 
    hInstance, NULL);
 
  edit_y = CreateWindowEx(NULL, form_class_edit, sTitle_edit, WS_CHILD | WS_VISIBLE | ES_LEFT | ES_LOWERCASE |WS_BORDER,
      170,50, 150, 20, hWnd, (HMENU)3, hInstance, NULL);
  edit_p = CreateWindowEx(NULL, form_class_edit, sTitle_edit, WS_CHILD | WS_VISIBLE | ES_LEFT | ES_LOWERCASE |WS_BORDER,
      10,20, 150, 20, hWnd, (HMENU)4, hInstance, NULL);
  edit_h = CreateWindowEx(NULL, form_class_edit, sTitle_edit, WS_CHILD | WS_VISIBLE | ES_LEFT | ES_LOWERCASE |WS_BORDER,
      170,20, 150, 20, hWnd, (HMENU)2, hInstance, NULL);
  CreateWindowEx(NULL, form_class_button, sTitle_button, WS_CHILD | WS_VISIBLE | ES_LEFT | ES_LOWERCASE |WS_BORDER,
      10,50, 100, 20, hWnd, (HMENU)1, hInstance, NULL);
  // если окно не создано, описатель будет равен 0
  if(!hWnd) return 2; 
 
  // цикл сообщений приложения
  MSG msg = {0};    // структура сообщения
  int iGetOk = 0;   // переменная состояния
  while ((iGetOk = GetMessage(&msg, NULL, 0, 0 )) != 0) // цикл сообщений
  {
    if (iGetOk == -1) return 3;  // если GetMessage вернул ошибку - выход
    TranslateMessage(&msg);    
    DispatchMessage(&msg);
  }
 
  return msg.wParam;  // возвращаем код завершения программы
}
 
////////////////////////////////////////////////////////////////////////// 
// функция регистрации класса окон
ATOM RegMyWindowClass(HINSTANCE hInst, LPCTSTR lpzClassName)
{
  WNDCLASS wcWindowClass = {0};
  // адрес ф-ции обработки сообщений
  wcWindowClass.lpfnWndProc = (WNDPROC)WndProc;
  // стиль окна
  wcWindowClass.style = CS_HREDRAW|CS_VREDRAW;
  // дискриптор экземпляра приложения
  wcWindowClass.hInstance = hInst;
  // название класса
  wcWindowClass.lpszClassName = lpzClassName;
  // загрузка курсора
  wcWindowClass.hCursor = LoadCursor(NULL, IDC_ARROW);
  // загрузка цвета окон
  wcWindowClass.hbrBackground = (HBRUSH)COLOR_APPWORKSPACE;
  return RegisterClass(&wcWindowClass); // регистрация класса
}
 
////////////////////////////////////////////////////////////////////////// 
// функция обработки сообщений
LRESULT CALLBACK WndProc(
  HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
  // выборка и обработка сообщений
  switch (message)
  {
  case WM_COMMAND:
      
     // реакция на сообщение
      if(wParam == 1) {
      int xs = GetWindowText(edit_p, buff, 10);
      int y  = GetWindowText(edit_h, buff1, 10);
      buff2[16] = buff[16] + buff1[16]; // собственно вот так вот я и пытаюсь сложить два числа
      SetWindowText(edit_y,buff2);
      }
      break;
  case WM_DESTROY:
    PostQuitMessage(0);  // реакция на сообщение
    break;
  default:  
    // все сообщения не обработанные Вами обработает сама Windows
    return DefWindowProc(hWnd, message, wParam, lParam);
  }
  return 0;
}
Добавлено через 1 час 7 минут
Неужели на таком крутом форуме никто незнает как сделать калькулятор?Даже не сделать,а просто указать на ошибку.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru