Главная » Каталог    
рефераты Разделы рефераты
рефераты
рефератыГлавная

рефератыБиология

рефератыБухгалтерский учет и аудит

рефератыВоенная кафедра

рефератыГеография

рефератыГеология

рефератыГрафология

рефератыДеньги и кредит

рефератыЕстествознание

рефератыЗоология

рефератыИнвестиции

рефератыИностранные языки

рефератыИскусство

рефератыИстория

рефератыКартография

рефератыКомпьютерные сети

рефератыКомпьютеры ЭВМ

рефератыКосметология

рефератыКультурология

рефератыЛитература

рефератыМаркетинг

рефератыМатематика

рефератыМашиностроение

рефератыМедицина

рефератыМенеджмент

рефератыМузыка

рефератыНаука и техника

рефератыПедагогика

рефератыПраво

рефератыПромышленность производство

рефератыРадиоэлектроника

рефератыРеклама

рефератыРефераты по геологии

рефератыМедицинские наукам

рефератыУправление

рефератыФизика

рефератыФилософия

рефератыФинансы

рефератыФотография

рефератыХимия

рефератыЭкономика

рефераты
рефераты Информация рефераты
рефераты
рефераты

Теория вычислительных процессов и структур


Министерство
народного образования и науки Республики Беларусь
Белорусская государственная
политехническая академия
Факультет
роботов и робототехнических систем
Кафедра ”ПОВТ
и АС”
КУРСОВАЯ
РАБОТА
по дисциплине: ”Теория вычислительных процессов и
структур”
   на тему: “Работа с базами данных”
                  Выполнил: ст. гр. 307217 Погосский К.В.
                  Принял:      ст. пр. Михалевич А.П.
Минск  2000
Содержание
                                                                                             Стр.
1. Краткое введение в
базы данных                                  3
2. Краткое техническое описание
программы                4
3. Инструкция
пользователю                                             5
4. Заключение                                                                     
5. Литература                                                                       
          Приложение 1 “Текст программы”                         
          Приложение 2 “Структура таблиц”
Краткое
введение в базы данных
Базой данных называется некоторый
набор таблиц, связанных между собой определенной связью для выполнения
различного рода задач, спектр которых охватывает широкие стороны нашего быта. В
настоящее время, время информационных технологий использование систем
управления базами данных становится наиболее проблематично из-за увеличения
требований к ней. Специфика применения баз данных очень велика и сложна по
своей структуре. Исходя из этого можно судить о требуемой мощности программного
обеспечения.
Следует отметить повышенный спрос на программное
обеспечение, позволяющее создавать полноправные системы управления базами
данных. Из огромного количества таких пакетов мне хотелось бы выделить продукт
компании Borland International Inc. “Delphi”. Данная система программирования
достаточна сильна по своей архитектуре. Помимо всего “Delphi” предоставляет нам
довольно широкий набор компонентов, из которых, как из кирпичей, можно создать
полноценную систему управления базой данных (СУБД).
Еще одной не мола важной особенностью “Delphi” является
поддержка международного языка баз данных – SQL. Язык потерпел некоторый
ряд видоизменений и в настоящее время представляет собой мощное ядро,
упрощающее общение с наборами данных. SQL является языком запросов,
который содержит минимальный, и вместе с тем достаточный набор операторов и
представляет мощное средства навигации данными.
Краткое
техническое описание программы
Представленный
программный продукт написан для современных 32-разрядных операционных систем, в
число которых входит Windows 95, Windows 98,
Windows NT.
Программа
предназначена для ведения учета библиотечных книг, позволяет вести учет
отсутствующих книг, просмотру и внесению новых поступлений, просмотру и поиску
интересующих книг.
Программно
реализован поиск необходимой книги по автору, названию книги, ее стилю и т.д.
Интуитивный интерфейс и наличие всплывающих подсказок облегчают ее
использование, позволяют в кратчайшие сроки освоить данный продукт.
Программа
полностью реализована с использованием запросов на языке SQL.
Создание и заполнение таблиц производилось при помощи стандартных пакетов,
таких как Database Desktop, SQL Explorer, PowerDesigner 6. Программа
предусматривает внос информации без перечисленных пакетов а из специально
оформленной формы (см. Приложение 1 модуль SecF.pas).
Таблицы
прописаны при помощи BDE Administrator’а. Все необходимые таблицы
объединены в алиас «MyDB», что позволяет придать системе управления большую
гибкость.
Настоящая база
данных имеет третью степень нормализации, что для данного проекта вполне
допустимо.
Инструкция пользователю
Сразу, после
загрузки программы пользователю предоставляется довольно обширная информация о
текущей книге. (автор, наименование книги, ее жанр, а для более удобного поиска
на стилаже количество страниц и тип обложки). Книга является текущей, если на
ней стоит курсор (выделенная часть строки). Причем, каждая строка это новая
книга в списке.
Программа
предусматривает вхождение произведений в одну книгу (например, состав
произведений в сборниках, наименование глав книги и т.д.). Для просмотра этой
информации достаточно нажать на кнопку «Детально»
и перед пользователем открывается дополнительная секция формы, не видная до
этого. Повторное нажатие снова скрывает полное описание для лучшего восприятия
информации для книги.
Для удобства
поиска требуемой книги на главной форме предусмотрен широкий набор визуальных
команд, которые автоматически преобразуются в SQL-запросы. К таким командам
относятся «Упорядочить по фамилии
(жанру, названию)», «поиск по
фамилии, по вхождению, по жанру», а также некоторый набор нестандартных
команд, которые появляются по выпадающему списку.
Если книга в
данный момент отсутствует, на форме высвечивается информация. Если книга
отсутствует, появляется возможность просмотра информации о ее местонахождении и
времени отсутствия.
Программа
позволяет вести учет отданных книг. Для этого достаточно нажать на кнопку «Одолжить» и внести необходимые данные.
Для внесения
новой книги служит кнопка «Добавить». Простая в использовании форма
представлена в виде анкеты. Причем для внесения книги в список должны быть
заполнены все графы (возможно не заполнение графы «Полное описание» когда книга
одноименна). Заложен минимальный набор данных с клавиатуры. Это позволяет
уменьшить шанс внесения ошибочных данных, и упрощает работу для конечного
пользователя.
Для внесения
изменений в базу данных (временное отсутствие книги, «новая книга») необходимо
иметь определенные права. Для этого программа предусматривает проверку прав,
определенных паролем. При некорректном вводе пароля программа не даст внести
изменения.
Заключение
Программа
тестирована на персональном компьютере Pentium
II 333, 64 Mb ОЗУ в
операционной системе Windows 98 и показала неплохие
результаты при выполнении сложных запросов. Задержка на считывание, обработку,
сортировку данных не значительна.
Программа вполне
может использоваться в библиотеках города, на технических и производственных
предприятиях.
Литература
1. Фаронов В.В.
«Delphi 4.0 Учебный курс». Изд. «Нолидж» 1998 г.
2. Фаронов В.В.
Вводный курс в базы данных. Изд. «Нолидж», 1998 г.
3. Введение в SQL.
4. Волков А.
СУБД. Стандарты языка SQL. 2 номер 1997.
                   MainBD.DB
