Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ функции https://www.cyberforum.ru/ cpp-beginners/ thread691271.html
написала программку на комплексные числа, все работает. я хочу сделать из нее 3 функции:вывод первого числа, второго и умножение, а в главной просто вызывать функции, ток у меня не получается все это поместить в функции #include<iostream> using namespace std; int main() { int real1,real2,image1,image2,real,image; cout<<"a+b:"; cin>>real1;
Написать функцию,которая принимает массив целых чисел C++
Написать функцию,которая принимает массив целых чисел расположенныъ в динамической памяти(массив заполнен числами от(10,10000)),и создает новый массив данных при этом заполняется он только трехзначными значениями,формировать значение для нового массива можно только используя числа исходного массива, и по следующему правилу: Исходный массив: 10 456 12 2345 1234 222 23 456 567 ...
C++ программу, в которой будут вводиться 7 строк таблицы https://www.cyberforum.ru/ cpp-beginners/ thread691253.html
Составить программу, в которой будут вводиться 7 строк таблицы, образец которой приведен ниже, и выводиться на экран таблица - сразу же после ввода и после сортировки ее по значениям в первом столбце. Некоторые виды антилоп Название Группа Место обитания Численность популяции Джейран A Азия 30000 Гну B Африка 560000 Бейза H Африка 2500 Группы: А - настоящие антилопы, B - коровьи...
C++ Замена определенных чисел в массиве на число которое нужно ввести https://www.cyberforum.ru/ cpp-beginners/ thread691245.html
Заменить все элементы, меньшие заданного числа, этим числом. Вводится массив чисел размерность которого = 10. В самом начале вводится число с клавиатуры, а программа должна изменить числа в массиве, если они меньше этого числа, на это число Здравствуйте! Помогите пожалуйста с написанием программы, в С++ не очень пока разбираюсь, а тут задали внезапно :( помогите пожалуйста.
C++ Что после изучения "чистого" C++?
Выучил C++ в "чистом" виде. А что учить дальше? Например, есть много сопутствующих технологий (WinAPi, .NET, MFC, QT) и т.д...
C++ Сканирование экрана монитора https://www.cyberforum.ru/ cpp-beginners/ thread691233.html
Не подскажите, как сделать попиксельное сканирование экрана монитора ?
C++ И снова крестики-нолики Привет! Есть код: #include <iostream> #include <cstring> using namespace std; char PlayerName1, PlayerName2; https://www.cyberforum.ru/ cpp-beginners/ thread691232.html Стандартные библиотеки C++
Всем привет! Как научиться правильно пользоваться стандартными библиотеками, чтоб не изобретать велосипед? Как узнать – есть уже такое в стандартных или нет, или есть, но не подходит?
C++ Создание окна API windows https://www.cyberforum.ru/ cpp-beginners/ thread691225.html
Пример взят из книги Румянцева, азбука программирования в win32 API. Должно быть показано окно с надписью Hello World, вот код примера #include <windows.h> LRESULT CALLBACK HelloWorldWndProc(HWND,UINT,UINT,LONG); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdParam, int nCmdShow) { HWND hWnd; WNDCLASS WndClass;
C++ Циклы: Получить сумму первых n членов последовательности Рассмотрим последовательность, образованную дробями 1/1, 2/1, 3/2, …, в которой числитель (знаменатель) следующего члена последовательности получается сложением числителей (знаменателей) двух предыдущих членов. Числители первых двух дробей равны 1 и 2, знаменатели 1 и 1 Найти n-й член этой последовательности. Получить сумму первых n членов этой последовательности. https://www.cyberforum.ru/ cpp-beginners/ thread691224.html
C++ Данные типа void*
Нужно сделать сохранение данных в бинарном виде в векторе. Я решил сделать так: struct StoreData { shared_str name; void* data; TypeOfData type; }; void CStoreHouse::add_bool(LPCSTR name,bool b)
C++ задача с ускорением Помогите,пожалуйста https://www.cyberforum.ru/ cpp-beginners/ thread691214.html
0 / 0 / 1
Регистрация: 19.11.2011
Сообщений: 50
07.11.2012, 17:38  [ТС] 0

Запуск программы с расширением .сpp с помощью Visual studio 2010 - C++ - Ответ 3665545

07.11.2012, 17:38. Показов 3068. Ответов 38
Метки (Все метки)

Ответ

Та же ошибка.
Вот код
Код
#include "stdafx.h"
#include <stdlib.h>
#include <wingdi.h>
#include <vector>
#include <iostream>
#include <fstream>
#include "stdlib.h";
#include "time.h";

#define NUM 2

HWND hwnd;
HINSTANCE hInst; //Для сохранения дескриптора приложения

HANDLE File;     // Дескриптор файла
DWORD dwBytes;   


// Клиенты

int delay=200;     // Задержка
int pause=0;       // Пауза 
int curClient=0;   // Выбранный заказчик
int curProduct=0;  // Выбранный продукт
int denied=0;

int price[3]; // Цены на товары
int store[3]; // Товар в складе (Х Т П)
int cash[4];  // Кошельки заказчиков

int sold[2][4][3]; // продавец заказчик товар количество

struct TRequest{   // Структура заказа
	int Client;
	int Product;
	int Count;
};

wchar_t* getText(int hItem){ // Возвращает текст объекта по ID
	int length = GetWindowTextLength(GetDlgItem(hwnd, hItem));
	if(length > 0)
	{
		wchar_t* tempChar;
		tempChar= (wchar_t*)GlobalAlloc(GPTR, length + 1);
		GetDlgItemText(hwnd, hItem, LPWSTR(tempChar), length + 1);
		return tempChar;
	}
	return 0;
}
int intRand(int _min, int _max) // Генератор случайных чисел в диапазоне
{ 
	srand((unsigned)time(NULL));
	return rand() % (_max+1) + _min;
}
void Repaint(){                 // Перерисовка окна
	RECT rect;
	GetClientRect(hwnd, &rect);
	InvalidateRect(hwnd, &rect, 0);	
}
std::vector <TRequest> Queue;  // Очередь заказов

HANDLE hSemReq = NULL;      // Семафор запросов
HANDLE hSemSel = NULL;      // Семафор продаж
HANDLE hSemFull = NULL;     // Общий семафор
HANDLE hThreadReq1 = NULL;  // Потоки запросов
HANDLE hThreadReq2 = NULL;
HANDLE hThreadReq3 = NULL;     
HANDLE hThreadSel1 = NULL;  // Потоки продаж
HANDLE hThreadSel2 = NULL;

DWORD dwExitCode;           // Код выхода приложения

DWORD APIENTRY ThreadReq1 (PVOID lpParameter);
DWORD APIENTRY ThreadReq2 (PVOID lpParameter);
DWORD APIENTRY ThreadReq3 (PVOID lpParameter);
DWORD APIENTRY ThreadSel1 (PVOID lpParameter);
DWORD APIENTRY ThreadSel2 (PVOID lpParameter);

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);

