Разработка информационной системы "Библиотека"

 

Реферат


Объектом проектирования служит программное обеспечение.

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

. Вести базу данных книг;

. Предоставлять возможность работать с данными базы данных;

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

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

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

Содержание


Реферат

1. Введение

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

3. Разработка программы

3.1 Системный анализ предметной области

3.2 Структура хранимой информации

3.3 Подключение к информации и ее отображение

4. Описание пользовательского интерфейса

5. Вывод

6. Список используемой литературы

Приложение А


1. Введение


C++ (Си++) - компилируемый статически типизированный язык программирования общего назначения. Язык возник в начале 1980-х годов, когда сотрудник фирмы Bell Laboratories Бьёрн Страуструп придумал ряд усовершенствований к языку Си под собственные нужды. До начала официальной стандартизации язык развивался в основном силами Страуструпа в ответ на запросы программистского сообщества. В 1998 году был ратифицирован международный стандарт языка C++: ISO/IEC 14882: 1998 "Standard for the C++ Programming Language"; после принятия технических исправлений к стандарту в 2003 году - нынешняя версия этого стандарта - ISO/IEC 14882: 2003. В настоящее время все большее значение получает автоматизация процессов, связанных с бытовыми услугами для удобства и уменьшения затрат на обслуживание. Вследствие этого появляется необходимость в разработке универсальных систем, позволяющих довольно легко обрабатывать информацию, а также генерировать необходимые отчеты.

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

В качестве среды разработки базы данных была выбрана СУБД MSSQL Server. Эта СУБД была выбрана в качестве инструмента потому, что она способна работать на серверной основе, и имеет большие функциональные возможности. В качестве языка программирования был выбран язык С++. Данная среда позволяет легко работать с базой данных, созданной в MSSQL Server, редактировать и дополнять ее.

Язык SQL (Structured Query Language) в настоящее время стал фактически стандартным языком доступа к реляционным базам данных. Целью стандартизации является переносимость приложений между различными СУБД.

Реализация в SQL концепции операции, ориентированных на табличное представление данных, позволило создать компактный язык с небольшим (менее 30) набором предложений. SQL может использоваться как интерактивный (для выполнения запросов) и как встроенный (для построения прикладных программ). В нем существует:

предложение определения данных (определение баз данных, а также определение и уничтожение таблиц и индексов);

предложение на выбор данных;

предложение управления данными (предоставление и отмена привилегии на доступ данным и др.);

предложение на модификацию данных (добавление, удаление, изменение данных).

Кроме того, предоставляет возможность выполнять в этих предложениях:

арифметические вычисления, обработку текстовых строк;

упорядочивание строк, столбцов при выводе содержимого таблиц;

запоминание выводимого по запросу содержимого таблицы;

создание представлений (виртуальных таблиц);

агрегирование данных: группирование данных и применение к этим группам таких операций, как среднее, сумма, максимум, минимум, число элементов.

К инструментальным средствам, позволяющим обеспечить простое и эффективное использование MSSQL Server можно отнести:

Enterprise Manager;Manager;Analyzer.

интерфейс база пользовательский программа

База данных SQL Server - это контейнер объектов, предназначенных для хранения, записи и извлечения данных в безопасном режиме - содержит следующие компоненты:

Таблицы;

Хранимые процедуры;

Индексы;

Представления.


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


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

Сведения о книгах содержат:

? номер УДК;

? фамилию и инициалы автора;

? название;

? год издания;

? количество экземпляров данной книги в библиотеке.

При работе с системой пользователь должен иметь возможность решать следующие задачи:

? начальное формирование данных о всех книгах в библиотеке в виде списка;

? добавление данных о книгах, вновь поступающих в библиотеку;

? удаление данных о списываемых книгах;

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

3. Разработка программы


3.1 Системный анализ предметной области


Программа выполнена в среде Borland C++Builder 6 на языке программирования C++ с использованием визуальных средств. Программа имитирует Справочник филателиста.

Необходимо разработать программу для учета марок и коллекционеров.

Данная программа состоит из базы данных включающей в себя одну таблицу:

Книги:

Øномер УДК

Øфамилию и инициалы автора

Øназвание

Øгод издания

Øколичество экземпляров данной книги в библиотеке

Данная программа предназначена для:

Всех категорий пользователей, которые хотят ознакомиться со справочником филателиста.

Во время работы с программой пользователь должен иметь возможность решать следующие задачи:

. При необходимости просматривать базу данных.

. Редактировать ранее внесенные данные базы данных.

.Удалять и добавлять записи, в зависимости от цели пользования данной программой.

4.Осуществлять поиск как по одному из параметров так и по всем параметрам одновременно.

3.2 Структура хранимой информации


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

Создаем нашу БД под названием "books" с помощью программы Microsoft Access, которая входит в пакет Microsoft Office. Наша БД состоит из одной таблицы "Books" - содержая информацию о книгах.

Таблица "Books" включает в себя:

