Разработка в среде программирования Delphi - Телефонный справочник

Автор работы: Пользователь скрыл имя, 29 Июня 2014 в 10:28, курсовая работа

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

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

Содержание работы

Введение……………………………………………………………………...
1.Постановка задачи………………………………………………………..
2.Анализ задания……………………………………………………………
3.Теоретическая часть……………………………………………………..
4.Практическая часть……………………………………...........................
4.1 Разработка базы данных………………………………………………
4.1.1 Создание структуры БД……………………………………………..
4.1.2 Связь программы с БД………………………………………………
4.2 Алгоритм программы………………………………………………….
4.3Код программы………………………………………………………….
4.4 Тестирование программы……………………………………………..
4.4.1 Условия тестирования…………………………………………….....
4.4.2 Процесс тестирования……………………………………………….
4.4.3 Сообщения об ошибках……………………………………………....
Заключение…………………………………………………………………..
Список литературы…………………………………………………………

Файлы: 1 файл

Курсовая работа - телефонный справочник.doc

— 153.00 Кб (Скачать файл)

Министерство образования и науки Российской Федерации

Федеральное бюджетное образовательное учреждение

среднего профессионального образования

«Жигулевский государственный колледж»

 

 

 

КУРСОВАЯ РАБОТА

Телефонный справочник

 

ПМ 01 РАЗРАБОТКА ПРОГРАММНЫХ МОДУЛЕЙ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ КОМПЬЮТЕРНЫХ СЕСТЕМ

 

специальность 230115 Программирование в компьютерных системах

(базовый уровень)

 

 

 

 

 

 

 

 

 

 

 

Студент        

 

 

 

Руководитель      

 

 

 

 

 

Жигулевск, 2014

 

Оглавление:

 

Введение……………………………………………………………………...

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

2.Анализ задания……………………………………………………………

3.Теоретическая часть……………………………………………………..

4.Практическая часть……………………………………...........................

4.1 Разработка базы данных………………………………………………

4.1.1 Создание структуры БД……………………………………………..

4.1.2 Связь программы с  БД………………………………………………

4.2 Алгоритм программы………………………………………………….

4.3Код программы………………………………………………………….

4.4 Тестирование программы……………………………………………..

4.4.1 Условия тестирования…………………………………………….....

4.4.2 Процесс тестирования……………………………………………….

4.4.3 Сообщения об ошибках……………………………………………....

Заключение…………………………………………………………………..

Список литературы…………………………………………………………

 

 

 

 

 

 

 

 

 

Введение

 

Тема работы посвящена программной реализации задачи о телефонном справочнике на языке Delphi.

Актуальность темы работы состоит в потребности людей в удобном средстве хранения и представления данных о своих контактах – удобном телефонном справочнике.

Целью работы является создание программы телефонного справочника в среде DELPHI.

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

Программная реализация задачи о телефонном справочнике на языке DELPHI.

Создать программу-справочник, обеспечить ввод, удаление, редактирование данных. Данные хранить в произвольном формате.

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2. Анализ задания

Любые данные удобнее всего хранить в базе данных. Так же в среде Delphi существует множество готовых решений и компонентов для эффективной и быстрой работы с базой данных.

Исходя из этого, для хранения данных телефонного справочника мы будем использовать базу данных MS Access, для связи с ней в программе будем пользоваться компонентами ADO, что позволит нам существенно упростить и убыстрить разработку программы – все функции по добавлению, редактированию, удалению сортировке и фильтрации возьмут на себя компоненты ADO.

Нам остаётся разработать правильную структуру базы данных и реализовать необходимую логику работы с ней в программе.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3. Теоретическая часть