int APIENTRY WinMain(HINSTANCE hInstance,
	HINSTANCE hPrevInstance,
	LPSTR     lpCmdLine,
	int       nCmdShow)
{
	static wchar_t szAppName[]=L"Курсовая работа (Вариант 4)";
	MSG msg;
	WNDCLASSEX wndclass;
	hInst = hInstance;
	File=CreateFile(L"log.txt",GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);

	// Создаем семафоры
	hSemReq = CreateSemaphore(NULL, 0, 1, NULL);
	hSemSel = CreateSemaphore(NULL, 0, NUM, NULL);
	hSemFull = CreateSemaphore(NULL, 0, NUM, NULL);

	// Создаем потоки
	hThreadReq1 = CreateThread(NULL,0,&ThreadReq1,NULL,CREATE_SUSPENDED,NULL);	
	hThreadReq2 = CreateThread(NULL,0,&ThreadReq2,NULL,CREATE_SUSPENDED,NULL);	
	hThreadReq3 = CreateThread(NULL,0,&ThreadReq2,NULL,CREATE_SUSPENDED,NULL);
	hThreadSel1 = CreateThread(NULL,0,&ThreadSel1,NULL,CREATE_SUSPENDED,NULL);
	hThreadSel2 = CreateThread(NULL,0,&ThreadSel2,NULL,CREATE_SUSPENDED,NULL);

	// Инициализируем окно
	wndclass.cbSize = sizeof(wndclass);
	wndclass.style = CS_HREDRAW | CS_VREDRAW;
	wndclass.lpfnWndProc = WndProc;
	wndclass.cbClsExtra = 0;
	wndclass.cbWndExtra = 0;
	wndclass.hInstance = hInstance;
	wndclass.hIcon = LoadIcon(NULL,IDI_APPLICATION);
	wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
	wndclass.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
	wndclass.lpszMenuName = NULL;
	wndclass.lpszClassName = szAppName;
	wndclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION);

	// Регистрируем окно
	RegisterClassEx(&wndclass);
	hwnd = CreateWindow(szAppName, L"ОС Курсовая Работа (Вариант №4)" , WS_OVERLAPPEDWINDOW,
		CW_USEDEFAULT, CW_USEDEFAULT,
		CW_USEDEFAULT, CW_USEDEFAULT,
		NULL, NULL, hInstance, NULL);
	ShowWindow(hwnd, nCmdShow);
	UpdateWindow(hwnd);

	// Создаем цикл сообщений
	while (GetMessage(&msg, NULL, 0, 0))
	{
		TranslateMessage (&msg);
		DispatchMessage (&msg);
	}

	// Завершаем все потоки и семафоры при выходе
	TerminateThread(hThreadReq1, dwExitCode);
	TerminateThread(hThreadReq2, dwExitCode);
	TerminateThread(hThreadReq3, dwExitCode);
	TerminateThread(hThreadSel1, dwExitCode);
	TerminateThread(hThreadSel2, dwExitCode);
	CloseHandle(hThreadReq1);
	CloseHandle(hThreadReq2);
	CloseHandle(hThreadReq3);
	CloseHandle(hThreadSel1);
	CloseHandle(hThreadSel2);

	CloseHandle(hSemSel);
	CloseHandle(hSemReq);
	CloseHandle(hSemFull);

	
	
	return msg.wParam;
}

