Додаток А. Проектування системи масового обслуговування
AverageEmptySectionOne += ((Convert.ToDouble (this.emptySectionOne) * 100) / (Convert.ToDouble (timeHours) * 60)); Int sectionOne, sectionTwo, assembledDetails, emptySectionOne, emptySectionTwo, emptyConveyor, emptyError; //. If (busy == false && sectionOne > needGoodsToCompilation && sectionTwo > needGoodsToCompilation) emptyError++; EmptySectionOne = 0; emptySectionTwo = 0; emptyConveyor = 0… Читать ещё >
Додаток А. Проектування системи масового обслуговування (реферат, курсовая, диплом, контрольная)
Малюнок 2 Звіт GPSS World.
Додаток Б
Малюнок 3 Діаграма класів.
Малюнок 4 Діаграма послідовності.
Малюнок 5 Діаграма варіантів.
Малюнок 6 Діаграма станів.
Малюнок 7 Діаграма компонентів.
Малюнок 8 Діаграма розгортання.
Додаток В
using System;
using System.Collections.Generic;
using System. Linq;
using System. Text;
using System.Threading.Tasks;
namespace ConsoleApplication1.
{.
class ClassConveyor.
{.
private.
int timeHours, needGoodsToCompilation; byte timeCompilation; //условие.
int sectionOne, sectionTwo, assembledDetails, emptySectionOne, emptySectionTwo, emptyConveyor, emptyError; //.
ClassProduct first = new ClassProduct (), second = new ClassProduct ();
//timeFirstStep = 5, timeSecondStep = 20, rangeFirstStep = 1, rangeSecondStep = 7.
public ClassConveyor () //консттруктор
{.
timeHours = 8;
timeCompilation = 10;
needGoodsToCompilation = 10;
}.
private void Compilation ().
{.
ClassProduct first = new ClassProduct (5, 5, 1);
ClassProduct second = new ClassProduct (20, 20, 7);
bool busy = false; //занятость конвейера.
byte counterBusy=0; //счетчик занятости конвейера.
assembledDetails = 0; //собранно деталей.
sectionOne = 0; sectionTwo = 0; //накопитель изделий перед сборкой.
emptySectionOne = 0; emptySectionTwo = 0; emptyConveyor = 0; emptyError = 0; //счетчик простоя.
int counterBusyFirst = first. TimeToSupply (), counterBusySecond = second. TimeToSupply ();//время поступления изделий 1и2 типа.
for (int i = 0; i < timeHours * 60; i++)//время.
{.
if (counterBusyFirst > 0)//поступает изделий 1 типа.
{.
counterBusyFirst—;
if (counterBusyFirst == 0).
{.
sectionOne += first. ProductGet ();
counterBusyFirst = first. TimeToSupply ();
}.
}.
if (counterBusySecond > 0)//поступает изделий 2 типа.
{.
counterBusySecond—;
if (counterBusySecond == 0).
{.
sectionTwo += second. ProductGet ();
counterBusySecond = second. TimeToSupply ();
}.
}.
if (sectionOne >= needGoodsToCompilation && sectionTwo >= needGoodsToCompilation && busy==false).
{.
busy = true; counterBusy = timeCompilation;
sectionOne -= needGoodsToCompilation;
sectionTwo -= needGoodsToCompilation;
}.
if (busy == false && sectionOne < needGoodsToCompilation) emptySectionOne++;
if (busy == false && sectionTwo < needGoodsToCompilation) emptySectionTwo++;
if (busy == false && sectionOne > needGoodsToCompilation && sectionTwo > needGoodsToCompilation) emptyError++;
if (busy == false) emptyConveyor++;
if (busy && counterBusy ≠ 0).
{.
counterBusy—;
if (counterBusy == 0).
{.
busy = false;
assembledDetails++;
}.
}.
}.
}.
private void Result (int x, double y, double a, double b).
{.
Console.Clear ();
Console.Write («Зроблених деталей = «); Console. WriteLine (x);
Console.WriteLine («Вiдсоток простою конвеєра = {0:f3}», y," %");
Console.WriteLine («Вiдсоток простою конвеєра через секцiї № 1 = {0:f3}», a," %");
Console.WriteLine («Вiдсоток простою конвеєра через секцiї № 2 = {0:f3}», b," %");
}.
public void Analysis ().
{.
int averageAssembledDetails = 0, quantity = 10 000;
double averageEmptyConveyor = 0, averageEmptySectionOne = 0, averageEmptySectionTwo = 0;
for (int j = 0; j < quantity; j++).
{.
this.Compilation ();
averageAssembledDetails += this. assembledDetails;
averageEmptyConveyor += ((Convert.ToDouble (this.emptyConveyor)*100)/(Convert.ToDouble (timeHours)*60));
averageEmptySectionOne += ((Convert.ToDouble (this.emptySectionOne) * 100) / (Convert.ToDouble (timeHours) * 60));
averageEmptySectionTwo += ((Convert.ToDouble (this.emptySectionTwo) * 100) / (Convert.ToDouble (timeHours) * 60));
}.
averageAssembledDetails /= quantity;
averageEmptyConveyor /= quantity;
averageEmptySectionOne /= quantity;
averageEmptySectionTwo /= quantity;
Result (averageAssembledDetails, averageEmptyConveyor, averageEmptySectionOne, averageEmptySectionTwo);
}.
}.
class ClassProduct.
{.
private int product, timeStep, rangeTime;
public ClassProduct () { }.
public ClassProduct (int c, int t, int r).
{.
product = c;
timeStep = t;
rangeTime = r;
}.
public int TimeToSupply ().
{.
Random r= new Random ();
if (r.Next (2) == 0) return timeStep + r. Next (rangeTime + 1);
else return timeStep — r. Next (rangeTime + 1);
}.
public int ProductGet ().
{.
return product;
}.
}.
class Program.
{.
static void Main (string[] args).
{.
ClassConveyor x = new ClassConveyor ();
x.Analysis ();
Console.ReadKey ();
}.
}.
}.