Number       Short           *
Famili Alpha[15]
Inic              Alpha[2]
Janr             Alpha[10]
Nalich          Logical
NameBok     Alpha[50]
Nalichie.DB
Number       Short           *
Fam             Alpha[15]
Ch               Date
                   SecondDB.DB
Numero       Short           *
Stron           Short
Obl              Logical
                   Spravka.DB
Number       Short           *
Opisanie      Alpha[50]
                   Vedenie.DB
Numero       Short
DataUser      Date
NameUser    Alpha[15]
* - первичный
ключ таблицы
Приложение 1
unit MainF;
interface
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs,
  StdCtrls, Mask, DBCtrls, Grids, DBGrids, Db, DBTables, ExtCtrls;
type
  TForm1 = class(TForm)
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    DBEdit1: TDBEdit;
    DataSource2: TDataSource;
    Table2: TTable;
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    GroupBox1: TGroupBox;
    Label3: TLabel;
    Button1: TButton;
    Button3: TButton;
    RadioGroup1: TRadioGroup;
    Query1: TQuery;
    Query1Number: TSmallintField;
    Query1Famili: TStringField;
    Query1Inic: TStringField;
    Query1Janr: TStringField;
    Query1Nalich: TBooleanField;
    Query1NameBook: TStringField;
    DataSource3: TDataSource;
    Query2: TQuery;
    Button5: TButton;
    DBGrid2: TDBGrid;
    Table2Obl: TBooleanField;
    Table2Numero: TSmallintField;
    Table2Stron: TSmallintField;
    Query2Opisanie: TStringField;
    Button4: TButton;
    Button2: TButton;
    Button6: TButton;
    GroupBox2: TGroupBox;
    Label4: TLabel;
    Button7: TButton;
    Label5: TLabel;
    Edit2: TEdit;
    Button8: TButton;
    ComboBox1: TComboBox;
    Button9: TButton;
    DBLookupComboBox1: TEdit;
    Label6: TLabel;
    Button10: TButton;
    ComboBox2: TComboBox;
    procedure RadioGroup1Click(Sender: TObject);
    procedure Query1AfterScroll(DataSet: TDataSet);
    procedure Button5Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
    procedure ComboBox2Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
  St   : String;
  Ch   : Boolean;
  YYY  : Boolean;
  Snum : String;
  Recponse:String;
  Const pass='Andrey';
implementation
uses SecF, NetuF, Unit5,
Unit3, Avtor;
{$R *.DFM}
procedure
TForm1.RadioGroup1Click(Sender: TObject);
begin
Case RadioGroup1.ItemIndex
of
     0: St:='Select * from MainDB' + #13 + #10 + 'Order by Famili';
     1: St:='Select * from MainDB' + #13 + #10 + 'Order by Janr';
     2: St:='Select * from MainDB' + #13 + #10 + 'Order by