DWORD APIENTRY ThreadReq1 (PVOID lpParameter)
{
	while(TRUE)
	{
		if (pause) continue;		// Продолжаем если не пауза
		Sleep(delay);				// Задержка
		TRequest req;				// Создаем запрос
		req.Client = intRand(0,3);  // Забиваем случайными данными в указанном диапазоне
		req.Count = intRand(1,10);
		req.Product = intRand(0,2);
		
		WaitForSingleObject(hSemReq, INFINITE);
		WaitForSingleObject(hSemSel, INFINITE);

		// Проверяем достаточно ли денег
		if (cash[req.Client] >= price[req.Product]*req.Count){
			// Добавляем заказ в очередь
			Queue.push_back(req);		
			Repaint();
		}

		ReleaseSemaphore(hSemSel, 1, NULL);
		ReleaseSemaphore(hSemFull, 1, NULL);
	}
}

DWORD APIENTRY ThreadReq2 (PVOID lpParameter)
{
	while(TRUE)
	{		
		Sleep(delay);
		if (pause) continue;
		TRequest req;
		req.Client = intRand(0,3); 
		req.Count = intRand(1,10);
		req.Product = intRand(0,2);
		
		WaitForSingleObject(hSemReq, INFINITE);
		WaitForSingleObject(hSemSel, INFINITE);
		// Проверяем достаточно ли денег
		if (cash[req.Client] >= price[req.Product]*req.Count){
			Queue.push_back(req);		
			Repaint();
		}
		ReleaseSemaphore(hSemSel, 1, NULL);
		ReleaseSemaphore(hSemFull, 1, NULL);
	}
}
DWORD APIENTRY ThreadReq3 (PVOID lpParameter)
{
	while(TRUE)
	{		
		Sleep(delay);
		if (pause) continue;
		TRequest req;
		req.Client = intRand(0,3); 
		req.Count = intRand(1,10);
		req.Product = intRand(0,2);
		
		WaitForSingleObject(hSemReq, INFINITE);
		WaitForSingleObject(hSemSel, INFINITE);
		// Проверяем достаточно ли денег
		if (cash[req.Client] >= price[req.Product]*req.Count){
			Queue.push_back(req);		
			Repaint();
		}
		ReleaseSemaphore(hSemSel, 1, NULL);
		ReleaseSemaphore(hSemFull, 1, NULL);
	}
}


DWORD APIENTRY ThreadSel1 (PVOID lpParameter)
{
	while(TRUE)
	{
		Sleep(delay);
		if (pause) continue;
		WaitForSingleObject(hSemFull, INFINITE);
		WaitForSingleObject(hSemSel, INFINITE);
		if (Queue.size()){
			// Берем первую запись из очереди
			TRequest req = Queue.front(); 
			// Проверяем есть ли на складе такой товар , если нет - отказ
			if (store[req.Product] >= req.Count){
				store[req.Product]-=req.Count;					 // Забираем товар со склада
				sold[0][req.Client][req.Product]+=req.Count;     // Фиксируем продажу
				cash[req.Client]-=price[req.Product]*req.Count;  // Расплата
				
				wchar_t s[1024];
				wsprintfW(s,L"Заказчик №%d     X: %d   T: %d   П: %d     Выручка: %d    %d     Счет: %d      \r\n",req.Client+1, sold[0][req.Client][0]+sold[1][req.Client][0],sold[0][req.Client][1]+sold[1][req.Client][1],sold[0][req.Client][2]+sold[1][req.Client][2],sold[0][req.Client][0]*price[0]+sold[0][req.Client][1]*price[1]+sold[0][req.Client][2]*price[2],sold[1][req.Client][0]*price[0]+sold[1][req.Client][1]*price[1]+sold[1][req.Client][2]*price[2],cash[req.Client]);
				WriteFile(File,s,wcslen(s)*2,&dwBytes,NULL);

			}else{ // Удаляем первую запись из очереди
				++denied;
			}
			Queue.erase(Queue.begin());                      // Удаляем первую запись из очереди
		}
		Repaint();
		ReleaseSemaphore(hSemSel, 1, NULL);
		ReleaseSemaphore(hSemReq, 1, NULL);
	}
	//return 0;
}

DWORD APIENTRY ThreadSel2 (PVOID lpParameter)
{
	while (TRUE){
		Sleep(delay);
		if (pause) continue;
		WaitForSingleObject(hSemFull, INFINITE);
		WaitForSingleObject(hSemSel, INFINITE);
		Repaint();
		if (Queue.size()){
			TRequest req = Queue.front();
			// Проверяем есть ли на складе такой товар, если нет - отказ
			if (store[req.Product] >= req.Count){
				store[req.Product]-=req.Count;
				sold[1][req.Client][req.Product]+=req.Count;
				cash[req.Client]-=price[req.Product]*req.Count;

				wchar_t s[1024];
				wsprintfW(s,L"Заказчик №%d     X: %d   T: %d   П: %d     Выручка: %d    %d     Счет: %d      \r\n",req.Client+1, sold[0][req.Client][0]+sold[1][req.Client][0],sold[0][req.Client][1]+sold[1][req.Client][1],sold[0][req.Client][2]+sold[1][req.Client][2],sold[0][req.Client][0]*price[0]+sold[0][req.Client][1]*price[1]+sold[0][req.Client][2]*price[2],sold[1][req.Client][0]*price[0]+sold[1][req.Client][1]*price[1]+sold[1][req.Client][2]*price[2],cash[req.Client]);
				WriteFile(File,s,wcslen(s)*2,&dwBytes,NULL);


			}else{ // Иначе отказ
				++denied;
			}
			Queue.erase(Queue.begin());
		}
		ReleaseSemaphore(hSemSel, 1, NULL);
		ReleaseSemaphore(hSemReq, 1, NULL);
	}

	//return 0;
}

LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
	RECT rect, rectTop, rectBottom, rectRight;

	rectTop.top    = 10;
	rectTop.left   = 10;
	rectTop.right  = 600;
	rectTop.bottom = 150;

	rectBottom.top    = 210;
	rectBottom.left   = 10;
	rectBottom.right  = 600;
	rectBottom.bottom = 300;
	
	rectRight.top    = 10;
	rectRight.left   = 300;
	rectRight.right  = 1000;
	rectRight.bottom = 300;
	PAINTSTRUCT ps;
	HDC hdc = NULL;

	static HWND hEditClent;
	static HWND hBtnClient;
	static HWND hRBClient[4];

	static HWND hEditStore;
	static HWND hBtnStore;
	static HWND hRBStore[3];

	static HWND hEditDelay;
	static HWND hBtnDelay;
	static HWND hBtnPause;

	wchar_t szBuffer[100];

	switch (iMsg)
	{
	case WM_CREATE:
		// Инициализируем склад и бюджет заказчиков

		for (int i=0; i<3; ++i){store[i]=100;}
		cash[0] = 10000;
		cash[1] = 20000;
		cash[2] = 30000;
		cash[3] = 40000;

		price[0]=800;
		price[1]=700;
		price[2]=300;

		for (int i=0; i<2; ++i)
		for (int j=0; j<4; ++j)
		for (int k=0; k<3; ++k)
			sold[i][j][k]=0;		
		
		// Запускаем потоки и семафоры
		ResumeThread(hThreadReq1);
		ResumeThread(hThreadReq2);
		ResumeThread(hThreadReq3);
		ResumeThread(hThreadSel1);
		ResumeThread(hThreadSel2);
		ReleaseSemaphore(hSemReq, NUM, NULL);
		ReleaseSemaphore(hSemSel, 1, NULL);
		ReleaseSemaphore(hSemFull, 1, NULL);

		// Создаем элементы интерфейса
		hRBClient[0] = CreateWindow(L"BUTTON",L"Заказчик №1", BS_RADIOBUTTON|WS_CHILD|WS_VISIBLE,		rectTop.left, rectTop.top, 230, 30, hwnd, (HMENU)1,hInst, NULL);
		hRBClient[1] = CreateWindow(L"BUTTON",L"Заказчик №2", BS_RADIOBUTTON|WS_CHILD|WS_VISIBLE,		rectTop.left, rectTop.top+25, 230, 30, hwnd, (HMENU)2,hInst, NULL);
		hRBClient[2] = CreateWindow(L"BUTTON",L"Заказчик №3", BS_RADIOBUTTON|WS_CHILD|WS_VISIBLE,		rectTop.left, rectTop.top+50, 230, 30, hwnd, (HMENU)3,hInst, NULL);
		hRBClient[3] = CreateWindow(L"BUTTON",L"Заказчик №4", BS_RADIOBUTTON|WS_CHILD|WS_VISIBLE,		rectTop.left, rectTop.top+75, 230, 30, hwnd, (HMENU)4,hInst, NULL);
		hEditClent   = CreateWindow(L"EDIT",NULL, WS_CHILD|WS_VISIBLE|WS_BORDER|ES_AUTOHSCROLL|ES_LEFT, rectTop.left, rectTop.bottom, 60, 20, hwnd, (HMENU)5,hInst, NULL); 
		hBtnClient   = CreateWindow(L"BUTTON",L"Пополнить", WS_CHILD|WS_VISIBLE, rectTop.left+70, rectTop.bottom, 100, 20, hwnd, (HMENU)6,hInst, NULL);
		
		wchar_t buf[100];
		wsprintfW(buf,L"Холодильники (Цена: %d)   ",price[0]);
		hRBStore[0] = CreateWindow(L"BUTTON",buf, BS_RADIOBUTTON|WS_CHILD|WS_VISIBLE,		rectBottom.left, rectBottom.top, 230, 30, hwnd, (HMENU)7,hInst, NULL);
		wsprintfW(buf,L"Телевизоры (Цена: %d)   ",price[1]);
		hRBStore[1] = CreateWindow(L"BUTTON",buf, BS_RADIOBUTTON|WS_CHILD|WS_VISIBLE,		rectBottom.left, rectBottom.top+25, 230, 30, hwnd, (HMENU)8,hInst, NULL);
		wsprintfW(buf,L"Пылесосы (Цена: %d)   ",price[2]);
		hRBStore[2] = CreateWindow(L"BUTTON",buf, BS_RADIOBUTTON|WS_CHILD|WS_VISIBLE,			rectBottom.left, rectBottom.top+50, 230, 30, hwnd, (HMENU)9,hInst, NULL);
		hEditStore  = CreateWindow(L"EDIT",NULL, WS_CHILD|WS_VISIBLE|WS_BORDER|ES_AUTOHSCROLL|ES_LEFT, rectBottom.left, rectBottom.bottom, 60, 20, hwnd, (HMENU)10,hInst, NULL); 
		hBtnStore   = CreateWindow(L"BUTTON",L"Пополнить", WS_CHILD|WS_VISIBLE, rectBottom.left+70, rectBottom.bottom, 100, 20, hwnd, (HMENU)11,hInst, NULL);

		hEditDelay  = CreateWindow(L"EDIT",NULL, WS_CHILD|WS_VISIBLE|WS_BORDER|ES_AUTOHSCROLL|ES_LEFT, rectBottom.left+300, rectBottom.bottom, 60, 20, hwnd, (HMENU)12,hInst, NULL); 
		hBtnDelay   = CreateWindow(L"BUTTON",L"Установить задержку", WS_CHILD|WS_VISIBLE, rectBottom.left+370, rectBottom.bottom, 150, 20, hwnd, (HMENU)13,hInst, NULL);
		hBtnPause   = CreateWindow(L"BUTTON",L"Пауза", WS_CHILD|WS_VISIBLE, rectBottom.left+550, rectBottom.bottom, 100, 20, hwnd, (HMENU)14,hInst, NULL);
		
		// Активируем нужные кнопки
		SendMessage(hRBClient[0], BM_SETCHECK,1, 0);
		SendMessage(hRBStore[0], BM_SETCHECK,1, 0);

		return 0;

	case WM_PAINT:
		GetClientRect(hwnd, &rect);
		wchar_t temp[255];
		for (int i=0; i<255; ++i)temp[i]=0;

		hdc = BeginPaint(hwnd, &ps);
		// Отображаем количество необработанных заказов
		wsprintfW(temp,L"   Длина очереди заказов: %d   ",Queue.size());
		DrawText(hdc, temp, -1, &rect, DT_SINGLELINE | DT_LEFT | DT_BOTTOM);
		
		// Отображаем количество отказов
		wsprintfW(temp,L"Отказы (отсутствие товара): %d   ",denied);
		DrawText(hdc, temp, -1, &rect, DT_SINGLELINE | DT_RIGHT | DT_BOTTOM);


		// Вывод состояния склада
		wsprintfW(temp,L"   X: %d   T: %d   П: %d   ",store[0],store[1],store[2]);
		DrawText(hdc, temp, -1, &rect, DT_SINGLELINE | DT_CENTER | DT_BOTTOM);

		// Статистика по продажам
		// [продавец][заказчик][товар] = количество	
		
		wchar_t s1[1024],s2[1024],s3[1024],s4[1024];
		for (int i=0; i<1024; ++i){
			s1[i]=L' ';
			s2[i]=L' ';
			s3[i]=L' ';
			s4[i]=L' ';
		}
		// Вывод статистики	
		
		wsprintfW(s1,L"Заказчик №1     X: %d   T: %d   П: %d     Выручка: %d    %d     Счет: %d      ",sold[0][0][0]+sold[1][0][0],sold[0][0][1]+sold[1][0][1],sold[0][0][2]+sold[1][0][2],sold[0][0][0]*price[0]+sold[0][0][1]*price[1]+sold[0][0][2]*price[2],sold[1][0][0]*price[0]+sold[1][0][1]*price[1]+sold[1][0][2]*price[2],cash[0]);
		wsprintfW(s2,L"Заказчик №2     X: %d   T: %d   П: %d     Выручка: %d    %d     Счет: %d      ",sold[0][1][0]+sold[1][1][0],sold[0][1][1]+sold[1][1][1],sold[0][1][2]+sold[1][1][2],sold[0][1][0]*price[0]+sold[0][1][1]*price[1]+sold[0][1][2]*price[2],sold[1][1][0]*price[0]+sold[1][1][1]*price[1]+sold[1][1][2]*price[2],cash[1]);
		wsprintfW(s3,L"Заказчик №3     X: %d   T: %d   П: %d     Выручка: %d    %d     Счет: %d      ",sold[0][2][0]+sold[1][2][0],sold[0][2][1]+sold[1][2][1],sold[0][2][2]+sold[1][2][2],sold[0][2][0]*price[0]+sold[0][2][1]*price[1]+sold[0][2][2]*price[2],sold[1][2][0]*price[0]+sold[1][2][1]*price[1]+sold[1][2][2]*price[2],cash[2]);
		wsprintfW(s4,L"Заказчик №4     X: %d   T: %d   П: %d     Выручка: %d    %d     Счет: %d      ",sold[0][3][0]+sold[1][3][0],sold[0][3][1]+sold[1][3][1],sold[0][3][2]+sold[1][3][2],sold[0][3][0]*price[0]+sold[0][3][1]*price[1]+sold[0][3][2]*price[2],sold[1][3][0]*price[0]+sold[1][3][1]*price[1]+sold[1][3][2]*price[2],cash[3]);

		rectRight.top = 10;
		DrawText(hdc, s1, -1, &rectRight, DT_SINGLELINE | DT_LEFT | DT_TOP); rectRight.top+=25;
		DrawText(hdc, s2, -1, &rectRight, DT_SINGLELINE | DT_LEFT | DT_TOP); rectRight.top+=25;
		DrawText(hdc, s3, -1, &rectRight, DT_SINGLELINE | DT_LEFT | DT_TOP); rectRight.top+=25;
		DrawText(hdc, s4, -1, &rectRight, DT_SINGLELINE | DT_LEFT | DT_TOP); rectRight.top+=25;

		wsprintfW(temp,L"Задержка: %d",delay);
		DrawText(hdc, temp, -1, &rectRight, DT_SINGLELINE | DT_LEFT | DT_BOTTOM); 
	
		return 0;

	case WM_SIZE:
		return 0;
	case WM_COMMAND:
		switch(LOWORD(wParam)){
		case 1:case 2:case 3:case 4: // Выбран заказчик
			SendMessage(hRBClient[0], BM_SETCHECK,wParam==1,0);
			SendMessage(hRBClient[1], BM_SETCHECK,wParam==2,0);
			SendMessage(hRBClient[2], BM_SETCHECK,wParam==3,0);
			SendMessage(hRBClient[3], BM_SETCHECK,wParam==4,0);
			curClient = wParam-1;
			break;
		case 6: // Пополнить счет
			cash[curClient] += _wtoi(getText(5));
			break;
		case 7:case 8:case 9: // Выбран товар
			SendMessage(hRBStore[0], BM_SETCHECK,wParam==7,0);
			SendMessage(hRBStore[1], BM_SETCHECK,wParam==8,0);
			SendMessage(hRBStore[2], BM_SETCHECK,wParam==9,0);
			curProduct = wParam-7;
			break;
		case 11:  // В склад привезли товар
			store[curProduct] += _wtoi(getText(10));
			break;
		case 13:  // Установка задержки
				delay = _wtoi(getText(12));
				break;
		case 14:
			pause=!pause;
			break;
		}
		
		return 0;
	case WM_DESTROY:    
		PostQuitMessage (0);
		return 0;
	}
	return DefWindowProc (hwnd, iMsg, wParam, lParam);
}


