Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсххх3.docx
Скачиваний:
5
Добавлен:
14.02.2015
Размер:
899.32 Кб
Скачать

1.3.4 Описание структурных единиц файла f003 содержится в таблице 7.

Таблица 7

Наименование выходных данных

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

vedom.dbf

F003

Наименование структурных единиц

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

Требование к точности

Длина в знаках

Диапазон

Код детали

Det

9(18)

1000000000000000…99999999999999

Наименование изделия

Naim

Х(20)

‘A’-‘Z’,‘А’-‘Я’,‘a’-‘z’, ‘а’-‘я’, ‘–’, ‘ ’

Код вида исполнения

Vid

9(2)

10…99

Код цеха изготовителя

Cexiz

9(3)

1000…999

Распределение объемов производства

Rasproiz

9(3),9(1)

10.0…99.9

Цех

Ceh

X(20)

‘A’-‘Z’,‘А’-‘Я’,‘a’-‘z’, ‘а’-‘я’, ‘–’, ‘ ’

1.3.5 Описание структурных единиц файла f004 содержится в таблице 8.

Таблица8

Наименование выходных данных

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

spravvid.dbf

F004

Наименование структурных единиц

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

Требование к точности

Длина в знаках

Диапазон

Код изделия

Izdel

9(18)

1000000000000000…99999999999999

Наименование изделия

Naim

X(20)

‘A’-‘Z’,‘А’-‘Я’,‘a’-‘z’, ‘а’-‘я’, ‘–’, ‘ ’

Код вида исполнения

Vid

9(2)

10…99

Наименование вида исполнения

Naimvid

X(20)

A’-‘Z’,‘А’-‘Я’,‘a’-‘z’, ‘а’-‘я’, ‘–’, ‘ ’

Код детали

Det

9(18)

1000000000000000…99999999999999

Наименование детали

Naimdet

X(20)

1.3.5 Описание структурных единиц файла f005 содержится в таблице 9.

Таблица9

Наименование выходных данных

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

spravvid.dbf

F004

Наименование структурных единиц

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

Требование к точности

Длина в знаках

Диапазон

Код изделия

Izdel

9(18)

1000000000000000…99999999999999

Наименование изделия

Naim

X(20)

A’-‘Z’,‘А’-‘Я’,‘a’-‘z’, ‘а’-‘я’, ‘–’, ‘ ’

Код вида исполнения

Vid

9(2)

10…99

Наименование вида исполнения

Naimvid

X(20)

A’-‘Z’,‘А’-‘Я’,‘a’-‘z’, ‘а’-‘я’, ‘–’, ‘ ’

Код детали

Det

9(18)

1000000000000000…99999999999999

Наименование детали

Naimdet

X(20)

A’-‘Z’,‘А’-‘Я’,‘a’-‘z’, ‘а’-‘я’, ‘–’, ‘ ’

2 АЛГОРИТМ РЕШЕНИЯ ЗАДАЧИ

2.1 Назначение и характеристика алгоритма

  1. Алгоритм предназначен для решения задачи планирования.

2.2 Используемая информация

2.2.1 Необходимая информация по изделию берется из файлов базы данных:

Наименование файла – sostavizd.db

Обозначение файла – F001

Наименование файла – potrgod.db

Обозначение файла – F002

Наименование файла – vedom.db

Обозначение файла – F003

Наименование файла – spravvid.db

Обозначение файла – F004

Наименование файла – Kod_ceh.db

Обозначение файла – F004

2.3 Результаты решения

2.3.1 Видеокадр ответа пользователя на запрос расчет плана:

Наименование – «План на товарный выпуск»

Обозначение – V001

2.3.2 Документ, сформированный для представления в виде распечатки:

Наименование – «План на товарный выпуск»

Обозначение – P001

2.3.3 Видеокадр ответа пользователя на запрос вывода сведений:

Наименование – «Добавление записи»

Обозначение – V002

2.3.4 Видеокадр ответа пользователя на запрос добавления записи в базу данных:

Наименование – «Расчёт плана»

Обозначение – V003

2.3.5 Видеокадр ответа пользователя на запрос расчёта плана:

Наименование – «Запрос по названию изделия»

Обозначение – V004

2.5 Описание алгоритма решения

  1. Вывести главное меню программы:

Главная / Справочники/ О программе / Выход

    1. Ввести пункт меню:

      1. Если введен пункт меню «Главная», то:

2.5.1.1.1.1 Вывести пункты подменю:

Расчет плана / Поиск по изделию

2.5.1.1.1.1.1 Если введен пункт подменю «Расчет плана», то при выборе цеха будет выведен отчет плана

2.5.1.1.1.1.2 Если введен пункт подменю «Поиск по изделию», то перейти на п. 2.5.3.

          1. Если введен пункт меню «Справочники»

          2. Вывести пункты подменю:

Просмотр/Добавление записи

2.5.1.1.1.1.3 Если введен пункт подменю «Просмотр», то перейти на п. 2.5.2.

2.5.1.1.1.1.4 Если введен пункт подменю «Добавление записи», то перейти на п. 2.5.3.

          1. Если введен пункт меню «О программе», то:

            1. Вывести пункты подменю:

