@@ -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
5167System::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-
139153int 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
225243System::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
408461System::Void ModelingSystemInfiniteQueue::ModelingInfinityQeueForm::Tb_probabilityGetTaskFirst_KeyPress (System::Object^ sender, System::Windows::Forms::KeyPressEventArgs^ e)
0 commit comments