Автор работы: Пользователь скрыл имя, 10 Июня 2012 в 09:26, контрольная работа
Разработаем программу, которая позволит создавать новый файл с данными формата .dat, открывать уже существующий и добавлять записи, а так же производить первоначальный анализ (поиск) информации открытого файла по определенным критериям.
Задание №1. - 3 -
Описание работы программы. - 3 -
Листинг программы. - 6 -
Пример выполнения программы. - 11 -
Задание №2 - 12 -
Описание работы программы. - 12 -
Листинг программы. - 14 -
Пример выполнения программы. - 16 -
Задание №3 - 18 -
Достоинства БД MS Access. - 19 -
Описание среды разработки. - 19 -
Описание структуры БД. - 20 -
Описание структуры программы. - 21 -
Программная реализация. - 21 -
Использованные SQL запросы. - 25 -
Полный листинг программы. - 25 -
type
TForm1 = class(TForm)
Memo1: TMemo;
Memo2: TMemo;
Button1: TButton;
Button2: TButton;
XPManifest1: TXPManifest;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
Label1: TLabel;
GroupBox1: TGroupBox;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
Memo3: TMemo;
Button3: TButton;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
Label3: TLabel;
GroupBox2: TGroupBox;
Button4: TButton;
Memo4: TMemo;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Type
Ukazatel = ^S;
S = Record
info : String[20];
next : Ukazatel;
End;
var
Form1: TForm1;
Es : Ukazatel;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
Var
dl : Integer;
i : Integer;
slEs, x, hv : Ukazatel;
begin
//Проверка заполнения текста в поле ввода
If Form1.Memo1.Text = ''
Then
Begin
MessageDlg('Введите информацию', mtWarning, [mbOk],0);
Exit;
End;
//Узнаем длину текста
dl := Length(Form1.Memo1.Text);
//Переводим данный текст в список элементов
//каждый из которых равен 20 символам
i := 0;
While i <= dl Do
Begin
//если начало цикла создаем новый элемент
//если нет добавляем его
If i=1
Then
Begin
New(Es);
Es^.info := Copy(Form1.Memo1.Text, i, 20);
Es^.next := nil;
End
Else
Begin
New(slEs);
slEs^.info := Copy(Form1.Memo1.Text, i, 20);
slEs^.next := Es;
Es := slEs;
End;
i := i+20
End;
//Сообщение о успешном выполнении
MessageDlg('Преобразование произведено!', mtInformation, [mbOk],0);
end;
procedure TForm1.Button2Click(Sender: TObject);
Var
k : Ukazatel;
begin
//Вывод полученного динамического списка в стоблик
//предварительно очистив список
k := es;
Form1.Memo2.Lines.Clear;
While k<> nil do
Begin
Form1.Memo2.Lines.Add(k^.info)
k:= k^.next;
End;
end;
procedure TForm1.Button4Click(Sender: TObject);
Var
cop : String[20];
k, k1, kv : Ukazatel;
schet, s, v : Integer;
begin
//Получение нужных номеров строк
s := StrToInt(Form1.Edit1.Text);
v := StrToInt(Form1.Edit2.Text);
//Очистка поле вывода
Form1.Memo4.Lines.Clear;
//Копирование нужной строки
schet := 1;
k := es;
While k<> nil do
Begin
If schet = s
Then cop := k^.info;
schet := schet +1;
k:= k^.next;
End;
//Вставка нового элемента
schet := 1;
While es<> nil do
Begin
If schet = v