Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая про самолеты.doc
Скачиваний:
13
Добавлен:
06.11.2019
Размер:
281.6 Кб
Скачать
    1. Источники, использованные при разработке При разработке данного проекта использовались следующие источники

  1. Сайты, посвященные программированию на языке C/C++:

  1. www.cbuilder.ru

  2. www.rxlib.ru

  3. www.ishodniki.ru

  4. www.netcode.ru

  5. www.codenet.ru

  6. www.getsoft.ru/programming/c/

  7. www.cyberguru.ru

  8. www.citforum.ru/programming/c.shtml

  9. www.realcoding.net/article/rubric/CCplus

  10. www.alglib.sources.ru

  1. Форумы:

  • www.forum.vingrad.ru/sources/C++C.html

  • www.forum.codeby.net/forum8.html

  • www.programmersforum.ru/forumdisplay.php?s=6c3ac6911343a240681a4631f2691f62&f=13

2.Разработка рабочего проекта

2.1 Разработка программы

На форме отображается кнопка «Добавить», «Удалить», «Вывести». При нажатии кнопки «Добавить» программа вносит новые данные в список новой заявки клиента.

При нажатии кнопки «удалить» программа удаляет выделеную заявку из списка.

Если нам необходимо найти нужные заявки по дате вылета или по номеру рейса то необходимо ввести нужную нам дату или указать номер рейса и нажать кнопку вывести. Программа выводит в списке все найденные завки на авиабилеты.

Данные о заявках будут храниться в файле.

На форме нам будут необходимы следующие компоненты

  1. TLabel- компонент представляет собой статический текст. С помощью этого компонента на рабочей поверхности формы можно отобразить информацию, сделать пояснения и показать названия других компонентов.

  1. TEdit- этот компонент представляет собой редактируемую строку (далее - просто редактор)

  1. TButton- кнопка.

  1. StrinGrid1– этот компонент реализует возможности отображения списков таблице

  1. Переключатели RadioButton1 –

  1. Компонент DateTimePicker1 -

  1. TSaveDialog и TOpenDialog – эти компоненты – диалоги предназначены для выбора имени файла, который будет в дальнейшем использован для чтения и записи.

TMainMenu – компонент предназначен для создания меню.

Программа заявок на авиабилеты

Форма для внесения новой заявки на авиабилеты

Хранение и загрузка данных происходит с помошью меню прграммы

2.2 Спецификация программы

Название программы - «Заявка на авиабилеты» в ее состав входит:

Обозначение

Наименование

Примечание

list_avia.bpr

Файл проекта

Связывает все файлы приложения

save.dat

Файл данных

Файл, в котором сохраняются все данные программы

Unit1.cpp

Файл модуля 1 проекта

Реализация класса «стек»

list_avia.exe

Файл запуска

Запускает рабочую программу

2.3 Текст программы

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

#include <vcl.h>

#include <string.h>

#include <stdlib.h>

#include <DateUtils.hpp>

#pragma hdrstop

#include "Unit1.h"

#include "Unit3.h"

#include "ulist.h"

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

#pragma package(smart_init)

#pragma link "CSPIN"

#pragma resource "*.dfm"

TForm1 *Form1;

TAviaList list ; // список заявок

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

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

list.Init();

}

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

void ShowList () {

Form1->StringGrid1->RowCount = 1 ;

int i = 1;

// вывод заявок

for ( TAviaListItem * it = list.first; it != NULL ; it = it -> next ) {

// если нужно выводить по номеру рейса но номер не совпадает то не выводим

if (Form1->RadioButton2->Checked && it->number != Form1->CSpinEdit1->Value)

{

continue;

}

// если нужно выводить по дате но дата не совпадает то не выводим

if (Form1->RadioButton3->Checked &&

(

DayOf(it->date) != DayOf(Form1->DateTimePicker1->Date) ||

MonthOf(it->date) != MonthOf(Form1->DateTimePicker1->Date) ||

YearOf(it->date) != YearOf(Form1->DateTimePicker1->Date)

)

)

{

continue;

}

Form1->StringGrid1->RowCount++;

Form1->StringGrid1->Cells[0][i] = it->dest;

Form1->StringGrid1->Cells[1][i] = it->number;

Form1->StringGrid1->Cells[2][i] = it->fio;

Form1->StringGrid1->Cells[3][i] = DateToStr(it->date);

i++;

}

}

void __fastcall TForm1::FormCreate(TObject *Sender)