Справка / О Программе

              1. Если введен пункт подменю «Справка», то перейти на п. 2.5.6.

              2. Если введен пункт подменю «О программе», то перейти на п. 2.5.7.

          1. Если введен пункт меню «Выход», то перейти на п. 2.5.11.

2.5.2 Вывести форму редактирования справочников

2.5.3 Вывести форму добавления записи (рис. 3):

2.5.3.1 Ввести все необходимые данные для добавления в базу данных.

2.5.3.2 Если нажата кнопка «Добавить запись в базу», то записать введённые ранее данные в базу данных.

      1. Вывести форму “О программе”:

2.5.4.1 Вывести информацию о названии программы, версии, авторе и другую информацию.

2.5.11Выход:

        1. Завершить работу программы.

  1. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ

    1. Введение

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

  • Программа позволяет: Выбрать вид изделия.

  • Производить поиск информации по указанным данным.

  • Вывести на терминал и на печать отчёт “Расчет плана”.

  • Добавлять и исправлять необходимую информацию.

(Для работы программы необходимы файлы базы данных: spravvid.db, potrgod.db, vedom.db, sostavizd.db, Kod_ceh).

3.2 Работа с программой

После запуска программы на экран будет выведено главное окно программы с кнопочной формой, где необходимо выбрать нужный пункт, щелкнув по нему левой клавишей мыши, и отвечать на запросы программы. Для выхода в главное окно необходимо нажать кнопку ‘Закрыть’.

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

Выберите интересующий Вас пункт. По запросу данных, требующих ввода с клавиатуры (в полях для ввода), введите их все.

3.7 Аварийные ситуации

К аварийным ситуациям относятся: нехватка оперативной памяти, сбой операционной системы и прерывание работы программы.

5 ПРИЛОЖЕНИЯ

5.1 Листинг программы

procedure TForm1.N3Click(Sender: TObject);

begin

Form3.ShowModal;

end;

procedure TForm1.N7Click(Sender: TObject);

begin

Form4.ShowModal;

end;

procedure TForm1.N6Click(Sender: TObject);

begin

Form5.ShowModal;

end;

procedure TForm1.N11Click(Sender: TObject);

begin

form6.showmodal;

end;

procedure TForm1.N10Click(Sender: TObject);

begin

Form7.ShowModal;

end;

end.

unit spravvid;

interface

uses

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

Dialogs, DB, DBTables, ExtCtrls, DBCtrls, Grids, DBGrids, StdCtrls,

RpCon, RpConDS, RpDefine, RpRave;

type

TForm2 = class(TForm)

DataSource1: TDataSource;

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

Table1: TTable;

Button1: TButton;

DBGrid2: TDBGrid;

DataSource2: TDataSource;

Table2: TTable;

DBNavigator2: TDBNavigator;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Table3: TTable;

DataSource3: TDataSource;

DBNavigator3: TDBNavigator;

R1: TRvProject;

RvDataSetConnection1: TRvDataSetConnection;

RvDataSetConnection4: TRvDataSetConnection;

RvDataSetConnection5: TRvDataSetConnection;

DBGrid3: TDBGrid;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

implementation

uses main, unit7;

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);

begin

close;

end;

end.

unit Unit3;

interface

uses

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

Dialogs, StdCtrls, DB, DBTables, Grids, DBGrids;

type

TForm3 = class(TForm)

DBGrid1: TDBGrid;

Query1: TQuery;

DataSource1: TDataSource;

DataSource2: TDataSource;

Label1: TLabel;

ComboBox1: TComboBox;

spravvid: TTable;

Button1: TButton;

Button2: TButton;