ünum - содержит порядковый номер

ünum_udk - содержит номер УДК

üautor - содержит фамилию и инициалы автора

ütitle - содержит название

ücount_in_library - содержит год издания

üyear_print - содержит количество экземпляров данной книги в библиотеке

После создания и заполнения таблиц мы получаем наши исходные данные.


3.3 Подключение к информации и ее отображение


Для подключения и отображения информации в проекте используются следующие компоненты:

DBGrid

Описание компонентов:

Компонент DBGrid обеспечивает табличный способ отображения на экране строк данных из компонентов ADOTable или ADOQuery. Приложение может использовать DBGrid для отображения, вставки, уничтожения, редактирования данных БД.

Компонент ADOConnection предназначен для управления соединением с объектами хранилища данных ADO. Он обеспечивает доступ к хранилищу данных компонентам ADO, инкапсулирующим набор данных (см. ниже).

Применение этого компонента дает разработчику ряд преимуществ:

все компоненты доступа к данным ADO обращаются к хранилищу данных через одно соединение;

возможность напрямую задать объект провайдера соединения;

доступ к объекту соединения ADO;

возможность выполнять команды ADO;

выполнение транзакций;

расширенное управление соединением при помощи методов-обработчиков событий.

Компонент DataSource действует как посредник между компонентами TDataSet (TTable, TQuery, TStoredProc) и компонентами Data Controls - элементами управления, обеспечивающими представление данных на форме. Компоненты TDataSet управляют связями с библиотекой Borland Database Engine (BDE), а компонент DataSource управляет связями с данными в компонентах Data Controls.

Компонент TADOQuery предназначен для выполнения SQL-запросов в хранилище данных ADO (ADO data store).

Компонент выполняет запросы SELECT, INSERT, DELETE, UPDATE, ALTER TABLE и CREATE TABLE. Также исполняет хранимые процедуры.

Объект ADOCommand представляет команду (запрос или выражение), которая может быть обработана источником данных. Команды могут быть выполнены методом Execute, используемым в ADOCommand. TADOCommand чаще всего используется для исполнения команд языка определения данных (DDL) SQL.


4. Описание пользовательского интерфейса


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

Интерфейс программы после запуска:


Рисунок 1 - Окно программы


Основные меню программы:


Меню "Выход"

Рисунок 2 - Выход


Меню "Правка"

Рисунок 3 - Правка


Меню "Справка"

Рисунок 4 - Справка


О программе - содержит информацию о программе, а именно: название продукта, описание, авторские права и название организации.


Рисунок 5 - О программе


Работа с данными:

Доступ к данным осуществляется непосредственно при запуске программы.

Программа производит начальное формирование данных о всех книгах в библиотеке в виде списка.

Для добавления данных необходимо открыть форму добавления данных.

Это можно сделать выбрав в меню "Правка" пункт "Добавить книгу" или выбрать этот же пункт из контекстного меню таблицы.

Для успешного добавления новой записи необходимо заполнить все поля формы.

В поля "год издания" и "количество в библиотеке" допускается вводить только числа.


Рисунок 6 - Добавление книги


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


Рисунок 7 - Редактирование книги


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

После этого будет удалена книга запись о которой в данный момент выделенная в таблице просмотра списка книг.

Для осуществления поиска выберите пункт "Поиск." в меню Правка или из контекстного меню таблицы.

Поиск может осуществляться как по любому из параметров так и по всем параметрам одновременно.

В поля "Год издания" и "Количество в библиотеке" допускается вводить только целые числа.


Рисунок 8 - Поиск

5. Вывод


Результатом выполнения этой курсовой работы стала пользовательская программа "Библиотека" Она написана на высокоуровневом языке программирования - C++, используя среду разработки программного обеспечения Borland C++Builder 6. Программа имеет простой и понятный интерфейс легка в использовании. Программа так же легка в использовании. Она объединяет в себе простоту, доступность и большой набор различных возможностей и не требует от пользователя глубоких знаний работы за компьютером.

В ходе разработки программы мы научились использовать многие возможности C++ и создавать наиболее оптимальные программы для пользователей.

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

6. Список используемой литературы


1.Wikipedia.org/

2.books.net-soft.ru/

.board.com/

4.<#"center">Приложение А


Исходный код программы

frmMain (Unit1. cpp)

// ---------------------------------------------------------------------------

#include <vcl. h>

#pragma hdrstop

#include "Unit1. h" // frmMain

#include "Unit2. h" // frmSearch

#include "Unit3. h" // frmEdit

#include "Unit4. h" // frmAbout

#include "UserFunctions_unit. h"

// ---------------------------------------------------------------------------

#pragma package (smart_init)

#pragma resource "*. dfm"*frmMain;frmEditState; // Объявление переменной, указывающей на тип формы frmEdit (добавление данных или редактирование)sortedbooks = false; // переменная, указывающая были ли отсортированы книгиfunc; // объявление объекта типа MyFunctions

