Разработка программы «Телефонный справочник»

Автор работы: Пользователь скрыл имя, 30 Марта 2014 в 11:24, курсовая работа

Краткое описание

Объектно-ориентированный язык программирования характеризуется тремя основными свойствами:
1. Инкапсуляция. Комбинирование записей с процедурами и функциями, манипулирующими полями этих записей, формирует новый тип данных - объект.
2. Наследование. Определение объекта и его дальнейшее использование для построения иерархии порожденных объектов с возможностью для каждого порожденного объекта, относящегося к иерархии, доступа к коду и данным всех порождающих объектов.
3. Полиморфизм. Присваивание действию одного имени, которое затем совместно используется вниз и вверх по иерархии объектов, причем каждый объект иерархии выполняет это действие способом, именно ему подходящим.

Прикрепленные файлы: 1 файл

Курсовоая ООП.doc

— 266.50 Кб (Скачать документ)
    1. Контрольный пример

Прогонка программы для различных исходных данных дала результат, приведенный на рис. 8 - 10.

 

  1. Поиск по фамилии (Аничкин)

  1. Поиск по адресу (Жукова 33/158)

  1. Поиск по телефону (211*)

 

 

 

 

 

Заключение

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

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

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

Полученные практические результаты показали правильность составления программы.

Изучен теоретический материал по объектно – ориентированному программированию и по организации простейших систем управления базами данных.

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

 

 

 

Список использованной литературы

  1. Бабушкина И. А. Практикум по объектно–ориентированному программированию / Бабушкина И.А., Окулов С.М.: –М.: БИНОМ, Лаборатория знаний, 2004. –366 с.
  2. Богуславский А.А., Соколов С.М. Основы программирования на языке Си++: –Коломна: КГПИ, 2002. –490 с.
  3. Джесс Либерти. Освой самостоятельно C++ за 21 день. –М.: Вильямс, 2003. –772 с.
  4. Дэвис Стефан Р. C++ для «чайников». –М.: Издательский дом «Вильяме», 2003. –336 с.
  5. Объектно–ориентированное программирование: Учебник для вузов. – 2 изд., перераб. и доп. / Под ред. Г.С. Ивановой. –М.: Изд–во МГТУ им. Н.Э. Баумана, 2003. –368 с.
  6. Федотова Д.Э., Семенов Ю.Д., Чижик К.Н. Объектно – ориентированное программирование.  –М.: АСТ, 2005. –433 с.

 

 

 

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

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

 

#include <vcl.h>

#pragma hdrstop

 

#include "main.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"

class TelBook

  {

    private:

      AnsiString f,

      fn,

      sn;

      TDateTime dr;

      AnsiString adr;

      AnsiString tel;

    public:

      TelBook();

      TelBook(AnsiString f1,

      AnsiString fn1,AnsiString sn1, TDateTime dr1,

      AnsiString adr1, AnsiString tel1);

      AnsiString FilterFIO(AnsiString f1,AnsiString i1,AnsiString o1);

      AnsiString FilterAdr(AnsiString s);

      AnsiString FilterTel(AnsiString s);

  };

TelBook::TelBook()

