Смоделировать процесс обработки на станке 100 деталей. Подсчитать число заполненных тележек и число потерянных деталей - C#

Узнай цену своей работы

Формулировка задачи:

Условие задачи: С интервалом времени 5 ± 2мин. детали поштучно поступают к станку на обработку и до начала обработки хранятся на рабочем столе, который вмещает 3 детали. Если свободных мест на столе нет, вновь поступающие детали укладываются в тележку, которая вмещает 5 деталей, если тележка заполняется до нормы, ее увозят к другим станкам, а на ее место через 8 ± 3мин. ставят новую тележку. Если во время отсутствия тележки поступает очередная деталь и не находит на столе мест, она считается потерянной. Рабочий берет детали на обработку в первую очередь из тележки, а если она пуста – со стола. Обработка деталей производится за 10 ± 5мин. Смоделировать процесс обработки на станке 100 деталей. Подсчитать число заполненных тележек и число потерянных деталей. В Windows Forms делал на C#. Не могу понять как описать часть про тележку и 8 ± 3мин. Создал 3 таймера: 1ый для 5 ± 2мин - поступление детали, работает пока не будет 100 деталей запущено. 2ой для 10 ± 5мин - обработка детали на станке, timer.stop() когда количество деталей =100 и стол пуст и телега пуста. а вот с 3им для 8 ± 3мин. - проблема. Не могу понять, как описать условие - если интервал таймера закончился, то таймер выключить. Так как потом мы его еще будем включать. Помогите пожалуйста.

Решение задачи: «Смоделировать процесс обработки на станке 100 деталей. Подсчитать число заполненных тележек и число потерянных деталей»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace KURSOV
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        bool net_telegi=false; // индикатор телеги
        bool det_rab=false; // =true если деталь в обработке   
 
        int kol_det = 0; // количество деталей вступивших в оборот
        int rab_stol = 0; // количество деталей находящихся на столе
        int telega = 0; // количество деталей находящихся в телеге
       
        int poteri = 0; // количество потерянных деталей
        int kol_teleg = 0; // количество использованных телег
        int result = 0; // количество деталей вступивших в систему
 
        int time1 = 5; // Основное время поступления детали
        int time2 = 2; // +\- для времени поступления деталей
        int time3 = 8; // Основное время через которое ставят  тележку
        int time4 = 3; // +\- для времени через которое ставят тележку
        int time5 = 10; // Основное время обработки детали на станке
        int time6 = 5; // +\- для времени обработки детали на станке
 
        int t1, t2, t3; //временные интервалы
        int k, l, m, tl, tm; // переменные циклов-счетчиков
       
        private void tabPage1_Click(object sender, EventArgs e)
        {
 
        }
 
        private void button1_Click(object sender, EventArgs e) // ПРИМЕНЕНИЕ ИЗМЕНЕНИЙ
        {
            time1 = Convert.ToInt32(textBox1.Text);
            time2 = Convert.ToInt32(textBox2.Text);
            time3 = Convert.ToInt32(textBox3.Text);
            time4 = Convert.ToInt32(textBox4.Text);
            time5 = Convert.ToInt32(textBox5.Text);
            time6 = Convert.ToInt32(textBox6.Text);
        }
 
        private void button4_Click(object sender, EventArgs e) // ВЫСТАВИТЬ УМОЛЧАНИЯ
        {
            time1 = 5;
            time2 = 2;
            time3 = 8;
            time4 = 3;
            time5 = 10;
            time6 = 5;
        }
 
        private void button2_Click(object sender, EventArgs e) // ЗАПУСК
        {
            Random rnd1 = new Random();
            t1 = rnd1.Next(time1-time2,time1+time2);
            textBox14.Text = Convert.ToString(t1);
 
            Random rnd2 = new Random();
            t2 = rnd2.Next(time5 - time6, time5 + time6);
            textBox15.Text = Convert.ToString(t2);
 
            Random rnd3 = new Random();
            t3 = rnd3.Next(time3 - time4, time3 + time4);
            textBox16.Text = Convert.ToString(t3);
            det_rab = true;
 
            if (t1 > t2) { tl = t1; tm=t2;} else { tl = t2; tm=t1; }
            while (l <= tl*100)
            {
            for (m = 0; m <= tm * 100; m++)
            {
               l++;
                    
                    if (m % t2 == 0)
                    {
                        result++;
                        det_rab = false;
 
                        if ((telega != 0) & (net_telegi == false))
                        {
                            telega--;
                            det_rab = true;
                        }
                        else
                        {
                            rab_stol--;
                            det_rab = true;
                        }
                    }
 
 
                    if (l % t1 == 0)
                    {
                        kol_det++;
                        if (rab_stol < 3)
                        {
                            rab_stol++;
                            kol_det--;
                        }
                        else
                            if ((telega < 5) & (net_telegi == false))
                            {
                                telega++;
                                kol_det--;
                            }
 
                            else
                                if (net_telegi == true)
                                {
                                    poteri++;
                                    kol_det--;
 
                                }
                                else
                            {
                                kol_teleg++;
                                poteri++;
                                kol_det--;
                                net_telegi = true;
                                for (k = 0; k <= t3; k++)
                                {
                                    if (k == t3)
                                    {
                                        net_telegi = false;
                                        telega = 0;
                                    }
                                }
 
                            }
                    }
                }
              
                }
            MessageBox.Show("Моделирование завершено!\n" + "Потрачено времени: " + l + " минут");
            textBox11.Text = Convert.ToString(kol_teleg);
            textBox10.Text = Convert.ToString(poteri); 
            textBox9.Text = Convert.ToString(result); 
            textBox7.Text = Convert.ToString(kol_det);  
            textBox8.Text = Convert.ToString(det_rab); 
            textBox12.Text = Convert.ToString(rab_stol);  
            textBox13.Text = Convert.ToString(telega);
            textBox17.Text = Convert.ToString(net_telegi); 
        }
 
        private void button3_Click(object sender, EventArgs e) // ОЧИСТИТЬ ВСЕ
        {
            textBox14.Text = ""; // очистить t1
            textBox15.Text = ""; // очистить t2
            textBox16.Text = ""; // очистить t3
            textBox11.Text = ""; // очистить количество телег kol_teleg
            textBox10.Text = ""; // очистить количество потери poteri
            textBox9.Text = "";  // очистить количество деталей result
            textBox7.Text = "";  // очистить количество деталей kol_det
            textBox8.Text = ""; // очистить детали из обработки det_rab
            textBox12.Text = ""; // очистить рабочий стол rab_stol
            textBox13.Text = ""; // очистить тележку telega
            textBox17.Text = ""; // очистить индикатор net_telegi
            net_telegi = false; // индикатор телеги
            det_rab = false; // =true если деталь в обработке    
            kol_det = 0; // количество деталей вступивших в оборот
            rab_stol = 0; // количество деталей находящихся на столе
            telega = 0; // количество деталей находящихся в телег
            poteri = 0; // количество потерянных деталей
            kol_teleg = 0; // количество использованных телег
            result = 0; // количество деталей вступивших в систему
            k = 0; 
            l = 0; 
            tl = 0;
            tm = 0; 
            m = 0;
 
        }
 
        
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.75 из 5
Похожие ответы