Высокоуровневые методы информатики и программирования. 2

 

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

Курсовая работа

Защищена с  оценкой

__________________ 
 

_________________________

(подпись руководителя, дата) 
 
 
 
 

Курсовая  работа

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

«Высокоуровневые  методы информатики  и программирования» 
 

Тема: Разработка интерактивной системы обработки

базы  данных со сведениями о художественной литературе 

Выполнила студентка группы ФИТ 11 В/С

                          Мотрук Р.В.                                    

____________________________________

(дата, подпись) 
 
 
 
 
 
 
 
 

Москва  – 2011 
 

Содержание 
 
 
 
 
 
 
 
 
 
 
 
 
 

Введение

 

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

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

База  данных спроектирована в СУБД Microsoft Access. Для разработки самой системы, был использован объектно- ориентированный язык программирования Borland Delphi. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

  1. Цель  курсовой работы
 

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

      К основным требованиям, предъявляемым  к системе, относятся:

    • возможность поиска необходимой книги в базе;
    • возможность оформления и  вывода на печать заказа;
    • добавление новых записей в БД;
    • удаление записей из БД.
  1. Задание на выполнение КР по разработке данных со сведениями о художественной литературе
 

Разработать базу данных в СУБД Microsoft Access для хранения и обработки данных заданной структуры. Записи должны содержать данные различных типов.

  1. Состав и назначения системы со сведениями о художественной литературе
 

Система  обеспечивает:

  1. Просмотр,  удаление, добавление необходимых данных.
  2. Поиск данных по заданным поисковым признакам.
  3. Формирование и вывод на печать заказа.
  4. Использование меню для управления процессом обработки данных.
  5. Возможность входа в систему под логином Администратор.
  1. Процесс разработки интерфейса проекта интерактивной  системы процесса обработки данных со сведениями о художественной литературе.

         4.1 Основные этапы  процесса разработки проекта.

 

Процесс выполнения работы включает следующие этапы:

    1. Разработка структуры записи базы данных
    2. Разработка формы в составе: основное меню,компоненты доступа к базе данных, управление ведением базы данных и отображением данных.
    3. Разработка меню для управления приложением в процессе его использования
    4. Редактирование компонента типа TDBGrid для показа данных
    5. Разработка методов для:
      • Отбора данных из базы данных по условию, определенных с помощью запросов.
      • Непосредственного допуска к записям базы данных с целью:
          • Удаления записей
          • Добавления записей
      1. Разработка  структуры записи таблицы базы данных.
 

Для разработки структуры записи базы данных надо войти в СУБД Microsoft Access. Выполнить команду Файл/Создать/Новая БД. Далее будет предложение сохранить новую базу данных. После сохранения необходимо перейти в режим конструктора для создания таблиц. При выборе режима конструктора таблиц выводится окно Таблица 1: таблица, в котором определяется структура таблицы базы данных.

Для определения  поля в окне Таблица заполняются поля Имя поля, Тип данных, а также свойства поля в разделе Свойства поля . На вкладке Общие представлены строки свойств поля, в том числе максимальный размер, подпись, которая выводится в заголовке столбца, значение по умолчанию и другие. На вкладке Подстановка выбирается тип элемента управления: поле, список или поле со списком.

        1. Таблицы в Access
 

                                          Рис.1.  создание таблицы №1.

                       Рис.2.  создание таблицы  №2 . 

               Рис.3.  создание таблицы №3. 
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           

                 
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           

               Рис.4.  создание таблицы №4.  
           

                 
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           

               Рис.5.  создание таблицы №5.  
           
           
           
           
           
           
           
           
           
           
           
           
           
           

                 
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           

                             Рис.6.  создание таблицы №6. 

  1. Подключение базы данных в Delphi
 

Для подключения  базы данных, необходимо выбрать элемент  Adoconnection во вкладке ADO, разместить его на форме и в свойстве ConnectionString прописать путь к базе.

    Рис.7. Элемент Adoconnection.

      5.1 Методы для поиска данных

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