На основе технологии ADO в Delphi созданы соответствующие компоненты-наборы TADOTable, TADOQuery, TADOStoredProc , повторяющие в функциональном отношении компоненты TTable, TQuery, TstoredProc, но не требующие развертывания и настройки на клиентской машине BDE.

 Основным достоинством ADO является  ее естественная ориентация на  создание «облегченного» клиента. На машине сервера данных (это  может быть файловый сервер  в рамках файл/серверной технологии  или машина с сервером данных - в технологии клиент/сервер) устанавливается так называемый провайдер данных - некоторая надстройка над специальной технологией OLE DB, «понимающая» запросы объектов ADO и «умеющая» переводить эти запросы в нужные действия с данными. Взаимодействие компонентов ADO и провайдера осуществляется на основе универсальной для Windows технологии ActiveX, причем провайдер реализуется как СОМ-сервер, а ADO-компоненты - как COM-клиенты. На машине сервера создается и размещается источник данных. В случае файл/серверных систем отдельные таблицы типа dBASE, FoxPro, Paradox и т.п. должны управляться соответствующим ODBC-драйвером,а в роли провайдера используется Microsoft OLE DB Provider for ODBC drivers. Если по каким-либо причинам не найден нужный драйвер файл/серверные таблицы можно перенести в формат MS Access. На их основе создается единый файл, содержащий все необходимые таблицы, индексы, хранимые процедуры и прочие элементы БД. Такой файл управляется машиной баз данных Microsoft Jet 4.0 Database Engine, а в роли провайдера используется Microsoft Jet 4.0 OLE DB Provider. Если используется промышленный сервер данных Oracle или MS SQL Server, данные не нуждаются в какой-либо предварительной подготовке, а в роли провайдера используется соответственно Microsoft OLE DB Provider for Oracle или Microsoft OLE DB Provider for SQL Server. Нетрудно обнаружить и явный недостаток такой технологии: ADO не может использоваться, если для соответствующей структуры данных (в частности, для БД многих популярных серверов - InterBase, Informix, DB2 и пр. не создан нужный провайдер или ODBC драйвер.

 

 

Рис. 3.1 Схема связи с объектом ADO в Delphi

 На машине клиента располагаются  связные компоненты TADOConnection и компоненты-наборы  данных TADOTable, TADOQuery, TADOStoredProc, а также  не показанные на рисунке компоненты-наборы TADODataSet и командные компоненты TADOCommand. Каждый из этих компонентов может связываться с провайдером данных либо с помощью связного компонента TADOConnection, либо минуя его и используя собственное свойство ConnectionString. Таким образом, TADOConnection играет роль концентратора соединений с источником данных компонентов-наборов и в этом смысле подобен компоненту TDatabase в традиционной архитектуре с BDE.Компоненты-наборы TADODataSet в функциональном плане повторяют свойства уже известных из предыдущих версий Delphi компонентов TClientDataSet технологии MIDAS. Командные компоненты TADOCommand предназначены для реализации запросов на языке управления данными DDL (Data Definition Language), т.е. для реализации SQL-запросов, которые не возвращают данные (запросы типа CREATE, DROP, UPDATE и т.п.). Специальный компонент RDSConnection (не показан на рисунке) создан для упрощения связи с MS Internet Explorer и предназначен для разработки интранет-приложений. Компоненты-наборы с помощью хорошо известных по предыдущим версиям Delphi компонентов-источников TDataSource и визуализирующих компонентов TDBGrid, TDBMemo, TDBEdit и т.п. обеспечивают необходимый интерфейс с пользователем программы.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4. Практическая часть

4.1 Разработка базы данных

4.1.1 Создание структуры БД

Разработаем структуру таблицы для хранения данных о контактах и опишем требуемые поля. (Рис.1.)

Имя поля

Тип

Обязательное

Совпадения

Код

Счётчик

да

нет

Фамилия

Текстовый

да

да

Имя

Текстовый

да

да

Дата рождения

Дата/время

нет

да

Город

Текстовый

нет

да

E-mail

Текстовый

нет

нет

Телефон

Текстовый

да

нет


Рис.1. Пример разрабатываемой таблицы.

Создадим файл MS Access под именем «Database.mdb». Создадим в нём 3 таблицs «Справочник», «Справочник городов», «Телефоны» и зададим в ней поля согласно примеру разработанной таблицы.

4.1.2 Связь программы с БД

Для связи с созданной нами БД средствами ADO переместим на форму следующие компоненты из одноимённой вкладки ADO:

  • TADOConnection – для подключения непосредственно к нашей базе (вкладка «ADO»);
  • TADOTable – для работы с созданной нами таблицей «Люди» (вкладка «ADO»);
  • TDataSource – для связи программной таблицы с таблицей в БД (вкладка «Data Access»);
  • TDBGrid – для отображения информации (вкладка «Data Controls»);
  • TDBNavigator – для добавления, удаления и редактирования данных (вкладка «Data Controls»).

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

Свойство ConnectionString компонента TADOConnection настраиваем следующим образом:

… -> Use connection string -> Build -> Microsoft Jet 4.0 OLE DB Provider -> tele.mdb

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

Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=tele.mdb;Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False

Свойство LoginPrompt выставляем в False, чтобы при подключении не запрашивался пароль. Установим свойство Connected в True.

Изменим свойства для компонента TADOTable:

Connection = ADOConnection1; TableName = Люди; Active = True;

Свойство DataSet компонента TDataSource выставим как ADOTable1.

Свойство DataSource компонента TDBGrid выставим как DataSource1.

Изменим свойства для компонента TDBNavigator:

DataSource = DataSource1;

VisibleButtons = [nbInsert,nbDelete,nbPost,nbCancel].

Теперь программа настроена и связана с нашей базой данных. Необходимо помнить, что файл «Database.mdb» должен всегда находиться в папке с самой программой.

2 Алгоритм программы

Блок-схема основного алгоритма программы.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Блок-схема реализации поиска по базе данных.

 

 

 

 

 

 

 

 

 

 

 

 

 

4.3 Код программы

unit Unit1;

interface

uses

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

  Dialogs, DB, ADODB, Grids, DBGrids, StdCtrls, ExtCtrls, DBCtrls, Buttons;

type

  TForm1 = class(TForm)

    DBGrid1: TDBGrid; {Таблица  для отображения данных}

    DataSource1: TDataSource; {Компонент-источник данных для таблицы}

    DBNavigator1: TDBNavigator; {Компонент для редактирования данных в БД}

    Panel1: TPanel;

    Panel2: TPanel;

    Panel3: TPanel;

    ADOConnection1: TADOConnection; {Компонент соединения с БД}

    ADOTable1: TADOTable; {Компонент-провайдер  данных из БД к DataSource-компоненту}

    ComboBox1: TComboBox; {Выпадающий список полей для сортировки}

    Label1: TLabel;

    Edit1: TEdit; {Поле ввода для поиска по фамилии}

    GroupBox1: TGroupBox; {Группа компонентов для сортировки}

    GroupBox2: TGroupBox; {Группа компонентов для поиска}

    Edit2: TEdit; {Поле ввода для поиска по телефону}

    Label2: TLabel;

    BitBtn2: TBitBtn; {Кнопка для отмены поиска}

    Label3: TLabel;

    procedure Edit1Change(Sender: TObject); {Процедура обработки изменения текста в поле ввода для поиска по фамилии}

    procedure Edit2Change(Sender: TObject); {Процедура обработки изменения текста в поле ввода для поиска по телефону}

    procedure BitBtn2Click(Sender: TObject); {Процедура обработки нажатия на кнопку для отмены поиска}

    procedure ComboBox1Change(Sender: TObject); {Процедура обработки выбора поля для сортировки}

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form1: TForm1;

implementation

{$R *.dfm}

 

{Процедура обработки  изменения текста в поле ввода  для поиска по фамилии}

procedure TForm1.Edit1Change(Sender: TObject);

begin

if Length(Edit1.Text)>0 then {Если длина текста в поле ввода фамилии больше 0}

  begin

    ADOTable1.Filtered:=True; {Включаем  фильтрацию}

    Edit2.Text:=''; {Стираем текст в поле ввода телефона}

    ADOTable1.Filter:='Фамилия='''+Edit1.Text+''''; {Устанавливаем фильтрацию фамилий по введённому тексту}

  end

else {Иначе (если поле ввода фамилии пусто)}

  begin

    ADOTable1.Filtered:=False; {Отключаем  фильтрацию}

  end;

 

end; {Конец процедуры обработки изменения текста в поле ввода для поиска по фамилии}

 

{Процедура обработки  изменения текста в поле ввода  для поиска по телефону}

procedure TForm1.Edit2Change(Sender: TObject);

begin

if Length(Edit2.Text)>0 then {Если длина текста в поле ввода телефона больше 0}

  begin

    ADOTable1.Filtered:=True; {Включаем фильтрацию}

    Edit1.Text:=''; {Стираем текст в поле ввода фамилии}

    ADOTable1.Filter:='Телефон='''+Edit2.Text+''''; {Устанавливаем фильтрацию телефонов по введённому тексту}

  end

else {Иначе (если поле ввода телефона пусто)}

  begin

    ADOTable1.Filtered:=False; {Отключаем фильтрацию}

  end;

 

end; {Конец процедура обработки изменения текста в поле ввода для поиска по телефону}

 

{Процедура обработки  нажатия на кнопку для отмены  поиска}

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

ADOTable1.Filtered:=False; {Отключаем  фильтрацию}

Edit1.Text:=''; {Стираем текст в поле ввода фамилии}

Edit2.Text:=''; {Стираем текст в поле ввода телефона}

end; {Конец процедуры обработки нажатия на кнопку для отмены поиска}

 

{Процедура обработки  выбора поля для сортировки}

procedure TForm1.ComboBox1Change(Sender: TObject);

begin

ADOTable1.Sort:=ComboBox1.Text+' ASC'; {Устанавливаем сортировку по выбранному полю по возрастанию}

Информация о работе Разработка в среде программирования Delphi - Телефонный справочник