Расчет коэффициента мощности выпрямителя в зависимости от реактивного сопротивления и эффективного значения электродвижующей силы

Алгоритмизация вычислительных процессов. Разработка интерфейса пользователя программы. Создание программного кода, анимации, справочной системы. Разработка программы для вычисления коэффициента мощности выпрямителя. Вывод графического изображения.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 28.04.2014
Размер файла 1,9 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

СОДЕРЖАНИЕ

СОДЕРЖАНИЕ

РЕФЕРАТ

ВВЕДЕНИЕ

АЛГОРИТМИЗАЦИЯ ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ

МАТЕМАТИЧЕСКОЕ РЕШЕНИЕ ЗАДАЧИ

РАСКРЫТИЕ ТЕМЫ КУРСОВОЙ РАБОТЫ

Разработка интерфейса пользователя

Создание программного кода

СОЗДАНИЕ АНИМАЦИИ

РАЗРАБОТКА СПРАВОЧНОЙ СИСТЕМЫ

РАСЧЁТ КОНТРОЛЬНОГО ПРИМЕРА

ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ ИНФОРМАЦИИ

ПРИЛОЖЕНИЯ

Приложение 1

Приложение 2

РЕФЕРАТ

Для решения поставленной задачи будет использоваться среда разработки приложений Delphi 7. При помощи Delphi 7 будет создана программа коэффициента мощности выпрямителя в зависимости от реактивного сопротивления и эффективного значения электродвижущей силы

Для отображения алгоритма решения, создаём блок-схему.

ВВЕДЕНИЕ

Целью данной работы является расчет коэффициента мощности выпрямителя (Вт) в зависимости от реактивного сопротивления Ч (Ом) и эффективного значения электродвижующей силы Е (В).

Для этой цели составлена программа на языке программирования “Delphi”. С помощью данной программы произведены необходимые вычисления и получены результаты, как в виде таблицы, так и в виде графиков зависимостей. Так же для улучшения визуального восприятия и облегчения работы с программой составлены дополнительные модули “Анимация” и “О программе”. Кроме этого в выше указанных модулях будет содержаться дополнительная информация о разработчике программы.

Целью данной курсовой работы является закрепление и применение на практике полученных навыков программирования во время изучения дисциплины «Информатика».

Разработанная мною программа имеет примитивный интерфейс. Данной программой может пользоваться не только подготовленный пользователь, но и пользователь, который слабо знает данную сторону вопроса и методы её реализации.

АЛГОРИТМИЗАЦИЯ ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ

Ниже приведена блок-схема, описывающая алгоритм, по которому будет выполняться программа.

Размещено на http://www.allbest.ru/

Рисунок 1 - Блок-схема алгоритма решения математической модели

МАТЕМАТИЧЕСКОЕ РЕШЕНИЕ ЗАДАЧИ

Рассчитать коэффициент мощности выпрямителя (Вт) в зависимости от реактивного сопротивления Ч (Ом) и эффективного значения электродвижующей силы Е (В).

Коэффициент мощности выпрямителя (Вт) в зависимости от реактивного сопротивления Ч(Ом) и эффективного значения электродвижующей силы Е (В) рассчитывается по формуле:

,

где k - отношение эффективного тока вторичной обмотки трансформатора к среднему значению выпрямленному току;

о - коэффициент, учитывающий влияние омического падения напряжения в цепи переменного тока на среднее выпрямленное напряжение;

- величина выпрямленного тока (А);

- отношение коэффициента трансформации на данной ступени регулирования к наименьшему коэффициенту трансформации, при котором получается номинальная электродвижующая сила холостого хода вторичной обмотки трансформатора.

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

Рисунок 2 - схема трёхфазного выпрямителя и осциллограммы напряжения в различных точках выпрямителя

На рисунке обозначено:

- напряжения на вторичных обмотках трехфазного трансформатора.

напряжение на нагрузке получаемое с соответствующего вентиля.

- Суммарное напряжение на нагрузке.

Выпрямитель представляет собой однополупериодный выпрямитель для каждой из трех фазных вторичных обмоток. Все три вентиля имеют общую нагрузку.

Если рассмотреть осциллограммы напряжения на нагрузке при отключенном конденсаторе для каждой из трех фаз, то можно заметить, что напряжение на нагрузке имеет такой же уровень пульсаций как и в схеме однополупериодного выпрямления. Сдвиг фаз(т.е. сдвиг по времени) напряжений выпрямителей между собой в результате даст в 3 раза меньший уровень пульсаций, чем в однофазной однополупериодной схеме выпрямления. Трёхфазные мощные выпрямители используются в электровозах, городском электротранспорте.

РАСКРЫТИЕ ТЕМЫ КУРСОВОЙ РАБОТЫ

Я начал разработку программы с разработки интерфейса.

Разработка интерфейса пользователя

При запуске программы появляется главное окно, представленное на рисунке 2.

Рисунок 3 - Стартовое окно программы

Исходные данные для удобства ввода разбиты на три логических блока: Реактивное сопротивление ,Эффективное значение электродвижущей силы и Другие параметры. Для проведения расчетов необходимо нажать кнопку Расчет.

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

Для удобства работы программа содержит главное (рисунок 2) и контекстное меню (рисунок 4).

Рисунок 4 - Падающее меню программы

Рисунок 5 - Контекстное меню программы

Для того, чтобы ввести данные, необходимо нажать Файл - Открыть. Для того, чтобы сохранить файл, необходимо нажать Файл - Сохранить. Для того, чтобы рассчитать задачу, необходимо нажать Работа - Расчет. Меню Помощь содержит такие компоненты как Справка и О программе, при помощи которых можно, соответственно, вызвать справочную систему и просмотреть информацию о программе.

При нажатии Помощь - О программе загружается новая форма (рисунок 4), на которой представлена информация о программе и анимация.

Рисунок 6 - Окно представления информации о программе

Для облегчения понимания работы с программой содержится статусная строка, в которую выводится справочная информация о любом объекте программы, к которому подводится курсор.

После выполнения расчетов результаты отображаются на новой форме в виде таблицы (рисунок 6).

Рисунок 7 - Результаты расчета

