Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБОРАТОРНЫЙ ПРАКТИКУМ.doc
Скачиваний:
15
Добавлен:
11.11.2018
Размер:
996.86 Кб
Скачать
  1. В пакетном режиме os/390

Скопируйте поставленный IBM пример программы и заголовок файла в ваш набор данных. Например, если ваш префикс PETE, сохраните пример программы (CBC3UAAM) в PETE.TEST.C(CTOF) и файл-заголовок в PETE.TESTHDR.H(CBC3UAAN). Вы можете использовать IBM-поставляемую каталогизированную процедуру EDCCBG для компиляции, связывания и запуска, как показано на рис. 5.

//DOCLG EXEC PROC=EDCCBG, INFILE=’PETE.TEST.C CTOF’,

// CPARM=”LSEARCH(’’’’PETE.TESTHDR.+ ’’’”)’

//GO.SYSIN DD DATA, DLM=@@

19

@@

Рис.5 процедура связывания и запуска.

На рис. 5 LSEARCH оператор описывает, где найти пользовательские include файлы.

GO.SYSIN оператор показывает, что вводимые данные следуют за ним.

2. Под TSO

Скопируйте IBM-поставленный пример программы и заголовок файла в ваш набор данных.

Например, если ваш пользовательский префикс PETE, сохраните пример OS/390 C программы

(CBC3UAAM) в PETE.TEST.C(CTOF) и заголовок файла в PETE.TESTHDR.H(CBC3UAAN).

Используйте следующий набор команд TSO, чтобы скомпилировать, связать и выполнить пример программы:

1. Проверьте, что библиотека OS/390 Language Environment runtime и OS/390 C компилятор находится в STEPLIB, LPALST, или сцепке LNKLST библиотек.

2. Скомпилируйте исходный текст OS/390 C. Вы можете использовать REXX EXEC CC вызывая OS/390 C компилятор под TSO следующим образом:

