Новости

Разработка программы для работы с базой данных типизированных файлов (файлов записей)

Работа добавлена:






Разработка программы для работы с базой данных типизированных файлов (файлов записей) на http://mirrorref.ru

Министерство образования и науки Украины

Сумской государственный университет

Кафедра информационных технологий

Проектирования

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовой работе

по дисциплине

«Основы программирования  и алгоритмические языки»

Выполнил:                                                                      студентгруппы ИТ-82

Вариант:                                                                          № 4

Проверил:                                                                        Ващенко С.М.

2010

Содержание

  1. Введение………………………………………………………………....
  2. Постановка задачи……………………………………………………....
  3. Описание программы и подпрограмм пользователя……………….....
  4. Тексты программ и модулей…………………………………………...
  5. Руководство пользователя…………………………………………......
  6. Контрольный пример…………………………………………………..
  7. Заключение……………………………………………………………...
  8. Литература………………………………………………………………

Введение

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

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

В состав Delphi входят компоненты, позволяющие создавать программы работы с файлами данных, созданными различными системами: от dBASE до Infomix и Oracle. Delphi также позволяет программисту, используя утилиту Borland Database Desktop, создавать файлы баз данных в различных форматах.

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

Типичным примером "бумажной" базы данных является каталог библиотеки — набор бумажных карточек, содержащих информацию о книгах. Информация в этой базе однородная (содержит сведения только о книгах) и упорядоченная (карточки расставлены, например, в соответствии с алфавитным порядком фамилий авторов). Другими примерами "бумажной" базы данных являются телефонный справочник и расписание движения поездов.

Компьютерная база данных представляет собой файл (или набор связанных файлов), содержащий информацию.

База данных состоит из записей. Каждая запись содержит информацию об одном экземпляре

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

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

Постановка задачи

Взяв за свою основу вариант структуры записей (рис 1)., реализовать роботу с простейшей базой данных, используя типизированные файлы (файлы записей). В программе должны быть предусмотрены соответствующие процедуры и функции, корректно обрабатывающие входные данные, ввод-вывод файлов базы данных. Результат (база данных) должен запомниться тоже в файле и быть доступен для последующей (многократной) обработки. В реализации должны быть предусмотрены модули Турбо Паскаля.

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

Описание программ и подпрограмм пользователя

UNIT_1

procedure N3Click(Sender: TObject);   - заполнить таблицу

   procedure N6Click(Sender: TObject);   - добавить

   procedure N7Click(Sender: TObject);   - изменить

   procedure N5Click(Sender: TObject);   - выход

   procedure Button1Click(Sender: TObject);   - запрос 1

   procedure Button2Click(Sender: TObject);   - запрос 2

   procedure WordClick(Sender: TObject);    - отчет word

   procedure N8Click(Sender: TObject);    - удалить строку

   procedure N9Click(Sender: TObject);   - об авторе

   procedure mniExcel1Click(Sender: TObject);   - отчет excel

   UNIT_2

procedure Button1Click(Sender: TObject);   - добавить строку

   procedure Button3Click(Sender: TObject);   - изменить строку

Текстыпрограммимодулей

unit Unit1;

interface

uses

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

 Dialogs, DB, ADODB, Grids, DBGrids, StdCtrls, Menus, OleServer,comobj, WordXP, ExcelXP,

 jpeg, ExtCtrls;

type

 TForm1 = class(TForm)

   Label1: TLabel;

   Edit1: TEdit;

   Button1: TButton;

   Button2: TButton;

   MainMenu1: TMainMenu;

   N1: TMenuItem;

   N3: TMenuItem;

   N5: TMenuItem;

   Word: TMenuItem;

   N2: TMenuItem;

   N6: TMenuItem;

   N7: TMenuItem;

   N8: TMenuItem;

   N9: TMenuItem;

   DataSource1: TDataSource;

   dbgrd1: TDBGrid;

   ADOTable1: TADOTable;

   mniExcel1: TMenuItem;

   DataSource2: TDataSource;

   dbgrd2: TDBGrid;

   qry1: TADOQuery;

   procedure N3Click(Sender: TObject);  //заполнить таблицу

   procedure N6Click(Sender: TObject);  //добавить

   procedure N7Click(Sender: TObject);  //изменить

   procedure N5Click(Sender: TObject);  //выход

   procedure Button1Click(Sender: TObject);  //запрос 1

   procedure Button2Click(Sender: TObject);  //запрос 2

   procedure WordClick(Sender: TObject);   //отчет word

   procedure N8Click(Sender: TObject);   //удалить строку

   procedure N9Click(Sender: TObject);  //об авторе

   procedure mniExcel1Click(Sender: TObject);  //отчет excel

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Form1: TForm1;

 W,  XL, XArr: Variant;