На данной форме имеются ряд кнопок, позволяющих провести постобработку полученных результатов. Можно сохранить результаты в MS Excel, MS Word. Есть возможность построить графические зависимости, вывести результирующую таблицу на печатающее устройство, вызвать справочную информацию и вернуться назад к вводу исходных данных.

При нажатии на кнопку Графики загружается новая форма (рисунок 7), на которой представлены графические зависимости коэффициента мощности выпрямителя от реактивного сопротивления и эффективного значения электродвижущей силы. Также предусмотрена возможность построения трехмерного графика.

Рисунок 8 - Окно представления графических зависимостей

Для всех графиков имеется компонент TeeCommander (рисунок 7), имеющий следующие элементы для работы с графиками:

Normal, Rotate, Move, Zoom, Depth, 3D, Edit, Print, Copy, Save.

Рисунок 9 - Компонент TeeCommander

Строка состояния создаётся на основе компонента TStatusBar , расположенного на вкладке Win32. Данный компонент отображает «горячие» подсказки и выводит дополнительную информацию. Строка состояния обычно делится на несколько панелей.

В самом простом варианте строка состояния работает, как одна большая панель. При этом свойство SimplePanel получают значение True, а выводимый текст записывается в свойство SimpleText.

Для отображения подсказок существует два способа:

1. В инспекторе объектов для свойства AutoHint присвоить значение True;

2. В разделе описания процедур добавляем:

procedure ShowHint(Sender: TObject);

После этого вручную прописываем две процедуры(см. Приложение1 ).

Строка состояния значительно облегчает работу с программой и её освоение.

СОЗДАНИЕ ПРОГРАММНОГО КОДА

Далее рассмотрим написание текста программы, необходимого для расчёта.

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

В тексте программы (на кнопке РАСЧЁТ) присваиваем переменным значения из компонентов LabeledEdit, но первоначально описываем каждую переменную глобально в разделе var:

var

FMain: TFMain;

MsSteps, MvSteps: Integer;

k0, Xmin, Xmax, dX, Emin, Emax, dE, _k, _Id, _Em: Real;

Xmin := StrToFloat(LabeledEdit1.Text);

CurLE := LabeledEdit2;

Xmax := StrToFloat(LabeledEdit2.Text);

CurLE := LabeledEdit4;

Emin := StrToFloat(LabeledEdit4.Text);

CurLE := LabeledEdit5;

Emax := StrToFloat(LabeledEdit5.Text);

CurLE := LabeledEdit7;

_k := StrToFloat(LabeledEdit7.Text);

CurLE := LabeledEdit8;

_Em := StrToFloat(LabeledEdit8.Text);

CurLE := LabeledEdit9;

_Id := StrToFloat(LabeledEdit9.Text);

CurLE := LabeledEdit10;

k0 := StrToFloat(LabeledEdit10.Text);

CurLE := LabeledEdit3;

MsSteps := StrToInt(LabeledEdit3.Text);

dX := (Xmax - Xmin) / (MsSteps - 1);

CurLE := LabeledEdit6;

MvSteps := StrToInt(LabeledEdit6.Text);

dE := (Emax - Emin) / (MvSteps - 1);

где

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

if (Xmin < 0.3) or (Xmax < 0.3) then

begin

MessageDlg('Значение реактивного сопротивления должно быть не менее 0,3 Ом',

mtWarning, [mbOK], 0);

Result := False;

end;

Такой программный код необходимо записать для каждой переменной, задавая соответствующие условия.

Так как все пользовательские подпрограммы нужно оформлять как динамически подключаемые библиотеки, сперва создаем динамическую библиотеку. Для этого необходимо в программе Delphi 7 в падающем меню File(файл) выбрать пункт New(новый), затем Others(другие) и в появившемся окне выбрать элемент DLL Wizard. В открывшемся окне редактора кода создаём два новых типа: mass1 и mass2(одномерный и двумерный массивы соответственно), эти же типы создаём и в самой программе, а затем создаём новую процедуру raschet1, указывая в скобках переменные, которые передаются в процедуру, а в разделе var те переменные, которые необходимо вывести из процедуры. В разделе var процедуры raschet1 указываем переменные, которые будут использоваться только внутри процедуры, после этого записываем текст программы, который соответствует блок-схеме:

function Formula(k0,X,E,k,Id,Em: Real): Real; stdcall;

begin

Result := ((2*sqrt(2))/(3.14*k))-((2*Em*Id*X*k0)/(3.14*E*k))

end;

//k - отношение эффективного тока вторичной обмотки трансформатора к среднему выпрямленному току

//Em - коэффициент, учитывающий влияние омического падения напряжения в цепи переменного тока на среднее выпрямленное напряжение

//Id - величина выпрямленного тока

//X - реактивное сопротивление

//k0 - отношение коэффициента трансформации на данной ступени регулирования к наименьшему коэффициенту трансформации, при котором получается номинальная электродвижущая сила хода вторичной обмотки трансформатора

//E - эффективное значение электродвижущей силы

exports Formula index 1;

Для того, чтобы было возможно обратиться к данной процедуре в её конце записана строка exports Formula index 1 . После написания процедуры нужно скомпилировать проект(Ctrl+F9), а затем сохранить в отдельную папку.

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

function Formula(k0, X, E, _k, i, _Em: Real): Real; stdcall;

external 'Dll\FormulaDLL.dll' index 1

Причём необходимо указывать полный путь к dll библиотеке.

После подключения библиотеки можем использовать её в программе: на кнопке расчёт, после введения данных, обращаемся к данной библиотеке.

Для вызова калькулятора на кнопке КАЛЬКУЛЯТОР вводим следующий элемент программного кода:

winexec('calc.exe',sw_restore);

Поскольку программа должна запоминать последние введённые данные, на кнопке ВЫХОД вводим следующий элемент программного кода, который будет отвечать за то, чтобы все значения из компонентов LabeledEdit были сохранены в текстовом файле, однако перед этим для каждой переменной нужно ввести программный код для проверки правильности введённых данных(так же как и на кнопке РАСЧЁТ):

AssignFile(TempFile, FileName);

Rewrite(TempFile);

try

Writeln(TempFile, LabeledEdit1.Text);

