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

Автор работы: Пользователь скрыл имя, 11 Декабря 2013 в 20:43, курсовая работа

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

Базы данных считаются основным достоинством Delphi. Это действительно так. Хотя язык и не создавался специально под эту предметную область программирования, но реализация работы с данными здесь просто поражает. Даже специализированные языки, которые предназначены для работы с базами данных (такие, как MS Visual FoxPro), явно уступают Delphi по простоте и мощи программирования. Delphi скрывает все сложности и в то же время предоставляет широчайшие возможности при создании баз данных. Практически любую задачу в этой предметной области можно реализовать средствами этого языка, причем задовольно короткий промежуток времени. Главное здесь то, что реализация приложения очень удобна и проста в понимании.

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

1. Введение
2. Цели и задачи курсовой работы
3. Руководство программиста
4. Руководство пользователя
5. Тестирование программы
6. Результаты работы программы и их анализ
7. Блок – схема
8. Выводы
9. Используемая литература
10. Листинг программы

Файлы: 1 файл

Документ Microsoft Word (3).doc

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

1.  Введение

   2.  Цели и задачи курсовой работы

   3.  Руководство программиста

   4.  Руководство пользователя

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

   6.  Результаты работы программы и их анализ

   7.  Блок – схема

   8.  Выводы

   9.  Используемая литература

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

      

 

 

 

1. Введение 

Базы данных считаются основным достоинством Delphi. Это действительно  так. Хотя язык и не создавался специально под эту предметную область программирования, но реализация работы с данными здесь  просто поражает. Даже специализированные языки, которые предназначены для работы с базами данных (такие, как MS Visual FoxPro), явно уступают Delphi по простоте и мощи программирования. Delphi скрывает все сложности и в то же время предоставляет широчайшие возможности при создании баз данных. Практически любую задачу в этой предметной области можно реализовать средствами этого языка, причем задовольно короткий промежуток времени. Главное здесь то, что реализация приложения очень удобна и проста в понимании. В этой главе мы познакомимся с основами построения баз данных и рассмотрим несколько полезных примеров. Для примеров будут использовать базы данных Access (Access — типовая система управления базами данных, поставляемая в пакете MS Office) и современный формат файлов баз данных — XML. В последствии мы рассмотрим самые простые и распространенные таблицы в формате DBF и Paradox. Многие программисты стараются не использовать их в своих проектах из-за ненадежности, а также потому, что в них регулярно нарушается индексная целостность, что приводит к неработоспособности программ. Однако из-за их довольно широкого распространения необходимо знать принципы работы с ними. Даже локальная версия 1C: Предприятия использует этот ужасный DBF-формат. Таким образом, если необходимо написать программу для работы с чужими данными, вы просто обязаны знать, как работать с этим форматом баз данных.

 

2. Цели и задачи курсовой работы

Цель курсовой работы создание телефонного  справочника. Задача разработать программу  на языке Turbo Paskal или Borland Delphi.

Я разработал программу в среде  программирования Borland Delphi.

 

3. Руководство программиста

 

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

Form-форма

ADOConnection – компонент обеспечивает  соединение программы с базой  данных

ADOtable – компонент для связи  с таблицей внутри базы данных

DataSource –  компонент для отображения  данных из таблицы

DBGrid –   это компонент сетка,  которая отображает данные в  виде талбицы

MainMenu – главное меню программы

Popup menu –  контекстное меню

ImageList –  компонент для хранения изображений

ComboBox –  списки выбора, компонент где  можно выбрать одно значение  из списка.

MaskEdit –  Маскированная строка ввода

ToolBar – панель  инструментов.

{Осуществляет  поиск по фамилии, имени, отчеству, телефону в зависимости от того что выбрано на компоненте Combobox, здесь также есть функция AnsiUpperCase поиск с учетом регистра }

 

procedure TMainForm.BookTableFilterRecord(DataSet: TDataSet;

  var Accept: Boolean);

