Учет дипломных работ в среде программирования Delphi 7

Автор работы: Пользователь скрыл имя, 25 Июня 2015 в 15:45, дипломная работа

Краткое описание

Актуальной становится задача проектирования и создания систем хранения и обработки информации с целью сокращения рутинного, малоэффективного человеческого труда. Широкое распространение вычислительной техники в разных сферах предприятия, промышленности, экономики, увеличение специалистов в данной области даёт реальную возможность для решения данной задачи.
В данной дипломной работе разрабатывается базы данных «Учет дипломных работ». Программа предназначена для сотрудников учебного отдела.

Прикрепленные файлы: 1 файл

ПЗ-дипломы.docx

— 975.76 Кб (Скачать документ)

Рис.2.12.

Соответствующая процедура приведена ниже.

procedure TfmMain.CheckBox1Click(Sender: TObject);

var Filter: string;

begin

if (CheckBox1.Checked) and (DBLookupComboBox1.KeyValue<>Null) then

DM.tbArbitr. Filter := '(TypeID = ' + IntToStr(DBLookupComboBox1.KeyValue) + ')';

DM.tbArbitr.Filtered:=true;

if (CheckBox1.Checked) and (DBLookupComboBox1.KeyValue<>Null) then

    Filter := '(TypeID  = ' + IntToStr(DBLookupComboBox1.KeyValue) + ')';

  if Filter <> '' then

  begin

    DM.tbArbitr.Filter := Filter;

    DM.tbArbitr.Filtered:=true;

    end

  else

    DM.tbArbitr.Filtered := False;

  if not(CheckBox1.Checked) then DBLookupComboBox1.KeyValue:=Null;

end;

 

В программе также предусмотрен поиск. Поиск можно выполнить либо по наименованию дипломной работы, либо по автору. На рис.2.13. приведена таблица, в которой выполнен поиск по автору дипломной работы.

Рис.2.13.

 

При этом записи не фильтруются, а указатель перемещается на соответствующую строку.

Соответствующая процедура приведена ниже.

procedure TfmMain.Edit2Change(Sender: TObject);

begin

DM.Dip.IndexName:='LNInd';

DM.Dip.FindNearest([Edit2.Text]);

end;

 

Поиск производится постепенно по мере ввода фамилии автора в строку поиска.

 

Таблицу можно отсортировать по любому полю, для этого достаточно щелкнуть на заголовке соответствующего столбца. На рис. 2.14 приведена таблица, отсортированная по полю Автор.

Рис. 2.14.

Соответствующая процедура приведена ниже.

 

procedure TfmMain.DBGrid1TitleClick(Column: TColumn);

begin

 if Column=DBGrid1.Columns[0] then  DM.Dip.IndexName:='ThInd';

 if Column=DBGrid1.Columns[1] then  DM.Dip.IndexName:='LNInd';

 if Column=DBGrid1.Columns[4] then  DM.Dip.IndexName:='SpecialtyID';

 if Column=DBGrid1.Columns[5] then  DM.Dip.IndexName:='GroupID';

 if Column=DBGrid1.Columns[6] then  DM.Dip.IndexName:='YRInd';

 if Column=DBGrid1.Columns[7] then  DM.Dip.IndexName:='HeadID';

 if Column=DBGrid1.Columns[8] then  DM.Dip.IndexName:='RevieverID';

end;

 

При этом для сортировки используются вторичные индексы, которые были созданы еще на этапе создания таблиц базы данных. Для того, чтобы выполнить фильтрацию таблицы необходимо в свойстве  IndexName таблицы Dip указать соответствующий табличный индекс.

 

Для ввода информации о новом документе необходимо выбрать пункт меню Диплом, либо щелкнуть на кнопке . Откроется новая форма Данные.

Эта форма используется для ввода информации о дипломной работе. Все поля на этой форме являются обязательными. Каждое из полей на форме связано с соответствующим полем основной таблицы Dip. После того, как все поля заполнены для того, чтобы продолжать вводить информацию о других работах, необходимо щелкать на кнопке Ок.

Чтобы запомнить всю введенную информацию, необходимо щелкнуть на кнопке Запомнить.

 

Рис. 2.15.

 

Следует отметить, что поля Специальность, Группа, Руководитель и Рецензент вводить вручную не надо, достаточно выбрать их из выпадающего списка.

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

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

Также справочники можно открыть, выбрав соответствующий пункт меню.

Справочник Специальность.

Рис. 2.16.

 

Справочник Руководитель.

Рис. 2.17.

При заполнении справочника Руководитель, фамилию, имя и отчество руководителя нужно ввести в соответствующие поля, а колонка с фамилией и инициалами заполнится автоматически. Соответствующая процедура приведена ниже:

procedure TfmHd.DBGrid1KeyPress(Sender: TObject; var Key: Char);

begin

DBGrid1.DataSource.DataSet.FieldByName('Head').Value:=vartostr(DBGrid1.DataSource.DataSet.FieldByName('LastName').Value)+' '+

copy(vartostr(DBGrid1.DataSource.DataSet.FieldByName('Name').Value),1,1)+

copy(vartostr(DBGrid1.DataSource.DataSet.FieldByName('MiddleName').Value),1,1)+'.';

end;

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

Рис. 2.18.

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

Рис. 2.19.

Соответствующая процедура приведена ниже.

procedure TfmMain.CopyFileWithProgressBar1(Source, Destination: string);

var

  FromF, ToF: file of byte;

  Buffer: array[0..65536] of char;

  NumRead: integer;

  FileLength: longint;

begin

  AssignFile(FromF, Source);

  reset(FromF);

  AssignFile(ToF, Destination);

  rewrite(ToF);

  FileLength := FileSize(FromF);

  with ProgressBar1 do

  begin

    Min := 0;

    Max := FileLength;

    while FileLength > 0 do

    begin

      BlockRead(FromF, Buffer[0], SizeOf(Buffer), NumRead);

      FileLength := FileLength - NumRead;

      BlockWrite(ToF, Buffer[0], NumRead);

      Position := Position + NumRead;

    end;

    CloseFile(FromF);

    CloseFile(ToF);

  end;

end;

 

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

Рис. 2.20.

2.4. Описание  процесса отладки программы. Руководство  пользователя

 

Отладка программы заключается в том, чтобы сделать программу работоспособной. Дело в том, что при создании программы, как правило, программист совершает ошибки. Возникновение ошибок может быть следствием либо неправильного создания БД, либо неправильного составления программы. В первом случае для избежания аномалий добавления, удаления, изменения данных при работе все БД должны быть приведены к нормальной форме, что достигается их проектированием. Во втором случае возникает ряд ошибок из-за того, что программист неправильно поставил задачу или пользовался расчетными формулами, которые дают неверный результат. Еще одна группа ошибок обусловлена ошибками собственно программирования. К таким ошибкам относятся опечатки, неоптимальное использование операторов цикла или ветвления. Такие ошибки можно исправить, используя стандартные средства отладки, имеющиеся в трансляторах машинных языков высокого уровня.

Процесс отладки данной программы был проведен в два этапа:

  1. Компиляция - при помощи встроенного в систему Delphi5 компилятора (транслятора). После того как все синтаксические ошибки в программе были исправлены, компилятор создал исполняемый файл программы, который позже можно будет запустить из Windows. Имя исполняемого файла такое же, как и у файла проекта, расширение – ехе. Теперь для работы пользователю достаточно в каталоге файлов программы выбрать файл Dip.exe и программа начнет свою работу.
  2. Работа с самой программой – для этого в базу данных были введены данные о продукции, а затем составлен и распечатаны прайс-лист и бланк заказа. Система работала без сбоев. Распечатки приводятся в Приложении 2 и 3.

 

2.5. Оценка результатов  решения задачи

 

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

  • Разработано 6 функциональных таблиц, предназначенных для хранения информации о  документах, а также справочников.. Для каждой таблицы определены соответствующие атрибуты (поля), общее количество которых для всех таблиц составило 27 наименований. Во всех таблицах для каждого атрибута выбран соответствующий тип данных и оптимальный размер хранимых в этих полях данных.
  • Была разработана логическая структура базы данных, определены и созданы индексы для ключевых и не ключевых полей таблиц, определены и созданы  связи между таблицами, необходимые для работы запросов. В итоге получена законченная логическая структура базы данных, состоящая из таблиц, связанных между собой особым образом.
  • Для данной структуры базы данных была разработана программа по управлению базой данных, которая позволяет производить различные действия: введение, корректировку данных и построение.
  • Разработан интерфейс, позволяющий пользователю работать с базой данных.
  • Проведено тестирование системы

 

ЗАКЛЮЧЕНИЕ

 

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

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

К программе были предъявлены следующие требования:

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

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

Программа должна быть составлена таким образом, чтобы расширение и обновление базы данных не вызывало затруднений. Это позволит использовать данную программу в любом учреждении.

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

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

Из выше описанного следует, что задачи, поставленные перед данной работой, выполнены в полной мере.

 

 

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

 

  1. Архангельский А., Delphi 7. Справочное пособие, Бином, 2003 год, 370 стр.
  2. Бакнелл Д., Фундаментальные алгоритмы и структуры данных в Delphi., Библиотека программиста. Питер, 2013 год, 560 стр.
  3. Дейт К., Введение в системы баз данных, 8-е издание, Вильямс, 2010 год 328 стр.
  4. Кандзюба С.П., Delphi. Базы данных и приложения. Эффективный самоучитель, ДиаСофт, 2010 год, 576 стр.
  5. И.П. Карпова, ВВЕДЕНИЕ В БАЗЫ ДАННЫХ, Учебное пособие, Московский государственный институт электроники и математики
  6. Конноли Т., Бегг К., Базы данных. Проектирование, реализация и сопровождение. Теория и практика., 3-е издание, Вильямс, 2013 год, 436 стр.
  7. Понамарев В., Базы данных в Delphi 7. Самоучитель, Питер,2013 год, 224стр.
  8. Фаронов В. В., Учебный курс «Delphi, язык и среда программирования. Специальные вопросы и полезные советы»,1-е издание, 2006 год, 464 стр
  9. Фаулер М., Архитектура корпоративных программных приложений, Вильямс, 2004 год, 544 стр.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ПРИЛОЖЕНИЯ

 

Приложение 1.

Текст программы

program Project1;

 

uses

  Forms,

  Unit1 in 'Unit1.pas' {fmMain},

  Unit2 in 'Unit2.pas' {DM: TDataModule},

  Unit3 in 'Unit3.pas' {fmDip},

  Unit4 in 'Unit4.pas' {fmSp},

  Unit5 in 'Unit5.pas' {fmGr},

  Unit6 in 'Unit6.pas' {fmHd},

  Unit7 in 'Unit7.pas' {fmRev};

 

{$R *.res}

 

begin

  Application.Initialize;

  Application.CreateForm(TfmMain, fmMain);

  Application.CreateForm(TDM, DM);

  Application.CreateForm(TfmDip, fmDip);

  Application.CreateForm(TfmSp, fmSp);

  Application.CreateForm(TfmGr, fmGr);

  Application.CreateForm(TfmHd, fmHd);

  Application.CreateForm(TfmRev, fmRev);

  Application.Run;

end.

 

 

unit Unit1;

 

interface

 

uses

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

  Dialogs, ComCtrls, ToolWin, Menus,unit2, Grids, DBGrids, unit3, unit4,unit5,unit6,unit7,

  StdCtrls, DBCtrls, ImgList, Buttons;

 

type

  TfmMain = class(TForm)

    MainMenu1: TMainMenu;

    N1: TMenuItem;

    N2: TMenuItem;

    N3: TMenuItem;

    N4: TMenuItem;

    N5: TMenuItem;

    N6: TMenuItem;

    N7: TMenuItem;

    DBGrid1: TDBGrid;

    PopupMenu1: TPopupMenu;

    N9: TMenuItem;

    N10: TMenuItem;

    Edit1: TEdit;

    Label1: TLabel;

    Label2: TLabel;

    Edit2: TEdit;

    DBlcbHd: TDBLookupComboBox;

    DBlcbSp: TDBLookupComboBox;

    DBlcbGr: TDBLookupComboBox;

    CheckBox1: TCheckBox;

    CheckBox2: TCheckBox;

    CheckBox3: TCheckBox;

    CheckBox4: TCheckBox;

    Edit3: TEdit;

    ProgressBar1: TProgressBar;

    N11: TMenuItem;

    SpeedButton1: TSpeedButton;

    SpeedButton2: TSpeedButton;

    SpeedButton3: TSpeedButton;

    SpeedButton4: TSpeedButton;

    procedure CopyFileWithProgressBar1(Source, Destination: string);

    procedure N2Click(Sender: TObject);

    procedure N4Click(Sender: TObject);

    procedure N7Click(Sender: TObject);

    procedure N5Click(Sender: TObject);

    procedure N6Click(Sender: TObject);

    procedure N9Click(Sender: TObject);

    procedure N10Click(Sender: TObject);

    procedure DBGrid1TitleClick(Column: TColumn);

    procedure ToolButton5Click(Sender: TObject);

    procedure Edit1Change(Sender: TObject);

    procedure Edit2Change(Sender: TObject);

    procedure CheckBox1Click(Sender: TObject);

    procedure ToolButton4Click(Sender: TObject);

    procedure ToolButton3Click(Sender: TObject);

    procedure N11Click(Sender: TObject);

    procedure SpeedButton2Click(Sender: TObject);

    procedure SpeedButton3Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  fmMain: TfmMain;

 

implementation

uses msWord,rusdlg,sg2word;

{$R *.dfm}

 

 

procedure TfmMain.N2Click(Sender: TObject);

begin

DM.Database1.StartTransaction;

try

  DM.Dip.Append;

  DM.Dip.Post;

  fmDip.ShowModal;

except;

DM.Database1.Rollback;

end;

end;

 

procedure TfmMain.N4Click(Sender: TObject);

begin

fmSp.ShowModal;

end;

 

procedure TfmMain.N7Click(Sender: TObject);

begin

fmGr.ShowModal;

end;

 

procedure TfmMain.N5Click(Sender: TObject);

begin

fmHd.ShowModal;

end;

 

procedure TfmMain.N6Click(Sender: TObject);

begin

fmRev.ShowModal;

end;

 

procedure TfmMain.N9Click(Sender: TObject);

begin

DM.Dip.Edit;

fmDip.ShowModal;

end;

 

procedure TfmMain.N10Click(Sender: TObject);

begin

dm.Dip.Delete;

end;

 

procedure TfmMain.DBGrid1TitleClick(Column: TColumn);

Информация о работе Учет дипломных работ в среде программирования Delphi 7