//

// ---------------------------------------------------------------------------

__fastcall TfrmMain:: TfrmMain (TComponent* Owner)

: TForm (Owner)

{

// Задаем начальную надпись в панели статуса->Panels->Items [0] - >Text = " Просмотр списка всех книг в библиотеке";// Перехватываем возможные ошибки во время выполнения блока программного кода

{TTQuery1 = "select num_udk, autor, title, year_print, count_in_library from Books"; // Строковая переменная, содержащая SQL запрос к базе данных->SQL->Clear (); // очистить SQL-запрос->SQL->Add (TTQuery1); // Устанавливаем значение SQL-запроса в объект ADOQuery1->Open (); // активировать SQL-запрос

}(EDatabaseError&) // Обрабатываем возможное исключение (ошибку)

{>MessageBox ("Ошибка при работе с базой данных", "Вывод записей", MB_OK + MB_ICONINFORMATION); // Выводим сообщение

}. ChangeCollName (DBGrid1); // Изменение названий столбцов

}

// ---------------------------------------------------------------------------

// Функция завершения работы приложения__fastcall TfrmMain:: mnuExitClick (TObject *Sender)

{>Close (); // Закрыть приложение

}

// ---------------------------------------------------------------------------

// Функция вызова формы поиска__fastcall TfrmMain:: mnuSearchClick (TObject *Sender)

{>Show (); // Открытие формы поиска

}

// ---------------------------------------------------------------------------

// Функция вызова формы поиска__fastcall TfrmMain:: popmnuSearchClick (TObject *Sender)

{>Show (); // Открытие формы поиска

}

// ---------------------------------------------------------------------------

// Функция вызова формы добавления книги__fastcall TfrmMain:: mnuAddClick (TObject *Sender)

{(! frmEdit->Showing) // если форма еще не открыта

{= 0; // устанавливаем состояние формы, указывающее на функции добавления книги>Show (); // Открытие формы добавления книги

}

}

// ---------------------------------------------------------------------------

// Функция вызова формы редактирования книги__fastcall TfrmMain:: mnuEditBookClick (TObject *Sender)

{(! frmEdit->Showing) // если форма еще не открыта

{= 1; // устанавливаем состояние формы, указывающее на функции редактирования книги>Show (); // Открытие формы добавления книги

}

}

// ---------------------------------------------------------------------------

// Функция вызова формы добавления книги__fastcall TfrmMain:: popmnuAddClick (TObject *Sender)

{(! frmEdit->Showing) // если форма еще не открыта

{= 0; // устанавливаем состояние формы, указывающее на функции добавления книги>Show (); // Открытие формы добавления книги

}

}

// ---------------------------------------------------------------------------

// Функция вызова формы редактирования книги__fastcall TfrmMain:: popmnuEditBookClick (TObject *Sender)

{(! frmEdit->Showing) // если форма еще не открыта

{= 1; // устанавливаем состояние формы, указывающее на функции редактирования книги>Show (); // Открытие формы добавления книги

}

}

// ---------------------------------------------------------------------------

// Функция вызова метода удаления книги__fastcall TfrmMain:: mnuDeleteClick (TObject *Sender)

{>DeleteBook (); // вызов функции удаления книги

}

// ---------------------------------------------------------------------------

// Функция удаления книги__fastcall TfrmMain:: DeleteBook ()

{(Application->MessageBox ("Вы действительно жедаете удалить книгу?", "Удаление записи о книге", MB_OKCANCEL + MB_ICONWARNING) == IDOK) // Вызываем MessageBox. Если пользователь нажмет на кнопку OK

{

// формирование SQL запроса // то продолжаем выполнять действияQueryDelete = "DELETE FROM Books" \

" WHERE num_udk='"+DBGrid1->Fields [0] - >AsString+"' and autor='"+DBGrid1->Fields [1] - >AsString+"'and title='"+DBGrid1->Fields [2] - >AsString+"'and year_print="+DBGrid1->Fields [3] - >AsString+" and count_in_library="+DBGrid1->Fields [4] - >AsString; // Строковая переменная, содержащая SQL запрос к базе данных// Перехватываем возможные ошибки во время выполнения блока программного кода

{->CommandText = QueryDelete; // Устанавливаем значение SQL-запроса в объект ADOCommand1->Execute (); // выполнение SQL-запрос

// Обновление списка книг в таюлице DBGrid1TTQuery1 = "select num_udk, autor, title, year_print, count_in_library from Books"; // Строковая переменная, содержащая SQL запрос к базе данных->SQL->Clear (); // очистить SQL-запрос->SQL->Add (TTQuery1); // Устанавливаем значение SQL-запроса в объект ADOQuery1->Open (); // активировать SQL-запрос. ChangeCollName (DBGrid1); // Изменение названий столбцов

}(EDatabaseError&) // Обрабатываем возможное исключение (ошибку)

{>MessageBox ("Ошибка при работе с базой данных", "Вывод записей", MB_OK + MB_ICONINFORMATION); // Выводим сообщение

}

}

}