begin

     Accept:=false;

     if CheckBox1.Checked then

     case ComboBox1.ItemIndex of

       0:if copy((AnsiUpperCase(BookTableФамилия.AsString)),1,Length(MainForm.MaskEdit1.Text))= AnsiUpperCase(MainForm.MaskEdit1.Text) then

        Accept:=true;

      1:if copy((AnsiUpperCase(BookTableИмя.AsString)),1,Length(MainForm.MaskEdit1.Text))= AnsiUpperCase(MainForm.MaskEdit1.Text) then

        Accept:=true;

      2:if copy((AnsiUpperCase(BookTableОтчество.AsString)),1,Length(MainForm.MaskEdit1.Text))= AnsiUpperCase(MainForm.MaskEdit1.Text) then

        Accept:=true;

      3:if copy((AnsiUpperCase(BookTableТелефон.AsString)),1,Length(MainForm.MaskEdit1.Text))= AnsiUpperCase(MainForm.MaskEdit1.Text) then

        Accept:=true;

      4:if copy((AnsiUpperCase(BookTableДата.AsString)),1,Length(MainForm.MaskEdit1.Text))= AnsiUpperCase(MainForm.MaskEdit1.Text) then

        Accept:=true;

      5:if copy((AnsiUpperCase(BookTableTown.AsString)),1,Length(MainForm.MaskEdit1.Text))= AnsiUpperCase(MainForm.MaskEdit1.Text) then

        Accept:=true;

    end

else

   case ComboBox1.ItemIndex of

      0:if copy(BookTableФамилия.AsString,1,Length(MainForm.MaskEdit1.Text))= MainForm.MaskEdit1.Text then

        Accept:=true;

      1:if copy(BookTableИмя.AsString,1,Length(MainForm.MaskEdit1.Text))= MainForm.MaskEdit1.Text then

        Accept:=true;

      2:if copy(BookTableОтчество.AsString,1,Length(MainForm.MaskEdit1.Text))= MainForm.MaskEdit1.Text then

        Accept:=true;

      3:if copy(BookTableТелефон.AsString,1,Length(MainForm.MaskEdit1.Text))= MainForm.MaskEdit1.Text then

        Accept:=true;

      4:if Copy(BookTableДата.AsString,1,length(MainForm.MaskEdit1.Text))= MainForm.MaskEdit1.Text then

        Accept:=true;

      5:if copy(BookTableTown.AsString,1,Length(MainForm.MaskEdit1.Text))= MainForm.MaskEdit1.Text then

        Accept:=true;

    end

end;

 

{компонент  с ниспадающим списком, критерий поиска}

procedure TMainForm.ComboBox1Select(Sender: TObject);

begin

case ComboBox1.ItemIndex of

  0:MaskEdit1.Text:='введите фамилию';

  1:Maskedit1.Text:='введите имя';

  2:Maskedit1.Text:='введите отчество';

  3:Maskedit1.Text:='введите телефон';

  4:Maskedit1.Text:='введите дату рождения';

  5:Maskedit1.Text:='введите название города';

end;

end;

 

{Поле ввода данных для поиска  по БД}

procedure TMainForm.MaskEdit1Change(Sender: TObject);

begin

if (MaskEdit1.Focused) and (length(MaskEdit1.Text)>0) then

     BookTable.Filtered:=true

   else

     BookTable.Filtered:=false;

  case ComboBox1.ItemIndex of

    0:BookTable.Filter:='Фамилия>='+QuotedStr(MaskEdit1.Text);

    1:BookTable.Filter:='Имя>='+QuotedStr(MaskEdit1.Text);

    2:BookTable.Filter:='Отчество>='+QuotedStr(MaskEdit1.Text);

    3:BookTable.Filter:='Телефон>='+QuotedStr(MaskEdit1.Text);

    4:BookTable.Filter:='Дата>='+QuotedStr(MaskEdit1.Text);

    5:BookTable.Filter:='town>='+QuotedStr(MaskEdit1.Text);

  end;

end;

 

{При получении курсора меняет на черный цвет текст в компоненте MaskEdit }

procedure TMainForm.MaskEdit1Enter(Sender: TObject);

begin

  MaskEdit1.Text:='';

  MaskEdit1.Font.Color:=clBlack;

end;

 

{После того как убираем курсор  меняет на серый цвет текст  в компоненте MaskEdit }

procedure TMainForm.MaskEdit1Exit(Sender: TObject);

begin

MaskEdit1.Font.Color:=clGray;

case ComboBox1.ItemIndex of

  0:MaskEdit1.Text:='введите фамилию';

  1:Maskedit1.Text:='введите имя';

  2:Maskedit1.Text:='введите отчество';

  3:Maskedit1.Text:='введите телефон';

  4:Maskedit1.Text:='введите дату рождения';

  5:Maskedit1.Text:='введите название города';

end;

end;

 

{Далее идут  процедуры сортировки по БД; ASC – по возрастанию, DESC – по убыванию}

 

procedure TMainForm.N15Click(Sender: TObject);

begin

  BookTable.Sort:='Фамилия ASC';

end;

 

procedure TMainForm.N16Click(Sender: TObject);

begin

  BookTable.Sort:='Фамилия DESC';

end;

 

procedure TMainForm.N17Click(Sender: TObject);

begin

    BookTable.Sort:='Имя ASC';

end;

 

procedure TMainForm.N18Click(Sender: TObject);

begin

   BookTable.Sort:='Отчество ASC';

end;

 

procedure TMainForm.N19Click(Sender: TObject);

begin

    BookTable.Sort:='Телефон ASC';

end;

 

procedure TMainForm.N20Click(Sender: TObject);

begin

   BookTable.sort:='Город ASC';

end;

 

procedure TMainForm.N21Click(Sender: TObject);

begin

    BookTable.Sort:='Имя DESC';

end;

 

procedure TMainForm.N22Click(Sender: TObject);

begin

    BookTable.Sort:='Отчество DESC';

end;

 

procedure TMainForm.N23Click(Sender: TObject);

begin

   BookTable.Sort:='Телефон DESC';

end;

 

procedure TMainForm.N24Click(Sender: TObject);

begin

   BookTable.sort:='Город DESC';

end;

 

procedure TMainForm.N26Click(Sender: TObject);

begin

    BookTable.Sort:='Дата ASC';

end;

 

procedure TMainForm.N27Click(Sender: TObject);

begin

   BookTable.Sort:='Дата DESC';

end;

 

procedure TMainForm.N2Click(Sender: TObject);

begin

   Close;

end;

 

{Открывает окно авторства}

procedure TMainForm.N52Click(Sender: TObject);

begin

  AboutBox.ShowModal;

end;

 

{Открывает окно справочник городов}

procedure TMainForm.N5Click(Sender: TObject);

begin

    TownBookForm.ShowModal;

end;

 

{Открывает окно редактирования данных}

procedure TMainForm.N7Click(Sender: TObject);

begin

   EditForm.ShowModal;

end;

 

{Удаление записи БД}

procedure TMainForm.N8Click(Sender: TObject);

begin

if Application.MessageBox(pchar('Вы действительно хотите удалить запись "'+BookTableФамилия.AsString+' '+BookTableИмя.AsString+' '+BookTableОтчество.AsString+'"'),'Внимание!!!',MB_OKCANCEL)=ID_OK then

   BookTable.Delete;

end;

{Добавляет данные в БД}

procedure TTownBookForm.AddButtonClick(Sender: TObject);

begin

MainForm.TownTable.Insert;

DBGrid1.SetFocus;

end;

 

{Удаляет  записи из БД}

procedure TTownBookForm.DeleteButtonClick(Sender: TObject);

begin

if Application.MessageBox(pchar('Вы действительно хотите удалить запись "'+MainForm.TownTableГорода.AsString+'"'),'Внимание!!!',MB_OKCANCEL)=ID_OK then

   MainForm.TownTable.Delete;

end;

 

{Закрывает  окно справочник городов, с  предупреждением о сохранении}

procedure TTownBookForm.FormClose(Sender: TObject; var Action: TCloseAction);

begin

if MainForm.TownTable.Modified then

if Application.MessageBox(pchar('Были внесены изменения. Сохранить данные?'),'Внимание!!!',MB_OKCANCEL)=ID_OK then

   MainForm.TownTable.Post;

end;

 

{Сохраняет данные, если были внесены изменения}

procedure TTownBookForm.SaveButtonClick(Sender: TObject);

begin

if MainForm.TownTable.Modified then

   MainForm.TownTable.Post;

   TownBookForm.Close;

end;

 

4. Руководство пользователя

 

Основной вид программы

 

В программе есть редактирование, добавление и удаление записей в БД, а также сортировка и поиск.

 

При нажатии Добавить запись открывается  окно редактирования

 

Сортировка используется по всем полям

 

При нажатии меню справочник открывается  окно со списком городов

 

В программе есть поиск данных по полям БД.

 

 

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

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

 

 

 

 

 

 

 

 

6. Результаты работы программы  и их анализ

После всех тестирований программа  полностью работоспособна. Никаких  ошибок не происходит. Редактирование, добавление, удаление, сортировка, а  также поиск данных работает корректно.

 

 

 

 

 

 

 

 

 

 

 

7. Блок – схема

Общая блок схема для приложения

Запуск программы

 

 

 

     Выбрать  действие

 

 

 

Конец

Выход с программы

Поиск данных

Сортировка данных

Редактирование записей

 

8. Выводы

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

Телефонный справочник имеет следующие  возможности:

   *   Добавление записей

   *   Удаление записей

   *   Редактирование записей

   *   Поиск данных с учетом регистра и без

   *   Сортировка данных по всем полям

   *   Сохранение внесенных или изменённых данных

 

9. Используемая литература

    1. Самоучитель по Delphi –  «Библия Delphi» автор: М.Фленов.                 

    2. Разработка базы данных  в делфи - А.Сорокин

 

 

 

 

 

 

 

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

