Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otchet_k_kursachu.doc
Скачиваний:
4
Добавлен:
25.09.2019
Размер:
300.54 Кб
Скачать

Реализация программы

Программа состоит из следующих модулей:

3.3.1 Main.C

Main.c - модуль содержит меню (функция choice()) с вызовами функций реализации. Главным элементом модуля является цикл while, с помощью которого реализуется цикличность выбора пунктов меню пользователем. До тех пор пока переменная choice не примет значение EXIT_CODE, программа будет предлагать пользователю выбрать какой-либо пункт меню. Выбор реализуется конструкцией switch:

Case 1: формирует массивы отсчетов времени, входного и выходного сигналов. Выводит на экран таблицу, содержащую значения этих массивов. Начальные параметры для формирования массивов заданы в программе. В этом пункте пользователь не может их изменить

Case 2: формирует массивы отсчетов времени, входного и выходного сигналов. Выводит на экран таблицу, содержащую значения этих массивов. Начальные параметры для формирования массивов берутся из файла, имя которого описано в константе F_INPUT. Если файла с таким именем не существует, то выведется ошибка. Параметры в файле записываются последовательно, на каждой строке по одному параметру. В файле указаны следующие параметры: n – количество точек, tn – начальное время, tk – конечное время, t1, t2, ui1, ui2, uimax, uimin, uomax, uomin – координаты точек.

Case 3: формирует массивы отсчетов времени, входного и выходного сигналов. Выводит на экран таблицу, содержащую значения этих массивов. Начальные параметры для формирования массивов пользователь вводит с клавиатуры. Последовательно, один за другим пользователю предлагается ввести следующие параметры: n – количество точек, tn – начальное время, tk – конечное время, t1, t2, ui1, ui2, uimax, uimin, uomax, uomin – координаты точек

Case 4: рассчитывает длительность заднего фронта выходного сигнала. После выбора этого пункта пользователю предлагается ввести значение точности, с которой необходимо вычислить фронт.

Case 5: сохраняет сформированные массивы в .txt файл (в виде таблицы)

Пример фрагмента файла full.txt:

SAVE TIME Fri Jun 08 20:56:38 2012

n = 200

tn = -5.000

tk = 15.000

t1 = 2.000

ui1 = 0.000

ui2 = 10.000

uimax = 100.000

uimin = 0.000

uomax = 50.000

uomin = 0.000

step | time | u_in | u_out

1 | -5.000 | 0.0000 | 0.0000

2 | -4.899 | 1.4357 | 7.1787

3 | -4.799 | 2.8715 | 14.3575

4 | -4.698 | 4.3072 | 21.5362

5 | -4.598 | 5.7430 | 28.7150

6 | -4.497 | 7.1787 | 35.8937

7 | -4.397 | 8.6145 | 43.0725

8 | -4.296 | 10.0502 | 50.0000

9 | -4.196 | 11.4860 | 50.0000

10 | -4.095 | 12.9217 | 50.0000

Case 6: сохраняет сформированные массивы по отдельности в три .txt файла (это делается для последующего чтения этих файлов программой wxMaxima)

Case 7: выводит краткую информацию о программе

Default: срабатывает при условии, если введено неверное значение

3.3.2 Library.C

library.c – модуль содержит все функции реализации.

Функции интерфейса:

int menu(void);

Назначение: функция вызывает меню и ожидает пользовательского ввода. Как только значение введено функция его возвращает

Интерфейс: функция не имеет принимаемых значений. Функция возвращает значение типа int (это значение далее используется в конструкции switch – case)

Результат: Результатом выполнения функции является меню на экране и введенное пользователем значение в точке вызова функции.

void display(float*, float*, float*, parametrs);

Назначение: функция выводит на экран значения трех массивов в виде таблицы с заголовком.

Интерфейс: функция принимает последовательно три указателя на тип float, и структуру parameters. Возвращаемых значений функция не имеет

Результат: Результатом выполнения данной функции является таблица со значениями трех массивов.

void info(void);

Назначение: функция выводит на экран информацию о программе

Интерфейс: функция не имеет входных параметров и ничего не возвращает

Результат: Результатом выполнения этой функции является краткая информация на экране

Функции для работы с массивами

void create(float*, float*, float*, parametrs);

Назначение: На основе параметров цепи функция формирует три массива: массив отсчетов времени, массив входного сигнала и массив выходного сигнала

Интерфейс: функция принимает три указателя на тип float, и структуру parameters. Возвращаемых значений функция не имеет.

Эта функция описана для удобства. Эта функция вызывает функции times(), uins() и uouts() (описаны ниже). Но гораздо удобнее вызвать одну функцию, чем три.

float step(float, float, int);

Назначение: функция определяет значение шага на основе принимаемых параметров. Используется формула

Интерфейс: функция принимает 2 значения типа float (это начальное и конечное значения времени) и одно значение типа int (количество точек). Возвращает функция значение типа float

Результат: В результате работы этой функции в точке вызова окажется значение шага при заданных параметрах

Эта функция также описана для удобства