// ---------------------------------------------------------------------------

// Функция вызова метода удаления книги__fastcall TfrmMain:: popmnuDeleteClick (TObject *Sender)

{>DeleteBook (); // вызов функции удаления книги

}

// ---------------------------------------------------------------------------

// Функция вызова формы frmAbout__fastcall TfrmMain:: mnuAboutClick (TObject *Sender)

{>Show (); // Открытие формы frmAbout

}

// ---------------------------------------------------------------------------

// Функция выводит список всех книг в библиотеке__fastcall TfrmMain:: mnuShowAllClick (TObject *Sender)

{TTQuery1 = "select num_udk, autor, title, year_print, count_in_library from Books"; // Строковая переменная, содержащая SQL запрос к базе данных->SQL->Clear (); // очистить SQL-запрос->SQL->Add (TTQuery1); // Устанавливаем значение SQL-запроса в объект ADOQuery1->Open (); // активировать SQL-запрос. ChangeCollName (DBGrid1); // Изменение названий столбцов>mnuShowAll->Visible = false; // скрываем пункты меню>popmnuShowAll->Visible = false; // так как при выведенном полном списке книг они не востребованы->Panels->Items [0] - >Text = " Просмотр списка всех книг в библиотеке"; // Изменяем текст на панели статуса

}

// ---------------------------------------------------------------------------

// Функция выводит список всех книг в библиотеке__fastcall TfrmMain:: popmnuShowAllClick (TObject *Sender)

{TTQuery1 = "select num_udk, autor, title, year_print, count_in_library from Books"; // Строковая переменная, содержащая SQL запрос к базе данных->SQL->Clear (); // очистить SQL-запрос->SQL->Add (TTQuery1); // Устанавливаем значение SQL-запроса в объект ADOQuery1->Open (); // активировать SQL-запрос. ChangeCollName (DBGrid1); // Изменение названий столбцов>mnuShowAll->Visible = false; // скрываем пункты меню>popmnuShowAll->Visible = false; // так как при выведенном полном списке книг они не востребованы->Panels->Items [0] - >Text = " Просмотр списка всех книг в библиотеке"; // Изменяем текст на панели статуса

}

// ---------------------------------------------------------------------------

// Функция открытия файла справки help. chm__fastcall TfrmMain:: mnuHelpContentClick (TObject *Sender)

{FILE_HELP_NAME_STR = "help. chm"; // Задаем имя файла справки(FileExists (FILE_HELP_NAME_STR)) // Если файл help. chm присутствует в каталоге программы

{(Handle, "open", "help. chm", 0, 0, SW_SHOWNORMAL); // запускаем на выполнение;

}

{("Файл справки help. chm в папке с исполняемым файлом не найден. Для исправления данной ситуации можно либо переустановить программу, либо искать файл самостоятельно. ");;

}

}

// ---------------------------------------------------------------------------

// Функция вызова метода сортировки книг__fastcall TfrmMain:: mnuSortByYearClick (TObject *Sender)

{(); // вызов функции сортировки книг

}

// ---------------------------------------------------------------------------

// Функция сортировки книг__fastcall TfrmMain:: SortBook ()

{(! sortedbooks) // Если книги не отсортированны, то проводим сортировку

{TTQuery1 = "select num_udk, autor, title, year_print, count_in_library from Books ORDER BY year_print DESC"; // Строковая переменная, содержащая SQL запрос к базе данных->SQL->Clear (); // очистить SQL-запрос->SQL->Add (TTQuery1); // Устанавливаем значение SQL-запроса в объект ADOQuery1->Open (); // активировать SQL-запрос. ChangeCollName (DBGrid1); // Изменение названий столбцов>Caption = "Отменить сортировку по годам"; // Изменяем названия>Caption = "Отменить сортировку по годам"; // пунктов меню= true; // и значение переменной на обратные

}// Если книги отсортированны, то отменяем сортировку

{TTQuery1 = "select num_udk, autor, title, year_print, count_in_library from Books"; // Строковая переменная, содержащая SQL запрос к базе данных->SQL->Clear (); // очистить SQL-запрос->SQL->Add (TTQuery1); // Устанавливаем значение SQL-запроса в объект ADOQuery1->Open (); // активировать SQL-запрос. ChangeCollName (DBGrid1); // Изменение названий столбцов>Caption = "Упорялочить по годам"; // Изменяем названия>Caption = "Упорялочить по годам"; // пунктов меню= false; // и значение переменной на обратные

}

}

// ---------------------------------------------------------------------------

// Функция вызова метода сортировки книг__fastcall TfrmMain:: popSortByYearClick (TObject *Sender)

{(); // вызов функции сортировки книг

}

// ---------------------------------------------------------------------------

frmMain (Unit1. h)

// ---------------------------------------------------------------------------

#ifndef Unit1H

