Конрольная работа по "Программированию"

Содержание:

 

Задание №1. - 3 -

Описание  работы программы. - 3 -

Листинг программы. - 6 -

Пример  выполнения программы. - 11 -

Задание №2 - 12 -

Описание  работы программы. - 12 -

Листинг программы. - 14 -

Пример  выполнения программы. - 16 -

Задание №3 - 18 -

Достоинства БД MS Access. - 19 -

Описание  среды разработки. - 19 -

Описание  структуры БД. - 20 -

Описание  структуры программы. - 21 -

Программная реализация. - 21 -

Использованные  SQL запросы. - 25 -

Полный  листинг программы. - 25 -

 

 

 

 

 

 

 

 

 

 

 

Задание №1.

 

26. Сформировать файл, имеющий следующую структуру:

Type книга = record

автор: string;

название: string;

год издания: integer;

издательство: string;

количество страниц: integer;

end;

и определить:

- есть ли в библиотеке  книги данного автора;

- найти книгу с наибольшим  количеством страниц;

- найти названия книг  данного автора, изданных с указанного  года, в данном издательстве.

 

Решение:

 

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

Описание  работы программы.

 

Разработанная программа  имеет две закладки: «Создание файла» и «Поиск информации».

На первой закладке имеется  возможность создания нового файла  с данными или открыть уже  созданный ранее файл для добавления новой информации. При нажатии  на кнопку «Создать новый файл данных». Открывается диалоговое позволяющее задать название файла и путь к файлу где он будет храниться:

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

После того как мы создадим новый файл или откроем существующий в окне закладки «Создание файла» появляется группа «Добавление книг в файл данных» в которой мы заполняем соответствующие поля  о книге, после чего нажимаем на кнопку «=Добавить=».

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

Если ответить «Yes», то поля ввода очищаются, и мы можем ввести данные еще об одной книге, если ответить «Nо», то группа «Добавление книг в файл данных» станет неактивной. Соответственно добавить данные в файл будет нельзя, файл программно закрывается для записи.

Работа с текущей закладкой  закончена, рассмотрим, как работает закладка «Поиск информации».

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

В зависимости от выбранного параметра поиска будут активны  поля для заполнения параметров поиска:

 

 

 

1. 

2.

3.

 

При нажатии на кнопку «=Сформировать=» найденная информация будет выведено в поле «Результат».

Листинг программы.

 

unit Unit1;

 

interface

 

uses

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

  Dialogs, StdCtrls, XPMan, ComCtrls;

 

type

  TForm1 = class(TForm)

    PageControl1: TPageControl;

    TabSheet1: TTabSheet;

    TabSheet2: TTabSheet;

    Edit1: TEdit;

    Label1: TLabel;

    Edit2: TEdit;

    Edit3: TEdit;

    Edit4: TEdit;

    Label2: TLabel;

    Label3: TLabel;

    Label4: TLabel;

    XPManifest1: TXPManifest;

    Button1: TButton;

    GroupBox1: TGroupBox;

    GroupBox2: TGroupBox;

    Button3: TButton;

    Button4: TButton;

    SaveDialog1: TSaveDialog;

    OpenDialog1: TOpenDialog;

    Edit5: TEdit;

    Label5: TLabel;

    GroupBox3: TGroupBox;

    Button5: TButton;

    GroupBox4: TGroupBox;

    GroupBox5: TGroupBox;

    Memo1: TMemo;

    GroupBox6: TGroupBox;

    RadioButton1: TRadioButton;

:12pt">    RadioButton2: TRadioButton;

    RadioButton3: TRadioButton;

    Label6: TLabel;

    Label7: TLabel;

    Label8: TLabel;

    Edit6: TEdit;

    Edit7: TEdit;

    Edit8: TEdit;

    Button10: TButton;

    procedure Button1Click(Sender: TObject);

    procedure Button10Click(Sender: TObject);

    procedure Button3Click(Sender: TObject);

    procedure Button4Click(Sender: TObject);

    procedure Button5Click(Sender: TObject);

    procedure RadioButton1Click(Sender: TObject);

    procedure RadioButton2Click(Sender: TObject);

    procedure RadioButton3Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

Type

  Kniga = Record

      Avtor : String[50];

      Name : String[50];

      GodI : Integer;

      Izdat : String[50];

      KolS : Integer;

    End;

var

  Form1: TForm1;

  FileKn : File Of Kniga;

  st, vr : Kniga;

  putF, putOt : String;

 

implementation

 

 

{$R *.dfm}

 

procedure TForm1.Button1Click(Sender: TObject);

Var

  k : Integer;

begin

 

  //Привязка переменной  к реальному файлу

  AssignFile(FileKn,putF);

 

  //Чтение файла для  добавления элементов

  Reset(FileKn);

 

  //Считывание информации  о книге

  st.Avtor := Form1.Edit5.Text;

  st.Name := Form1.Edit1.Text;

  st.GodI := StrToInt(Form1.Edit2.Text);

  st.Izdat := Form1.Edit3.Text;

  st.KolS := StrToInt(Form1.Edit4.Text);

 

  //Перемещает указатель на последнюю запись в файле

  While Not Eof(FileKn) Do

  Read(FileKn,vr);

 

  //Запись данных в файл

  Write(FileKn,st);

 

  //Будем еще добавлять  данные или нет

  If MessageDlg('Добавить еще одну книгу?', mtConfirmation, [mbYes, mbNo],0)=mrNo

    Then

      Begin

        //Блокируем  поля ввода и кнопку добавления  записей

        //и выходим из процедуры

        Form1.Button1.Enabled := False;

        Form1.Edit1.Clear;

        Form1.Edit2.Clear;

        Form1.Edit3.Clear;

        Form1.Edit4.Clear;

        Form1.Edit5.Clear;

        Form1.GroupBox2.Enabled := False;

        Exit;

      End;

 

  //Очищаем поля для  ввода других данных

  Form1.Edit1.Clear;

  Form1.Edit2.Clear;

  Form1.Edit3.Clear;

  Form1.Edit4.Clear;

  Form1.Edit5.Clear;

 

  //Закрытие файла

  CloseFile(FileKn);

 

end;

 

procedure TForm1.Button10Click(Sender: TObject);

Var

  k : Integer;

  sn, sa : String;

begin

 

  //Привязка переменной  к реальному файлу

  AssignFile(FileKn, putOt);

 

  //Открытие файла для  чтения

  Reset(FileKn);

 

  //Поиск книги данного  автора

  If Form1.RadioButton1.Checked = True

    Then

      Begin

        //Поиск  нужной информации и вывод  ее на экран

        k := 0;

        Form1.Memo1.Lines.Clear;

        While Not Eof(FileKn) Do

        Begin

          Read(FileKn,st);

          If st.Avtor = Form1.Edit6.Text

            Then

              Begin

                Form1.Memo1.Lines.Add('- Книга:  ' + st.Name + ';');

                k := k+1;

              End;

 

        End;

 

        //Вывод  информации

        ShowMessage('Найдено  совпадений - '+ IntToStr(k));

 

        If k = 0

          Then

            Begin

              Form1.Memo1.Lines.Add('Поиск не дал результатов');

              Form1.Memo1.Lines.Add('попробуйте повторить  запрос с другими данными');

            End;

      End;

 

 

  //Поиск книги наибольшим  количеством страниц

  If Form1.RadioButton2.Checked = True

    Then

      Begin

        //очистка поля результата

Конрольная работа по "Программированию"