Автор: Пользователь скрыл имя, 18 Февраля 2013 в 18:38, курсовая работа
Целью курсового проекта является создание программного продукта для автоматизированной постановки на очередь, записи и учета посещения гражданами сотрудников администрации.
Практическое применение данного программного продукта направлено для избавления от очередей физического плана.
Актуальность данного программного продукта заключается в том, что с его помощью осуществляется упорядочивание прохождения гражданами/посетителями должностных лиц в автоматическом режиме, что в современных условиях реализует необходимость современного человека экономить свое время, заменив простой в очередях более полезным делом.
Введение
1 Анализ технического задания и возможные способы его реализации
2 Обоснование выбора инструментальных программных средств
3 Обоснование выбора технических средств
4 Описание программного продукта
4.1 Описание блок-схемы алгоритма работы программы
4.2 Организация входных и выходных данных
4.3 Структура базы данных
4.4 Описание структуры запросов базы данных
4.5 Описание листинга программы
5 Тестирование программного продукта
6Защита программного продукта
7Руководство пользователя
Заключение
Литература
elseShowMessage('Введите,
end;
{переход на сл. форму
(делаем данную форму невидимой, а сл. показываем)}
procedure TForm1.BitBtn4Click(Sender: TObject);
begin
{вывод сообщения при
некорректно введенных
If (i=1) or (n=1) then ShowMessage('"i" и "j" должнобыть> 1')
else begin
Form1.Visible:=False;
Form2.Visible:=True;
end;
end;
{Применение начальных значений полям ввода}
procedure TForm1.FormCreate(Sender: TObject);
begin
i:=1;
n:=1;
end;
{ограничение 1 поля ввода
на доступность вводимых
procedure TForm1.LabeledEdit1KeyPress(
const Digit: Set of Char=['0' .. '9'];
begin
if not (Key in Digit) then
Key:=#0;
end;
{ограничение 2 поля ввода
на доступность вводимых
procedure TForm1.LabeledEdit2KeyPress(
const Digit: Set of Char=['0' .. '9'];
begin
if not (Key in Digit) then
Key:=#0;
end;
end.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, Grids, StdCtrls, Buttons;
type
TForm2 = class(TForm)
StatusBar1: TStatusBar;
StringGrid1: TStringGrid;
BitBtn1: TBitBtn;
Label1: TLabel;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
StringGrid2: TStringGrid;
BitBtn4: TBitBtn;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
procedure StringGrid1KeyPress(Sender: TObject; var Key: Char);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
{объявление переменных
прогона циклов матрицы
a,b:integer;
implementation
uses Unit1, Unit3;
{$R *.dfm}
{закрытие главной, а следовательно и этой формы}
procedure TForm2.BitBtn1Click(Sender: TObject);
begin
Form1.Close;
end;
{переход на пр. форму
(делаем данную форму невидимой, а пр. показываем)}
procedure TForm2.BitBtn2Click(Sender: TObject);
begin
Form2.Visible:=False;
Form1.Visible:=True;
{прописываем подсказку и очищаем поле вывода решения}
Form1.StatusBar1.Panels[2].
Label4.Caption:='';
end;
procedure TForm2.BitBtn3Click(Sender: TObject);
var
{объявление переменной типа с плавающей точкой для суммирования построчно}
s:real;
begin
{прогон цикла с целью ...}
for a:=0 To StringGrid1.RowCount-1 Do
begin
s:=0;
for b:=0 To StringGrid1.ColCount-1 Do
begin
{...проверки и ...}
if StringGrid1.Cells[b,a]<>('')
{...суммированияпострочно}
then s:=s+StrToFloat(StringGrid1.
else
begin
{вывод сообщения при
некорректно введенных
ShowMessage('Заполните, пожалуйста, матрицу критерия Лапласа!');
Exit;
end;
{Присвоение "проверочной" таблице сумм}
StringGrid2.Cells[0,a]:=
end;
end;
{обнулениесуммы}
s:=0;
for a:=0 to StringGrid2.RowCount-1 do
begin
{вывод средного из сумм последовательно}
StringGrid2.Cells[0,a]:=
if s<StrToFloat(StringGrid2.
then s:=StrToFloat(StringGrid2.
end;
{выводрезультата}
Label4.Caption:=FloatToStrF(s,
end;
{очистка...}
procedure TForm2.BitBtn4Click(Sender: TObject);
begin
{...матрицыкритерияЛапласа}
For a:=0 to StringGrid1.ColCount-1 do
StringGrid1.Cols[a].Clear;
{..."проверочной" матрицы}
For a:=0 to StringGrid2.RowCount-1 do
StringGrid2.Rows[a].Clear;
{...полявыводарешения}
Label4.Caption:='_____________
end;
{ограничение матрицы
критерия Лапласа на ввод
procedure TForm2.StringGrid1KeyPress(
const Digit: Set of Char=['0' .. '9'];
begin
if not (Key in Digit) then
Key:=#0;
end;
end.
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, jpeg, ExtCtrls, xpman;
type
TForm3 = class(TForm)
Image1: TImage;
Memo1: TMemo;
Memo2: TMemo;
Image2: TImage;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses Unit1;
{$R *.dfm}
{переход на сл. форму
(делаем невидимым стартовую форму, а сл. показываем)}
procedure TForm3.BitBtn1Click(Sender: TObject);
begin
Form3.Visible:=False;
Form1.Visible:=True;
end;
{закрытие этой и главной формы}
procedure TForm3.BitBtn2Click(Sender: TObject);
begin
Form1.Close;
end;
end.
Одно из транспортных предприятий должно определитьуровень своих провозных возможностей так, чтобы удовлетворитьспрос клиентов на транспортные услуги на планируемый период.Спрос на транспортные услуги не известен, но ожидается (прогнозируется),что он может принять одно из четырех значений: 10,15, 20 или 25 тыс. т. Для каждого уровня спроса существует наилучшийуровень провозных возможностей транспортного предприятия(с точки зрения возможных затрат). Отклонения от этих уровнейприводят к дополнительным затратам либо из-за превышения провозныхвозможностей над спросом (из-за простоя подвижного состава),либо из-за неполного удовлетворения спроса на транспортныеуслуги. Ниже приводится таблица 4, определяющая возможныепрогнозируемые затраты на развитие провозных возможностей:
Таблица 3 – Вероятности состояния спроса на транспортные услуги
Варианты провозных возможностей транспортного предприятия |
Варианты спроса на транспортные услуги, д. е. | |||
1 |
2 |
3 |
4 | |
1 |
6 |
12 |
20 |
24 |
2 |
9 |
7 |
9 |
28 |
3 |
23 |
18 |
15 |
19 |
4 |
27 |
24 |
21 |
15 |
Необходимо выбрать
Имеются четыре варианта спроса натранспортные услуги, что равнозначно наличию четырех состояний«природы»: S1, S2, S3, S4 и четыре стратегии развитияпровозных возможностей транспортного предприятия: R1, R2, R3, R4. Затраты на развитие провозныхвозможностей при каждойпареS1иR1 заданы таблицей 5:
Таблица 4 - Матрица значений
V= |
S1 |
S2 |
S3 |
S4 | |
R1 |
6 |
12 |
20 |
24 | |
R2 |
9 |
7 |
9 |
28 | |
R3 |
23 |
18 |
15 |
19 | |
R4 |
27 |
24 |
21 |
15 |
Принцип Лапласа предполагает, что S1, S2, S3, S4равновероятны.
Следовательно,Р{S=Si} = 1/n =1/4 = 0,25, i = 1, 2, 3, 4 и ожидаемыезатраты при различных действиях R1, R2, R3, R4составляют:
W{R1} = 0,25 (6 4 + 12 + 20 + 24) = 15,5;
W{R2} = 0,25 (9 + 7 + 9 + 28) = 13,25;
W{R3} = 0,25 (23 + 18 + 15 + 19) = 18,75;
W{R4} = 0,25 (27 + 24 + 21 + 15) = 21,75.
Таким образом, наилучшей стратегией развития провозных возможностейв соответствии с критерием Лапласа будет R4.
Решимодин пример с помощью нашей программы. Для этого запускаем скомпилированную программу, имеющую соответствующее курсовому проекту название. Видим форму, вид которой показан на рисунке 1:
Для дальнейшей работы программного продукта в поля «Размер матрицы в столбцах» и «Размер матрицы в строках» вводим начальные значения и нажимаем «Принять изменения».
Нажатием на клавишу «далее», выделенную выше, переходим к самой матрице для решения критерия Лапласа.
Затем вписываем необходимые значения в ячейки матрицы критерия Лапласа (1), после чего нажатием на кнопку «Решение» (2), в автоматизированном режиме производятся необходимые подсчеты, которые выводятся в предварительную таблицу для самопроверки (3) и результат решения в специально отведенное поле под словом «Ответ» (4).
Так же предусмотрен вывод сообщений при не своевременной попытке перехода далее, без заполнения, либо, некорректного ввода данных. Примеры таких сообщений приведены на рисунках с3 по 5.
В строке состояния описываются действия, которые следует выполнять для правильной работы программного продукта, а так же указываются ошибки, допущенные пользователем, и пишутся рекомендации по их устранению.
Так же предусмотрены кнопки очистки обеих матриц, перемещения между панелями управления программой, а так же выход из нее нажатием на одноименную кнопку, предусмотренную на каждой панели.
Аналитическое и программное решение совпадают полностью. Первый пример программного и аналитического решения совпали, как и второй нет. Это связано с отсутствием ошибок программы в вычислении приближенных значений, а так же высокой степени точности, предоставляемой программой и человеческими возможностями вывода такой же погрешности.
Результаты, полученные во время аналитического решения задачи, представлены выше в виде алгоритма последовательности действий. Наилучшим решение, в данном случае, является позиция R4, равная 21,75.
Результаты, полученные во время программного решения задачи, представлены на рисунке 6. Наилучшим решение, в данном случае, является позиция третья, равная 21,75000.
Заключение
Есть много способов создания модели, решающей задачу нахождения вероятностей состояния в условиях неопределенности путем разработки и внедрения программного продукта, позволяющего быстро и эффективно проводить соответствующие расчеты [6]. Можно искать оптимальный план только от одной и до другой вершины, а можно до всех вершин, в зависимости от условий задачи.
Целью курсового проекта является облегчениепроцесса решения задачи нахождения вероятностей состоянияв условиях неопределенности путем разработки и внедрения программного продукта, позволяющего быстро и эффективно проводить соответствующие расчеты.
Задачи нахождения оптимального плана существенно облегчают работу в этом направлении, так как создание модели хоть и довольно сложный и трудоемкий процесс, но все же намного легче, дешевле, чем физическое моделирование такого рода.
Информация о работе Анализ технического задания и возможные способы его реализации