#define Unit1H

// ---------------------------------------------------------------------------

#include <Classes. hpp>

#include <Controls. hpp>

#include <StdCtrls. hpp>

#include <Forms. hpp>

#include <ADODB. hpp>

#include <DB. hpp>

#include <DBGrids. hpp>

#include <Grids. hpp>

#include <ComCtrls. hpp>

#include <Menus. hpp>

// ---------------------------------------------------------------------------TfrmMain: public TForm

{

__published: // IDE-managed Components*ADOConnection1;*ADOQuery1;*DBGrid1;*DataSource1;*StatusBar1;*MainMenu1;*mnuFile;*mnuExit;*mnuEdit;*mnuAdd;*mnuDelete;*mnuSearch;*N3;*mnuHelp;*mnuHelpContent;*N1;*mnuAbout;*PopupMenu1;*popmnuAdd;*popmnuDelete;*N2;*popmnuSearch;*popmnuEditBook;*mnuEditBook;*ADOCommand1;*ADODataSet1;*mnuShowAll;*popmnuShowAll;*N4;*mnuSortByYear;*N5;*popSortByYear;__fastcall mnuExitClick (TObject *Sender);__fastcall mnuSearchClick (TObject *Sender);__fastcall popmnuSearchClick (TObject *Sender);__fastcall mnuAddClick (TObject *Sender);__fastcall mnuEditBookClick (TObject *Sender);__fastcall popmnuAddClick (TObject *Sender);__fastcall popmnuEditBookClick (TObject *Sender);__fastcall mnuDeleteClick (TObject *Sender);__fastcall DeleteBook ();__fastcall popmnuDeleteClick (TObject *Sender);__fastcall mnuAboutClick (TObject *Sender);__fastcall mnuShowAllClick (TObject *Sender);__fastcall popmnuShowAllClick (TObject *Sender);__fastcall mnuHelpContentClick (TObject *Sender);__fastcall mnuSortByYearClick (TObject *Sender); // Функция удаления выделенной книги__fastcall SortBook ();__fastcall popSortByYearClick (TObject *Sender);: // User declarations: // User declarations

__fastcall TfrmMain (TComponent* Owner);

};

// ---------------------------------------------------------------------------PACKAGE TfrmMain *frmMain;

// ---------------------------------------------------------------------------

#endif

frmSearch (Unit2. cpp)

// ---------------------------------------------------------------------------

#include <vcl. h>

#pragma hdrstop

#include "Unit1. h"

#include "Unit2. h"

#include "UserFunctions_unit. h" // подключение пользовательской функции

// ---------------------------------------------------------------------------

#pragma package (smart_init)

#pragma resource "*. dfm"*frmSearch;bool sortedbooks; // Объявляем общую переменную для форм frmMain, frmEdit и frmSearchfunc2; // объявление объекта типа MyFunctions

// ---------------------------------------------------------------------------

__fastcall TfrmSearch:: TfrmSearch (TComponent* Owner)

: TForm (Owner)

{

}

// ---------------------------------------------------------------------------

// Функция обработки нажатия кнопки btnSearch__fastcall TfrmSearch:: btnSearchClick (TObject *Sender)

{searchOK = false; // переменная, указывающая заполнено ли хоть одно поле для поискаQuerySearch = "SELECT num_udk, autor, title, year_print, count_in_library from Books WHERE "; // Строковая переменная, содержащая SQL запрос к базе данных(txtUdk->Text! = "") // Если txtUdk содержит текст

{= true; // переменной присваиваем true= QuerySearch + "num_udk = '" + txtUdk->Text + "' "; // добкавляем текст поиска к SQL запросу

}(txtAuthor->Text! = "") // Если txtAuthor содержит текст

{(searchOK) QuerySearch = QuerySearch + " and "; // если это не первое заполненное поле= QuerySearch + "autor like '%" + txtAuthor->Text + "%' "; // добкавляем текст поиска к SQL запросу= true; // переменной присваиваем true

}(txtTitle->Text! = "")

{(searchOK) QuerySearch = QuerySearch + " and ";= QuerySearch + "title like '%" + txtTitle->Text + "%' ";= true;

}(txtYear->Text! = "")

{(searchOK) QuerySearch = QuerySearch + " and ";= QuerySearch + "year_print = " + txtYear->Text + " ";= true;

}(txtNum_in_lib->Text! = "")

{(searchOK) QuerySearch = QuerySearch + " and ";= QuerySearch + "count_in_library = " + txtNum_in_lib->Text + " ";= true;

}

// Если хотябы одно текстовое поле заполнено выполняем поиск(txtAuthor->Text! ="" || txtNum_in_lib->Text! ="" || txtTitle->Text! ="" || txtUdk->Text! ="" || txtYear->Text! ="")

{// Перехватываем возможные ошибки во время выполнения блока программного кода

{>ADOQuery1->SQL->Clear (); // очистить SQL-запрос>ADOQuery1->SQL->Add (QuerySearch); // Устанавливаем значение SQL-запроса в объект ADOQuery1>ADOQuery1->Open (); // активировать SQL-запрос

}(EDatabaseError&) // Обрабатываем возможное исключение (ошибку)

{>MessageBox ("Ошибка при выполнении поиска", "Поиск", MB_OK + MB_ICONINFORMATION); // Выводим сообщение

}>mnuShowAll->Visible = true; // Показываем пункты меню "Отобразить все книги">popmnuShowAll->Visible = true; // Показываем пункты меню "Отобразить все книги">Close (); // Закрываем форму поиска>StatusBar1->Panels->Items [0] - >Text = " Результат поиска"; // Изменяем текст в панели статусак>mnuSortByYear->Caption = "Упорялочить по годам"; // Изменяем название пункта сортировки>popSortByYear->Caption = "Упорялочить по годам"; // Изменяем название пункта сортировки= false; // значение переменной - сортировка не проводилась. ChangeCollName (frmMain->DBGrid1); // Изменение названий столбцов

}ShowMessage ("Не заданы параметры поиска"); // Если не заполнено поле поиска выводим сообщение

}