Writeln(TempFile, LabeledEdit2.Text);

Writeln(TempFile, LabeledEdit3.Text);

Writeln(TempFile, LabeledEdit4.Text);

Writeln(TempFile, LabeledEdit5.Text);

Writeln(TempFile, LabeledEdit6.Text);

Writeln(TempFile, LabeledEdit7.Text);

Writeln(TempFile, LabeledEdit8.Text);

Writeln(TempFile, LabeledEdit9.Text);

Writeln(TempFile, LabeledEdit10.Text);

finally

CloseFile(TempFile);

СОЗДАНИЕ АНИМАЦИИ

Данная анимация расположена в окне «О программе».

Рисунок 10 - Окно представления информации о программе

Для создания анимации было использовано два основных компонента это TImage (вкладка Additional) и TTimer (вкладка System), которые в основном применяются для создания каких-либо графических изображений в Delphi.

Компонент TImage активно используется во многих программах, причём не только для отображения статических картинок, но и для создания анимационных эффектов.

Компонент TTimer применяется в основном для создания темпа смены кадров. Следует учесть, что интервал свойства Interval задаётся в миллисекундах.

Формирование анимации заключается в последовательной прорисовке кадров, сначала рисуется первый кадр, а затем идёт смещение с очисткой предыдущего положения рисунка.

Для создания анимации были использованы некоторые свойства и методы класса TCanvas. Ниже приведены некоторые методы класса TCanvas и их предназначение:

procedure Draw -- вывод графического изображения в заданной точке холста;

procedure Polygon -- рисуется сложная фигура, состоящая из отрезков, последовательно соединяющих точки, представленные ввиде динамического массива элементов TPoint. Последняя точка соединяется с первой. Внутренняя часть фигуры заполняется в соответствии со значением свойства Brush;

procedure Rectangle -- рисуется прямоугольник. Его внутренняя область заполняется в соответствии со значением свойства Brush;

procedure Ellipse -- рисуется эллипс.

Текст анимации смотри в Приложении1 Unit4.

РАЗРАБОТКА СПРАВОЧНОЙ СИСТЕМЫ

программа выпрямитель мощность графический

Создание справки производилось при помощи приложения Help & Manual 6. Поэтому необходимо, чтобы на компьютере было предварительно установлено приложение Help & Manual 6.

Рисунок 11 - Help & Manual 6

Следует привести порядок действий, которые необходимо выполнить для создания справки.

При помощи приложения Help & Manual 6 создаём файл справки .chm.В открывшемся окне программы создаём новый проект, при этом указываем место его сохранения. В появившемся проекте в Обозревателе проекта создаём нужные нам разделы:

1. Введение;

2. Описание интерфейса;

2.1Форма Расчёт реактивной проводимости трансформатора:

2.1.1. Описание формы Расчёт реактивной проводимости трансформатора;

2.1.2. Ввод данных;

2.1.3. Вызов калькулятора;

2.1.4. Восстановление данных по умолчанию;

2.2. Форма Результат расчёта:

2.2.1. Описание формы Результат расчёта;

2.2.2. Сохранение результатов расчёта;

2.3. Форма Графики:

2.3.1. Описание формы Графики;

2.3.2. Сохранение графиков;

2.3.3. Печать графиков;

2.4. Форма О программе:

2.4.1. Описание формы О программе;

Рисунок 12 - Внешний вид окна справки

Для каждого раздела на вкладке Опции раздела указываем в строке Контекст справки номер данного раздела.

Для того, что бы скомпилировать проект справки, нужно нажать Ctrl+F9, затем в открывшемся окне выбрать вкладку WinHelp, указать путь сохранения (желательно папку с программой) и нажать OK.

В самой программе для того, чтобы открыть справку, нужно сделать следующее: щёлкнув один раз по форме, в Object Incpector'е в строке HelpFile записать имя скомпилированного проекта, а в строке HelpContext указать номер раздела справки, который необходимо открыть. Теперь в ходе работы программы при нажатии на кнопку F1 будет открыт необходимый раздел справки.

Для того чтобы в ходе работы программы при нажатии на кнопку Справка появлялся нужный раздел справки, надо на кнопку записать следующий фрагмент программного кода (цифра обозначает номер раздела справки): ShellExecute(handle, nil, PChar(ExtractFilePath(ParamStr(0))+ 'spravka.chm'), nil, nil, SW_SHOW); // Вызов справки

Эти действия необходимо проделать для всех форм программы, только следует изменять номер раздела справки.

РАСЧЁТ КОНТРОЛЬНОГО ПРИМЕРА

При помощи программы рассчитаем коэффициент мощности выпрямителя. По графикам определим как влияет каждый из параметров на коэффициент мощности выпрямителя.

X1=0.6 Ом - минимальное значение реактивного сопротивления;

X2=1.5 A - максимальное значение реактивного сопротивления;

n=15 - число расчетных точек;

E1=0.15 В - минимальное значение электродвижущей силы;

E2=2.6 В - максимальное значение электродвижущей силы

m=14 - число расчетных точек;

k=0.2 - отношение эффективного тока к среднему выпрямленному току.

E=0.24 - коэффициент, учитывающий влияние омического падения напряжения в цепи переменного тока на среднее выпрямленное напряжение;

Id =0.75 - величина выпрямленного тока

k0=0.33 - отношение коэффициента трансформации на данной ступени регулирования к наименьшему коэффициенту трансформации, при котором получается номинальная электродвижующая сила холостого хода вторичной обмотки трансформатора.

Рисунок 13 - Вид главной формы

На рисунке 12 показан результат расчёта.

Рисунок 14 - Результат расчёта

Рисунок 15 - Зависимость от реактивного сопротивления

Рисунок 16 - Зависимость от эффективного значения электродвижущей силы

Рисунок 17 - Трёхмерная зависимость

ЗАКЛЮЧЕНИЕ

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

При помощи этой программы можно анализировать от каких параметров, и в какой степени зависит искомая величина. При помощи программы произведён расчёт контрольного примера, в котором использованы конкретные данные трансформатора.

ПРИЛОЖЕНИЯ

Приложение 1

Таблица П.1-Сводные данные по расчётным параметрам

Переменная

Обозначение в формуле

