| Здравствуйте! Записался на ваш курс, но не понимаю как произвести оплату. Надо ли писать заявление и, если да, то куда отправлять? как я получу диплом о профессиональной переподготовке? | 
Высокоуровневый дизайн
ОПИСАНИЕ КЛАССОВ
Класс TBearingParam
// Класс параметров подшипника
public class TBearingParam
{
  public string Number;    // Номер подшипника
  public int ShiftNum;     // Номер рабочей смены
  public DateTime OutDateTime;
    // Дата и время выдачи подшипника
  public DateTime InDateTime;
    // Дата и время поступления подшипника
  public string Factory;   // Название депо
  public string NameMaster;// ФИО мастера
  public int GroupNum;     // Номер группы подшипника
  public int SepType;      // Тип сепаратора подшипника
  public float AShift;     // Осевой сдвиг
  public int Position;
  // Позиция на оси (0 - на заднем кольце (Back),
  // 1 - на переднем кольце (Front))
  // Конструктор
  public TBearingParam()
}Класс реализует набор параметров подшипника.
Класс TTerminalBearing
// Класс терминала подшипника
public class TTerminalBearing
{
private TBearingParam BearingParam;//Структура параметров
                                   //подшипника
public TCommandQueue CommandQueue; //Ссылка на очередь
                                   //команд
public bool IsQuery;               //Флаг, разрешающий
                                   //опрос терминала
// Конструктор
  public TTerminalBearing()
  // Опрашивает терминал
  private long QueryTerminal()
  // Запрашивает и обрабатывает статус терминала
  public void Process()
}Класс используется для взаимодействия с терминалом подшипника. Операции:
- Конструктор TTerminalBearing() инициализирует поле BearingParam и устанавливает значение флага IsQuery в true.
- Метод QueryTerminal() вызывает функцию внешнего модуля IBearing.GetRollerPar(...), присваивает возвращенные значения полю BearingParam и возвращает значение статуса терминала.
- Метод Process()  вызывает метод QueryTerminal(). Если статус
терминала равен 0 (это означает, что параметры подшипника были
успешно возвращены), то на первое место в очередь команд
добавляется команда GetR  - получить из входной ячейки:CommandQueue.AddCommand(TCommand.GetR,-1,0,-1, this.BearingParam, null,0); 
Если получены другие значения статуса терминала, то в журнал сообщений добавляется запись в соответствии с FS пункт 1.а.iv.
Класс TAxleParam
// Класс параметров оси
public class TAxleParam
{
  public byte ShiftNum;     //Номер рабочей смены
  public string NameMaster; //ФИО мастера
  public string Factory;    //Название депо
  public string Number;     //Номер оси
  public int Side;          //Сторона оси 0 - правая,
                            //1 - левая
  public float BackDiam;    //Номер группы задний
  public float FrontDiam;    //Номер группы передний
}Класс реализует набор параметров оси.
Класс TTerminalAxle
// Класс терминала оси
public class TTerminalAxle
{
private TAxleParam AxleParam; //Структура параметров
                              //подшипника
  public TStore Store;        //Ссылка на склад
  //Опрашивает терминал
  private long QueryTerminal()
  //Конструктор
  public TTerminalAxle()
  //Запрашивает и обрабатывает статус терминала
  public void Process()
}Класс используется для взаимодействия с терминалом оси. Операции:
- Конструктор TTerminalAxle() инициализирует поле AxleParam.
- Метод QueryTerminal() вызывает функцию внешнего модуля IAxle.GetAxlePar(...), присваивает возвращенные значения полю AxleParam и возвращает значение статуса терминала.
- Метод Process() вызывает метод QueryTerminal(). Если статус терминала равен 0 (это означает что параметры оси были успешно возвращены), то вызывается метод Store.FindBearingInStore(...), подбирающий подшипники для данной оси. В зависимости от результатов подбора в журнал выводится сообщение (FS пункт 2).
Если получены другие значения статуса терминала, то в журнал сообщений добавляется запись в соответствии с FS пункт 2.
Класс TCommand
// Класс команды
public class TCommand
{
  public const short GetR = 1;  //Получить из входной
                                //ячейки
  public const short SendR = 2; //Отправить из ячейки в
                                //выходную ячейку
  public const short MoveR = 3; //Переложить из ячейки
                                //в ячейку
  public const short PutR = 4;  //Положить в резерв
  public const short PutR1 = 5; //Положить при выдаче
  public const short SetN = 6;  //Произвести зануление
  public const short CheckR = 9;//Проверить ячейку на
                                //занятость
  public const short PRoll = 10;//Получить параметры
                                //подшипника
  public const short Term = 20; //Завершение команд выдачи
  public int NameCommand;       //Название команды
  public int NRetry;            //Число попыток выполнения команды
  public int CellSource;        //Порядковый номер исходной ячейки
  public int CellTarget;        //Порядковый номер
                                //результирующей ячейки
  public int TagSt;             //Сторона результирующей ячейки
  public int TagCol;            //Колонка результирующей ячейки
  public int TagRow;            //Ряд результирующей ячейки
  public int SourseSt;          //Сторона исходной ячейки
  public int SourseCol;         //Колонка исходной ячейки
  public int SourseRow;         //Ряд исходной ячейки
  public TBearingParam PR;      //Структура характеристик
                                //подшипника
  public TAxleParam PA;         //Структура характеристик оси
  public string GetFullName()
}Класс реализует команду складу. Команда складу описывает:
- код;
- название команды;
- полное название команды.
Код и название команды используются внутри системы и при взаимодействии со складом, а полное название команды используется при добавлении в журнал сообщений записей о работе системы.
Класс содержит описание всех допустимых команд (табл. 14.1).
| № | Код | Название | Полное название | 
|---|---|---|---|
| 1 | 1 | GetR | Получить из входной ячейки | 
| 2 | 2 | SendR | Отправить из ячейки в выходную ячейку | 
| 3 | 4 | PutR | Положить в резерв | 
| 4 | 6 | SetN | Произвести зануление | 
| 5 | 20 | Term | Завершение команд выдачи | 
Операции:
- Операция GetFullName() возвращает полное название команды, соответствующее коду команды (табл. 14.1), указанному в поле NameCommand, если он является допустимым кодом. В противном случае возвращается сообщение "ОШИБКА: Неверный код команды". Может применяться в любой момент.
Для выполнения конструктора не требуется никаких предварительных условий.
Для выполнения деструктора не требуется никаких предварительных условий.
 
                             