// ---------------------------------------------------------------------------__fastcall TfrmSearch:: btnCleartextClick (TObject *Sender) // Очищаем текстовые поля

{>Text = ""; // Присваиваем текстовым полям пустое значение_in_lib->Text = "";>Text = "";>Text = "";>Text = "";

}

// ---------------------------------------------------------------------------

// Функция обработки ввода текста в поле txtYear__fastcall TfrmSearch:: txtYearKeyPress (TObject *Sender, char &Key)

{

// разрешаем вводить только цифры(! ( (Key >= '0' && Key <= '9') || Key == VK_BACK)) Key = 0x00;

}

// ---------------------------------------------------------------------------

// ---------------------------------------------------------------------------

// Функция обработки ввода текста в поле txtNum__fastcall TfrmSearch:: txtNum_in_libKeyPress (TObject *Sender,&Key)

{

// разрешаем вводить только цифры(! ( (Key >= '0' && Key <= '9') || Key == VK_BACK)) Key = 0x00;

}

// ---------------------------------------------------------------------------

frmSearch (Unit2. h)

// ---------------------------------------------------------------------------

#ifndef Unit2H

#define Unit2H

// ---------------------------------------------------------------------------

#include <Classes. hpp>

#include <Controls. hpp>

#include <StdCtrls. hpp>

#include <Forms. hpp>

// ---------------------------------------------------------------------------TfrmSearch: public TForm

{

__published: // IDE-managed Components*txtUdk;*txtTitle;*txtAuthor;*txtYear;*txtNum_in_lib;*btnSearch;*lblUDK;*lblTitle;*lblAuthor;*lblNum_in_lib;*lblyear;*btnCleartext;__fastcall btnSearchClick (TObject *Sender);__fastcall btnCleartextClick (TObject *Sender);__fastcall txtYearKeyPress (TObject *Sender, char &Key);__fastcall txtNum_in_libKeyPress (TObject *Sender, char &Key);: // User declarations: // User declarations

__fastcall TfrmSearch (TComponent* Owner);

};

// ---------------------------------------------------------------------------PACKAGE TfrmSearch *frmSearch;

// ---------------------------------------------------------------------------

#endif

frmEdit (Unit3. cpp)

// ---------------------------------------------------------------------------

#include <vcl. h>

#pragma hdrstop

#include "Unit3. h"

#include "Unit1. h"

#include "UserFunctions_unit. h"

// ---------------------------------------------------------------------------

#pragma package (smart_init)

#pragma resource "*. dfm"*frmEdit;int frmEditState; // Объявляем общую переменную для форм frmMain, frmEditbool sortedbooks; // Объявляем общую переменную для форм frmMain, frmEdit и frmSearchfunc3; // объявление объекта типа MyFunctions

// ---------------------------------------------------------------------------

__fastcall TfrmEdit:: TfrmEdit (TComponent* Owner)

: TForm (Owner)

{

}

// ---------------------------------------------------------------------------__fastcall TfrmEdit:: FormShow (TObject *Sender)

{(frmEditState == 0) // Если frmEditState равняется 0

{>Caption = "Добавление книги"; // Изменяем заголовок формы

}

{>Caption = "Редактирование книги"; // Изменяем заголовок формы>Caption = "Сохранить изменения"; // Изменяем заголовок кнопки>Text=frmMain->DBGrid1->Fields [0] - >AsString; // заполняем текстовые>Text=frmMain->DBGrid1->Fields [1] - >AsString; // поля значениями из DBGrid1>Text=frmMain->DBGrid1->Fields [2] - >AsString;_in_lib->Text=frmMain->DBGrid1->Fields [4] - >AsString;>Text=frmMain->DBGrid1->Fields [3] - >AsString;

}

}

// ---------------------------------------------------------------------------