{

StringGrid1->ColWidths[0] = 120;

StringGrid1->Cells[0][0] = " Пункт назначения ";

StringGrid1->ColWidths[1] = 160;

StringGrid1->Cells[1][0] = " Номер рейса";

StringGrid1->ColWidths[2] = 200;

StringGrid1->Cells[2][0] = " ФИО пассажира";

StringGrid1->ColWidths[3] = 100;

StringGrid1->Cells[3][0] = " Дата вылета";

}

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

void __fastcall TForm1::FormDestroy(TObject *Sender)

{

list.Clear();

}

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

void __fastcall TForm1::N3Click(TObject *Sender)

{

if (SaveDialog1->Execute())

{

list.SaveToFile(SaveDialog1->FileName.c_str()); // сохраняем список

}

}

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

void __fastcall TForm1::N4Click(TObject *Sender)

{

if (OpenDialog1->Execute())

{

list.LoadFromFile(OpenDialog1->FileName.c_str()); // загружаем список

ShowList (); // обвноляем список

}

}

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

void __fastcall TForm1::Button2Click(TObject *Sender)

{

TForm3* f3 = new TForm3(this);

f3->SetList(list) ;

f3->ShowModal();

ShowList (); // обвноляем список

delete f3;

}

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

void __fastcall TForm1::Button4Click(TObject *Sender)

{

if (StringGrid1->Row > 0) {

// удаление

list.Delete(StringGrid1->Row - 1) ;

ShowList();

}

}

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

void __fastcall TForm1::N7Click(TObject *Sender)

{

Button4Click(NULL); //удаление

}

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

void __fastcall TForm1::N8Click(TObject *Sender)

{

Button2Click(NULL); //добавление

}

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

void __fastcall TForm1::Button3Click(TObject *Sender)

{

ShowList();

}

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

void __fastcall TForm1::N2Click(TObject *Sender)

{

Close();

}

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

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

#include <vcl.h>

#pragma hdrstop

#include "Unit3.h"

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

#pragma package(smart_init)

#pragma link "CSPIN"

#pragma resource "*.dfm"

TForm3 *Form3;

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

__fastcall TForm3::TForm3(TComponent* Owner)

: TForm(Owner)

{

}

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

void TForm3 :: SetList (TAviaList & list) {

this->plist = & list;

}

void __fastcall TForm3::Button3Click(TObject *Sender)

{

// добавление

plist->Add(new TAviaListItem(Edit2->Text.c_str() , CSpinEdit1->Value ,

Edit4->Text.c_str() , this->DateTimePicker1->Date ));

// задержка

Button3->Enabled = false;

for (int i = 0 ; i < 10 ; i++) {

Application->ProcessMessages();

Sleep(100);

}

Button3->Enabled = true;

}

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

2.4 Описание программы

2.4.1 Общие сведения

Наименование программы: Заявка на авиабилеты

Для функционирования программы необходимо наличие файлов: «list_avia.exe», «save.dat»

Программа реализована на языке программирования С++.

Операционная система Microsoft Windows XP Professional, Виста, windows 7.

2.4.2 Функциональное назначение

Программа предназначена для регистрирования заявок на авиабилеты

2.4.3 Используемые технические средства

Минимальные системные требования к ЭВМ: 640Кб ОЗУ, 10Мб свободного дискового пространства, процессор с частотой не менее 133Мгц, клавиатура.

Рекомендуемы системные требования к ЭВМ: 10Мб ОЗУ, процессор с частотой 849 Мгц, манипулятор типа «мышь», цветной дисплей, клавиатура.

2.4.4 Вызов и загрузка

Загрузка данных в программу происходит из файла с помощью меню загрузить.

    1. Отладка программы

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

Для прохода фрагмента программы по шагам можно использовать команды:

Команда

Горячие" клавиши

Пояснения

Step Over (По шагам без захода в...)

F8

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

Trace Into (Трассировка с захо-дом в...)

F7

Пошаговое выполнение программы с заходом в вызываемые функции.

Trace to Next Source Line (Трас-сировка до следующей строки)

Shift+F7

Переход к следующей исполняемой строке.

Run to Cursor (Выполнить до курсора)

F4

Команда выполняет программу до того выполняемого оператора, на котором расположен курсор в окне редактора кода.

Run Until Return (Выполнить до выхода из функции)

Shift+F7

Выполнение программы до выхода из текущей функции, останов на операторе, следующем за вызовом этой функции.

Show Execution Point (Показать точку выполнения)

--

Команда помещает курсор на операторе, который будет выполняться следующим.