Автор работы: Пользователь скрыл имя, 19 Июня 2014 в 06:48, курсовая работа
Объектно-ориентированное программирование (ООП) – основная парадигма программирования 80-90-х годов, которая по всей видимости сохранится и в течение текущего десятилетия. Она является результатом тридцатилетнего опыта и практики, которые берут начало в языке Симула 67 и продолжаются в языках Смолток, Эйфель, Турбо Паскаль, Объектный Паскаль, С++, Ява, C# и др. ООП – это стиль, который фиксирует поведение реального мира так, что детали его составных частей скрыты, и тот, кто решает задачу, мыслит в терминах, присущих самой задаче, а не языку программирования.
Рассмотрим основные этапы развития программирования, которые помогают лучше понять взаимосвязь структурного подхода, модульного программирования и ООП.
Введение 3
1 Анализ и проектирование 4
1.1 Постановка задачи 4
1.2 Алгоритм решения 4
1.3 Структурная модель 8
1.4 Объектная модель 9
2 Разработка программы 11
2.1 Назначение программы 11
2.2 Системные требования 11
2.3 Выбор языка программирования 11
2.4 Структура базы данных 15
2.5 Проектирование интерфейса 16
2.6 Структура программы 19
2.7 Инструкция пользователя 20
2.8 Контрольный пример 22
Заключение 25
Список использованной литературы 26
Приложение. Листинг программы 27
При поиске по двум другим критериям необходимо задать адрес и телефон соответственно.
Если по введенным данным информации нет, то на экран выводится пустая таблица базы данных.
Для отмены результатов поиска необходимо нажать кнопку Показать все.
Для завершения работы с программой необходимо нажать кнопку Выход.
Прогонка программы для различных исходных данных дала результат, приведенный на рис. 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";
}
//----------------------------
Информация о работе Объектно-ориентированное программирование