implementation

uses Unit2, Unit3;

{$R *.dfm}

procedure TForm1.N3Click(Sender: TObject);

begin

 ADOTable1.Active:=false;

 ADOTable1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+getcurrentdir+'/db1.mdb'+';Persist Security Info=False';

 qry1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+getcurrentdir+'/db1.mdb'+';Persist Security Info=False';

  ADOTable1.Active:=true;

  Edit1.Enabled:=True;

  Button1.Enabled:=True;

  Button2.Enabled:=True;

  N1.Enabled:=True;

  N2.Enabled:=True;

end;

procedure TForm1.N6Click(Sender: TObject);

begin

if form1.ADOTable1.active=true then form2.show

else showmessage('Откройте базу данных');

with form2 do

 begin

  button1.visible:=true;

  button3.visible:=false;

 end;

end;

procedure TForm1.N7Click(Sender: TObject);

begin

if form1.ADOTable1.active=true then form2.show

 else showmessage('Откройте базу данных');

 with form2 do

  begin

   if adotable1.active=true then

   begin

    edit1.text:=adotable1.Fieldvalues['firma'];

    edit2.text:=floattostrf(adotable1.Fieldvalues['stoim'],fffixed,6,2);

    edit3.text:=floattostrf(adotable1.Fieldvalues['kol'],fffixed,6,2);

    edit4.text:=adotable1.Fieldvalues['naim_tov'];

    edit5.text:=adotable1.Fieldvalues['strana'];

    edit6.text:=floattostrf(adotable1.Fieldvalues['den'],fffixed,6,2);

    edit7.text:=floattostrf(adotable1.Fieldvalues['mec'],fffixed,6,2);

    edit8.text:=floattostrf(adotable1.Fieldvalues['god'],fffixed,6,2);

    button1.visible:=false;

    button3.visible:=true;

   end;

  end;

end;

procedure TForm1.N5Click(Sender: TObject);

begin

close;

end;

procedure TForm1.Button1Click(Sender: TObject);

var ffield, fvalue: string;

opts : TLocateOptions;

poisk:string;

begin

if Edit1.Text='' then

 ShowMessage('введите ключ для поиска')

else

 begin

 poisk:=Edit1.Text;

 ffield := 'naim_tov';

fvalue := Edit1.Text;

opts := [loCaseInsensitive];

if not AdoTable1.Locate(ffield, fvalue, opts) then

ShowMessage(fvalue + ' _не найден в столбце_ ' + ffield)

else begin

 qry1.SQL.Clear;

 qry1.SQL.Add('Select *');

 qry1.SQL.Add('from baze');

 qry1.SQL.Add('where naim_tov="'+edit1.text+'"');

 qry1.Open;

 Word.Enabled:=True;

 mniExcel1.Enabled:=True;

 end;

 end;

 end;

procedure TForm1.Button2Click(Sender: TObject);

var a:string;

   b:real;

begin

if adotable1.active=true then

begin

 adotable1.first;

 b:=adotable1.Fieldvalues['stoim'];

 a:=adotable1.Fieldvalues['naim_tov'];

 while not adotable1.Eof do

  begin

   if b > adotable1.Fieldvalues['stoim'] then

    begin

     b:=adotable1.Fieldvalues['stoim'];

     a:=adotable1.Fieldvalues['naim_tov'];

    end;

   adotable1.next;

  end;

 adotable1.first;

 showmessage(a+' имеет минимальную стоимость = '+floattostrf(b,fffixed,6,2));

end