// Функция обработки нажатия кнопки__fastcall TfrmEdit:: btnOKClick (TObject *Sender)

{(frmEditState == 0) // Если frmEditState равняется 0

{ // Если заполнены все поля(txtAuthor->Text! ="" && txtNum_in_lib->Text! ="" && txtTitle->Text! ="" && txtUdk->Text! ="" && txtYear->Text! ="")

{ // Формируем SQL запрос на добавление записиQueryAdd = "INSERT INTO Books (num_udk, autor, title, year_print, count_in_library) VALUES ('" \

+txtUdk->Text+"', '"+txtAuthor->Text+"', '"+txtTitle->Text+"', "+txtYear->Text+", "+txtNum_in_lib->Text+"); "; // Строковая переменная, содержащая SQL запрос к базе данных// Перехватываем возможные ошибки во время выполнения блока программного кода

{>ADOCommand1->CommandText = QueryAdd; // Устанавливаем значение SQL-запроса в объект ADOCommand1>ADOCommand1->Execute (); // активировать SQL-запрос

// Обновляем список книг в DBGrid1TTQuery1 = "select num_udk, autor, title, year_print, count_in_library from Books"; // Строковая переменная, содержащая SQL запрос к базе данных>ADOQuery1->SQL->Clear (); // очистить SQL-запрос>ADOQuery1->SQL->Add (TTQuery1); // Устанавливаем значение SQL-запроса в объект ADOQuery1>ADOQuery1->Open (); // активировать SQL-запрос

}(EDatabaseError&) // Обрабатываем возможное исключение (ошибку)

{>MessageBox ("Ошибка при работе с базой данных", "Вывод записей", MB_OK + MB_ICONINFORMATION); // Выводим сообщение

}>mnuSortByYear->Caption = "Упорялочить по годам"; // Устанавливаем новые>popSortByYear->Caption = "Упорялочить по годам"; // заголовки для пунктов меню= false; // значение переменной - сортировка не проводилась. ChangeCollName (frmMain->DBGrid1); // Изменение названий столбцов>Close (); // Закрываем форму

}ShowMessage ("Заполнены не все поля!"); // Если заполнены не все поля выводим сообщение

}if (frmEditState == 1) // Если frmEditState равняется 0

{ // Формируем SQL запрос на обновление записиQueryUpdate = "UPDATE Books SET num_udk='"+txtUdk->Text+"', autor='"+txtAuthor->Text+"', title='"+txtTitle->Text+"', year_print="+txtYear->Text+", count_in_library="+txtNum_in_lib->Text+ \

" WHERE num_udk='"+frmMain->DBGrid1->Fields [0] - >AsString+"' and autor='"+frmMain->DBGrid1->Fields [1] - >AsString+"'and title='"+frmMain->DBGrid1->Fields [2] - >AsString+"'and year_print="+frmMain->DBGrid1->Fields [3] - >AsString+" and count_in_library="+frmMain->DBGrid1->Fields [4] - >AsString; // Строковая переменная, содержащая SQL запрос к базе данных// Перехватываем возможные ошибки во время выполнения блока программного кода

{>ADOCommand1->CommandText = QueryUpdate; // Устанавливаем значение SQL-запроса в объект ADOCommand1>ADOCommand1->Execute (); // активировать SQL-запрос

// Обновляем список книг в DBGrid1TTQuery1 = "select num_udk, autor, title, year_print, count_in_library from Books"; // Строковая переменная, содержащая SQL запрос к базе данных>ADOQuery1->SQL->Clear (); // очистить SQL-запрос>ADOQuery1->SQL->Add (TTQuery1); // Устанавливаем значение SQL-запроса в объект ADOQuery1>ADOQuery1->Open (); // активировать SQL-запрос

}(EDatabaseError&) // Обрабатываем возможное исключение (ошибку)

{>MessageBox ("Ошибка при работе с базой данных", "Вывод записей", MB_OK + MB_ICONINFORMATION); // Выводим сообщение

}>mnuSortByYear->Caption = "Упорялочить по годам"; // Устанавливаем новые>popSortByYear->Caption = "Упорялочить по годам"; // заголовки для пунктов меню= false; // значение переменной - сортировка не проводилась. ChangeCollName (frmMain->DBGrid1); // Изменение названий столбцов>Close (); // Закрываем форму

}

}

// ---------------------------------------------------------------------------

// Функция обработки ввода текста в поле txtYear__fastcall TfrmEdit:: txtYearKeyPress (TObject *Sender, char &Key)

{

// разрешаем вводить только цифры(! ( (Key >= '0' && Key <= '9') || Key == VK_BACK)) Key = 0x00;

}

// ---------------------------------------------------------------------------

// Функция обработки ввода текста в поле txtNum__fastcall TfrmEdit:: txtNum_in_libKeyPress (TObject *Sender, char &Key)

{

// разрешаем вводить только цифры(! ( (Key >= '0' && Key <= '9') || Key == VK_BACK)) Key = 0x00;

}

