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

Как подключить поток? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Матрицы http://www.cyberforum.ru/cpp-beginners/thread450359.html
В матрице найти сумму парных элементов, которые находятся выше главной диагонали. Если она делится на 3,обнулить побочную диагональ.
C++ Написать класс Binary, который инкрементирует число, записанное в 2-чном виде Написать класс Binary, который инкрементирует число, записанное в 2-чном виде. Допускаются только числа больше нуля. Ведущих нулей в числе нет. В классе должны быть определены следующие конструкторы и методы: class Binary { public: Binary(const string &s); operator string () const; const Binary &operator++(); http://www.cyberforum.ru/cpp-beginners/thread450344.html
Блок схема C++
Программисты помогите с блок схемой, пожалуйста. Нужно у этой задачи сделать блок схему const int N=10; double a; ... int monot_vozrast=0; int monot_ubyv=0; for(int i=0;i<N;i++) { bool bv=true,bu=true;
C++ Перевод времени
Написать программу, которая переводит время из минут и секунд в секунды. Программа должна проверять правильность введенных пользователем данных и в случае, если данные введены не верно выводить сообщение
C++ Как узнать Title одной из запущеный программ? http://www.cyberforum.ru/cpp-beginners/thread450282.html
Доброго времени суток всем. Мне необходимо по нажатию на кнопку в моей программе вывести список всех открытых на компьютере программ (окон), считав их Заголовки и выбранное окно сделать актывным, тем самым свернув мою программу. Вот меня интересует как это сделать? Работаю на данный момент на VS 2008, но если это проще сделать, например в Builder'e, прошу вас рассказать, как... Заранее...
C++ Диплом на С++ игрушка или программа обучающая Уважаемые форумчане помогите мне надо написать программу или игру обучающую для студентов помогите ПЛЗ главная проблема это исходник подробнее

Показать сообщение отдельно
nurkamol
2 / 2 / 0
Регистрация: 23.06.2010
Сообщений: 33

Как подключить поток? - C++

21.02.2012, 19:00. Просмотров 439. Ответов 0
Метки (Все метки)

Доброго всем времени суток)

вот у меня было тут задачка

условия такова

Разработать программу для вычисления полного количества секунд, прошедших между двумя значениями времени. Значение времени – это строки вида ЦЦ.ЦЦ.ЦЦ, где Ц – это любая цифра из диапазона [0-9]. Вычисление разницы между временами оформляется как функция потока. Сначала осуществляется ввод значений времени, затем запускается поток, и далее – результат выводится на экран.
Как написано все уже сделано

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
// labrab1_time.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <iostream>
#include <ctime>
#include <cerrno>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
}
int main()
{
setlocale(LC_CTYPE,"Russian");
char sep;
tm beg={0};
tm end={0};
cout<<"Введите время в формате ЦЦ.ЦЦ.ЦЦ:"<<endl;
cin>>beg.tm_hour>>sep>>beg.tm_min>>sep>>beg.tm_sec>>end.tm_hour>>sep>>end.tm_min>>sep>>end.tm_sec;
beg.tm_mday=end.tm_mday=1;
beg.tm_year=end.tm_year=100;
cout<<"Прошло: "<<difftime(mktime(&end),mktime(&beg))<<" секунд\n";
int h1,m1,s1,h2,m2,s2;
cin>>h1>>sep>>m1>>sep>>s1>>h2>>sep>>m2>>sep>>s2;
cout<<"Прошло: "<<h2*60*60+m2*60+s2-h1*60*60-m1*60-s1<<" секунд\n";
}
вот теперь тока не знаю как подключить функция потока

вот тут к примеру в качестве на число прописью использована потока

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
// Число прописью.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <clocale>
#include <windows.h>
using namespace std;
 
char v1[4][20];
char var;
int num[3];
 
