Автор работы: Пользователь скрыл имя, 30 Марта 2014 в 11:24, курсовая работа
Объектно-ориентированный язык программирования характеризуется тремя основными свойствами:
1. Инкапсуляция. Комбинирование записей с процедурами и функциями, манипулирующими полями этих записей, формирует новый тип данных - объект.
2. Наследование. Определение объекта и его дальнейшее использование для построения иерархии порожденных объектов с возможностью для каждого порожденного объекта, относящегося к иерархии, доступа к коду и данным всех порождающих объектов.
3. Полиморфизм. Присваивание действию одного имени, которое затем совместно используется вниз и вверх по иерархии объектов, причем каждый объект иерархии выполняет это действие способом, именно ему подходящим.
Прогонка программы для различных исходных данных дала результат, приведенный на рис. 8 - 10.
В результате выполнения курсовой работы мной была разработана программа формирования и работы с телефонным справочником на языке программирования С++ в среде Borland C++ Builder.
Программа позволяет добавлять записи в базу, удалять записи, осуществлять поиск по фамилии абонента или номеру телефона, сохранять список абонентов в файле при завершении программы и загружать его при запуске. Управление производится при помощи командных кнопок.
При разработке программы был использован пользовательский класс.
Полученные практические результаты показали правильность составления программы.
Изучен теоретический материал по объектно – ориентированному программированию и по организации простейших систем управления базами данных.
При разработке программы была использована база данных формата MS Access.
//----------------------------
#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("
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(
//показать все записи
{
ADOQuery1->Close();
DataSource1->DataSet = ADOTable1;
}
//----------------------------
void __fastcall TForm1::FindAdresExecute(
//поиск по адресу
{
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";
}
//----------------------------
Информация о работе Разработка программы «Телефонный справочник»