Диапазон изменения

Примечания

Реактивное сопротивление

X

0,6…1,5

Варьируемая величина

Эффективное значение ЭДС

Е

0,15…2,6

Варьируемая величина

отношение эффективного тока вторичной обмотки трансформатора к среднему значению выпрямленному току

k

0,2

Постоянная величина

коэффициент, учитывающий влияние омического падения напряжения в цепи переменного тока на среднее выпрямленное напряжение

о

0,24

Постоянная величина

величина выпрямленного тока

0,75

Постоянная величина

отношение коэффициента трансформации на данной ступени регулирования к наименьшему коэффициенту трансформации, при котором получается номинальная электродвижующая сила холостого хода вторичной обмотки трансформатора.

0,33

Постоянная величина

Приложение 2

Приложение 2 содержит полный текст программы.

ФОРМА 1

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Menus, ExtCtrls, ComCtrls, XPMan, StdCtrls, Buttons, Unit2,shellapi ;

type

TFMain = class(TForm)

StatusBar: TStatusBar;

MainMenu: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

N10: TMenuItem;

N11: TMenuItem;

XPManifest1: TXPManifest;

PopupMenu: TPopupMenu;

N12: TMenuItem;

N13: TMenuItem;

N14: TMenuItem;

N15: TMenuItem;

GroupBox1: TGroupBox;

GroupBox2: TGroupBox;

GroupBox3: TGroupBox;

GroupBox4: TGroupBox;

bbCalc: TBitBtn;

bbCalculator: TBitBtn;

bbHelp: TBitBtn;

bbExit: TBitBtn;

LabeledEdit1: TLabeledEdit;

LabeledEdit2: TLabeledEdit;

LabeledEdit3: TLabeledEdit;

LabeledEdit4: TLabeledEdit;

LabeledEdit5: TLabeledEdit;

LabeledEdit6: TLabeledEdit;

LabeledEdit7: TLabeledEdit;

LabeledEdit8: TLabeledEdit;

UpDown1: TUpDown;

UpDown2: TUpDown;

OpenDlg: TOpenDialog;

SaveDlg: TSaveDialog;

LabeledEdit9: TLabeledEdit;

LabeledEdit10: TLabeledEdit;

procedure FormCreate(Sender: TObject);

procedure ShowHint(Sender: TObject);

procedure Exit(Sender: TObject);

procedure ExecCalc(Sender: TObject);

procedure Calculate(Sender: TObject);

procedure leFloatKeyPress(Sender: TObject; var Key: Char);

procedure leIntKeyPress(Sender: TObject; var Key: Char);

procedure leIntKeyUp(Sender: TObject; var Key: Word;

Shift: TShiftState);

procedure ShowAboutProgram(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);

procedure LoadDataFile(FileName: TFileName);

procedure SaveDataFile(FileName: TFileName);

procedure bbHelpClick(Sender: TObject);

procedure N10Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FMain: TFMain;

MsSteps, MvSteps: Integer;

k0, Xmin, Xmax, dX, Emin, Emax, dE, _k, _Id, _Em: Real;

implementation

uses Unit3, Unit4;

function Formula(k0, X, E, _k, i, _Em: Real): Real; stdcall;

external 'Dll\FormulaDLL.dll' index 1

{$R *.dfm}

procedure TFMain.LoadDataFile(FileName: TFileName);

var

TempStr: string;

TempFile: TextFile;

begin

if FileExists(FileName) then

begin

AssignFile(TempFile, FileName);

Reset(TempFile);

try

Readln(TempFile, TempStr);

LabeledEdit1.Text := TempStr;

Readln(TempFile, TempStr);

LabeledEdit2.Text := TempStr;

Readln(TempFile, TempStr);

UpDown1.Position := StrToInt(TempStr);

Readln(TempFile, TempStr);

LabeledEdit4.Text := TempStr;

Readln(TempFile, TempStr);

LabeledEdit5.Text := TempStr;

Readln(TempFile, TempStr);

UpDown2.Position := StrToInt(TempStr);

Readln(TempFile, TempStr);

LabeledEdit7.Text := TempStr;

Readln(TempFile, TempStr);

LabeledEdit8.Text := TempStr;

Readln(TempFile, TempStr);

LabeledEdit9.Text := TempStr;

Readln(TempFile, TempStr);

LabeledEdit10.Text := TempStr;

finally

CloseFile(TempFile);

end;

end;

end;

procedure TFMain.SaveDataFile(FileName: TFileName);

var

TempFile: TextFile;

begin

AssignFile(TempFile, FileName);

Rewrite(TempFile);

try

Writeln(TempFile, LabeledEdit1.Text);

Writeln(TempFile, LabeledEdit2.Text);

Writeln(TempFile, LabeledEdit3.Text);

Writeln(TempFile, LabeledEdit4.Text);

Writeln(TempFile, LabeledEdit5.Text);

Writeln(TempFile, LabeledEdit6.Text);

Writeln(TempFile, LabeledEdit7.Text);

Writeln(TempFile, LabeledEdit8.Text);

Writeln(TempFile, LabeledEdit9.Text);

Writeln(TempFile, LabeledEdit10.Text);

finally

CloseFile(TempFile);

end;

end;

procedure TFMain.ShowHint(Sender: TObject);

begin

StatusBar.SimpleText := Application.Hint

end;

procedure TFMain.Exit(Sender: TObject);

begin

SaveDataFile('Data.txt');

Close

end;

procedure TFMain.ExecCalc(Sender: TObject);

begin

WinExec('Calc.exe', SW_NORMAL)

end;

function GetData: Boolean;

var

CurLE: TLabeledEdit;

begin

with FMain do

begin

Result := True;

CurLE := LabeledEdit1;

try

Xmin := StrToFloat(LabeledEdit1.Text);

CurLE := LabeledEdit2;

Xmax := StrToFloat(LabeledEdit2.Text);

CurLE := LabeledEdit4;

Emin := StrToFloat(LabeledEdit4.Text);

CurLE := LabeledEdit5;

Emax := StrToFloat(LabeledEdit5.Text);

CurLE := LabeledEdit7;

_k := StrToFloat(LabeledEdit7.Text);

