Разработка программы «Телефонный справочник»
Курсовая работа, 30 Марта 2014, автор: пользователь скрыл имя
Краткое описание
Объектно-ориентированный язык программирования характеризуется тремя основными свойствами:
1. Инкапсуляция. Комбинирование записей с процедурами и функциями, манипулирующими полями этих записей, формирует новый тип данных - объект.
2. Наследование. Определение объекта и его дальнейшее использование для построения иерархии порожденных объектов с возможностью для каждого порожденного объекта, относящегося к иерархии, доступа к коду и данным всех порождающих объектов.
3. Полиморфизм. Присваивание действию одного имени, которое затем совместно используется вниз и вверх по иерархии объектов, причем каждый объект иерархии выполняет это действие способом, именно ему подходящим.
Прикрепленные файлы: 1 файл
Курсовоая ООП.doc
— 266.50 Кб (Скачать документ)Контрольный пример
Прогонка программы для различных исходных данных дала результат, приведенный на рис. 8 - 10.
- Поиск по фамилии (Аничкин)
- Поиск по адресу (Жукова 33/158)
- Поиск по телефону (211*)
Заключение
В результате выполнения курсовой работы мной была разработана программа формирования и работы с телефонным справочником на языке программирования С++ в среде Borland C++ Builder.
Программа позволяет добавлять записи в базу, удалять записи, осуществлять поиск по фамилии абонента или номеру телефона, сохранять список абонентов в файле при завершении программы и загружать его при запуске. Управление производится при помощи командных кнопок.
При разработке программы был использован пользовательский класс.
Полученные практические результаты показали правильность составления программы.
Изучен теоретический материал по объектно – ориентированному программированию и по организации простейших систем управления базами данных.
При разработке программы была использована база данных формата MS Access.
Список использованной литературы
- Бабушкина И. А. Практикум по объектно–ориентированному программированию / Бабушкина И.А., Окулов С.М.: –М.: БИНОМ, Лаборатория знаний, 2004. –366 с.
- Богуславский А.А., Соколов С.М. Основы программирования на языке Си++: –Коломна: КГПИ, 2002. –490 с.
- Джесс Либерти. Освой самостоятельно C++ за 21 день. –М.: Вильямс, 2003. –772 с.
- Дэвис Стефан Р. C++ для «чайников». –М.: Издательский дом «Вильяме», 2003. –336 с.
- Объектно–ориентированное программирование: Учебник для вузов. – 2 изд., перераб. и доп. / Под ред. Г.С. Ивановой. –М.: Изд–во МГТУ им. Н.Э. Баумана, 2003. –368 с.
- Федотова Д.Э., Семенов Ю.Д., Чижик К.Н. Объектно – ориентированное программирование. –М.: АСТ, 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("
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";
}
//----------------------------