Рис.8 Окно поиска необходимой книги.

      5.2 Методы для оформления заказа

Для оформления заказа необходимо выбрать книгу  и нажать кнопку "Оформить заказ". В появившемся окне заполнить личную информацию и нажать кнопку "Продолжить".

Рис.9 Окно оформления заказа.

Рис.9 Окно заполнения личных данных

      5.3 Методы для добавления и удаления данных

Для редактирования базы данных необходимо зайти в программу под логином Администратор. После этого станет доступным меню "Редактирование БД".

Рис.10 Окно авторизации

Для добавления данных необходимо заполнить все  поля и нажать кнопку "Сохранить".

Рис.11 Окно добавления данных 

Для удаления данных необходимо выбрать название книги и нажать кнопку "Удалить".

Рис.12 Окно добавления данных 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

      Приложение 1.  Листинг программы.

unit Unit1;

interface

uses

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

  Dialogs, Buttons, StdCtrls, Grids, DBGrids, ExtCtrls, DBCtrls, Menus, DB,

  ADODB, Mask; 

type

  TForm1 = class(TForm)

    Panel1: TPanel;

    SpeedButton1: TSpeedButton;

    SpeedButton2: TSpeedButton;

    SpeedButton3: TSpeedButton;

    SpeedButton4: TSpeedButton;

    SpeedButton5: TSpeedButton;

    SpeedButton6: TSpeedButton;

    SpeedButton7: TSpeedButton;

    SpeedButton8: TSpeedButton;

    SpeedButton9: TSpeedButton;

    SpeedButton10: TSpeedButton;

    SpeedButton11: TSpeedButton;

    SpeedButton12: TSpeedButton;

    SpeedButton13: TSpeedButton;

    SpeedButton14: TSpeedButton;

    SpeedButton15: TSpeedButton;

    SpeedButton16: TSpeedButton;

    SpeedButton17: TSpeedButton;

    SpeedButton18: TSpeedButton;

    SpeedButton19: TSpeedButton;

    SpeedButton20: TSpeedButton;

    SpeedButton21: TSpeedButton;

    SpeedButton22: TSpeedButton;

    SpeedButton23: TSpeedButton;

    SpeedButton24: TSpeedButton;

    SpeedButton25: TSpeedButton;

    SpeedButton26: TSpeedButton;

    SpeedButton27: TSpeedButton;

    SpeedButton28: TSpeedButton;

    SpeedButton29: TSpeedButton;

    SpeedButton30: TSpeedButton;

    DBGrid1: TDBGrid;

    BitBtn1: TBitBtn;

    MainMenu1: TMainMenu;

    N1: TMenuItem;

    Label2: TLabel;

    DBLookupComboBox1: TDBLookupComboBox;

    ADOQuery1: TADOQuery;

    DataSource1: TDataSource;

    DataSource3: TDataSource;

    ADOQuery3: TADOQuery;

    Button2: TButton;

    Panel2: TPanel;

    DBEdit1: TDBEdit;

    Label1: TLabel;

    Label3: TLabel;

    Label4: TLabel;

    DBEdit2: TDBEdit;

    Label5: TLabel;

    DBEdit3: TDBEdit;

    Button1: TButton;

    Label6: TLabel;

    DBEdit4: TDBEdit;

    Label7: TLabel;

    DBEdit5: TDBEdit;

    ADOConnection1: TADOConnection;

    N2: TMenuItem;

    N3: TMenuItem;

    N4: TMenuItem;

    procedure N3Click(Sender: TObject);

    procedure N2Click(Sender: TObject);

    procedure DBLookupComboBox1CloseUp(Sender: TObject);

    procedure SpeedButton14Click(Sender: TObject);

    procedure SpeedButton1Click(Sender: TObject);

    procedure SpeedButton2Click(Sender: TObject);

    procedure SpeedButton3Click(Sender: TObject);

    procedure SpeedButton4Click(Sender: TObject);

    procedure SpeedButton5Click(Sender: TObject);

    procedure SpeedButton6Click(Sender: TObject);

    procedure SpeedButton7Click(Sender: TObject);

    procedure SpeedButton8Click(Sender: TObject);

    procedure SpeedButton9Click(Sender: TObject);

    procedure SpeedButton10Click(Sender: TObject);

    procedure SpeedButton11Click(Sender: TObject);

    procedure SpeedButton12Click(Sender: TObject);

    procedure SpeedButton13Click(Sender: TObject);

    procedure SpeedButton15Click(Sender: TObject);

    procedure SpeedButton16Click(Sender: TObject);

    procedure SpeedButton17Click(Sender: TObject);

    procedure SpeedButton18Click(Sender: TObject);

    procedure SpeedButton19Click(Sender: TObject);

    procedure SpeedButton20Click(Sender: TObject);

    procedure SpeedButton21Click(Sender: TObject);

    procedure SpeedButton22Click(Sender: TObject);

    procedure SpeedButton23Click(Sender: TObject);

    procedure SpeedButton24Click(Sender: TObject);

    procedure SpeedButton25Click(Sender: TObject);

    procedure SpeedButton26Click(Sender: TObject);

    procedure SpeedButton27Click(Sender: TObject);

    procedure SpeedButton28Click(Sender: TObject);

    procedure SpeedButton29Click(Sender: TObject);

    procedure SpeedButton30Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure DBGrid1CellClick(Column: TColumn);

    procedure FormCreate(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    procedure N1Click(Sender: TObject);

    procedure N4Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end; 

var

  Form1: TForm1; 

implementation 

uses Unit2, Unit3, Unit4, Unit5; 

{$R *.dfm} 
 

procedure TForm1.N3Click(Sender: TObject);

begin

label2.Visible:=true;

DBLookupComboBox1.Visible:=true;

end; 

procedure TForm1.N2Click(Sender: TObject);

begin

//label2.Visible:=false;

//DBLookupComboBox1.Visible:=false;

  form4.Show;

end; 

procedure TForm1.DBLookupComboBox1CloseUp(Sender: TObject);

begin

   if dblookupcombobox1.text<> '' then

   begin

adoquery3.Active:=false;

adoquery3.SQL.Clear; 

adoquery3.SQL.Add('SELECT Книга.Название, Книга.Автор, Книга.Год_издания, Книга.Цена, Жанр.Жанр, Магазин.Название, Переплет.Переплет');

adoquery3.SQL.Add('FROM Переплет INNER JOIN (Магазин INNER JOIN ((Жанр INNER JOIN Книга ON Жанр.ID_жанр = Книга.ID_жанр) INNER JOIN книга_магазин ON Книга.ID_книга = книга_магазин.ID_книга)');

adoquery3.SQL.Add('ON Магазин.ID_магазин = книга_магазин.ID_магазин) ON Переплет.ID_переплет = Книга.ID_переплет WHERE Книга.ID_книга='+inttostr(dblookupcombobox1.KeyValue));

adoquery3.Active:=true;

end; 
 

  end; 
 

procedure TForm1.SpeedButton14Click(Sender: TObject);

begin

adoquery3.Active:=false;

adoquery3.SQL.Clear;

adoquery3.SQL.Add('SELECT Книга.Название, Книга.Автор, Книга.Год_издания, Книга.Цена, Жанр.Жанр, Магазин.Название, Переплет.Переплет');

adoquery3.SQL.Add('FROM Переплет INNER JOIN (Магазин INNER JOIN ((Жанр INNER JOIN Книга ON Жанр.ID_жанр = Книга.ID_жанр) INNER JOIN книга_магазин ON Книга.ID_книга = книга_магазин.ID_книга)');

adoquery3.SQL.Add('ON Магазин.ID_магазин = книга_магазин.ID_магазин) ON Переплет.ID_переплет = Книга.ID_переплет WHERE Книга.Название LIKE "М%"' );

adoquery3.Active:=true; 

end; 

procedure TForm1.SpeedButton1Click(Sender: TObject);

begin

adoquery3.Active:=false;

adoquery3.SQL.Clear; 

adoquery3.SQL.Add('SELECT Книга.Название, Книга.Автор, Книга.Год_издания, Книга.Цена, Жанр.Жанр, Магазин.Название, Переплет.Переплет');

adoquery3.SQL.Add('FROM Переплет INNER JOIN (Магазин INNER JOIN ((Жанр INNER JOIN Книга ON Жанр.ID_жанр = Книга.ID_жанр) INNER JOIN книга_магазин ON Книга.ID_книга = книга_магазин.ID_книга)');

adoquery3.SQL.Add('ON Магазин.ID_магазин = книга_магазин.ID_магазин) ON Переплет.ID_переплет = Книга.ID_переплет WHERE Книга.Название LIKE "А%"' );

adoquery3.Active:=true; 

end; 

procedure TForm1.SpeedButton2Click(Sender: TObject);

begin

adoquery3.Active:=false;

adoquery3.SQL.Clear;

adoquery3.SQL.Add('SELECT Книга.Название, Книга.Автор, Книга.Год_издания, Книга.Цена, Жанр.Жанр, Магазин.Название, Переплет.Переплет');

adoquery3.SQL.Add('FROM Переплет INNER JOIN (Магазин INNER JOIN ((Жанр INNER JOIN Книга ON Жанр.ID_жанр = Книга.ID_жанр) INNER JOIN книга_магазин ON Книга.ID_книга = книга_магазин.ID_книга)');

adoquery3.SQL.Add('ON Магазин.ID_магазин = книга_магазин.ID_магазин) ON Переплет.ID_переплет = Книга.ID_переплет WHERE Книга.Название LIKE "Б%"' );

adoquery3.Active:=true; 

end; 

procedure TForm1.SpeedButton3Click(Sender: TObject);

begin

adoquery3.Active:=false;

adoquery3.SQL.Clear;

adoquery3.SQL.Add('SELECT Книга.Название, Книга.Автор, Книга.Год_издания, Книга.Цена, Жанр.Жанр, Магазин.Название, Переплет.Переплет');

adoquery3.SQL.Add('FROM Переплет INNER JOIN (Магазин INNER JOIN ((Жанр INNER JOIN Книга ON Жанр.ID_жанр = Книга.ID_жанр) INNER JOIN книга_магазин ON Книга.ID_книга = книга_магазин.ID_книга)');

adoquery3.SQL.Add('ON Магазин.ID_магазин = книга_магазин.ID_магазин) ON Переплет.ID_переплет = Книга.ID_переплет WHERE Книга.Название LIKE "В%"' );

adoquery3.Active:=true; 

end; 

procedure TForm1.SpeedButton4Click(Sender: TObject);

begin

adoquery3.Active:=false;

adoquery3.SQL.Clear;

adoquery3.SQL.Add('SELECT Книга.Название, Книга.Автор, Книга.Год_издания, Книга.Цена, Жанр.Жанр, Магазин.Название, Переплет.Переплет');

adoquery3.SQL.Add('FROM Переплет INNER JOIN (Магазин INNER JOIN ((Жанр INNER JOIN Книга ON Жанр.ID_жанр = Книга.ID_жанр) INNER JOIN книга_магазин ON Книга.ID_книга = книга_магазин.ID_книга)');

adoquery3.SQL.Add('ON Магазин.ID_магазин = книга_магазин.ID_магазин) ON Переплет.ID_переплет = Книга.ID_переплет WHERE Книга.Название LIKE "Г%"' );

adoquery3.Active:=true; 

end; 

procedure TForm1.SpeedButton5Click(Sender: TObject);

begin

adoquery3.Active:=false;

adoquery3.SQL.Clear;

adoquery3.SQL.Add('SELECT Книга.Название, Книга.Автор, Книга.Год_издания, Книга.Цена, Жанр.Жанр, Магазин.Название, Переплет.Переплет');

adoquery3.SQL.Add('FROM Переплет INNER JOIN (Магазин INNER JOIN ((Жанр INNER JOIN Книга ON Жанр.ID_жанр = Книга.ID_жанр) INNER JOIN книга_магазин ON Книга.ID_книга = книга_магазин.ID_книга)');

adoquery3.SQL.Add('ON Магазин.ID_магазин = книга_магазин.ID_магазин) ON Переплет.ID_переплет = Книга.ID_переплет WHERE Книга.Название LIKE "Д%"' );

adoquery3.Active:=true; 

end; 

procedure TForm1.SpeedButton6Click(Sender: TObject);

begin

adoquery3.Active:=false;

adoquery3.SQL.Clear;

adoquery3.SQL.Add('SELECT Книга.Название, Книга.Автор, Книга.Год_издания, Книга.Цена, Жанр.Жанр, Магазин.Название, Переплет.Переплет');

adoquery3.SQL.Add('FROM Переплет INNER JOIN (Магазин INNER JOIN ((Жанр INNER JOIN Книга ON Жанр.ID_жанр = Книга.ID_жанр) INNER JOIN книга_магазин ON Книга.ID_книга = книга_магазин.ID_книга)');

adoquery3.SQL.Add('ON Магазин.ID_магазин = книга_магазин.ID_магазин) ON Переплет.ID_переплет = Книга.ID_переплет WHERE Книга.Название LIKE "Е%"' );

adoquery3.Active:=true; 

end; 

procedure TForm1.SpeedButton7Click(Sender: TObject);

begin

adoquery3.Active:=false;

adoquery3.SQL.Clear;

adoquery3.SQL.Add('SELECT Книга.Название, Книга.Автор, Книга.Год_издания, Книга.Цена, Жанр.Жанр, Магазин.Название, Переплет.Переплет');

adoquery3.SQL.Add('FROM Переплет INNER JOIN (Магазин INNER JOIN ((Жанр INNER JOIN Книга ON Жанр.ID_жанр = Книга.ID_жанр) INNER JOIN книга_магазин ON Книга.ID_книга = книга_магазин.ID_книга)');

adoquery3.SQL.Add('ON Магазин.ID_магазин = книга_магазин.ID_магазин) ON Переплет.ID_переплет = Книга.ID_переплет WHERE Книга.Название LIKE "Ё%"' );

adoquery3.Active:=true; 

end; 

procedure TForm1.SpeedButton8Click(Sender: TObject);

begin

adoquery3.Active:=false;

adoquery3.SQL.Clear;

adoquery3.SQL.Add('SELECT Книга.Название, Книга.Автор, Книга.Год_издания, Книга.Цена, Жанр.Жанр, Магазин.Название, Переплет.Переплет');

adoquery3.SQL.Add('FROM Переплет INNER JOIN (Магазин INNER JOIN ((Жанр INNER JOIN Книга ON Жанр.ID_жанр = Книга.ID_жанр) INNER JOIN книга_магазин ON Книга.ID_книга = книга_магазин.ID_книга)');

adoquery3.SQL.Add('ON Магазин.ID_магазин = книга_магазин.ID_магазин) ON Переплет.ID_переплет = Книга.ID_переплет WHERE Книга.Название LIKE "Ж%"' );

adoquery3.Active:=true; 

end; 

procedure TForm1.SpeedButton9Click(Sender: TObject);

begin

adoquery3.Active:=false;

adoquery3.SQL.Clear;

adoquery3.SQL.Add('SELECT Книга.Название, Книга.Автор, Книга.Год_издания, Книга.Цена, Жанр.Жанр, Магазин.Название, Переплет.Переплет');

adoquery3.SQL.Add('FROM Переплет INNER JOIN (Магазин INNER JOIN ((Жанр INNER JOIN Книга ON Жанр.ID_жанр = Книга.ID_жанр) INNER JOIN книга_магазин ON Книга.ID_книга = книга_магазин.ID_книга)');

adoquery3.SQL.Add('ON Магазин.ID_магазин = книга_магазин.ID_магазин) ON Переплет.ID_переплет = Книга.ID_переплет WHERE Книга.Название LIKE "З%"' );

adoquery3.Active:=true; 

end; 

procedure TForm1.SpeedButton10Click(Sender: TObject);

begin

adoquery3.Active:=false;

adoquery3.SQL.Clear;

adoquery3.SQL.Add('SELECT Книга.Название, Книга.Автор, Книга.Год_издания, Книга.Цена, Жанр.Жанр, Магазин.Название, Переплет.Переплет');

adoquery3.SQL.Add('FROM Переплет INNER JOIN (Магазин INNER JOIN ((Жанр INNER JOIN Книга ON Жанр.ID_жанр = Книга.ID_жанр) INNER JOIN книга_магазин ON Книга.ID_книга = книга_магазин.ID_книга)');

adoquery3.SQL.Add('ON Магазин.ID_магазин = книга_магазин.ID_магазин) ON Переплет.ID_переплет = Книга.ID_переплет WHERE Книга.Название LIKE "И%"' );

adoquery3.Active:=true; 

end; 

procedure TForm1.SpeedButton11Click(Sender: TObject);

begin

adoquery3.Active:=false;

adoquery3.SQL.Clear;

adoquery3.SQL.Add('SELECT Книга.Название, Книга.Автор, Книга.Год_издания, Книга.Цена, Жанр.Жанр, Магазин.Название, Переплет.Переплет');

adoquery3.SQL.Add('FROM Переплет INNER JOIN (Магазин INNER JOIN ((Жанр INNER JOIN Книга ON Жанр.ID_жанр = Книга.ID_жанр) INNER JOIN книга_магазин ON Книга.ID_книга = книга_магазин.ID_книга)');

adoquery3.SQL.Add('ON Магазин.ID_магазин = книга_магазин.ID_магазин) ON Переплет.ID_переплет = Книга.ID_переплет WHERE Книга.Название LIKE "Й%"' );

adoquery3.Active:=true; 

end; 

procedure TForm1.SpeedButton12Click(Sender: TObject);

begin

adoquery3.Active:=false;

adoquery3.SQL.Clear;

adoquery3.SQL.Add('SELECT Книга.Название, Книга.Автор, Книга.Год_издания, Книга.Цена, Жанр.Жанр, Магазин.Название, Переплет.Переплет');

adoquery3.SQL.Add('FROM Переплет INNER JOIN (Магазин INNER JOIN ((Жанр INNER JOIN Книга ON Жанр.ID_жанр = Книга.ID_жанр) INNER JOIN книга_магазин ON Книга.ID_книга = книга_магазин.ID_книга)');

adoquery3.SQL.Add('ON Магазин.ID_магазин = книга_магазин.ID_магазин) ON Переплет.ID_переплет = Книга.ID_переплет WHERE Книга.Название LIKE "К%"' );

adoquery3.Active:=true; 

end; 

procedure TForm1.SpeedButton13Click(Sender: TObject);

begin

adoquery3.Active:=false;

adoquery3.SQL.Clear;

adoquery3.SQL.Add('SELECT Книга.Название, Книга.Автор, Книга.Год_издания, Книга.Цена, Жанр.Жанр, Магазин.Название, Переплет.Переплет');

adoquery3.SQL.Add('FROM Переплет INNER JOIN (Магазин INNER JOIN ((Жанр INNER JOIN Книга ON Жанр.ID_жанр = Книга.ID_жанр) INNER JOIN книга_магазин ON Книга.ID_книга = книга_магазин.ID_книга)');

adoquery3.SQL.Add('ON Магазин.ID_магазин = книга_магазин.ID_магазин) ON Переплет.ID_переплет = Книга.ID_переплет WHERE Книга.Название LIKE "Л%"' );

Высокоуровневые методы информатики и программирования. 2