- •Оглавление
- •Глава 1 Постановка задачи. 7
- •Глава 2 Основная часть 12
- •Глава 3 Экономическая часть 57
- •Глава 4 Техника безопасности 64
- •Введение
- •1.2.1 Требования к функциональным характеристикам
- •1.2.2 Требования к надежности
- •1.2.3 Условия эксплуатации
- •1.2.4 Требования к составу и параметрам технических средств
- •1.2.5 Требования к информационной и программной совместимости
- •1.2.6 Технико-экономические показатели
- •1.2.7 Стадии и этапы разработки
- •1.2.8 Порядок контроля приемки
- •1.2.9 Выбор языка программирования
- •Глава 2 Основная часть
- •2.1 Описание программы
- •2.1.1 Общие сведения
- •2.1.2 Функциональное назначение
- •2.1.3 Описание логической структуры
- •2.1.4 Используемые технические средства
- •2.1.5 Входные данные
- •2.1.6 Выходные данные
- •Условия применения
- •2.2 Руководство системного программиста
- •2.2.1 Общие сведения о программе
- •2.2.2 Используемые программные средства.
- •2.2.3 Структура программы
- •2.2.4 Структура таблиц базы данных предприятия
- •2.2.5 Этап разработки программы
- •2.2.6 Настройка программы
- •2.2.7.3 Методы тестирования
- •2.2.7.4 Принципы тестирования
- •2.3.4 Сообщения оператору
- •Глава 3 Экономическая часть
- •3.1 Организационно-экономическое обоснование дипломной работы
- •3.2 Обоснование косвенной экономической эффективности
- •3.3 Составление сметы затрат по договору подряда на разработку программного продукта.
- •3.4 Расчет отчислений на основную заработную плату программиста.
- •3.5 Расчет затрат на амортизацию оборудования.
- •3.6 Расчет затрат на программное обеспечение и техническую литературу.
- •3.7 Расчет затрат на электроэнергию
- •3.8 Общие затраты на разработку и создание программного обеспечения (по).
- •Глава 4 Техника безопасности
- •4.1 Выводы по технике безопасности
- •Заключение
- •Список используемой литературы
- •Приложение. Код программы
Заключение
Тема дипломного проекта была выбрана в соответствии с заданием, выданном руководителем преддипломной практики.
В первой главе выполнены следующие задачи, а именно: конкретизирована постановка задачи, проведён обзор существующих решений и обоснован выбор языка программирования.
Во второй главе выполнены следующие задачи, а именно: разработана структурная схема, разработан интерфейс программного продукта, определены технические требования к оборудованию, на котором будет выполняться разработанная программа, проведён тест программного продукта, разработано оператора и руководство системного программиста.
В третьей главе выполнены следующие задачи, а именно:
Составленная смета затрат на программный продукт.
Подводя итоги выполненного задания, следует отметить, что в нём были достигнуты поставленная цель и задачи.
Список используемой литературы
1. Галисеев Г. В. Программирование в среде Delphi 7. Самоучитель;
2. Жуков А. В. Изучаем Delphi. г. Санкт-Петербург: издательство «Питер», 2007 г. - 352 с.;
3. Фаронов В. В. Delphi. Программирование на языке высокого уровня г. Санкт-Перетбург: издательство «Питер», 2010 г. - 640 с.;
4. http://delphi-z.ru/tags/MySQL
5. www.delphiexpert.ru/
6. www.delphi.int.ru/
7. www.edelphi.ru/
8. www.cyberforum.ru
9. www.sql.ru
10. www.delphisources.ru
11. www.delphi-z.ru
12. www.delphicode.org
13. www.programmersforum.ru
Приложение. Код программы
Главная форма
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, Grids, DBGrids, ADODB, DB, StdCtrls, Buttons, ExtCtrls,
DBCtrls, Mask;
type
TForm1 = class(TForm)
con1: TADOConnection;
ds1: TDataSource;
ds2: TDataSource;
tbl1: TADOTable;
tbl2: TADOTable;
dbgrd1: TDBGrid;
dbgrd2: TDBGrid;
mm1: TMainMenu;
N1: TMenuItem;
tbl2DSDesigner2: TWideStringField;
tbl2DSDesigner3: TWideStringField;
pnl1: TPanel;
pnl2: TPanel;
btn1: TBitBtn;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn5: TBitBtn;
BitBtn6: TBitBtn;
BitBtn7: TBitBtn;
BitBtn8: TBitBtn;
N2: TMenuItem;
Edit1: TEdit;
Label1: TLabel;
BitBtn4: TBitBtn;
BitBtn9: TBitBtn;
tbl1DSDesigner: TIntegerField;
tbl2DSDesigner: TAutoIncField;
tbl1DSDesigner3: TIntegerField;
tbl2DSDesigner4: TDateTimeField;
tbl1DSDesigner2: TWideStringField;
tbl1DSDesigner4: TWideStringField;
tbl1DSDesigner5: TDateTimeField;
procedure btn1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure BitBtn7Click(Sender: TObject);
procedure BitBtn8Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn9Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
kolihi,naim,new:string;
sosd: Integer;
implementation
uses Unit2,Unit3,Unit4;
{$R *.dfm}
procedure TForm1.btn1Click(Sender: TObject); //подготавливает и открывает форму для добавления записи
begin
if sosd=9 then
ShowMessage('Извените на данный момент вы переносите запись и другие функции недоступны') else begin
unit4.Form4.Edt1.Clear;
unit4.Form4.Edt2.Clear;
unit4.Form4.Edt1.Visible:=True;
unit4.Form4.Edt2.Visible:=True;
unit4.Form4.dbEdt1.Visible:=False;
unit4.Form4.dbEdt3.Visible:=False;
sosd:=0;
unit4.Form4.ShowModal;
end;
end;
procedure TForm1.N2Click(Sender: TObject);//Открывает форму выхода из программы
begin
if sosd=9 then
ShowMessage('Извените на данный момент вы переносите запись и другие функции недоступны') else begin
unit3.Form3.Visible:=true;
end;
end;
procedure TForm1.Edit1Change(Sender: TObject);//система поиска на панели
begin
if Length(Edit1.Text)>0 then
Tbl2.Filtered:=True
else
Tbl2.Filtered:=False;
Tbl2.Filter:='Отдел='''+Edit1.Text+'''';
end;
procedure TForm1.BitBtn1Click(Sender: TObject); //подготавливает и открывает форму для редактирования записи
begin
if sosd=9 then
ShowMessage('Извените на данный момент вы переносите запись и другие функции недоступны') else begin
unit4.Form4.Edt1.Visible:=False;
unit4.Form4.Edt2.Visible:=False;
unit4.Form4.dbEdt1.Visible:=True;
unit4.Form4.dbEdt3.Visible:=True;
kolihi:=unit4.Form4.DBEdt1.text;
naim:=unit4.Form4.DBEdt3.text;
sosd:=3;
unit4.Form4.ShowModal;
end;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);// удаляет выбранную запись
begin
if sosd=9 then
ShowMessage('Извените на данный момент вы переносите запись и другие функции недоступны') else begin
Tbl2.Delete;
end;
end;
procedure TForm1.BitBtn3Click(Sender: TObject); //сортировка таблицы по алфавиту
begin
unit1.Form1.tbl2.Sort:='Отдел';
end;
procedure TForm1.BitBtn5Click(Sender: TObject);//подготавливает и открывает форму для добавления записи
begin
if sosd=9 then
ShowMessage('Извените на данный момент вы переносите запись и другие функции недоступны') else begin
unit2.Form2.Show;
Unit2.Form2.edt1.Clear;
Unit2.Form2.edt2.Clear;
Unit2.Form2.edt5.Clear;
unit2.Form2.Caption:='Добавление записи...';
unit2.Form2.Label1.Caption:='Модель оборудования';
unit2.Form2.Label2.Caption:='Инвентарный номер';
sosd:=1;
end;
end;
procedure TForm1.BitBtn6Click(Sender: TObject);//удаляет запись из таблицы
begin
if sosd=9 then
ShowMessage('Извените на данный момент вы переносите запись и другие функции недоступны') else begin
Tbl1.Delete;
end;
end;
procedure TForm1.BitBtn7Click(Sender: TObject); //подготавливает и открывает форму для редактирования записи
begin
if sosd=9 then
ShowMessage('Извените на данный момент вы переносите запись и другие функции недоступны') else begin
Unit2.Form2.edt1.Text:=Unit2.Form2.DBEdit4.Text;
Unit2.Form2.edt2.Text:=Unit2.Form2.DBEdit2.Text;
Unit2.Form2.edt5.Text:=Unit2.Form2.DBEdit7.Text;
unit2.Form2.Caption:='Редоктирование записи...';
unit2.Form2.Label1.Caption:='Модель оборудования';
unit2.Form2.Label2.Caption:='Инвентарный номер';
sosd:=2;
unit2.Form2.ShowModal;
end;
end;
procedure TForm1.BitBtn8Click(Sender: TObject);//сортировка таблицы
begin
unit1.Form1.tbl1.Sort:='Наименование';
end;
procedure TForm1.BitBtn4Click(Sender: TObject);//активация переноса записи
begin
if sosd=9 then
ShowMessage('Извените на данный момент вы переносите запись и другие функции недоступны') else begin
sosd:=9;
ShowMessage('Вы переносите запись!');
BitBtn9.Visible:=True;
naim:=unit2.Form2.dbedit4.text;
kolihi:=unit2.Form2.dbedit2.text;
new:=unit2.Form2.dbedit7.text;
tbl1.Delete;
end;
end;
procedure TForm1.BitBtn9Click(Sender: TObject);//выбор места переноса записи и проверка на одинаковые инвентарные номера
var s,s1,s2:Integer;
begin
Unit1.Form1.dbgrd1.DataSource.DataSet.First;
s2:=0;
s1:=StrToInt(Unit2.Form2.edt2.Text);
while not(Unit1.Form1.tbl1.Eof) do begin
s:=unit1.Form1.tbl1.FieldByName('Инвентарный номер').AsInteger;
unit1.Form1.Tbl1.Next;
if s1=s then begin
s2:=s2+1;
ShowMessage('Внимание! Инвентарь с данным номером в текущем отделе уже есть!');
exit;
end;
end;
if s2=0 then begin
sosd:=90;
Tbl1.Insert;
unit2.Form2.dbedit7.text:=naim;
unit2.Form2.dbedit4.text:=naim;
unit2.Form2.dbedit2.text:=kolihi;
unit2.Form2.DBEdit6.Text:=DateToStr(Date);
ShowMessage('Запись успешно перенесена');
tbl2.Refresh;
BitBtn9.Visible:=False;
end;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if sosd=9 then begin
ShowMessage('Вы переносили запись!Запись удалена!');
end;
end;
end.
Форма 2
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask, DBCtrls, Buttons;
type
TForm2 = class(TForm)
Button1: TButton;
btn1: TBitBtn;
DBEdit2: TDBEdit;
DBEdit4: TDBEdit;
Label1: TLabel;
Label2: TLabel;
edt1: TEdit;
edt2: TEdit;
dbedt1: TDBEdit;
DBEdit6: TDBEdit;
edt5: TEdit;
lbl1: TLabel;
DBEdit7: TDBEdit;
procedure Button1Click(Sender: TObject);
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);//проверка на внесенные значения в поля и добавление их в таблицы
var
s,s1,s2:Integer;
begin
if sosd=1 then begin
if (edt2.Text='')or (edt1.Text='') or (edt5.Text='') then begin
showmessage('Введите все данные.');
exit;
end;
Unit1.Form1.dbgrd1.DataSource.DataSet.First;
s2:=0;
s1:=StrToInt(edt2.Text);
while not(Unit1.Form1.tbl1.Eof) do begin
s:=unit1.Form1.tbl1.FieldByName('Инвентарный номер').AsInteger;
unit1.Form1.Tbl1.Next;
if s1=s then begin
s2:=s2+1;
ShowMessage('Внимание! Инвентарь с данным номером в текущем отделе уже есть!');
exit;
end;
end;
if s2=0 then begin
Unit1.Form1.tbl1.Insert;
Unit2.Form2.DBEdit2.Text:=edt2.Text;
Unit2.Form2.DBEdit4.Text:=edt1.Text;
Unit2.Form2.DBEdit7.Text:=edt5.Text;
DBEdit6.Text:=DateToStr(Date);
Unit1.Form1.tbl2.Refresh;
end;
Unit2.Form2.lbl1.Visible:=false;
Unit2.Form2.edt5.Visible:=false;
end;
if sosd=2 then begin
if (edt1.Text='')or (edt2.Text='')or (edt5.Text='') then begin
showmessage('Введите все данные.');
exit;
end;
Unit1.Form1.tbl1.Delete;
Unit1.Form1.dbgrd1.DataSource.DataSet.First;
s2:=0;
s1:=StrToInt(edt2.Text);
while not(Unit1.Form1.tbl1.Eof) do begin
s:=unit1.Form1.tbl1.FieldByName('Инвентарный номер').AsInteger;
unit1.Form1.Tbl1.Next;
if s1=s then begin
s2:=s2+1;
Unit1.Form1.tbl1.Insert;
DBEdit4.Text:=kolihi;
DBEdit2.Text:=naim;
DBEdit6.Text:=DateToStr(Date);
ShowMessage('Внимание! Инвентарь с данным номером в текущем отделе уже есть!');
end;
end;
if s2=0 then begin
Unit1.Form1.tbl1.Insert;
Unit2.Form2.DBEdit4.Text:=edt1.Text;
Unit2.Form2.DBEdit2.Text:=edt2.Text;
Unit2.Form2.DBEdit7.Text:=edt5.Text;
DBEdit6.Text:=DateToStr(Date);
Unit1.Form1.tbl2.Refresh;
end;
end;
Unit1.Form1.tbl2.Refresh;
Form2.Close;
end;
procedure TForm2.btn1Click(Sender: TObject);//закрытие формы
begin
unit2.Form2.Close;
end;
end.
Форма 3
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask, DBCtrls;
type
TForm3 = class(TForm)
Button1: TButton;
Button2: TButton;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses unit1;
{$R *.dfm}
procedure TForm3.Button1Click(Sender: TObject);//закрытие программы
begin
unit3.Form3.Close;
unit1.Form1.Close;
end;
procedure TForm3.Button2Click(Sender: TObject);//закрытие данной формы
begin
unit3.Form3.Close;
end;
end.
Форма 4
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask, DBCtrls;
type
TForm4 = class(TForm)
dbedt1: TDBEdit;
dbedt2: TDBEdit;
dbedt3: TDBEdit;
edt1: TEdit;
edt2: TEdit;
lbl1: TLabel;
lbl2: TLabel;
btn1: TButton;
btn2: TButton;
procedure btn1Click(Sender: TObject);
procedure btn2Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
uses Unit1, Unit2;
{$R *.dfm}
procedure TForm4.btn1Click(Sender: TObject);//Проверка на внесенные данные и добавление их в таблицы
begin
if sosd=0 then begin
if (edt1.Text='')or (edt2.Text='') then begin
showmessage('Введите все данные.');
exit;
end;
Unit1.Form1.tbl2.Insert;
Unit4.Form4.DBEdt1.Text:=edt1.Text;
Unit4.Form4.DBEdt3.Text:=edt2.Text;
DBEdt2.Text:=DateToStr(Date);
Unit1.Form1.tbl2.Refresh;
end;
if sosd=3 then begin
if (dbedt1.Text='')or (dbedt2.Text='') then begin
showmessage('Введите все данные.');
exit;
end;
end;
Unit1.Form1.tbl2.Refresh;
Form4.Close;
end;
procedure TForm4.btn2Click(Sender: TObject);
begin
if sosd=3 then begin
DBEdt1.Clear;
DBEdt3.Clear;
DBEdt1.text:=kolihi;
DBEdt3.text:=naim;
Unit1.Form1.tbl2.Refresh;
end;
unit4.Form4.Close;
end;
procedure TForm4.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if sosd=3 then begin
DBEdt1.Clear;
DBEdt3.Clear;
DBEdt1.text:=kolihi;
DBEdt3.text:=naim;
Unit1.Form1.tbl2.Refresh;
end;
unit4.Form4.Close;
end;
end.