CurLE := LabeledEdit8;

_Em := StrToFloat(LabeledEdit8.Text);

CurLE := LabeledEdit9;

_Id := StrToFloat(LabeledEdit9.Text);

CurLE := LabeledEdit10;

k0 := StrToFloat(LabeledEdit10.Text);

CurLE := LabeledEdit3;

MsSteps := StrToInt(LabeledEdit3.Text);

dX := (Xmax - Xmin) / (MsSteps - 1);

CurLE := LabeledEdit6;

MvSteps := StrToInt(LabeledEdit6.Text);

dE := (Emax - Emin) / (MvSteps - 1);

if (Xmin < 0.3) or (Xmax < 0.3) then

begin

MessageDlg('Значение реактивного сопротивления должно быть не менее 0,3 Ом',

mtWarning, [mbOK], 0);

Result := False;

end;

if (Xmax > 2) or (Xmin > 2) then

begin

MessageDlg('Значение реактивного сопротивления должно быть не более 2 Ом',

mtWarning, [mbOK], 0);

Result := False;

end;

if (Emin < 0.1) or (Emax < 0.1) then

begin

MessageDlg('Эффективное значение электродвижущей силы должно быть не менее 0,1 В',

mtWarning, [mbOK], 0);

Result := False;

end;

if (Emax > 3) or (Emin > 3) then

begin

MessageDlg('Эффективное значение электродвижущей силы должно быть не более 3 В',

mtWarning, [mbOK], 0);

Result := False;

end;

if (_k > 0.5) or (_k < 0.1) then

begin

MessageDlg('Значение отношения эффективного тока вторичной обмотки'+

' к среднему выпрямленному току должно находиться в ' +

'пределах от 0,1 до 0,5 ', mtWarning, [mbOK], 0);

Result := False;

end;

if (_Em < 0.1) or (_Em > 0.5) then

begin

MessageDlg('Значение коэффициента, учитывающего влияние омического'+

' падения напряжения в цепи переменного тока на среднее выпрямленное напряжение ' +

'должно находиться в пределах от 0,1 до 0,5', mtWarning, [mbOK], 0);

end;

if (_Id < 0.5) or (_Id > 1) then

begin

MessageDlg('Величина выпрямленного тока должна находиться'+

' в пределах от 0,5 до 1 А', mtWarning, [mbOK], 0);

Result := False;

end;

if (k0 < 0.1) or (k0 > 0.5) then

begin

MessageDlg('Отношение коэффициента трансформации на данной ступени'+

' регулирования к наименьшему коэффициенту трансформации должен находиться'+

' в пределах от 0,1 до 0,5', mtWarning, [mbOK], 0);

Result := False;

end;

if (Xmin >= Xmax) or (Xmin >= Xmax) then

begin

MessageDlg('Минимальное значение должно быть меньше максимального',

mtWarning, [mbOK], 0);

Result := False;

end;

except

on EConvertError do

begin

MessageDlg('Некорректно введены данные!', mtWarning, [mbOK], 0);

CurLE.SetFocus;

Result := False;

end;

on EZeroDivide do

begin

MessageDlg('Количество шагов должно быть > 1!', mtWarning, [mbOK], 0);

CurLE.SetFocus;

Result := False;

end;

end;

end;

end;

procedure TFMain.Calculate(Sender: TObject);

var

i, j: Integer;

begin

if GetData then

begin

FCalc.sgRes.ColCount := MsSteps + 1;

FCalc.sgRes.RowCount := MvSteps + 1;

FCharts.Series1.Clear;

FCharts.Series2.Clear;

FCharts.Series3.Clear;

FCharts.Series4.Clear;

FCharts.LineSeries1.Clear;

FCharts.LineSeries2.Clear;

FCharts.LineSeries3.Clear;

for i := 0 to MsSteps - 1 do

for j := 0 to MvSteps - 1 do

FCalc.sgRes.Cells[i + 1, j + 1] := Format('%0.2f',

[Formula(k0, Xmin + dX * i, Emin + dE * j, _k, _Id, _Em)]);

for i := 1 to MsSteps do

for j := 1 to MvSteps do

FCharts.Series4.AddXYZ(j, StrToFloat(FCalc.sgRes.Cells[i, j]), i);

//x

for i := 1 to MsSteps do

begin

FCalc.sgRes.Cells[i, 0] := Format('%.0f Ом', [Xmin + dX * (i - 1)]);

FCalc.AutoSizeGridColumn(FCalc.sgRes, i);

end;

//x

for i := 1 to MvSteps do

FCalc.sgRes.Cells[0, i] := Format('%.0f В', [Emin + dE * (i - 1)]);

FCalc.AutoSizeGridColumn(FCalc.sgRes, 0);

for i := 0 to MsSteps - 1 do

begin

FCharts.Series1.AddXY((Xmin + dX * i) / 1000,

Formula(k0, Xmin + dX * i, Emin, _k, _Id, _Em) / 1000);

FCharts.Series2.AddXY((Xmin + dX * i) / 1000,

Formula(k0, Xmin + dX * i, (Emin + Emax) / 2, _k, _Id, _Em) /

1000);

FCharts.Series3.AddXY((Xmin + dX * i) / 1000,

Formula(k0, Xmin + dX * i, Emax, _k, _Id, _Em) / 1000);

end;

for i := 0 to MvSteps - 1 do

begin

FCharts.LineSeries1.AddXY((Emin + dE * i) / 1000,

Formula(k0, Xmin, Emin + dE * i, _k, _Id, _Em) / 1000);

FCharts.LineSeries2.AddXY((Emin + dE * i) / 1000,

Formula(k0, (Xmin + Xmax) / 2, Emin + dE * i, _k, _Id, _Em) /

1000);

FCharts.LineSeries3.AddXY((Emin + dE * i) / 1000,

Formula(k0, Xmax, Emin + dE * i, _k, _Id, _Em) / 1000);

end;

FCalc.ShowModal;

end;

end;

procedure TFMain.FormCreate(Sender: TObject);

begin

LoadDataFile('Data.txt');

Application.OnHint := ShowHint

end;

procedure TFMain.leFloatKeyPress(Sender: TObject; var Key: Char);

begin

case Key of