// ---------------------------------------------------------------------------

frmEdit (Unit3. h)

// ---------------------------------------------------------------------------

#ifndef Unit3H

#define Unit3H

// ---------------------------------------------------------------------------

#include <Classes. hpp>

#include <Controls. hpp>

#include <StdCtrls. hpp>

#include <Forms. hpp>

// ---------------------------------------------------------------------------TfrmEdit: public TForm

{

__published: // IDE-managed Components*txtUdk;*txtTitle;*txtAuthor;*txtYear;*txtNum_in_lib;*btnOK;*lblUDK;*lblTitle;*lblAuthor;*lblNum_in_lib;*lblyear;__fastcall FormShow (TObject *Sender);__fastcall btnOKClick (TObject *Sender);__fastcall txtYearKeyPress (TObject *Sender, char &Key);__fastcall txtNum_in_libKeyPress (TObject *Sender, char &Key);: // User declarations: // User declarations

__fastcall TfrmEdit (TComponent* Owner);

};

// ---------------------------------------------------------------------------PACKAGE TfrmEdit *frmEdit;

// ---------------------------------------------------------------------------

#endif

frmAbout (Unit4. cpp)

// ---------------------------------------------------------------------------

#include <vcl. h>

#pragma hdrstop

#include "Unit4. h"

// ---------------------------------------------------------------------------

#pragma package (smart_init)

#pragma resource "*. dfm"*frmAbout;

// ---------------------------------------------------------------------------

__fastcall TfrmAbout:: TfrmAbout (TComponent* Owner)

: TForm (Owner)

{->Caption = "Программа осуществляет отображение\nи редактирование списка литературы \nсодержащейся в библиотеке";

}

// ---------------------------------------------------------------------------__fastcall TfrmAbout:: FormCreate (TObject *Sender)

{

}

// ---------------------------------------------------------------------------

frmAbout (Unit4. cpp)

// ---------------------------------------------------------------------------

#ifndef Unit4H

#define Unit4H

// ---------------------------------------------------------------------------

#include <Classes. hpp>

#include <Controls. hpp>

#include <StdCtrls. hpp>

#include <Forms. hpp>

// ---------------------------------------------------------------------------TfrmAbout: public TForm

{

__published: // IDE-managed Components*Label1;*Label2;*Label3;*Label4;*Label5;*Label6;*Label7;: // User declarations: // User declarations

__fastcall TfrmAbout (TComponent* Owner);

};

// ---------------------------------------------------------------------------PACKAGE TfrmAbout *frmAbout;

// ---------------------------------------------------------------------------

#endif

UserFunctions_unit. cpp

// ---------------------------------------------------------------------------

#pragma hdrstop

#include "UserFunctions_unit. h"

// ---------------------------------------------------------------------------

#pragma package (smart_init)

// Функция изменения названий столбцовMyFunctions:: ChangeCollName (TDBGrid *DBGrid)

{colname; // строка имени колонкиcollable; // строка присвоения lable колонки на русскомwidth = 0;(int i = 0; i < (DBGrid->FieldCount); i++) // Осуществляем перебор всех столбцов в DBGrid1

{= DBGrid->Fields [i] - >FullName; // получаем имя колонки и присваиваем его переменной(colname == "num_udk") // В слечае совпадения имени колонки в DBGrid и заданной строки

{ // меняем lable колонки на русские названия= "Номер УДК"; // Устанавливаем название колонки=90; // Устанавливаем ширину колонки

}if (colname == "autor") // В слечае совпадения имени колонки в DBGrid и заданной строки

{ // меняем lable колонки на русские названия= "Автор";=220;

}if (colname == "title") // В слечае совпадения имени колонки в DBGrid и заданной строки

{ // меняем lable колонки на русские названия= "Название";=270;

}if (colname == "year_print") // В слечае совпадения имени колонки в DBGrid и заданной строки

{ // меняем lable колонки на русские названия= "Год издания";=90;

}if (colname == "count_in_library") // В слечае совпадения имени колонки в DBGrid и заданной строки

{ // меняем lable колонки на русские названия= "Количество";=90;

}>Fields [i] - >DisplayLabel = collable; // Меняем название столбца в DBGrid на установленное>Columns->Items [i] - >Width = width; // Меняем ширину столбца в DBGrid на установленное>Columns->Items [i] - >Alignment = taLeftJustify; // Меняем выравнивание в столбце DBGrid на выравнивание по левому краю

}

}

UserFunctions_unit. h

// ---------------------------------------------------------------------------

#include <DBGrids. hpp>

#ifndef UserFunctions_unitH

#define UserFunctions_unitHMyFunctions

{: // User declarationsChangeCollName (TDBGrid*);:

};

// ---------------------------------------------------------------------------

#endif


Реферат Объектом проектирования служит программное обеспечение. Цель проекта - разработка оптимальной программы для работы с базой данных. Программа д

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