else showmessage('Откройте базу данных');

end;

procedure TForm1.WordClick(Sender: TObject);

var qwer:range;

f:variant;

autofitbehavior,defaulttablebehavior:olevariant;

cc:integer;

i,j:integer;

begin

W:=createoleobject('Word.application');

W.visible:=true;

w.documents.add;

f:=w.activedocument.range(0,0);

cc:=form1.qry1.FieldCount;

w.activedocument.tables.add(f ,1,cc);

w.activedocument.tables.item(1).cell(1,i).range.text:='sad';

form1.qry1.MoveBy(0);

for i:=1 to cc do begin

w.activedocument.tables.item(1).cell(1,i).range.text:=form1.qry1.Fields[i-1].FieldName;

end;

form1.qry1.MoveBy(0);

for i:=1 to form1.qry1.RecordCount do begin

w.activedocument.tables.item(1).rows.add;

for j:=1 to cc do begin

w.activedocument.tables.item(1).cell(i+1,j).range.text:=form1.qry1.FieldList.Fields[j-1].AsString;

end;

form1.qry1.MoveBy(1);

end;

end;

procedure TForm1.N8Click(Sender: TObject);

begin

if form1.ADOTable1.active=true then

begin

ADOTable1.Delete;

end

else showmessage('Откройте базу данных');

end;

procedure TForm1.N9Click(Sender: TObject);

begin

Form3.show;

end;

procedure TForm1.mniExcel1Click(Sender: TObject);

var

i: Integer;

j: Integer;

begin

XArr:=VarArrayCreate([1,qry1.FieldCount],varVariant);

XL:=CreateOLEObject('Excel.Application');

XL.WorkBooks.add;

XL.visible:=true;

j := 1;

ADOTable1.First;

while not qry1.Eof do

 begin

  i:=1;

  while i<=qry1.FieldCount do

   begin

    XArr[i] := qry1.Fields[i-1].Value;

    i := i+1;

   end;

  XL.Range['A'+IntToStr(j),

  CHR(64+qry1.FieldCount)+IntToStr(j)].Value := XArr;

  qry1.Next;

  j:=j+1;

 end;

XL.Range['A1',CHR(64+qry1.FieldCount)+IntToStr(j)].select;

XL.Selection.Font.Name:='Arial cur';

XL.Selection.Font.Size:=10;

XL.selection.Columns.AutoFit;

XL.Range['A1','A1'].select;

end;

end.

unit Unit2;

interface

uses

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

 Dialogs, StdCtrls;

type

 TForm2 = class(TForm)

   Label1: TLabel;

   Edit1: TEdit;

   Label2: TLabel;

   Edit2: TEdit;

   Label3: TLabel;

   Edit3: TEdit;

   Button1: TButton;

   Button3: TButton;

   Label4: TLabel;

   Edit4: TEdit;

   Label5: TLabel;

   Edit5: TEdit;

   Label6: TLabel;

   Edit6: TEdit;

   Label7: TLabel;

   Edit7: TEdit;

   Label8: TLabel;

   Edit8: TEdit;

   procedure Button1Click(Sender: TObject);   //добавить строку

   procedure Button3Click(Sender: TObject);   //изменить строку

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Form2: TForm2;

implementation

uses Unit1;

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);

begin

   with Form1.ADOTAble1 do

     begin

      Append;

      Edit;

      try

      Fieldvalues['firma']:=edit1.text;

      Fieldvalues['stoim']:=strtofloat(edit2.text);

      Fieldvalues['kol']:=strtofloat(edit3.text);

      Fieldvalues['naim_tov']:=edit4.text;

      Fieldvalues['strana']:=edit5.text;

      Fieldvalues['den']:=edit6.text;

      Fieldvalues['mec']:=strtofloat(edit7.text);

      Fieldvalues['god']:=strtofloat(edit8.text);

      except

           on econverterror do showmessage('Введите правильные значения');

      end;

      post;

     end;

end;

procedure TForm2.Button3Click(Sender: TObject);

begin