unit Unit1;

interface

uses

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

  Dialogs, DB, ADODB, Grids, DBGrids, StdCtrls, Menus, ToolWin, ComCtrls, XPMan,

  ImgList, ExtCtrls, Mask;

type

  TMainForm = class(TForm)

    ADOConnection: TADOConnection;

    BookTable: TADOTable;

    DataSource: TDataSource;

    DBGrid1: TDBGrid;

    BookTableКод: TIntegerField;

    BookTableФамилия: TWideStringField;

    BookTableИмя: TWideStringField;

    BookTableОтчество: TWideStringField;

    BookTableТелефон: TWideStringField;

    BookTableГород: TIntegerField;

    TownTable: TADOTable;

    TownSource: TDataSource;

    TownTableКод: TAutoIncField;

    TownTableКодгорода: TIntegerField;

    MainMenu1: TMainMenu;

    N1: TMenuItem;

    N2: TMenuItem;

    N3: TMenuItem;

    N4: TMenuItem;

    N5: TMenuItem;

    N6: TMenuItem;

    N7: TMenuItem;

    N8: TMenuItem;

    N9: TMenuItem;

    N10: TMenuItem;

    N11: TMenuItem;

    N12: TMenuItem;

    N13: TMenuItem;

    N14: TMenuItem;

    N15: TMenuItem;

    N16: TMenuItem;

    N17: TMenuItem;

    N18: TMenuItem;

    N19: TMenuItem;

    N20: TMenuItem;

    N21: TMenuItem;

    N22: TMenuItem;

    N23: TMenuItem;

    N24: TMenuItem;

    N25: TMenuItem;

    N26: TMenuItem;

    N27: TMenuItem;

    BookTableДата: TDateTimeField;

    PopupMenu1: TPopupMenu;

    N28: TMenuItem;

    N29: TMenuItem;

    N30: TMenuItem;

    N32: TMenuItem;

    N33: TMenuItem;

    N34: TMenuItem;

    N35: TMenuItem;

    N36: TMenuItem;

    N37: TMenuItem;

    N38: TMenuItem;

    N39: TMenuItem;

    N40: TMenuItem;

    N41: TMenuItem;

    N42: TMenuItem;

    N43: TMenuItem;

    N44: TMenuItem;

    N45: TMenuItem;

    N46: TMenuItem;

    N47: TMenuItem;

    N48: TMenuItem;

    N49: TMenuItem;

    N50: TMenuItem;

    ToolBar1: TToolBar;

    ToolButton1: TToolButton;

    XPManifest1: TXPManifest;

    ImageList1: TImageList;

    ToolButton2: TToolButton;

    ToolButton3: TToolButton;

    ToolButton4: TToolButton;

    ToolButton6: TToolButton;

    ToolButton7: TToolButton;

    ToolButton9: TToolButton;

    ToolButton10: TToolButton;

    ToolButton11: TToolButton;

    Panel1: TPanel;

    ComboBox1: TComboBox;

   Label1: TLabel;

    MaskEdit1: TMaskEdit;

    CheckBox1: TCheckBox;

    N31: TMenuItem;

    TownTableГорода: TWideStringField;

    BookTableTown: TStringField;

    N51: TMenuItem;

    N52: TMenuItem;

    ToolButton5: TToolButton;

    ToolButton8: TToolButton;

    procedure N2Click(Sender: TObject);

    procedure N5Click(Sender: TObject);

    procedure N6Click(Sender: TObject);

    procedure N7Click(Sender: TObject);

    procedure N8Click(Sender: TObject);

    procedure N15Click(Sender: TObject);

    procedure N17Click(Sender: TObject);

    procedure N18Click(Sender: TObject);

    procedure N19Click(Sender: TObject);

    procedure N20Click(Sender: TObject);

    procedure N26Click(Sender: TObject);

    procedure N16Click(Sender: TObject);

    procedure N21Click(Sender: TObject);

    procedure N22Click(Sender: TObject);

    procedure N23Click(Sender: TObject);

    procedure N27Click(Sender: TObject);

    procedure N24Click(Sender: TObject);

    procedure MaskEdit1Enter(Sender: TObject);

    procedure MaskEdit1Exit(Sender: TObject);

    procedure ComboBox1Select(Sender: TObject);

    procedure MaskEdit1Change(Sender: TObject);

    procedure BookTableFilterRecord(DataSet: TDataSet; var Accept: Boolean);

    procedure N52Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  MainForm: TMainForm;

implementation

uses TownUnit, EditFormUnit, ABOUT;

Информация о работе Курсовая Телефонный справочник