procedure Button2Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure FormShow(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3.Button2Click(Sender: TObject);

begin

Form3.Close;

end;

function check_list(list:tstrings;_naim:string):boolean;

var i:integer;

begin

for i:=1 to list.Count do

begin

if list.Strings[i-1]=_naim then

begin

result:=false;

exit;

end

end;

result:=true;

exit;

end;

procedure TForm3.Button1Click(Sender: TObject);

begin

If ComboBox1.Text = 'Показать все' Then Begin

try

Query1.Active:=false;

Query1.SQL.Clear;

Query1.SQL.Add('SELECT * FROM db\spravvid');

Query1.Active:=true;

except

on error: EDatabaseError do begin

MessageDlg('При выполнении запроса произошла ошибка:'+#13+#13+

error.Message ,mtError,[mbOK],0);

end;

end;

end else begin

try

Query1.Active:=false;

Query1.SQL.Clear;

Query1.SQL.Add('SELECT * FROM db\spravvid');

Query1.SQL.Add('WHERE naimizd= :naimizd');

Query1.Params.ParamByName('naimizd').AsString:=ComboBox1.Text;

Query1.Active:=true;

except

on error: EDatabaseError do begin

MessageDlg('При выполнении запроса произошла ошибка:'+#13+#13+

error.Message ,mtError,[mbOK],0);

end;

end;

end;

end;

procedure TForm3.FormShow(Sender: TObject);

var list:tstrings;

_naim:string;

begin

spravvid.active:=true;

list:=tstringlist.Create;

spravvid.First;

while not spravvid.Eof do

begin

_naim:=spravvid.fieldbyname('naimizd').asstring;

if check_list(list,_naim) then list.Add(_naim);

spravvid.Next;

end;

combobox1.Items:=list;

combobox1.Items.Add('Показать все');

end;

end.

unit Unit4;

interface

uses

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

Dialogs, StdCtrls, jpeg, ExtCtrls;

type

TForm4 = class(TForm)

Image1: TImage;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form4: TForm4;

implementation

{$R *.dfm}

end.

unit Unit5;

interface

uses

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

Dialogs, jpeg, ExtCtrls;

type

TForm5 = class(TForm)

Image1: TImage;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form5: TForm5;

implementation

{$R *.dfm}

end.

unit Unit6;

interface

uses

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

Dialogs, StdCtrls, DB, DBTables;

type

TForm6 = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Edit6: TEdit;

Edit7: TEdit;

Edit9: TEdit;

Label11: TLabel;

Edit8: TEdit;

Button1: TButton;

potrgod: TTable;

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form6: TForm6;

implementation

{$R *.dfm}

procedure fill_rezult_data;

begin

With Form6 do begin

Edit1.Text:='';

Edit2.Text:='';

Edit3.Text:='';

Edit4.Text:='';

Edit5.Text:='';

Edit6.Text:='';

Edit7.Text:='';

Edit8.Text:='';

Edit9.Text:='';

end;

end;

procedure TForm6.Button1Click(Sender: TObject);

begin

potrgod.Active:=true;

try

potrgod.AppendRecord([

strtoint(Edit1.Text),

strtoint(Edit2.Text),

strtoint(Edit3.Text),

strtoint(Edit4.Text),

strtoint(Edit5.Text),

strtoint(Edit6.Text),

strtoint(Edit7.Text),

strtoint(Edit8.Text),

strtoint(Edit9.Text)]);

except

MessageDlg('В поля формы введены недопустимые данные',

mtError,[mbOK],0);

Exit;

end;

fill_rezult_data;

ShowMessage('Запись добавлена!');

end;

procedure TForm6.FormCreate(Sender: TObject);

begin

fill_rezult_data;

end;

end.

unit Unit7;

interface

uses

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

Dialogs, DBTables, DB, DBCtrls, StdCtrls, Grids, DBGrids;

type

TForm7 = class(TForm)

Button1: TButton;

Label1: TLabel;

DBLookupComboBox1: TDBLookupComboBox;

DataSource1: TDataSource;

Table1: TTable;

Query1: TQuery;

DBGrid1: TDBGrid;

DataSource2: TDataSource;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form7: TForm7;

implementation

uses main, spravvid;

{$R *.dfm}

procedure TForm7.Button1Click(Sender: TObject);

begin

{ try

Query1.Active:=false;

Query1.SQL.Clear;

Query1.SQL.Add('SELECT * FROM db\spr_ceh');

Query1.Active:=true;

except

on error: EDatabaseError do begin

MessageDlg('При выполнении запроса произошла ошибка:'+#13+#13+

error.Message ,mtError,[mbOK],0);

end;

end; }

Form2.R1.Execute;

end;

end.

5.3 Результаты работы программы

После запуска программы на экране появляется главное окно с кнопочной формой (рис. 4).

Рисунок4

5.3.3 Если выбран пункт меню [Расчет плана], то появляется форма для выбора цеха (рис. 5).

Рисунок5

5.3.3.4 Если выбран цех, то появляется форма документа план потребности в деталях, готовая к печати (рис. 6).

Рисунок6

5.3.4 Если выбран пункт меню [Поиск по изделию], то на экран будет выведена форма поиска информации по изделию (Рис. 7).

Рисунок7

5.3.1 Если выбран пункт меню [Справочники] – [Просмотр], то появляется форма редактирования файлов баз данных (рис. 8).

Рисунок8

      1. Если выбран пункт меню [Справочники] – [Добавление записи], то появляется форма добавления записи в базы данных (рис. 9).

Рисунок9

5.3.7 Если выбран пункт меню [О программе] – [Справка], то на экран будет выведена справочная информацию по работе с программой (рис. 10).

Рисунок 10

5.3.8 Если выбран пункт меню [О программе] – [О программе…], то на экран будет выведена справочная информацию названии программы, версии, авторе и т.п. (рис. 11).

Рисунок11

5.3.9 Если выбран пункт меню [Выход] или нажат крест в правом верхнем углу главного меню, то программа завершит свою работу.

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

  1. Архангельский А.Я. Программирование в Delphi 7. — М.: ООО «Бином-Пресс», 2003г. — 1152 с.

  2. Лебедев А.Г. Методические указания по выполнению курсовой работы по предмету: Вычислительная техника в инженерных и экономических расчетах, 1993г. – 52 с.

  3. Лебедев А.Г., Ларина Н.А., Липендина Е.А., Абрамова Л.М. Методические указания и задания для студентов специальности 073000 Прикладная математика «ПРАКТИКУМ НА ЭВМ ПО МОДЕЛИРОВАНИЮ», 2004 год. – 90 с.

28