'0'..'9', #8:;

'.', ',': Key := DecimalSeparator

else

Key := #0;

end;

end;

procedure TFMain.leIntKeyPress(Sender: TObject; var Key: Char);

begin

case Key of

'0'..'9', #8:;

Else

Key := #0;

end;

end;

procedure TFMain.leIntKeyUp(Sender: TObject; var Key: Word;

Shift: TShiftState);

begin

if (TLabeledEdit(Sender).Text = '') or

(StrToInt(TLabeledEdit(Sender).Text) <= 1) then

TLabeledEdit(Sender).Text := '2';

end;

procedure TFMain.ShowAboutProgram(Sender: TObject);

begin

FAbout.ShowModal;

end;

procedure TFMain.N4Click(Sender: TObject);

begin

OpenDlg.InitialDir := ExtractFilePath(Application.ExeName);

if OpenDlg.Execute then

LoadDataFile(OpenDlg.FileName);

end;

procedure TFMain.N5Click(Sender: TObject);

begin

SaveDlg.InitialDir := ExtractFilePath(Application.ExeName);

if SaveDlg.Execute then

begin

if Pos('.txt', SaveDlg.FileName) = 0 then

SaveDlg.FileName := SaveDlg.FileName + '.txt';

SaveDataFile(SaveDlg.FileName);

end;

end;

procedure TFMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

begin

case MessageDlg('Вы действительно хотите выйти из программы?', mtConfirmation,

mbOKCancel, 0) of

mrOK: CanClose :=True;

mrCancel: CanClose := False;

end;

end;

procedure TFMain.bbHelpClick(Sender: TObject);

begin

ShellExecute(handle, nil, PChar(ExtractFilePath(ParamStr(0))+ 'spravka.chm'), nil, nil, SW_SHOW); // Вызов справки

end;

procedure TFMain.N10Click(Sender: TObject);

begin

ShellExecute(handle, nil, PChar(ExtractFilePath(ParamStr(0))+ 'spravka.chm'), nil, nil, SW_SHOW); // Вызов справки

end;

end.

ФОРМА 2

unit Unit2;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Grids, StdCtrls, Buttons, ComCtrls, ComObj, Printers,shellapi;

type

TFCalc = class(TForm)

Label1: TLabel;

sgRes: TStringGrid;

GroupBox1: TGroupBox;

bbExcel: TBitBtn;

bbWord: TBitBtn;

bbHTML: TBitBtn;

bbChart: TBitBtn;

bbHelp: TBitBtn;

bbPrint: TBitBtn;

bbExit: TBitBtn;

StatusBar1: TStatusBar;

SaveDlg: TSaveDialog;

PrintDialog1: TPrintDialog;

procedure FormCreate(Sender: TObject);

procedure bbExitClick(Sender: TObject);

procedure bbChartClick(Sender: TObject);

procedure bbHTMLClick(Sender: TObject);

procedure bbWordClick(Sender: TObject);

procedure bbExcelClick(Sender: TObject);

procedure bbPrintClick(Sender: TObject);

procedure AutoSizeGridColumn(Grid: TStringGrid; Column: Integer);

procedure bbHelpClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FCalc: TFCalc;

implementation

uses Unit3;

{$R *.dfm}

procedure TFCalc.AutoSizeGridColumn(Grid: TStringGrid; Column: Integer);

var

i, Temp, Max: Integer;

begin

Max := 0;

for i := 0 to Grid.RowCount do

begin

Temp := Grid.Canvas.TextWidth(Grid.Cells[Column, i]);

if Temp > Max then

Max := Temp;

end;

Grid.ColWidths[Column] := Max + 3 + Grid.GridLineWidth;

end;

procedure TFCalc.FormCreate(Sender: TObject);

begin

bbExcel.Caption := 'Сохранить в'#13'MS Excel';

bbWord.Caption := 'Сохранить в'#13'MS Word';

bbHTML.Caption := 'Сохранить'#13'в HTML';

bbPrint.Caption := 'Распечатать'#13'таблицу';

bbChart.Caption := 'Графики';

bbHelp.Caption := 'Справка';

bbExit.Caption := 'Закрыть'#13'окно'

end;

procedure TFCalc.bbExitClick(Sender: TObject);

begin

Close

end;

procedure TFCalc.bbChartClick(Sender: TObject);

begin

FCharts.ShowModal;

end;

procedure TFCalc.bbHTMLClick(Sender: TObject);

var

HTMLFile: TextFile;

i, j: Integer;

begin

SaveDlg.DefaultExt := 'html';

SaveDlg.Filter := 'HTML-файл (*.html)|*.html';

SaveDlg.FileName := 'Результаты расчетов';

if SaveDlg.Execute then

begin

AssignFile(HTMLFile, SaveDlg.FileName);

Rewrite(HTMLFile);

Writeln(HTMLFile, '<html>');

Writeln(HTMLFile, '<head>');

Writeln(HTMLFile, '<meta http-equiv="Content-Type" content="text/html; ' +

'charset=windows-1251">');

Writeln(HTMLFile, '<title>Результаты расчетов</title>');

Writeln(HTMLFile, '</head>');

Writeln(HTMLFile, '<body>');

Writeln(HTMLFile, ' <center><font size="6"><b>' + Label1.Caption +

'</b></font></center>');

Writeln(HTMLFile, ' <table border=1 cellspacing=0 cellspading=0>');

for i := 0 to sgRes.RowCount do

begin

Writeln(HTMLFile, ' <tr>');

for j := 0 to sgRes.ColCount do

if (j = 0) or (i = 0) then

Writeln(HTMLFile, ' <td><b><i>' +

sgRes.Cells[j, i] + '</i></b>')

else

Writeln(HTMLFile, ' <td>' + sgRes.Cells[j, i]);

end;

Writeln(HTMLFile, ' </table>');

Writeln(HTMLFile, '</body>');

Writeln(HTMLFile, '</html>');

CloseFile(HTMLFile);

end;

end;

procedure TFCalc.bbWordClick(Sender: TObject);

var

WordApp, NewDoc, WordTable: OLEVariant;

iRows, iCols, iGridRows, jGridCols: Integer;

begin

SaveDlg.DefaultExt := 'doc';

