Форум программистов, компьютерный форум 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
23.04.2010, 22:47  [ТС]     Калькулятор
У меня тут ещё такая вот незадача вышла.Пытаюсь сделать,чтобы все было в одной форме.Поесню:
Например ввожу я в форму цифру 2 нажимаю плюс и форма освобождается,а цифра 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
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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#include <stdlib.h>
#include <windows.h>
#include "stdafx.h"
wchar_t buff[16];
wchar_t buff1[16];
wchar_t buff2[16];
wchar_t buff3[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_p[]=L"+";
  wchar_t sTitle_button_m[]=L"-";
  wchar_t sTitle_button_y[]=L"*";
  wchar_t sTitle_button_d[]=L"/";
  wchar_t sTitle_button_r[]=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, 320, 220, NULL, NULL, 
    hInstance, NULL);
 
  edit_p = CreateWindowEx(NULL, form_class_edit, sTitle_edit, WS_CHILD | WS_VISIBLE | ES_LEFT | ES_LOWERCASE |WS_BORDER,
      30,10, 250, 20, hWnd, (HMENU)3, hInstance, NULL);
 
  CreateWindowEx(NULL, form_class_button, sTitle_button_r, WS_CHILD | WS_VISIBLE | ES_LEFT | ES_LOWERCASE |WS_BORDER,
      130,30, 100, 20, hWnd, (HMENU)2, hInstance, NULL);
  CreateWindowEx(NULL, form_class_button, sTitle_button_p, WS_CHILD | WS_VISIBLE | ES_LEFT | ES_LOWERCASE |WS_BORDER,
      30,30, 100, 20, hWnd, (HMENU)1, hInstance, NULL);
  CreateWindowEx(NULL, form_class_button, sTitle_button_m, WS_CHILD | WS_VISIBLE | ES_LEFT | ES_LOWERCASE |WS_BORDER,
      30,50, 100, 20, hWnd, (HMENU)4, hInstance, NULL);
  CreateWindowEx(NULL, form_class_button, sTitle_button_y, WS_CHILD | WS_VISIBLE | ES_LEFT | ES_LOWERCASE |WS_BORDER,
      30,70, 100, 20, hWnd, (HMENU)5, hInstance, NULL);
  CreateWindowEx(NULL, form_class_button, sTitle_button_d, WS_CHILD | WS_VISIBLE | ES_LEFT | ES_LOWERCASE |WS_BORDER,
      30,90, 100, 20, hWnd, (HMENU)6, 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) {
         GetWindowText(edit_p, buff, 10);
         SetWindowText(edit_p, buff1);
      } if(wParam == 2) {
          GetWindowText(edit_p,buff1,10);
      
      double a = 0,b = 0;
      a = _wtof(buff);
      b = _wtof(buff1);
      a += b;
      swprintf_s(buff2, 16, L"%f", a);
      SetWindowText(edit_p,buff2);
      } if(wParam == 5) {
          GetWindowText(edit_p, buff, 10);
          SetWindowText(edit_p, buff1);
      } if(wParam == 2) {
           GetWindowText(edit_p,buff1,10);
 
      double a = 0,b = 0;
      a = _wtof(buff);
      b = _wtof(buff1);
      a = (a * b);
      swprintf_s(buff2, 16, L"%f", a);
      SetWindowText(edit_p,buff2);
      }
      
      break;
  case WM_DESTROY:
    PostQuitMessage(0);  // реакция на сообщение
    break;
  default:  
    // все сообщения не обработанные Вами обработает сама Windows
    return DefWindowProc(hWnd, message, wParam, lParam);
  }
  return 0;
}
Работает токо кнопка плюс и умножить,но работает не правильно.Укажите где ошибка пожалуйста,токо начал постигать науку программирования.
 
Текущее время: 15:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru