Автор работы: Пользователь скрыл имя, 25 Июня 2015 в 15:45, дипломная работа
Актуальной становится задача проектирования и создания систем хранения и обработки информации с целью сокращения рутинного, малоэффективного человеческого труда. Широкое распространение вычислительной техники в разных сферах предприятия, промышленности, экономики, увеличение специалистов в данной области даёт реальную возможность для решения данной задачи.
В данной дипломной работе разрабатывается базы данных «Учет дипломных работ». Программа предназначена для сотрудников учебного отдела.
Рис.2.12.
Соответствующая процедура приведена ниже.
procedure TfmMain.CheckBox1Click(Sender: TObject);
var Filter: string;
begin
if (CheckBox1.Checked) and (DBLookupComboBox1.KeyValue<>
DM.tbArbitr. Filter := '(TypeID
= ' + IntToStr(DBLookupComboBox1.
DM.tbArbitr.Filtered:=true;
if (CheckBox1.Checked) and (DBLookupComboBox1.KeyValue<>
Filter := '(TypeID
= ' + IntToStr(DBLookupComboBox1.
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:=
end;
В программе также предусмотрен поиск. Поиск можно выполнить либо по наименованию дипломной работы, либо по автору. На рис.2.13. приведена таблица, в которой выполнен поиск по автору дипломной работы.
Рис.2.13.
При этом записи не фильтруются, а указатель перемещается на соответствующую строку.
Соответствующая процедура приведена ниже.
procedure TfmMain.Edit2Change(Sender: TObject);
begin
DM.Dip.IndexName:='LNInd';
DM.Dip.FindNearest([Edit2.
end;
Поиск производится постепенно по мере ввода фамилии автора в строку поиска.
Таблицу можно отсортировать по любому полю, для этого достаточно щелкнуть на заголовке соответствующего столбца. На рис. 2.14 приведена таблица, отсортированная по полю Автор.
Рис. 2.14.
Соответствующая процедура приведена ниже.
procedure TfmMain.DBGrid1TitleClick(
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:='
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.
copy(vartostr(DBGrid1.
copy(vartostr(DBGrid1.
end;
Поле Должность можно подставить из выпадающего списка. Если в списке подходящей должности нет, следует ввести его вручную. Аналогично с полем Место работы.
Рис. 2.18.
Так как информация, находящая в базе данных, предназначена для долговременного хранения, в программе предусмотрено резервное копирование данных. Для этого необходимо щелкнуть на кнопку . При этом появится сообщение о создании резервной копии и файлы будут сохранены в каталог backup_bases.
Рис. 2.19.
Соответствующая процедура приведена ниже.
procedure TfmMain.
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.
Отладка программы заключается в том, чтобы сделать программу работоспособной. Дело в том, что при создании программы, как правило, программист совершает ошибки. Возникновение ошибок может быть следствием либо неправильного создания БД, либо неправильного составления программы. В первом случае для избежания аномалий добавления, удаления, изменения данных при работе все БД должны быть приведены к нормальной форме, что достигается их проектированием. Во втором случае возникает ряд ошибок из-за того, что программист неправильно поставил задачу или пользовался расчетными формулами, которые дают неверный результат. Еще одна группа ошибок обусловлена ошибками собственно программирования. К таким ошибкам относятся опечатки, неоптимальное использование операторов цикла или ветвления. Такие ошибки можно исправить, используя стандартные средства отладки, имеющиеся в трансляторах машинных языков высокого уровня.
Процесс отладки данной программы был проведен в два этапа:
В процессе выполнения данной дипломной работы были получены следующие результаты:
Современный уровень развития вычислительной техники, наличие большого количества языков программирования позволяет создавать прикладную программу для конкретной задачи в любой организации. В настоящий момент времени персональные компьютеры используются во всех учебных заведениях, предприятиях, офисах, магазинах, складах и т.д. Наличие персонального компьютера и соответствующего программного обеспечения позволяет автоматизировать любой процесс.
Разработка программы проводилась для сотрудников учебного отдела Владикавказского колледжа электроники с учетом предварительно сформированных требований.
К программе были предъявлены следующие требования:
В системе должна существовать структура, в которой могут накапливаться данные. Кроме того, в системе необходимо предусмотреть возможность просмотра этих данных и внесения в них изменений с тем, чтобы поддерживать актуальность информации.
Использование в качестве среды разработки доступного инструмента, имеющегося в наличии, простого в использовании и легкого в освоении. А также, программа должна иметь удобный интерфейс, позволяющий пользоваться ею практически любому человеку, обладающему минимальными навыками владения компьютером.
Программа должна быть составлена таким образом, чтобы расширение и обновление базы данных не вызывало затруднений. Это позволит использовать данную программу в любом учреждении.
Проведенные исследования позволили разработать эффективные машинно-ориентированные алгоритмы и создать программу ввода, хранения информации о документах. Проведено тестирование системы. Результаты разработки были успешно апробированы в учебном отделе.
Использование данной программы может облегчить и ускорить поиск необходимых информации, оформление необходимой документации, а также исключить ошибки и потери при хранении данных.
Из выше описанного следует, что задачи, поставленные перед данной работой, выполнены в полной мере.
Приложение 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(
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(
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(
Информация о работе Учет дипломных работ в среде программирования Delphi 7