SaveDlg.Filter := 'Документ MS Word (*.doc)|*.doc';

SaveDlg.FileName := 'Результаты расчетов';

if not SaveDlg.Execute then

Exit;

try

WordApp := CreateOleObject('Word.Application');

except

Exit

end;

NewDoc := WordApp.Documents.Add;

iCols := sgRes.ColCount;

iRows := sgRes.RowCount;

WordTable := NewDoc.Tables.Add(WordApp.Selection.Range, iRows, iCols);

WordTable.Range.Font.Size := 8;

for iGridRows := 1 to iRows do

for jGridCols := 1 to iCols do

WordTable.Cell(iGridRows, jGridCols).Range.Text :=

sgRes.Cells[jGridCols - 1, iGridRows - 1];

WordApp.ActiveDocument.SaveAs(SaveDlg.FileName);

WordApp.Quit;

WordApp := Unassigned;

NewDoc := Unassigned;

WordTable := Unassigned;

end;

procedure TFCalc.bbExcelClick(Sender: TObject);

var

XLApp, Sheet, Column: Variant;

i, j, m, n: Integer;

begin

SaveDlg.DefaultExt := 'xls';

SaveDlg.Filter := 'Документ MS Excel (*.xls)|*.xls';

SaveDlg.FileName := 'Результаты расчетов';

if not SaveDlg.Execute then

Exit;

try

XLApp := CreateOleObject('Excel.Application');

except

Exit

end;

XLApp.WorkBooks.Add(-4167);

XLApp.WorkBooks[1].WorkSheets[1].Name := 'Результаты расчетов';

Column := XLApp.WorkBooks[1].WorkSheets['Результаты расчетов'].Columns;

n := sgRes.ColCount;

m := sgRes.RowCount;

for i := 1 to m + 1 do

Column := XLApp.WorkBooks[1].WorkSheets['Результаты расчетов'].Rows;

Column.Columns[1].Font.Bold := True;

Column.Rows[1].Font.Bold := True;

Column.Rows[1].Font.Italic := True;

Column.Rows[2].Font.Bold := True;

Sheet := XLApp.WorkBooks[1].WorkSheets['Результаты расчетов'];

FCalc.Enabled := False;

for i := 0 to n do

for j := 0 to m do

Sheet.Cells[j + 2, i + 1] := '''' + sgRes.Cells[i, j];

FCalc.Enabled := True;

Sheet.Cells[1, 2] := Label1.Caption;

XLApp.ActiveWorkBook.SaveAs(SaveDlg.FileName);

XLApp.Quit

end;

procedure TFCalc.bbPrintClick(Sender: TObject);

var

X1, X2: Integer;

Y1, Y2: Integer;

TmpI: Integer;

F: Integer;

TR: TRect;

OldOrientation: TPrinterOrientation;

begin

OldOrientation := Printer.Orientation;

Printer.Orientation := poLandScape;

if PrintDialog1.Execute then

begin

Printer.Title := Label1.Caption;

Printer.BeginDoc;

Printer.Canvas.Pen.Color := 0;

Printer.Canvas.Font.Name := 'Times New Roman';

Printer.Canvas.Font.Size := 12;

Printer.Canvas.Font.Style := [fsBold, fsUnderline];

Printer.Canvas.TextOut(0, 100, Printer.Title);

for F := 1 to sgRes.ColCount - 1 do

begin

X1 := 0;

for TmpI := 1 to (F - 1) do

X1 := X1 + 5 * (sgRes.ColWidths[TmpI]);

Y1 := 300;

X2 := 0;

for TmpI := 1 to F do

X2 := X2 + 5 * (sgRes.ColWidths[TmpI]);

Y2 := 450;

TR := Rect(X1, Y1, X2 - 30, Y2);

Printer.Canvas.Font.Style := [fsBold];

Printer.Canvas.Font.Size := 7;

Printer.Canvas.TextRect(TR, X1 + 50, 350, sgRes.Cells[F, 0]);

Printer.Canvas.Font.Style := [];

for TmpI := 1 to sgRes.RowCount - 1 do

begin

Y1 := 150 * TmpI + 300;

Y2 := 150 * (TmpI + 1) + 300;

TR := Rect(X1, Y1, X2 - 30, Y2);

Printer.Canvas.TextRect(TR, X1 + 50, Y1 + 50, sgRes.Cells[F, TmpI]);

end;

end;

Printer.EndDoc;

end;

Printer.Orientation := OldOrientation;

end;

procedure TFCalc.bbHelpClick(Sender: TObject);

begin

ShellExecute(handle, nil, PChar(ExtractFilePath(ParamStr(0))+ 'spravka.chm'), nil, nil, SW_SHOW); // Вызов справки

end;

end.

ФОРМА 3

unit Unit3;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ComCtrls, StdCtrls, TeEngine, Series, ExtCtrls, TeeProcs, Chart,

TeeSurfa, Printers;

type

TFCharts = class(TForm)

PageControl1: TPageControl;

TabSheet1: TTabSheet;

TabSheet2: TTabSheet;

TabSheet3: TTabSheet;

Chart1: TChart;

Series1: TLineSeries;

Series2: TLineSeries;

Series3: TLineSeries;

Chart2: TChart;

LineSeries1: TLineSeries;

LineSeries2: TLineSeries;

LineSeries3: TLineSeries;

Chart3: TChart;

Series4: TSurfaceSeries;

Button1: TButton;

Button2: TButton;

Button3: TButton;

PrintDlg: TPrintDialog;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FCharts: TFCharts;

implementation

uses Unit2, Unit1,shellapi;

{$R *.dfm}

procedure TFCharts.Button1Click(Sender: TObject);

begin

Close

end;

procedure TFCharts.Button2Click(Sender: TObject);

begin

ShellExecute(handle, nil, PChar(ExtractFilePath(ParamStr(0))+ 'spravka.chm'), nil, nil, SW_SHOW); // Вызов справки

end;

procedure TFCharts.Button3Click(Sender: TObject);

var

pHeight, pWidth: Longint;

OldOrientation: TPrinterOrientation;

TempChart: TChart;

begin

if PrintDlg.Execute then

begin

case PageControl1.TabIndex of

0: TempChart := Chart1;

1: TempChart := Chart2;

2: TempChart := Chart3;

end;

Screen.Cursor := crHourGlass;

OldOrientation := Printer.Orientation;

Printer.Orientation := poLandScape;

try

Printer.BeginDoc;

try

pHeight := Printer.PageHeight;

pWidth := Printer.PageWidth;

TempChart.PrintPartial(Rect(pWidth div 15, pHeight div 10,

pWidth - (pWidth div 20), pHeight - (pHeight div 20)));

Printer.EndDoc;

except

on Exception do

begin

Printer.Abort;

Printer.EndDoc;

raise;

end

end;

finally

Printer.Orientation := OldOrientation;

Screen.Cursor := crDefault

end

end;

end;

end.

ФОРМА 4

unit Unit4;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls, Buttons,Shellapi;

type

TFAbout = class(TForm)

GroupBox1: TGroupBox;

GroupBox2: TGroupBox;

Label1: TLabel;

GroupBox4: TGroupBox;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

Timer1: TTimer;

Image1: TImage;

procedure tAnimationTimer(Sender: TObject);

procedure FormDestroy(Sender: TObject);

procedure FormShow(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FAbout: TFAbout;

y:integer;

implementation

{$R *.dfm}

procedure TFAbout.tAnimationTimer(Sender: TObject);

var

x: integer;

begin

Image1.Canvas.Pen.Color := clWhite;

Image1.Canvas.Rectangle(0,0,Image1. Width,Image1.Height);

Image1.Canvas.Pen.Color := clBlack;

Image1.Canvas.MoveTo(0, trunc(30*sin(y))+40);

for x := 0 to Image1.ClientWidth do // От левого края до конца формы

begin

Image1.Canvas.LineTo(x, trunc(30*sin(x/10+y))+40); // Собственно, рисуем график

end;

y:=y+1;

end;

procedure TFAbout.FormDestroy(Sender: TObject);

begin

Timer1.Enabled := False;

end;

procedure TFAbout.FormShow(Sender: TObject);

begin

Timer1.Enabled := True;

end;

procedure TFAbout.BitBtn2Click(Sender: TObject);

begin

ShellExecute(handle, nil, PChar(ExtractFilePath(ParamStr(0))+ 'spravka.chm'), nil, nil, SW_SHOW); // Вызов справки

end;

procedure TFAbout.BitBtn3Click(Sender: TObject);

var

x: integer;

begin

Image1.Canvas.Pen.Color := clBlack; // Рисуем голубым цветом

Image1.Canvas.MoveTo(0, 100); // Устанавливаем точку начала рисования

for x := 0 to Image1.ClientWidth do // От левого края до конца формы

begin

Image1.Canvas.LineTo(x, trunc(30*sin(x/10))+40); // Собственно, рисуем график

end;

end;

end.

DLL

library FormulaDLL;

{$R *.res}

function Formula(k0,X,E,k,Id,Em: Real): Real; stdcall;

begin

Result := ((2*sqrt(2))/(3.14*k))-((2*Em*Id*X*k0)/(3.14*E*k))

end;

//k - отношение эффективного тока вторичной обмотки трансформатора к среднему выпрямленному току

//Em - коэффициент, учитывающий влияние омического падения напряжения в цепи переменного тока на среднее выпрямленное напряжение

//Id - величина выпрямленного тока

//X - (завис) реактивное сопротивление

//k0 -отношение коэффициента трансформации на данной ступени регулирования к наименьшему коэффициенту трансформации, при котором получается номинальная электродвижущая сила хода вторичной обмотки трансформатора

//E - (завис) эффективное значение электродвижущей силы

exports Formula index 1;

begin

end.

Размещено на Allbest.ru


Подобные документы

  • Математическая модель, алгоритмизация вычислительных процессов. Идентификаторы, разработка интерфейса пользователя. Структура программного приложения: статусная строка, создание анимации, динамически подключаемые библиотеки. Разработка справочной системы.

    курсовая работа [2,2 M], добавлен 06.12.2013

  • Изучение особенностей растровых и векторных графических редакторов. Создание графического редактора: выбор языка программирования, разработка структуры программы и алгоритма работы. Описание интерфейса программы. Руководство программиста и пользователя.

    курсовая работа [1,3 M], добавлен 28.07.2013

  • Вывод графических файлов на компонент Picture. Действия Visual Basic по умолчанию. Создание графического интерфейса пользователя. Циклический показ фотографий. Формирование списка изображений и их циклический вывод на экран с определенным интервалом.

    курсовая работа [3,2 M], добавлен 05.01.2013

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

    курсовая работа [1,2 M], добавлен 25.11.2011

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

    дипломная работа [4,7 M], добавлен 15.10.2013

  • Разработка программного кода и алгоритма действий приложения "калькулятор". Использование функций в программе Matlab. Разработка кнопок, опций, интерфейса, оформление. Части кода Matlab и тестовый набор. Инструкция пользователя по работе программы.

    курсовая работа [527,1 K], добавлен 27.09.2014

  • Разработка эскизного и технического проектов программы "Helpopr" (ввод, хранение и вывод данных на дисплей по запросу пользователя). Язык программирования Turbo Pascal. Описание алгоритма программы. Требования к компьютеру и программному обеспечению.

    курсовая работа [198,1 K], добавлен 03.02.2010

  • Создание программы для вычисления значения функции на основе определённой формулы. Уточнение структуры входных и выходных данных и определение ассемблерного формата их представления. Разработка алгоритмов для реализации работы программного обеспечения.

    курсовая работа [240,6 K], добавлен 17.06.2013

  • Описание разрабатываемой программы с точки зрения пользователя и программиста. Поэтапная разработка программной системы. Создание базы данных в Access. Разработка структуры классов. Создание структуры для хранения данных. Проектирование интерфейса.

    курсовая работа [1,4 M], добавлен 07.08.2013

  • Анализ технических средств и современных технологий разработки программного обеспечения. Разработка программы для упрощения поиска студентов. Создание учетных записей администратора и обычного пользователя. Изучение правил построения программного кода.

    курсовая работа [1,9 M], добавлен 30.09.2016

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.