Вернуться к обсуждению:
Запуск программы с расширением .сpp с помощью Visual studio 2010 C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.11.2012, 17:38
Готовые ответы и решения:

Запуск программы VC7 на Visual Studio 2010
Есть программа (в архиве) расширения оболочки для изменения иконок у dll в зависимости от типа,...

Запуск Google testing на Visual Studio 2010
Здравствуйте Попытался подключить Google testing на Visual Studio 2010. За основу взял вот эту...

Кто пишет программы в Visual Studio 2010 на Visual Basic?
Кто пишет программы в Visual Studio 2010 на Visual Basic?

visual studio 2010 запуск после компиляции релиза
пишу на qt visual studio 2010, (1 скрин - скомпилированная прога, все ок !), но после добавления в...

38
07.11.2012, 17:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.11.2012, 17:38
Помогаю со студенческими работами здесь

12 апреля состоится запуск Microsoft Visual Studio 2010 в России
12 апреля в России официально будет представлено новое поколение платформы разработки Microsoft...

Перестали компилироваться программы в Visual Studio 2010
Раньше работал с Visual Studio 2010 и все было ОК. Сейчас ранее написанные программы запускаются, а...

Visual studio 2010 не обновляет вывод программы
создаю приложение windows forms закидываю в форму кнопочки и т.д, проверяю F5 - все рабодаю,...

О работе программы на С++ в среде Visual Studio 2010
Здравствуйте! Помогите, пожалуйста, в решении следующей проблемы. Я написал небольшую программу на...

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