with Form1.ADOTAble1 do

     begin

      Edit;

      try

      Fieldvalues['firma']:=edit1.text;

      Fieldvalues['stoim']:=strtofloat(edit2.text);

      Fieldvalues['kol']:=strtofloat(edit3.text);

      Fieldvalues['naim_tov']:=edit4.text;

      Fieldvalues['strana']:=edit5.text;

      Fieldvalues['den']:=edit6.text;

      Fieldvalues['mec']:=strtofloat(edit7.text);

      Fieldvalues['god']:=strtofloat(edit8.text);

      except

           on econverterror do showmessage('Введите правильные значения');

      end;

      post;

     end;

end;

end.

unit Unit3;

interface

uses

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

 Dialogs, StdCtrls;

type

 TForm3 = class(TForm)

   Label1: TLabel;

   Label3: TLabel;

   Label4: TLabel;

   Label2: TLabel;

   Label5: TLabel;

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Form3: TForm3;

implementation

{$R *.dfm}

end.

Руководство пользователя

Для запуска программы выполним файл exe.

Открытие базы данных осуществляется при помощи «Файл» - «Заполнить таблицу» на панели меню.При корректном выборе файла базы данных елементы редактирования и поиска становятся доступными пользователю.

Поиск исполняется при  нажатии кнопки«Поиск». Кнопка«Поиск» есть на панели самой программы. Результат будет показан в таблице №2. (Рис.3)

Рисунок 3.- Выполнение поиска

Иметься два вида поиска:

- по наименованию товара;

- определение наименования товара с минимальной стоимостью

Для создания новой строки, редактирования текущей или удаления нужно воспользоваться кнопками Форматирование-> Добавить /Удалить/Изменить .

Примечание: если воспользоваться кнопкой«добавить», заполнение будет производиться через анкету. (Рис.4)

Рисунок 4 – Анкета новой строки

При нажатии кнопки«Добавить» данные будут введены в таблицу (Рис.5);

Рисунок 5 – Добавление строки

Программа имеет функцию экспорта результата поиска вWord иExcel. Что бы ей воспользоваться нажмите кнопку«Создать отчетWord»   или «Создать отчетExcel»

id

firma

stoim

kol

naim_tov

strana

den

mec

god

6

saw

456

4565

headset

Ukraine

6

9

2000

Для вызова справки о програме нажмите «Об авторе» (на панели инструментов).

Для выхода из самой программы нажмите  кнопку «Закрыть », на вкладке меню «Файл»

Контрольный пример

id

firma

stoim

kol

naim_tov

strana

den

mec

god

6

saw

456

4565

headset

Ukraine

6

9

2000

Заключение

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

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

Литература

  1. Федоренко Ю.алгоритмы и программы. - СПб: Питер,2001.
  2. Боровик В.А., Тыркусова Н.В. Программирование: Учебное пособие. Часть1-Сумы: Изд-во СумГУ,2004.
  3. Боровик В.А., Тыркусова Н.В. Программирование: Учебное пособие. Часть2-Сумы: Изд-во СумГУ,2004.
  4. Марченко А.И., Марченко Л.А. Программирование в среде Турбо Паскаль 7.0: Под ред. Тарасенко В.П.-6-е-изд.-К.:ВЕК+,2000.
  5. Вирт Н. «Алгоритмы+структуры данных = программы». - М., Мир,1985
  6. Культин Н.Б. –СПб: БХВ-Петербург,2002.

Разработка программы для работы с базой данных типизированных файлов (файлов записей) на http://mirrorref.ru


Похожие рефераты, которые будут Вам интерестны.

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

2. Реферат Типизированные файлы, их назначение и использование. Основные процедуры обработки типизированных файлов

3. Реферат Типы файлов, объявление, логическая и физическая организация файловой системы, процедуры и функции обработки файлов

4. Реферат Программы с графическими интерфейсами для передачи файлов в сети

5. Реферат Структура резидентной программы. Структура exe-, com-файлов. Вызов исполняемых программ. Передача параметров вызываемым программам

6. Реферат Создание индексов файлов PDF

7. Реферат Использование пакетных файлов

8. Реферат Форматы графических файлов

9. Реферат Общие сведения об архивации файлов

10. Реферат Основные задачи печати файлов PDF