NameBook';
end;
Button4Click(RadioGroup1);
end;
procedure
TForm1.Query1AfterScroll(DataSet: TDataSet);
begin
 Label3.Caption:='В наличии';
 Button3.Visible:=False;
 Edit1.Text:='Твердая';
  Query2.Close;
  Query2.Sql.Clear;
  Query2.Sql.Add('Select * from Spravka' + #13 + #10 +
                 'Where Number=' + IntToStr(Query1Number.Value));
  Query2.Open;
If not Query1Nalich.Value
Then
  begin
    Label3.Caption:='Отсуствует';
    Button3.Visible:=True;
  end;
If not Table2Obl.Value Then
  begin
    Edit1.Text:='Мягкая';
  end;
end;
procedure
TForm1.Button5Click(Sender: TObject);
begin
Ch:= Not Ch;
If Ch then
  begin
    Button5.Caption:='<<Кратко';
    Form1.Height:=436;
  end;
If Not Ch Then
  begin
    Button5.Caption:='Детально>>';
    Form1.Height:=324;
  end;
end;
procedure
TForm1.FormCreate(Sender: TObject);
begin
Ch:=False;
Form1.Height:=324;
end;
procedure
TForm1.Button1Click(Sender: TObject);
begin
Query1.Active:=False;
Table2.Active:=False;
Query2.Active:=False;
Recponse :=
InputBox('Проверка доступа','Введите пароль','');
If Recponse=Pass Then
Form2.ShowModal
                 Else ShowMessage('Пароль введен не верно!');
Query1.Active:=True;
Table2.Active:=True;
Query2.Active:=True;
end;
procedure
TForm1.Button3Click(Sender: TObject);
begin
Form4.ShowModal;
end;
procedure
TForm1.Button2Click(Sender: TObject);
begin
Recponse :=
InputBox('Проверка доступа','Введите пароль','');
If Recponse=Pass Then Begin
  YYY:=Query1Nalich.Value;
  Form3.Label2.Caption:=Query1Famili.Value +' - ' + Query1NameBook.Value;
  St:='';
  Snum:=IntToStr(Query1Number.Value);
  If not yyy then ShowMessage('Книга отдолжена')
             Else
               Begin
                Query1.Active:=False;
                Form3.ShowModal;
                Query1.Active:=True;
               End;
    End
    Else ShowMessage('Пароль введен не верно!');
End;
procedure
TForm1.Button4Click(Sender: TObject);
begin
Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add(St);
Query1.Open;
end;
procedure
TForm1.Button6Click(Sender: TObject);
begin
Recponse :=
InputBox('Проверка доступа','Введите пароль','');
If Recponse=Pass Then begin
  YYY:=Query1Nalich.Value;
  Snum:=IntToStr(Query1Number.Value);
  If yyy then ShowMessage('Книга в наличии!')
             Else
               Begin
                St:='Delete from Nalichie Where number = ' + Snum;
                try
                  Button4Click(Button6)
                Except
                end;
                St:='Select * From MainDB';
                try
                  Button4Click(Button6)
                Except
                end;
                St:='UpDate MainDB Set Nalich = True' + #13 + #10 +
                    'Where Number = ' + Snum;;
                try
                  Button4Click(Button6)
                Except
                end;
                St:='Select * From MainDB';
                try
                  Button4Click(Button6)
                Except
                End;
                Query1.Active:=False;
                Query1.Active:=True;
               End;
           End
           Else ShowMessage('Пароль введен не верно!');
end;
procedure
TForm1.Button7Click(Sender: TObject);
begin
St:='Select * from MainDB
Where Famili = "' + DBLookupComboBox1.Text +'"';
Button4Click(Button7);
end;
procedure
TForm1.Button8Click(Sender: TObject);
begin
St:='SELECT * FROM MainDB
WHERE NameBook LIKE "%'+ Edit2.Text +'%"';
Button4Click(Button7);
end;
procedure
TForm1.ComboBox1Change(Sender: TObject);
begin
Button9.Enabled:=True;
end;
procedure
TForm1.Button9Click(Sender: TObject);
begin
St:='SELECT * FROM MainDB
WHERE Janr = "' + ComboBox1.Text +'"';
Button4Click(Button7);
end;
procedure
TForm1.Button10Click(Sender: TObject);
begin
St:='Select * from MainDB';
Button4Click(Button10);
end;
procedure
TForm1.ComboBox2Change(Sender: TObject);
begin
  Case ComboBox2.ItemIndex of
     0: St:='Select * from MainDB Where Nalich = False';
  end;
  Button4Click(ComboBox2);
end;
end.
Приложение 2
Добавить
Просмотреть информацию
Пароль
Подтверждение
рефераты Рекомендуем рефератырефераты

     
Рефераты @2011