{

TelBook::TelBook(AnsiString f1,

      AnsiString fn1,AnsiString sn1, TDateTime dr1,

      AnsiString adr1, AnsiString tel1)

{

  f = f1;

  fn = fn1;

  sn = sn1;

  dr = dr1;

  adr = adr1;

  tel = tel1;

}

AnsiString TelBook::FilterFIO(AnsiString f,AnsiString i,AnsiString o)

{

AnsiString s;

  s = "fam Like " + QuotedStr(f + "%");

  if (i != "")

    s = s + " and fname=" + QuotedStr(i);

  if (o != "")

    s = s + " and sname=" + QuotedStr(o);

  return s; 

}

AnsiString TelBook::FilterAdr(AnsiString s)

{

  return "adres Like " + QuotedStr(s + "%");

}

AnsiString TelBook::FilterTel(AnsiString s)

{

  return "tel Like " + QuotedStr(s + "%");

}

TForm1 *Form1;

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

__fastcall TForm1::TForm1(TComponent* Owner)

        : TForm(Owner)

{

}

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

 

int __fastcall PosEx(AnsiString _find, AnsiString str, int Offset)

{

  str = str.Delete(1,Offset);

  int pos = str.Pos(_find);

  if(pos) return pos+Offset;

  else return 0;

}

 

void __fastcall TForm1::QuitExecute(TObject *Sender)

//выход из программы

{

  Close();

}

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

void __fastcall TForm1::SortFamExecute(TObject *Sender)

//сортировка по фамилии

{

  ADOTable1->IndexFieldNames = "fam";

}

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

void __fastcall TForm1::SortAdrExecute(TObject *Sender)

//сортировка по адресу

{

  ADOTable1->IndexFieldNames = "adres";

}

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

void __fastcall TForm1::FindFamExecute(TObject *Sender)

//поиск по фамилии

{

AnsiString  s, f, i, o;

TelBook tb;

  s = InputBox("Ввод", "Введите фамилию, имя и отчество", "");

  if (s.Pos(" ") != 0)

    {

      f = s.SubString(1, s.Pos(" ") - 1);

      s = s.Delete(1, s.Pos(" "));

      if (s.Pos(" ") != 0)

        {

          i = s.SubString(1, s.Pos(" ") - 1);

          s = s.Delete(1, s.Pos(" "));

          o = s;

        }

      else

        {

          i = s;

          o = "";

        }

    }

  else

    {

      f = s;

      i = "";

      o = "";

    }

  tb=TelBook(f,i,o,TDateTime("01.01.2011"),"","");

  s=tb.FilterFIO(f,i,o);

  DataSource1->DataSet = NULL;

  DataSource1->DataSet = ADOQuery1;

  ADOQuery1->Close();

  ADOQuery1->SQL->Clear();

  ADOQuery1->SQL->Add("SELECT *");

  ADOQuery1->SQL->Add("FROM data");

  ADOQuery1->SQL->Add("WHERE " + s);

  ADOQuery1->SQL->Add("ORDER BY " + ADOTable1->IndexFieldNames);

  ADOQuery1->Open();

}

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

void __fastcall TForm1::ShowAllRecExecute(TObject *Sender)

//показать  все записи

{

  ADOQuery1->Close();

  DataSource1->DataSet = ADOTable1;

}

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

void __fastcall TForm1::FindAdresExecute(TObject *Sender)

//поиск по адресу

{

AnsiString s;

TelBook tb;

  s = InputBox("Ввод", "Введите адрес", "");

  tb = TelBook();

  s=tb.FilterAdr(s);

  DataSource1->DataSet = NULL;

  DataSource1->DataSet = ADOQuery1;

  ADOQuery1->Close();

  ADOQuery1->SQL->Clear();

  ADOQuery1->SQL->Add("SELECT *");

  ADOQuery1->SQL->Add("FROM data");

  ADOQuery1->SQL->Add("WHERE " + s);

  ADOQuery1->SQL->Add("ORDER BY " + ADOTable1->IndexFieldNames);

  ADOQuery1->Open();

}

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

void __fastcall TForm1::FindTelExecute(TObject *Sender)

//поиск  по телефону

{

AnsiString s;

TelBook tb;

  s = InputBox("Ввод", "Введите телефон", "");

  tb = TelBook();

  s=tb.FilterTel(s);

  DataSource1->DataSet = NULL;

  DataSource1->DataSet = ADOQuery1;

  ADOQuery1->Close();

  ADOQuery1->SQL->Clear();

  ADOQuery1->SQL->Add("SELECT *");

  ADOQuery1->SQL->Add("FROM data");

  ADOQuery1->SQL->Add("WHERE " + s);

  ADOQuery1->SQL->Add("ORDER BY " + ADOTable1->IndexFieldNames);

  ADOQuery1->Open();

}

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

void __fastcall TForm1::SortTelExecute(TObject *Sender)

//сортировка  по телефону

{

  ADOTable1->IndexFieldNames = "tel";

}

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

 

 


 


 



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