// Функция потока
DWORD WINAPI ThreadFunc(PVOID lpParametr)
{
switch(var)
   {
   case '-': strcpy (v1[0],"минус")  ;break;
   case ' ': strcpy (v1[0],"")       ;break;
   }
switch(num[0])
   {
    case 1: strcpy(v1[1],"сто")        ;break;
    case 2: strcpy(v1[1],"двести")     ;break;
    case 3: strcpy(v1[1],"триста")     ;break;
    case 4: strcpy(v1[1],"четыреста")  ;break;
    case 5: strcpy(v1[1],"пятьсот")    ;break;
    case 6: strcpy(v1[1],"шестьсот")   ;break;
    case 7: strcpy(v1[1],"семьсот")    ;break;
    case 8: strcpy(v1[1],"восемьсот")  ;break;
    case 9: strcpy(v1[1],"девятьсот")  ;break;
   }
if( num[1] == 0 || num[1] > 1 )
   {
     if( num[1] > 1 )
       {
            switch( num[1] )
            {
             case 2: strcpy(v1[2],"двадцать")   ;break;
             case 3: strcpy(v1[2],"тридцать")   ;break;
             case 4: strcpy(v1[2],"сорок")      ;break;
             case 5: strcpy(v1[2],"пятьдесят")  ;break;
             case 6: strcpy(v1[2],"шестьдесят") ;break;
             case 7: strcpy(v1[2],"семьдесят")  ;break;
             case 8: strcpy(v1[2],"восемдесят") ;break;
             case 9: strcpy(v1[2],"девяносто")  ;break;
            }
       }
             switch( num[2] )
             {
             case 1: strcpy(v1[3],"один")   ;break;
             case 2: strcpy(v1[3],"два")    ;break;
             case 3: strcpy(v1[3],"три")    ;break;
             case 4: strcpy(v1[3],"четыре") ;break;
             case 5: strcpy(v1[3],"пять")   ;break;
             case 6: strcpy(v1[3],"шесть")  ;break;
             case 7: strcpy(v1[3],"семь")   ;break;
             case 8: strcpy(v1[3],"восемь") ;break;
             case 9: strcpy(v1[3],"девять") ;break;
             }
    }
else if( num[1] == 1 )
    {
             switch( num[2] )
             {
             case 0: strcpy(v1[2],"десять");strcpy(v1[3],"")         ;break;
             case 1: strcpy(v1[2],"одиннадцать");strcpy(v1[3],"")    ;break;
             case 2: strcpy(v1[2],"двенадцать");strcpy(v1[3],"")     ;break;
             case 3: strcpy(v1[2],"тринадцать");strcpy(v1[3],"")     ;break;
             case 4: strcpy(v1[2],"четырнадцать");strcpy(v1[3],"")   ;break;
             case 5: strcpy(v1[2],"пятнадцать");strcpy(v1[3],"")     ;break;
             case 6: strcpy(v1[2],"шестнадцать");strcpy(v1[3],"")    ;break;
             case 7: strcpy(v1[2],"семнадцать");strcpy(v1[3],"")     ;break;
             case 8: strcpy(v1[2],"восемнадцать");strcpy(v1[3],"")   ;break;
             case 9: strcpy(v1[2],"девятнадцать");strcpy(v1[3],"")   ;break;
             }
    }
return 0;
}
 
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_CTYPE,"Russian");
 
DWORD dwThreadId, dwThrdParam = 1;
HANDLE hThread;
 
cout <<"Введите число в формате NNN:\n";
cin >> var;
for(int i=0;i<3;i++)
{
cin >> num[i];
}
 
// Код вызова функции для создания потока
// Создание потока в приостановленном состоянии
hThread = CreateThread(
            NULL,              // атрибуты безопасности по умолчанию
            0,                 // размер стека используется по умолчанию
            ThreadFunc,        // функция потока
            &dwThrdParam,      // аргумент функции потока
            CREATE_SUSPENDED,  // флажки создания используются по умолчанию
            &dwThreadId);      // возвращает идентификатор потока
 
// Выполнение потока
ResumeThread (hThread);
 
// При успешном завершении проверяет возвращаемое значение.
if (hThread  == NULL) 
    {
     cout <<"Поток создан не был\n";
    }
else 
    {
     cout <<"Поток успешно создан\n"<<"Handle потока: "<<hThread<<"\n";
     CloseHandle( hThread );
    }
 
cout <<"Введенное число прописью:\n";
cout <<v1[0]<<" "<<v1[1]<<" "<<v1[2]<<" "<<v1[3];
 
getch ();
return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru