Skip to content

Commit 8917939

Browse files
#TDP - 4 Fixed bug and add info
Add info about work machine add advise for user from program Correct compution middle time queue and wait
1 parent 29e91bd commit 8917939

File tree

3 files changed

+1670
-1030
lines changed

3 files changed

+1670
-1030
lines changed

ModelingSystemInfiniteQueue/ModelingInfinityQeueForm.cpp

Lines changed: 99 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -24,28 +24,44 @@ void main(array<String^>^ args)
2424
}
2525

2626

27-
System::Void ModelingSystemInfiniteQueue::ModelingInfinityQeueForm::setTextForLabelEveryMachine(System::Windows::Forms::Label^ curLabel, int const& totalTimeExectuionTasksCurPC, int const& totalTimeWaitCurPC, int const& totalTimeQueueCurPC, int const& maxCountTaskInQueueCurPC,int const& maxTimeCurrentQueueCurPC)
27+
System::Void ModelingSystemInfiniteQueue::ModelingInfinityQeueForm::setTextForLabelEveryMachine(System::Windows::Forms::Label^ curLabel, int const& totalTimeExectuionTasksCurPC, int const& totalTimeWaitCurPC, int const& totalTimeQueueCurPC, int const& maxCountTaskInQueueCurPC,int const& maxTimeCurrentQueueCurPC,int const& completeTask,int const& countTaskInQueueAfterTask,int const& countQueue)
28+
2829
{
30+
int middleTimeWorkForOneTask = 1;
31+
int middleTimeQueueForOneTask = 1;
32+
33+
if (completeTask != 0)
34+
{
35+
middleTimeWorkForOneTask = std::round(totalTimeExectuionTasksCurPC / completeTask);
36+
}
37+
if(countQueue!=0)
38+
middleTimeQueueForOneTask = std::round(totalTimeQueueCurPC / countQueue);
39+
2940
curLabel->Text = "Âðåìÿ íà âûïîëíåíèå âñåõ çàäà÷: " + (totalTimeExectuionTasksCurPC / 60).ToString() + " ÷. " + (totalTimeExectuionTasksCurPC % 60).ToString() + " ìèí.\n"
30-
+ "Âðåìÿ ïðîñòîÿ: " + (totalTimeWaitCurPC / 60).ToString() + " ÷. " + (totalTimeWaitCurPC % 60).ToString() + " ìèí. \n"
31-
+ "Âñå âðåìÿ îæèäàíèÿ â î÷åðåäè: " + (totalTimeQueueCurPC / 60).ToString() + " ÷. " + (totalTimeQueueCurPC % 60).ToString() + " ìèí. \n"
32-
+ "Ìàêñèìàëüíîå âðåìÿ î÷åðåäè: " + (maxTimeCurrentQueueCurPC / 60).ToString() + " ÷. " + (maxTimeCurrentQueueCurPC % 60).ToString() + " ìèí. \n"
33-
" Ìàêñ î÷åðåäü: " + maxCountTaskInQueueCurPC.ToString();
41+
+ "Êîëè÷åñòâî âûïîëíåííûõ çàäà÷: " + completeTask + "\n"
42+
+ "Êîëè÷åñòâî çàäà÷ îñòàâøèõñÿ â î÷åðåäè: " + countTaskInQueueAfterTask + "\n "
43+
+ " Ñðåäíåå âðåìÿ âûïîëíåíèÿ \n íà îäíó çàäà÷ó : " + (middleTimeWorkForOneTask / 60).ToString() + " ÷. " + (middleTimeWorkForOneTask % 60).ToString() + " ìèí. \n"
44+
//+ "Âñå âðåìÿ îæèäàíèÿ â î÷åðåäè: " + (totalTimeQueueCurPC / 60).ToString() + " ÷. " + (totalTimeQueueCurPC % 60).ToString() + " ìèí. \n"
45+
+ "Ñðåäíåå âðåìÿ â î÷åðåäè: " + (middleTimeQueueForOneTask / 60).ToString() + " ÷. " + (middleTimeQueueForOneTask % 60).ToString() + " ìèí. \n"
46+
+ "Âðåìÿ ïðîñòîÿ: " + (totalTimeWaitCurPC / 60).ToString() + " ÷. " + (totalTimeWaitCurPC % 60).ToString() + " ìèí. \n ---- \n";
47+
//" Ñðåäíåå êîëè÷åñòâî çàäà÷ ñêîïèâøèõñÿ\n â î÷åðåäè : " + maxCountTaskInQueueCurPC.ToString() + " çàäà÷ \n ---- \n";
48+
3449
if (totalTimeExectuionTasksCurPC == 0)
35-
curLabel->Text += "\n Ýôôåêòèâíîñòü ÝÂÌ 0%. \nÍå èñïîëüçóåòñÿ, ðåêîìåíäóåòñÿ ïîâûñèòü\n âåðîÿòíîñòü ïîïàäàíèÿ.";
50+
curLabel->Text += " Ýôôåêòèâíîñòü ÝÂÌ 0. \nÍå èñïîëüçóåòñÿ, ðåêîìåíäóåòñÿ ïîâûñèòü\n âåðîÿòíîñòü ïîïàäàíèÿ.";
3651
else
3752
{
3853
if(totalTimeExectuionTasksCurPC == totalTimeWaitCurPC)
39-
curLabel->Text += "\n Ýôôåêòèâíîñòü ÝÂÌ 50%. \nÈñïîëüçóåòñÿ ëèøü íà ïîëîâèíó, \nñëåäóåò ïîâûñèòü âåðîÿòíîñòü ïîïàäàíèÿ.";
54+
curLabel->Text += " Ýôôåêòèâíîñòü ÝÂÌ ñðåäíÿÿ. \nÈñïîëüçóåòñÿ ëèøü íà ïîëîâèíó, \nñëåäóåò ïîâûñèòü âåðîÿòíîñòü ïîïàäàíèÿ.";
4055
else
4156
if(maxTimeCurrentQueueCurPC > totalTimeExectuionTasksCurPC * 0.3)
42-
curLabel->Text += "\n Ýôôåêòèâíîñòü ÝÂÌ âûøå ñðåäíåãî. \nÄîëãîå âûïîëíåíèå, \nðåêîìåíäóåòñÿ ïîíèçèòü âåðîÿòíîñòü ïîïàäàíèÿ\n èëè óìåíüøèòü âðåìÿ âûïîëíåíèÿ.";
57+
curLabel->Text += " Ýôôåêòèâíîñòü ÝÂÌ âûøå ñðåäíåãî. \nÄîëãîå âûïîëíåíèå, ðåêîìåíäóåòñÿ \nïîíèçèòü âåðîÿòíîñòü ïîïàäàíèÿ\n èëè óìåíüøèòü âðåìÿ âûïîëíåíèÿ.";
4358
else
44-
if(totalTimeWaitCurPC > totalTimeExectuionTasksCurPC * 0.5)
45-
curLabel->Text += "\n Ýôôåêòèâíîñòü ÝÂÌ íèçêàÿ. \nÑëèøêîì äîëãèé ïðîñòîé, \nñëåäóåò ïîâûñèòü âåðîÿòíîñòü ïîïàäàíèÿ.";
59+
if(totalTimeWaitCurPC > totalTimeExectuionTasksCurPC * 0.3)
60+
curLabel->Text += " Ýôôåêòèâíîñòü ÝÂÌ íèçêàÿ. \nÑëèøêîì äîëãèé ïðîñòîé, \nñëåäóåò ïîâûñèòü âåðîÿòíîñòü ïîïàäàíèÿ.";
4661
else
47-
curLabel->Text += "\n Ýôôåêòèâíîñòü ÝÂÌ íîðìàëüíàÿ. \nÈñïîëüçóåòñÿ â ïðåäåëàõ íîðìû.";
62+
curLabel->Text += " Ýôôåêòèâíîñòü ÝÂÌ íîðìàëüíàÿ. \nÈñïîëüçóåòñÿ â ïðåäåëàõ íîðìû.";
4863
}
64+
curLabel->Text += "\n ---- \n";
4965
}
5066

5167
System::Void ModelingSystemInfiniteQueue::ModelingInfinityQeueForm::Tb_startInteervalGetTask_KeyPress(System::Object^ sender, System::Windows::Forms::KeyPressEventArgs^ e)
@@ -134,8 +150,6 @@ double getRandom_uniformRealDistribution(double const& start, double const& end)
134150
}
135151

136152

137-
138-
139153
int giveNumberPC(double const& prob1, double const& prob2)
140154
{
141155
double random = getRandom_uniformRealDistribution(0.0, 1.0);
@@ -173,7 +187,7 @@ void saveSizeQueueIfExists(int const& countTask, int& maxQueue)
173187
maxQueue = countTask - 1;
174188
}
175189

176-
void calculateTimeInQueue(int const& countTask, int& timeInQueue,int& timeCurrentQueue ,int& maxTimeCurrentQueueCurPC)
190+
void calculateTimeInQueue(int const& countTask, int& timeInQueue,int& timeCurrentQueue ,int& maxTimeCurrentQueueCurPC,int& countQueueCurPC)
177191
{
178192
if (countTask > 1)
179193
{
@@ -184,11 +198,15 @@ void calculateTimeInQueue(int const& countTask, int& timeInQueue,int& timeCurren
184198
{
185199
if (timeCurrentQueue > maxTimeCurrentQueueCurPC)
186200
maxTimeCurrentQueueCurPC = timeCurrentQueue;
187-
timeCurrentQueue = 0;
201+
if (timeCurrentQueue != 0)
202+
{
203+
timeCurrentQueue = 0;
204+
countQueueCurPC++;
205+
}
188206
}
189207
}
190208

191-
void checkWorkPC(std::vector<double> & listTaskCurPC, int& timeExectuionTaskCurPC, int& totalTimeExecutionPC, int& countCompleteTask, int& maxQueue, int& timeInQueue, int& timeWait, int& timeCurrentQueue, int& maxTimeCurrentQueueCurPC)
209+
void checkWorkPC(std::vector<double> & listTaskCurPC, int& timeExectuionTaskCurPC, int& totalTimeExecutionPC, int& countCompleteTask, int& maxQueue, int& timeInQueue, int& timeWait, int& timeCurrentQueue, int& maxTimeCurrentQueueCurPC,int& countQueueCurPC)
192210
{
193211
if (listTaskCurPC.size() != 0)
194212
{
@@ -198,7 +216,7 @@ void checkWorkPC(std::vector<double> & listTaskCurPC, int& timeExectuionTaskCurP
198216
{
199217
timeExectuionTaskCurPC++;
200218
saveSizeQueueIfExists(listTaskCurPC.size(), maxQueue);
201-
calculateTimeInQueue(listTaskCurPC.size(), timeInQueue,timeCurrentQueue,maxTimeCurrentQueueCurPC);
219+
calculateTimeInQueue(listTaskCurPC.size(), timeInQueue,timeCurrentQueue,maxTimeCurrentQueueCurPC, countQueueCurPC);
202220

203221
}
204222
}
@@ -224,9 +242,10 @@ void correctTime(int const& totalTimeWork, int& totalTimeWorkCurMachine)
224242

225243
System::Void ModelingSystemInfiniteQueue::ModelingInfinityQeueForm::Btn_exectuion_Click(System::Object^ sender, System::EventArgs^ e)
226244
{
227-
std::ofstream logFile("log.txt");
245+
/*std::ofstream logFile("log.txt");*/
228246

229247
int countTask = Convert::ToInt32(numericUpDown1->Text);
248+
int countTaskTemp = Convert::ToInt32(numericUpDown1->Text);
230249
double const startInterrvalGetTask = Convert::ToDouble(tb_startInteervalGetTask->Text->Replace(".", ","));
231250
double const endInteervalGetTask = Convert::ToDouble(tb_endInteervalGetTask->Text->Replace(".", ","));
232251

@@ -253,7 +272,7 @@ System::Void ModelingSystemInfiniteQueue::ModelingInfinityQeueForm::Btn_exectuio
253272

254273
//Îáùåå âðåìÿ âûïîëíåíèÿ çàäà÷ è êîëè÷åñòâî 1 ÝÂÌ
255274
int totalTimeExectuionTasksFristPC = 0;
256-
int countCompleteTaskFirstPC = 0;
275+
int countCompleteFirstPC = 0;
257276
//Îáùåå âðåìÿ âûïîëíåíèÿ çàäà÷ è êîëè÷åñòâî 2 ÝÂÌ
258277
int totalTimeExectuionTasksSecondPC = 0;
259278
int countCompleteSecondPC = 0;
@@ -290,10 +309,20 @@ System::Void ModelingSystemInfiniteQueue::ModelingInfinityQeueForm::Btn_exectuio
290309
int maxCountTaskInQueueFirstPC = 0;
291310
int maxCountTaskInQueueSecondPC = 0;
292311
int maxCountTaskInQueueThirdPC = 0;
312+
313+
//Êîëè÷åñòâî î÷åðåäé
314+
int countQueueFirstPC = 0;
315+
int countQueueSecondPC = 0;
316+
int countQueueThirdPC = 0;
293317

294318
//îáùåå âðåìÿ ïîñòóïëåíèÿ çàäà÷
295319
double totalTimeReceiptsTasks = 0;
296320

321+
//Êîëè÷åñòâî çàäà÷ îñòàâøèõñÿ â î÷åðåäè
322+
int countTaskInQueueAfterGetAllTaskFirstPC = 0;
323+
int countTaskInQueueAfterGetAllTaskSecondPC = 0;
324+
int countTaskInQueueAfterGetAllTaskThirdPC = 0;
325+
297326
double timeBeforeNextTask = getRandom_uniformRealDistribution(startInterrvalGetTask, endInteervalGetTask);
298327
double currentTime = 0;
299328
int totalTimeWork = 0;
@@ -315,6 +344,7 @@ System::Void ModelingSystemInfiniteQueue::ModelingInfinityQeueForm::Btn_exectuio
315344
listTimeExecutionTasksThirdPC.push_back(getRandom_uniformRealDistribution(startIntervalTimeExecutionTaskThirdPC, endIntervalTimeExecutionTaskThirdPC));
316345
break;
317346
default:
347+
listTimeExecutionTasksFirstPC.push_back(getRandom_uniformRealDistribution(startIntervalTimeExecutionTaskFirstPC, endIntervalTimeExecutionTaskFirstPC));
318348
break;
319349
}
320350

@@ -328,8 +358,8 @@ System::Void ModelingSystemInfiniteQueue::ModelingInfinityQeueForm::Btn_exectuio
328358

329359
if (currentTimeExecutionFirstPC >= std::round(listTimeExecutionTasksFirstPC[0]))
330360
{
331-
completeTask(listTimeExecutionTasksFirstPC, currentTimeExecutionFirstPC, totalTimeExectuionTasksFristPC, countCompleteTaskFirstPC);
332-
361+
completeTask(listTimeExecutionTasksFirstPC, currentTimeExecutionFirstPC, totalTimeExectuionTasksFristPC, countCompleteFirstPC);
362+
333363
switch (giveNumberPC(probabilityGetTaskSecondPCAfterFirstPC, probabilityGetTaskThirdPCAfterFirstPC))
334364
{
335365
case 1:
@@ -339,70 +369,93 @@ System::Void ModelingSystemInfiniteQueue::ModelingInfinityQeueForm::Btn_exectuio
339369
listTimeExecutionTasksThirdPC.push_back(getRandom_uniformRealDistribution(startIntervalTimeExecutionTaskThirdPC, endIntervalTimeExecutionTaskThirdPC));
340370
break;
341371
default:
372+
listTimeExecutionTasksSecondPC.push_back(getRandom_uniformRealDistribution(startIntervalTimeExecutionTaskSecondPC, endIntervalTimeExecutionTaskSecondPC));
342373
break;
343374
}
344375
}
345376
else
346377
{
347378
currentTimeExecutionFirstPC++;
348379
saveSizeQueueIfExists(listTimeExecutionTasksFirstPC.size(), maxCountTaskInQueueFirstPC);
349-
calculateTimeInQueue(listTimeExecutionTasksFirstPC.size(), totalTimeQueueFirstPC,timeCurrentQueueFirstPC,maxTimeQueueFirstPC);
380+
calculateTimeInQueue(listTimeExecutionTasksFirstPC.size(), totalTimeQueueFirstPC,timeCurrentQueueFirstPC,maxTimeQueueFirstPC, countQueueFirstPC);
350381
}
351382

352383
}
353384
if(listTimeExecutionTasksFirstPC.size() == 0)
354385
totalTimeWaitFirstPC++;
355386

356-
checkWorkPC(listTimeExecutionTasksSecondPC, currentTimeExecutionSecondPC, totalTimeExectuionTasksSecondPC, countCompleteSecondPC, maxCountTaskInQueueSecondPC, totalTimeQueueSecondPC, totalTimeWaitSecondPC,timeCurrentQueueSecondPC,maxTimeQueueSecondPC);
357-
checkWorkPC(listTimeExecutionTasksThirdPC, currentTimeExecutionThirdPC, totalTimeExectuionTasksThirdPC, countCompleteThirdPC, maxCountTaskInQueueThirdPC, totalTimeQueueThirdPC, totalTimeWaitThirdPC,timeCurrentQueueThridPC,maxTimeQueueThirdPC);
387+
checkWorkPC(listTimeExecutionTasksSecondPC, currentTimeExecutionSecondPC, totalTimeExectuionTasksSecondPC, countCompleteSecondPC, maxCountTaskInQueueSecondPC, totalTimeQueueSecondPC, totalTimeWaitSecondPC,timeCurrentQueueSecondPC,maxTimeQueueSecondPC,countCompleteSecondPC);
388+
checkWorkPC(listTimeExecutionTasksThirdPC, currentTimeExecutionThirdPC, totalTimeExectuionTasksThirdPC, countCompleteThirdPC, maxCountTaskInQueueThirdPC, totalTimeQueueThirdPC, totalTimeWaitThirdPC,timeCurrentQueueThridPC,maxTimeQueueThirdPC,countCompleteThirdPC);
358389

359-
logFile << " First PC : \n";
360-
logFile << " totalTimeExectuionTasksFristPC = " << totalTimeExectuionTasksFristPC << " totalTimeWaitFirstPC = " << totalTimeWaitFirstPC << " currentTimeExecutionFirstPC =" << currentTimeExecutionFirstPC << "\n";
361-
logFile << " Second PC : \n";
362-
logFile << " totalTimeExectuionTasksSecondPC = " << totalTimeExectuionTasksSecondPC << " totalTimeWaitSecondPC = " << totalTimeWaitSecondPC << " currentTimeExecutionSecondPC =" << currentTimeExecutionSecondPC << "\n";
363-
logFile << " Third PC : \n";
364-
logFile << " totalTimeExectuionTasksThirdPC = " << totalTimeExectuionTasksThirdPC << " totalTimeWaitThirdPC = " << totalTimeWaitThirdPC << " currentTimeExecutionThirdPC =" << currentTimeExecutionThirdPC << "\n";
365-
logFile << "---------------------------------------\n";
390+
//logFile << " First PC : \n";
391+
//logFile << " totalTimeExectuionTasksFristPC = " << totalTimeExectuionTasksFristPC << " totalTimeWaitFirstPC = " << totalTimeWaitFirstPC << " currentTimeExecutionFirstPC =" << currentTimeExecutionFirstPC << "\n";
392+
//logFile << " Second PC : \n";
393+
//logFile << " totalTimeExectuionTasksSecondPC = " << totalTimeExectuionTasksSecondPC << " totalTimeWaitSecondPC = " << totalTimeWaitSecondPC << " currentTimeExecutionSecondPC =" << currentTimeExecutionSecondPC << "\n";
394+
//logFile << " Third PC : \n";
395+
//logFile << " totalTimeExectuionTasksThirdPC = " << totalTimeExectuionTasksThirdPC << " totalTimeWaitThirdPC = " << totalTimeWaitThirdPC << " currentTimeExecutionThirdPC =" << currentTimeExecutionThirdPC << "\n";
396+
//logFile << "---------------------------------------\n";
366397

367398
if(countTask > 0)
368399
currentTime+=1;
400+
if (countTask == 0 && countTaskInQueueAfterGetAllTaskFirstPC == 0 && countTaskInQueueAfterGetAllTaskSecondPC == 0 && countTaskInQueueAfterGetAllTaskThirdPC == 0)
401+
{
402+
countTaskInQueueAfterGetAllTaskFirstPC = listTimeExecutionTasksFirstPC.size();
403+
countTaskInQueueAfterGetAllTaskSecondPC = listTimeExecutionTasksSecondPC.size();
404+
countTaskInQueueAfterGetAllTaskThirdPC = listTimeExecutionTasksThirdPC.size();
405+
}
406+
369407
totalTimeWork++;
370408

371-
logFile << "totalTimeWork = " << totalTimeWork << "\n---------------------------------------\n";
409+
/*logFile << "totalTimeWork = " << totalTimeWork << "\n---------------------------------------\n";*/
372410
if (countTask == 0 && listTimeExecutionTasksFirstPC.size() == 0 && listTimeExecutionTasksSecondPC.size() == 0 && listTimeExecutionTasksThirdPC.size() == 0)
373411
break;
374412

375413
}
376414

377415

378-
setTextForLabelEveryMachine(lbl_FirstPC, totalTimeExectuionTasksFristPC, totalTimeWaitFirstPC, totalTimeQueueFirstPC, maxCountTaskInQueueFirstPC,maxTimeQueueFirstPC);
379-
setTextForLabelEveryMachine(lbl_SecondPC, totalTimeExectuionTasksSecondPC, totalTimeWaitSecondPC, totalTimeQueueSecondPC, maxCountTaskInQueueSecondPC,maxTimeQueueSecondPC);
380-
setTextForLabelEveryMachine(lbl_ThirdPC, totalTimeExectuionTasksThirdPC, totalTimeWaitThirdPC, totalTimeQueueThirdPC, maxCountTaskInQueueThirdPC,maxTimeQueueThirdPC);
416+
setTextForLabelEveryMachine(lbl_FirstPC, totalTimeExectuionTasksFristPC, totalTimeWaitFirstPC, totalTimeQueueFirstPC, maxCountTaskInQueueFirstPC,maxTimeQueueFirstPC,countCompleteFirstPC,countTaskInQueueAfterGetAllTaskFirstPC,countQueueFirstPC);
417+
setTextForLabelEveryMachine(lbl_SecondPC, totalTimeExectuionTasksSecondPC, totalTimeWaitSecondPC, totalTimeQueueSecondPC, maxCountTaskInQueueSecondPC,maxTimeQueueSecondPC,countCompleteSecondPC,countTaskInQueueAfterGetAllTaskSecondPC,countQueueSecondPC);
418+
setTextForLabelEveryMachine(lbl_ThirdPC, totalTimeExectuionTasksThirdPC, totalTimeWaitThirdPC, totalTimeQueueThirdPC, maxCountTaskInQueueThirdPC,maxTimeQueueThirdPC,countCompleteThirdPC,countTaskInQueueAfterGetAllTaskThirdPC,countCompleteThirdPC);
381419

382420
int maxTimeQueuePC = std::max(maxTimeQueueThirdPC, std::max(maxTimeQueueFirstPC, maxTimeQueueSecondPC));
383421
int maxTimeWaitPC = std::max(totalTimeWaitFirstPC, std::max(totalTimeWaitSecondPC, totalTimeWaitThirdPC));
384422

385-
lbl_total->Text = "Îáùåå âðåìÿ ðàáîòû : " + (totalTimeWork / 60).ToString() + " ÷. " + (totalTimeWork % 60).ToString() + " ìèí.";
423+
/*lbl_total->Text = "Îáùåå âðåìÿ ðàáîòû : " + (totalTimeWork / 60).ToString() + " ÷. " + (totalTimeWork % 60).ToString() + " ìèí.";
386424
lbl_total->Text += "\nÎáùåå âðåìÿ îæèäàíèÿ â î÷åðåäè: " + ((totalTimeQueueFirstPC+totalTimeQueueSecondPC+totalTimeQueueThirdPC)/60).ToString() + " ÷. " + ((totalTimeQueueFirstPC + totalTimeQueueSecondPC + totalTimeQueueThirdPC) % 60).ToString() + " ìèí.";
387425
lbl_total->Text += "\nÎáùåå âðåìÿ â ïðîñòîå: " + ((totalTimeWaitFirstPC+totalTimeWaitSecondPC+totalTimeWaitThirdPC)/ 60).ToString() + " ÷. " + ((totalTimeWaitFirstPC + totalTimeWaitSecondPC + totalTimeWaitThirdPC) % 60).ToString() + " ìèí.";
388426
lbl_total->Text += "\nÂðåìÿ ïîñòóïëåíèÿ çàäà÷: " + (((int)std::round(totalTimeReceiptsTasks)) / 60).ToString() + " ÷. " + (static_cast<int>(std::round(totalTimeReceiptsTasks)) % 60).ToString() + " ìèí.";
389-
lbl_total->Text += "\nÑàìîå ìàêñ âðåìÿ î÷åðåäè: " + ((maxTimeQueuePC) / 60).ToString() + " ÷. " + ((maxTimeQueuePC) % 60).ToString() + " ìèí.";
390-
lbl_total->Text += "\nÑàìîå ìàêñ âðåìÿ ïðîñòîÿ: " + ((maxTimeWaitPC) / 60).ToString() + " ÷. " + ((maxTimeWaitPC) % 60).ToString() + " ìèí.";
391-
427+
*/
392428

429+
int middleQueue =(totalTimeQueueFirstPC + totalTimeQueueSecondPC + totalTimeQueueThirdPC) / (countQueueFirstPC+ countQueueSecondPC+ countQueueThirdPC);
430+
int middleWait = (totalTimeWaitFirstPC + totalTimeWaitSecondPC + totalTimeWaitThirdPC)/ 3;
431+
432+
lbl_total->Text = "Îáùåå âðåìÿ ðàáîòû : " + (totalTimeWork / 60).ToString() + " ÷. " + (totalTimeWork % 60).ToString() + " ìèí.";
433+
lbl_total->Text += "\nÑðåäíåå âðåìÿ î÷åðåäè: " + ((middleQueue) / 60).ToString() + " ÷. " + ((middleQueue) % 60).ToString() + " ìèí.";
434+
lbl_total->Text += "\nÑðåäíåå âðåìÿ â ïðîñòîå: " + ((middleWait) / 60).ToString() + " ÷. " + ((middleWait) % 60).ToString() + " ìèí.";
435+
lbl_total->Text += "\n Ìàêñ âðåìÿ î÷åðåäè îäíîé èç ÝÂÌ: " + ((maxTimeQueuePC) / 60).ToString() + " ÷. " + ((maxTimeQueuePC) % 60).ToString() + " ìèí.";
436+
lbl_total->Text += "\n Ìàêñ âðåìÿ ïðîñòîÿ îäíîé èç ÝÂÌ: " + ((maxTimeWaitPC) / 60).ToString() + " ÷. " + ((maxTimeWaitPC) % 60).ToString() + " ìèí.";
437+
438+
int timeExecutionOneTaskFirstPC = (totalTimeExectuionTasksFristPC / countCompleteFirstPC);
439+
int timeExecutionOneTaskSecondPC = (totalTimeExectuionTasksSecondPC / countCompleteSecondPC);
440+
int timeExecutionOneTaskThirdPC = (totalTimeExectuionTasksThirdPC / countCompleteThirdPC);
393441

442+
lbl_total->Text += "\n Àáñîëþòíàÿ ïðîïóñêíàÿ ñïîñîáíîñòü: " + (timeExecutionOneTaskFirstPC + timeExecutionOneTaskSecondPC + timeExecutionOneTaskThirdPC / 3) + "\n";
394443

395444
lbl_total->Text += "\n\n Êðàòêàÿ ñâîäêà îá ýôôåêòèâíîñòè:\n---\n";
396-
if (maxTimeQueuePC > totalTimeWork * 0.8)
397-
lbl_total->Text += "Ìàêñ âðåìÿ î÷åðåäè áîëåå 80% îò âñåé ðàáîòû,\n ðåêîìåíäóåòñÿ ñíèçèòü íàãðóçêó\n ñ íàãðóæåííîé ÝÂÌ è ïîâûñèòü íà ìåíåå\n íàãðóæåííóþ \n(ñì. ñâîäêà äëÿ òåêóùåé ÝÂÌ)\n---\n";
445+
if (middleQueue > totalTimeWork * 0.4)
446+
lbl_total->Text += "Ñðåäíåå âðåìÿ î÷åðåäè âûñîêîå,\n ðåêîìåíäóåòñÿ ñíèçèòü íàãðóçêó\n ñ íàãðóæåííîé ÝÂÌ è ïîâûñèòü íà ìåíåå\n íàãðóæåííóþ \n(ñì. ñâîäêà äëÿ òåêóùåé ÝÂÌ)\n---\n";
398447
else
399-
lbl_total->Text += "Ìàêñ âðåìÿ î÷åðåäè çàíèìàåò ìåíåå 80% âðåìåíè \nîò âñåé ðàáîòû, â ïðåäåëàõ íîðìû\n---\n";
400-
if ((totalTimeWaitFirstPC + totalTimeWaitSecondPC + totalTimeWaitThirdPC) > totalTimeWork * 0.3)
401-
lbl_total->Text += "Îáùåå âðåìÿ ïðîñòîÿ áîëåå 30% îò âñåé ðàáîòû, \nÝÂÌ ïðàêòè÷åñêè íå ðàáîòàþò\n---\n";
448+
lbl_total->Text += "Ñðåäíåå âðåìÿ î÷åðåäè íèçêîå \n, ÝÂÌ ðàáîòàþò õîðîøî \n---\n";
449+
450+
if (middleWait > totalTimeWork * 0.5)
451+
lbl_total->Text += "Ñðåäíåå âðåìÿ ïðîñòîÿ âûñîêîå, \nÝÂÌ ïðàêòè÷åñêè íå ðàáîòàþò\n---\n";
402452
else
403-
lbl_total->Text += "Îáùåå âðåìÿ ïðîñòîÿ ìåíåå 30% îò âñåé ðàáîòû \n ÝÂÌ ðàáîòàþò â ñòàáèëüíîì ðåæèìå\n---\n";
453+
if(middleWait > totalTimeWork * 0.3)
454+
lbl_total->Text += "Ñðåäíåå âðåìÿ ïðîñòîÿ ñðåäíåå, \nÝÂÌ ÷àñòè÷íî ðàáîòàåò\n---\n";
455+
else
456+
lbl_total->Text += "Ñðåäíåå âðåìÿ ïðîñòîÿ íåáîëüøîå \n ÝÂÌ ðàáîòàþò â ñòàáèëüíîì ðåæèìå\n---\n";
404457

405-
logFile.close();
458+
//logFile.close();
406459
}
407460

408461
System::Void ModelingSystemInfiniteQueue::ModelingInfinityQeueForm::Tb_probabilityGetTaskFirst_KeyPress(System::Object^ sender, System::Windows::Forms::KeyPressEventArgs^ e)

0 commit comments

Comments
 (0)