%CC TEST.C(CTOF) (LSEARCH(TESTHDR.H)

REXX EXEC CC компилирует CTOF с умалчиваемыми опциями компилятора и сохраняет результирующий объектный модуль в PETE.TEST.C.OBJ(CTOF).

Компилятор ищет пользовательские header файлы в PDS PETE.TESTHDR.H, который вы указали во время компиляции через LSEARCH опцию.

3. Выполнение связывания:

CXXBIND OBJ(TEST.C.OBJ(CTOF)) LOAD(TEST.C.LOAD(CTOF))

CXXBIND связывает объектный модуль PETE.TEST.C.OBJ(CTOF), чтобы создать

выполняемый модуль CTOF в PDSE PETE.TEST.C.LOAD, с опциями связывания по умолчанию.

4. Запуск программы:

CALL TEST.C.LOAD(CTOF)

CALL запускает CTOF из PETE.TEST.C.LOAD с умалчиваемыми опциями выполнения.

3. Под os/390 shell оболочкой

1. Проверьте, что библиотека OS/390 Language Environment runtime и OS/390 C компилятор

находится в STEPLIB, LPALST, или сцепке LNKLST библиотек.

2. Поместите исходник в HFS. Из OS/390 shell оболочки наберите:

tso oput "’cbc.scbcsam(cbc3uaam)’ ’$PWD/cbc3uaam.c’"

tso oput "’cbc.scbcsam(cbc3uaan)’ ’$PWD/cbc3uaan.h’"

В данном примере, используется текущая директория, так что удостоверьтесь,

что вы находитесь в нужной директории. Используйте pwd команду, чтобы показать

директорию, mkdir команду, чтобы создать новую директорию и cd команду, чтобы

поменять директорию.

3. Компиляция и отладка:

c89 -o ctof cbc3uaam.c

Замечание: Вы можете использовать c89, чтобы скомпилировать исходный текст, который хранится в наборе данных.

4. Запуск программы:

./ctof

Приложение

Таблица 1. Суперкласс «Подвижные единицы», класс «Текущие данные о поезде»

Идентификатор

реквизита таблицы

Тип данного

Длина

поля

Наименование реквизита

1

2

3

4

INDEX_POEZD CHAR 15 Индекс поездa

DOR_RASCH CHAR 2 Код дороги расчета

Данные о последней операции с поездом

KOP_PMD CHAR 2 Код последней оперaции

DATE_OP TIMESTAMP Дaтa совершения оперaции

STAN_OP CHAR 6 Код ЕСР ст.соверш.с поездом посл.оперaции

DORNOD_POSL CHAR 2 Код соседней дороги/отделения

NAPR_POSL CHAR 6 Нaпрaвление

KOP_PRIB202 CHAR 2 Код операции прибытия по с. 202

DORNOD_PRIB202 CHAR 2 Код соседней дороги/отделения по прибытию для с. 202

NAPR_PRIB202 CHAR 6 Направление по прибытию для с. 202

Данные о дислокации

DOR_DIS CHAR 2 Код дороги дислокации

NOD_DIS CHAR 2 Код отделения дислокации

STAN­_DIS CHAR 6 Код станции дислокации

NOM_PARK CHAR 2 Номер пaркa

NOM_PUT CHAR 2 Номер пути

DATE_OP_NPF TIMESTAMP N Дaтa совершения оперaции

Таблица 2. Суперкласс «Подвижные единицы», класс «Текущие данные о вагоне»

Идентификатор

реквизита таблицы

Тип данного

Длина

поля

Наименование реквизита

1

2

3

4

NOM_VAG CHAR 12 Номер вaгонa ( инвентaрный )

DOR_RASCH CHAR 2 Код дороги расчета

NOM_NAKLAD CHAR 9 Номер накладной на вагон

Данные о последней операции с вагоном

KOP_VMD CHAR 2 Код операции с вагоном

DATE_OP TIMESTAMP Дата совершения операции

STAN_OP CHAR 6 Код станции совершения операции

PR_GOD_POGR CHAR 1 Признак годности вагона под погрузку

Сведения о дислокации

DOR_DIS CHAR 2 Код дороги дислокации

STAN_DIS CHAR 6 Код станции дислокации

NOM_PARK CHAR 2 Номер парка

NOM_PUT CHAR 2 Номер пути

Признаки дислокации

VID_DIS_STAN CHAR 1 Код внутристанционной дислокации

1 – подъездной путь

Таблица 3. Суперкласс «Подвижные единицы», класс «Отправки»

Идентификатор

реквизита таблицы

Тип данного

Длина

поля

Наименование реквизита

1

2

3

4

KOP_POGR CHAR 2 Код грузовой операции

DATE_POGR TIMESTAMP Дата грузовой операции

NOM_NAKLAD CHAR 9 Номер дорожной ведомости (накладной)

STAN_DISLOK CHAR 6 Код станции дислокации вагона с грузом

NOM_PARK CHAR 2 Номер парка станции

NOM_PUTI CHAR 2 Номер пути парка станции

GRUZPOL CHAR 4 Код грузополучателя

KOD_GRZ_TGNL CHAR 6 Код груза

PR_EXPORT_GRZ CHAR 1 Признак экспортного груза

VES_GRZ INTEGER 4 Масса груза в кг

STAN_NAZN CHAR 6 Код станции назначения вагона

NOM_VAG CHAR 12 Номер вaгонa ( инвентaрный )

Таблица 4. Суперкласс «Подвижные единицы», класс «Локомотивы»

Идентификатор реквизита таблицы

Тип данного

Длина поля

Наименование реквизита

1

2

3

4

SER_LOC

CHAR

3

Код серии локомотива

ZNS_LOC

CHAR

8

Заводской номер головной секции

DOR_RASCH

CHAR

2

Код дороги расчета (по сути код дороги формирования)

KOP_LMD

CHAR

3

Код операции.

DATE_OP

TIMESTMP

Дата и время операции

INDEX_POEZD

CHAR

15

Индекс поезда

NOM_POEZD

CHAR

4

Номер поезда

KOP_S

CHAR

3

Код операции, при которой изменилось состояние.

DATE_OP_S

TIMESTMP

N

Дата и время операции, при которой изменилось состояние

NAPR_PRIB

CHAR

6

Код станции дислокации

DOR_DIS

CHAR

2

Код дороги дислокации

PROB_TO2

INTEGER

4

Пробег от ТО-2 на начало состояния (минуты)

PROB_LIN

INTEGER

4

Пробег линейный (км) по предыдущей операции

Таблица 5. Суперкласс «НСИ», класс «Картотечные данные о вагонах»

Идентификатор

реквизита таблицы

Тип данного

Длина

поля

Наименование реквизита

1

2

3

4

NOM_VAG CHAR 12 Номер вaгонa ( инвентaрный )

KOD_SOB CHAR 2 Код администрации-собственникa

DATE_POST DATE 4 Дата постройки (XXXX-01-01)

DOR_PRIPIS CHAR 2 Код ж.д. приписки вaгонa

OCH_PLAN_REM CHAR 1 Код очередного плaнового ремонтa вaгонa

NORM_PROB SMALLINT 2 Норматив величины пробега (тыс.км)

GRP_VAG_CEN SMALLINT 2 Грузоподъемность вагона в центнерах

ROD_VAG_OSN CHAR 2 Основной род вагона

OTM_ROL CHAR 1 Отметка о роликах

KOL_OSEY SMALLINT 2 Количество осей в вaгоне

DL_VAG SMALLINT 2 Длинa вaгонa в 0.01 условного вaгонa +

VES_TAR_CEN SMALLINT 2 Вес тaры вaгонa в центнерaх +

PROB_GRJ INTEGER 4 Пробег в груженом состоянии

PROB_POR INTEGER 4 Пробег в порожнем состоянии

Таблица 6. Суперкласс «НСИ», класс «Картотечные данные о локомотивах»

Идентификатор реквизита таблицы

Тип данного

Длина поля

Наименование реквизита

1

2

3

4

SER_LOC

CHAR

3

Код серии локомотива

ZNS_LOC

CHAR

8

Заводской номер головной секции

DOR_PRIP

CHAR

2

Код дороги приписки

DEPO_PRIP

CHAR

2

Код депо приписки

VID_DV_PR

CHAR

2

Код преимущественного вида движения

VID_DV_VSP

CHAR

2

Код вспомогательного вида движения

UCH_OBR1

CHAR

5

Код первого закрепленного участка обращения

UCH_OBR2

CHAR

5

Код второго закрепленного участка обращения

UCH_OBR3

CHAR

5

Код третьего закрепленного участка обращения

UCH_OBR4

CHAR

5

Код четвертого закрепленного участка обращения

UCH_OBR5

CHAR

5

Код пятого закрепленного участка обращения

Таблица 7. Суперкласс «НСИ», класс «Классификатор грузов»

Идентификатор реквизита таблицы

Тип данного

Длина поля

Наименование реквизита

1

2

3

4

KOD_GRZ_TGNL

KOD_GRZ_UCH

ROD_GRZ_OSN

CHAR

CHAR

CHAR

6

3

2

Код груза тарифно-статистической номенклатуры

Код груза оперативно-статистической номенклатуры

Род груза основной

NAIM_GRZ_POL

STRING

32

Полное наименование груза

NAIM_GRZ_KR

STRING

16

Сокращенное наименование груза

Таблица 8. Суперкласс «НСИ», класс «Классификатор станций»

Идентификатор реквизита таблицы

Тип данного

Длина поля

Наименование реквизита

1

2

3

4

KOD_STAN

CHAR

6

Код станции

KLAS_STAN

CHAR

1

Классность станции

SPEZ_STAN

CHAR

2

Специализация станции

NAIM_ STAN _POL

STRING

32

Полное наименование станции

NAIM_STAN _KR

STRING

16

Сокращенное наименование станции

Таблица 9. Суперкласс «НСИ», класс «Подъездные пути»

Идентификатор реквизита таблицы

Тип данного

Длина поля

Наименование реквизита

1

2

3

4

KOD_POD_PUT

CHAR

4

Код подъездного пути

NAIM_POD_PUT

STRING

16

Сокращенное наименование подъездного пути

STAN_PRIM

CHAR

6

Код станции примыкания подъездного пути

WMES_GRZ_FR

CHAR

2

Вместимость грузового фронта

NORM_PROST

CHAR

2

Норматив простоя вагонов (час.)


Таблица 10. Суперкласс «Документы», класс «Дорожные ведомости»

Идентификатор

реквизита таблицы

Тип данного

Длина

поля

Наименование реквизита

1

2

3

4

NOM_NAKLAD CHAR 9 Номер железнодорожной накладной

GRUZPOL CHAR 4 Код грузополучателя

GRUZOTPR СHAR 4 Код грузоотправителя

ID_OTPRK CHAR 12 Идентификатор отправки (номер накладной)

VID_OTPRK CHAR 1 Вид отправки

1 – маршрутная

2 – повагонная

3 – международная

DATE_DOSTAV CHAR 4 Дата доставки (день,месяц)

TARIF CHAR 13 Тариф

KOD_GRZ_TGNL CHAR 6 Код груза по ТГНЛ

KOD_GRZ_UCH CHAR 6 Код груза учетный

ROD_GRZ_OSN CHAR 2 Род груза основной

PR_EXPORT_GRZ CHAR 1 Признак экспортного груза

VES_GRZ INTEGER 4 Масса груза в кг

STAN_NAZN CHAR 6 Код станции назначения вагона

DOR_NAZN CHAR 2 Дорога назначения

NOM_VAG CHAR 12 Номер вaгонa ( инвентaрный )

PR_GOD_POGR CHAR 1 Признак годности под погрузку

Таблица 11. Суперкласс «Документы», класс «Натурный лист поезда»

Идентификатор

реквизита таблицы

Тип данного

Длина

поля

Наименование реквизита

1

2

3

4

INDEX_POEZD CHAR 15 Индекс поездa

DOR_RASCH CHAR 2 Код дороги расчета

Общие данные о поезде

NOM_POEZD CHAR 4 Номер поездa (текущий)

NOM_GOL_VAG CHAR 12 Номер головного вaгонa

NOM_XV_VAG CHAR 12 Номер хвостового вaгонa

USL_DL_POEZD SMALLINT 2 Условнaя длинa поездa

VES_BR SMALLINT 2 Вес поездa брутто (в тоннaх)

VES_NET SMALLINT 2 Вес поездa нетто (вес грузa)

KOL_VAG SMALLINT 2 Количество ед.подв.состава

KOL_VAG_GRUZ SMALLINT 2 Количество вaгонов грузовых

KOL_OSEY SMALLINT 2 Количество осей в поезде всего

Данные о каждом вагоне из ТГНЛ

NOM_VAGON INTEGER 4 Номер вагона

NPP SMALLINT 2 Порядковый номер вaгонa в состaве поездa

OTM_ROL CHAR 1 Отметка о роликовых подшипниках

KOD_SOB SMALLINT 2 Код собственника

VES_GR_T SMALLINT 2 Вес груза в тоннах

STAN_NAZN INTEGER 4 Станция назначения вагона

KOD_GRZ INTEGER 4 Код груза

KOD_GRUZPOL INTEGER 4 Код грузополучателя

Таблица 12. CЛOBAPЬ OПEPAЦИЙ C ПOEЗДAMИ