Аналіз вимог до програмного забезпечення 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Аналіз вимог до програмного забезпечення



ТЕОРЕТИЧНА ЧАСТИНА


ТЕХНІЧНЕ ЗАВДАННЯ

 

Підстави для розробки

Розробка програмного забезпечення виконується на підставі рішення

засідання кафедри ПЗКС про затвердження тем дипломних та курсових

робіт (протокол № 2 від 21вересня 2012 року).

 

Призначення розробки

Розроблене програмне забезпечення повинно забезпечити надійність та швидкісно записати та авіарейси в базу даних. Якість реалізація програми була протестовано за допомогою звичайного набирання авіорейсіва.

Дана розробка повинна показати які в базі даних е авіорейси.

Програма виконує такі основні функції:

- Записуе нові авіорейси;

- Видаляе старі рейси;

- Показуе всі рейси за: за рейсом, скільки там людей, за датою, за часом, скільки коштує рейс і який літак вилітає;

 

Аналіз вимог до програмного забезпечення

У цьому розділі описуються вимоги, яким повинно задовольняти розроблене програмне забезпечення. За своїм змістом, цей розділ є деталізованим завданням на розробку програмного забезпечення.

Функціональні вимоги

Програмне забезпечення, що було розроблене в ході виконання курсової роботи повинно забезпечувати наступні функціональні вимоги:

- Працювати в звичайному віконному режимі операційної системи Windows XP;

- Забезпечити щоб всі користувачі могли вільно бачити рейси;

- Забезпечити зручний та швидкиі додавання нового рейсу;

- Ведення логу роботи програми;

- Збереження вхідних та вихідних даних;

Вимоги до складу та параметрів технічних засобів

Програма повинна працювати на комп’ютерах, де працює операційна система Windows XP. Інших вимог до апаратної частини не висувається.

 

Вимоги до інтерфейсу

Програма повинна мати інтуїтивно зрозумілий, зручний та візуально приємний інтерфейс.

Програмне забезпечення повинно бути оформлене у вигляді стандартного вікна операційної системи Windows XP.

Вікно програми повинно складатися з:

- Рядка меню;

- Панелі керування;

- Полів відображення інформації про ключ криптосистеми поточного сеансу;

- Поля відображення логу роботи програми;

 

Вимоги до інформаційної та програмної сумісності

Програма повинна працювати на комп’ютерах, де встановлена операційна система Windows XP (SP1, SP2, SP3). Програмне забезпечення складається з exe файлу та директорії в якій знаходяться файли для тестування програми.

Вимоги до тестування програмного забезпечення

Для перевірки даної програми необхідно виконати такі тести:

1. Перевірка функціонування інтерфейсу додатку;

2. Додавання нових рейсів;

3. Пошук по різних данних;

4. Виконання контрольного тесту.

 

Вимоги до програмної документації

Цей розділ містить опис складу та вимог до програмної документації, що супроводжує розроблене програмне забезпечення.

 

Склад супроводжувальної документації

Разом з розробленим програмним забезпеченням повинна постачатись наступна супроводжувальна документація:

§ Підстави для розробки;

§ Призначення та область застосування розробки;

§ Аналіз вимого до програмного забезпечення;

§ Функціональна специфікація;

§ Технічна специфікація;

§ Порядок та методика випробувань;

§ Результати випробувань;

§ Вихідні коди програми;

Вимоги до супроводжувальної документації

Документація повинна постачатися в двох екземплярах: в паперовому варіанті та електронному на оптичному носії.

Вимоги до оформлення супроводжувальної документації наступні:

Текст документації набирається на комп‘ютері шрифтом Times New Roman 14 пт через 1,5 інтервали. Розміщення – книжкове. Поля: зліва – не менше 2,5 см, решта полів – не менше 1,5 см. Вирівнювання – по ширині аркуша.

Відступ першого рядка абзацу – 1,27 см. Нумерація сторінок – наскрізна в усій роботі. Номери сторінок ставляться від центру. Формат: - 1 -. На титульному аркуші, листі затвердження, завданні на дипломну роботу та

анотаціях номери не ставляться, хоча самі аркуші враховуються у загальній

кількості сторінок.

Нумерація таблиць та рисунків окрема для кожного розділу. Наприклад, рис. 2.1, рис.2.2, рис.3.1, табл.1.2 тощо, де перша цифра – номер розділу, друга – номер рисунка або таблиці. Підпис під рисунком виконують шрифтом Times New Roman 12 пт, від центру, через 1 інтервал.

Стадії та етапи розробки

Таблиця 1.1

Основні стадії та етапи розробки програмного забезпечення:

 

№ п/п Назва етапів кваліфікаційної роботи Термін виконання етапів роботи Примітка
  Одержання технічного завдання 24.12.12р.  
  Аналіз літератури 5.01.13р.  
  Розробка інтерфейсу 10.01.13р.  
  Розробка модулів програми 10.02.13р.  
  Тестування та відлагодження програми 20.02.13р.  
  Оформлення програмної документації 27.02.13р.  
  Представлення готової роботи 1.03.13р.  
  Захист роботи згідно розкладу  

Порядок контролю та приймання

Розроблене програмне забезпечення повинно бути випробуване та перевірене виробником на наявність помилок. Порядок приймання і контролю полягає у наступному:

1. Перевірка правильного функціонування програми;

2. Перевірка відповідності стандартам оформлення документації;

3. Перевірка оформлення документації керівником проекту;

4. Попередній захист курсової роботи;

5. Проходження нормоконтролю роботи.

Програма та програмна документація повинна бути виконана на 100% і пройти рецензування згідно графіку.

 


ПРАКТИЧНА ЧАСТИНА


АРХІТЕКТУРА, ФУНКЦІОНАЛЬНІ ТА ТЕХНІЧНІ

ПОКАЗНИКИ

Призначення та область застосування

Програмне забезпечення, що було розроблене в процесі написання курсової роботи, може використовуватись для додавання рейсів в базу даних або переглянути іх там.

Також розроблену програму можна використовувати в якості міні записничка. Бо тут е і майже все для цього тільки назву поміняти.

 

Функціональна специфікація

Опис функціональних можливостей

Розроблена в процесі виконнання курсової роботи програма забезпечує наступні функціональні можливості, що реалізують поставлене завдання:

 

- Працювати в звичайному віконному режимі операційної системи Windows XP;

- Забезпечити щоб всі користувачі могли вільно бачити рейси;

- Забезпечити зручний та швидкиі додавання нового рейсу;

- Ведення логу роботи програми;

- Збереження вхідних та вихідних даних;

 

Опис інтерфейсу користувача

Дана програма не вимагає особливих знань в комп’ютерній галузі. Робота з програмою вимагає лише базових знань та навичок роботи з операційною системою Microsoft Windows XP.

Розроблене програмне забезпечення – набір модулів, які об’єднані графічним інтерфейсом користувача.

Головне вікно програми складається з рядка меню, панелі керування, текстового поля для відображення рейсів, кнопока для видаленя непотрібного руйсу.

Опис елементів інтерфейсу поданий нижче:

Рис. 2.2. Головне вікно програми

Рядок меню головного вікна програми складається з таких пунктів:

- Файл;

- Налаштування;

Таблиця 2.1

Підпункти меню Файл

Назва підпункту Функція
Відкрити Відкривае базу даних
Пошук Відкривае нове вікно для пошуку
Зберегти дані Збереження даних у файл
Вихід Закриття програми

При обранні підпунктів меню «Файл» відкриється діалогове вікно відкриття чи збереження файлів, де потрібно вказати файл, який ви бажаєте завантажити чи зберегти.

 

 

Рис. 2.3. Пукнт відкрити і виводить вікно

Рис. 2.4. Діалогове вікно відкриття файлів

 

Рис.2.5.Пункт пошук і виводить це вікно

Рис. 2.6. Діалогове вікно для пошуку даних

 

Рис.2.7.Пункт зберегти

Рис. 2.8. Діалогове вікно для зберігань даних

 

Обравши підпункти “Відкрити” відкриється діалогове вікно (Рис. 2.4), де необхідно вказати файли, в яких збережені відповідно файл, в якому міститься рейси аеропорта.

Підпунктик “Пошук” відкривае діалогове вікно пошуку(Рис. 2.5), яка дае змоху зробити тотальний пошук в всій базі дані про авіарейси в аеропорті.

Підпункти “Зберегти” відкривають діалогове вікно збереження файлів(Рис. 2.6), де користувач вказує у який файл будуть збережені дані про авіорейси.

Таблиця 2.2

Підпункти меню Налаштування

Назва підпункту Функція
Додати рейс Відкривае базу даних
Показати Відкривае нове вікно і показуй конкретий рейс
Очистити Очистить всі рейси

При обранні підпунктів меню «Налаштування» відкриється діалогове вікно з додаваня нового рейсу або показати конкретний рейс.

Рис.2.9.Пункт додати рейс

Рис. 2.10. Діалогове вікно для додавання нового рейсу

Рис.2.11.Пункт показати

Рис. 2.12. Діалогове вікно для додавання нового рейсу

Підпунктик “Додати ” відкривае діалогове вікно додати рейс(Рис. 2.7), яка дае змоху додаваня нових рейсів про авіарейси в аеропорті.

Підпунктик “Показати” відкривае діалогове вікно щоб міх передивлятись рейс(Рис. 2.8), яка дае змоху дивитись конкретний авіарейси в аеропорті.

Технічна специфікація

Опис діаграми модулів

Робота розробленого програмного забезпечення реалізується наступними файлами модулів:

- модуль Prima;

- модуль Adoua;

- модуль Atria;

- модуль Red;

Модуль Prima є головним модулем розробленого програмного забезпечення. В ньому містяться функції, що виводить всі авіарейси. Також в даному модулі містяться функції, що мае доступ до інших модулів.

Модуль Adoua відповідає за додавання нового авіарейсу.

Модуль Atria містить пошук всіх рейсів за класифікацію.

Модуль Red е модуль що показує авіорейс.

Опис програми

Функціональні можливості

В створеному програмному забезпеченні розроблені такі функції:

- Записуе нові авіорейси;

- Видаляе старі рейси;

- Показуе всі рейси за: за рейсом, скільки там людей, за датою, за часом, скільки коштує рейс і який літак вилітає;

- Зберегти рейси в базу даних.

 


Опис логічної структури

Структуру даного програмного забезпечення зручно подати у вигляді наступної блок-схеми:

 

Рис 3.1. Діаграма прецедентів розробленого ПЗ

Розглянемо дії користувача при роботі з програмою. Користувач запускає програму на виконання. На екрані з’являється головне вікно програми. При натисненні кнопки “Відкрити” відбудеться відкриття всіх рейсів.

Виклик і завантаження

Для завантаження програмного забезпечення необхідно двічі клацнути лівою кнопкою мишки по значку виконавчого файлу (Cursovaia. exe) або ярлика, що вказує на цей файл.

 

Використані технічні засоби

В процесі розробки було використано наступне програмне забезпечення:

Таблиця 3.1

Апаратна конфігурація технічного забезпечення

  Комп’ютер Комп’ютер Ноутбук
Процессор AMD Sempron 2500+ Intel Core 2 Duo 2.0 ГГц Intel Core 2 Duo 2.0 ГГц
ОЗП 800 МГц, 1024 мб. 800 МГц, 4048 мб 800 МГц, 2048 мб.
Відеоадаптер GeForce 6200, 128 Мб MRadeon 4330, 512 Мб MRadeon 3300, 256 Мб
Вінчестер 200 Гб 500 Гб 200 Гб
ОС Windows XP SP 2 32bit Windows XP SP2 64bit Windows XP SP3

Використані технічні засоби

При проведенні тестування використовувались технічні засоби, наведені у підрозділі 3.2.4. “Використані технічні засоби”. При проведенні тестів використовувалась система ручного тестування.

ВИСНОВОК

В процесі виконання курсової роботи створено програмне забезпечення, що показуе авіарейси в аеропорті.

Розроблене програма забезпечує надійне та зручний перегляд авіарейсів в аеропорті, а також надає можливість додавати нові авіарейси в базу даних.

А також отримав досвід по розробці баз даних в середовищі Borland C++ Builder.


ВИКОРИСТАНА ЛІТЕРАТУРА

1. Архангельский А.Я. - Программирование в C++ Builder (7-е издание), С. Макконнелл «Совершений код» та Раді Бучь книги.

2. Сайти: Кіберформ http://www.cyberforum.ru/cpp-builder-database/ Програм форум http://programmersforum.ru/forumdisplay.php?f=52 та форум Кодебі.нет http://forum.codeby.net/forum54.html

 


7. ДОДАТКИ

Код програми

Код сторінки Prima. h

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

 

#ifndef PrimaH

#define PrimaH

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

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <Dialogs.hpp>

#include <Grids.hpp>

#include <Menus.hpp>

#include <ExtCtrls.hpp>

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

struct litac

{

char reis[100];

double men;

char data[100];

double cias;

double bani;

char avion[100];

void Del(int nomer);

};

 

class TFPrima: public TForm

{

__published: // IDE-managed Components

TButton *Button1;

TMainMenu *MainMenu1;

TStringGrid *StringGrid1;

TEdit *Edit1;

TOpenDialog *OpenDialog1;

TSaveDialog *SaveDialog1;

TMenuItem *N1;

TMenuItem *N2;

TMenuItem *N5;

TMenuItem *N6;

TMenuItem *N8;

TMenuItem *N9;

TMenuItem *N4;

TMenuItem *N11;

TMenuItem *N10;

TPopupMenu *PopupMenu1;

TMenuItem *N3;

TMenuItem *N7;

TMenuItem *N12;

TImage *Image1;

void __fastcall N2Click(TObject *Sender);

void __fastcall N5Click(TObject *Sender);

void __fastcall N6Click(TObject *Sender);

void __fastcall N8Click(TObject *Sender);

void __fastcall Button1Click(TObject *Sender);

void __fastcall FormCreate(TObject *Sender);

void __fastcall FormClose(TObject *Sender, TCloseAction &Action);

void __fastcall N4Click(TObject *Sender);

void __fastcall N10Click(TObject *Sender);

void __fastcall FormKeyDown(TObject *Sender, WORD &Key,

TShiftState Shift);

void __fastcall N3Click(TObject *Sender);

void __fastcall N12Click(TObject *Sender);

void __fastcall N7Click(TObject *Sender);

void __fastcall N11Click(TObject *Sender);

private: // User declarations

public: // User declarations

__fastcall TFPrima(TComponent* Owner);

litac av[100];

int i;

void show(TStringGrid *sg);

bool edit;

int k;

};

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

extern PACKAGE TFPrima *FPrima;

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

#endif

Код сторінки Prima.срр

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

 

#include <vcl.h>

#pragma hdrstop

#include <iostream.h>

#include <jpeg.hpp>

#include "Prima.h" //головна форма

#include "Adoua.h" //форма для додаваня запису

#include "Atria.h" //пошукова форма

#include "Red.h" //форма для показу

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TFPrima *FPrima;

void TFPrima::show(TStringGrid *sg)

{ //extern int i;

sg->RowCount=FPrima->i+1;

for (int k=1;k<sg->RowCount;k++)

for (int l=0;l<sg->ColCount;l++)

sg->Cells[l][k]="";

for (int j=0; j<i; j++)

{

sg->Cells[0][j+1]=j+1;

sg->Cells[1][j+1]=FPrima->av[j].reis;

sg->Cells[2][j+1]=FPrima->av[j].men;

sg->Cells[3][j+1]=FPrima->av[j].data;

sg->Cells[4][j+1]=FPrima->av[j].cias;

sg->Cells[5][j+1]=FPrima->av[j].bani;

sg->Cells[6][j+1]=FPrima->av[j].avion;

}

}

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

__fastcall TFPrima::TFPrima(TComponent* Owner)

: TForm(Owner)

{

}

 

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

 

void __fastcall TFPrima::N2Click(TObject *Sender)

{

FILE *fil;

if(OpenDialog1->Execute())

{

i=0;

fil = fopen(OpenDialog1->FileName.c_str(),"r");

while (!feof(fil))

fread(&av[i++],sizeof(litac),1,fil);

fclose(fil);

i--;

show(StringGrid1);

edit = false;

}

 

}

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

 

void __fastcall TFPrima::N5Click(TObject *Sender)

{

FCautam->Show();

}

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

void __fastcall TFPrima::N6Click(TObject *Sender)

{

FILE *fil;

if(SaveDialog1->Execute())

{

fil = fopen(SaveDialog1->FileName.c_str(),"w");

for (int j=0;j<i;j++)

fwrite(&av[j],sizeof(litac),1,fil);

fclose(fil);

edit = false;

}

}

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

void __fastcall TFPrima::N8Click(TObject *Sender)

{

Close();

}

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

void __fastcall TFPrima::Button1Click(TObject *Sender)

{

if (FPrima->Edit1->Text!= "")

{

int k;

k=StrToInt(Edit1->Text);

if (k<1 || k>i)

return;

k--;

for (int j=k; j<i; j++)

FPrima->av[j]=FPrima->av[j+1];

FPrima->i--;

edit = true;

show(StringGrid1);

}

else

{

ShowMessage("Введіть рядок для видалення");

}

}

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

 

void __fastcall TFPrima::FormCreate(TObject *Sender)

{

FPrima->StringGrid1->Cells[0][0]="N";

FPrima->StringGrid1->Cells[1][0]="Рейс";

FPrima->StringGrid1->Cells[2][0]="Пасажири";

FPrima->StringGrid1->Cells[3][0] ="Дата";

FPrima->StringGrid1->Cells[4][0]="Час";

FPrima->StringGrid1->Cells[5][0]="Гроші";

FPrima->StringGrid1->Cells[6][0]="Літак";

i=0;

edit = false;

Image1->Picture->LoadFromFile("Avion-1.jpg");

}

 

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

 

void __fastcall TFPrima::FormClose(TObject *Sender, TCloseAction &Action)

{

if (edit == true)

{

int res= Application->MessageBoxA("Зерегти зміни?","Файл не збережений",MB_YESNOCANCEL | MB_ICONQUESTION);

if (res== IDYES)

N5->Click();

else

if (res== IDNO)

return;

else

{

//Action = false;

}

}

}

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

 

void __fastcall TFPrima::N4Click(TObject *Sender)

{

FDaem->ShowModal();

}

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

 

void __fastcall TFPrima::N10Click(TObject *Sender)

{

for (int q=0; q<FPrima->StringGrid1->ColCount; q++)

for (int w=1; w<FPrima->StringGrid1->RowCount; w++)

StringGrid1->Cells[q][w]="";

}

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

 

 

void __fastcall TFPrima::FormKeyDown(TObject *Sender, WORD &Key,

TShiftState Shift)

{

if (Key == 'Q' && Shift.Contains(ssCtrl))

{

FILE *fil;

if(OpenDialog1->Execute())

{

i=0;

fil = fopen(OpenDialog1->FileName.c_str(),"r");

while (!feof(fil))

fread(&av[i++],sizeof(litac),1,fil);

fclose(fil);

i--;

show(StringGrid1);

edit = false;

}

}

if (Key == 'S' && Shift.Contains(ssCtrl))

{

FILE *fil;

if(SaveDialog1->Execute())

{

fil = fopen(SaveDialog1->FileName.c_str(),"w");

for (int j=0;j<i;j++)

fwrite(&av[j],sizeof(litac),1,fil);

fclose(fil);

edit = false;

}

}

if (Key == 'A' && Shift.Contains(ssCtrl))

FCautam->ShowModal();

if (Key == 'D' && Shift.Contains(ssCtrl))

FDaem->ShowModal();

}

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

 

 

void __fastcall TFPrima::N12Click(TObject *Sender)

{

for(int j=0; j<StringGrid1->ColCount; j++)

for (int t=1; t<StringGrid1->RowCount; t++)

StringGrid1->Cells[j][t]="";

}

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

 

void __fastcall TFPrima::N7Click(TObject *Sender)

{

k = StringGrid1->Row-1;

FRed->Edit1->Text=AnsiString(FPrima->av[k].reis);

FRed->Edit2->Text=FPrima->av[k].men;

FRed->Edit3->Text=FPrima->av[k].data;

FRed->Edit4->Text=FPrima->av[k].cias;

FRed->Edit5->Text=FPrima->av[k].bani;

FRed->Edit6->Text=AnsiString(FPrima->av[k].avion);

FRed->ShowModal();

}

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

 

 

void __fastcall TFPrima::N11Click(TObject *Sender)

{

k = StringGrid1->Row-1;

FRed->Edit1->Text=AnsiString(FPrima->av[k].reis);

FRed->Edit2->Text=FPrima->av[k].men;

FRed->Edit3->Text=FPrima->av[k].data;

FRed->Edit4->Text=FPrima->av[k].cias;

FRed->Edit5->Text=FPrima->av[k].bani;

FRed->Edit6->Text=AnsiString(FPrima->av[k].avion);

FRed->ShowModal();

}

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

 

Код сторінки Red.срр

 

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

 

#include <vcl.h>

#pragma hdrstop

#include "Prima.h"

#include "Red.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TFRed *FRed;

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

__fastcall TFRed::TFRed(TComponent* Owner)

: TForm(Owner)

{

}

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

void __fastcall TFRed::FormCreate(TObject *Sender)

{

Image1->Picture->LoadFromFile("Avion-1.jpg");

}

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

 

void __fastcall TFRed::Button2Click(TObject *Sender)

{

Close ();

}

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

Код сторінки Adoua.срр

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

 

#include <vcl.h>

#pragma hdrstop

 

#include "Adoua.h"

#include "Prima.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TFDaem *FDaem;

 

class io{

public:

void cler()

{

FDaem->Edit1->Clear();

FDaem->Edit2->Clear();

FDaem->Edit3->Clear();

FDaem->Edit4->Clear();

FDaem->Edit5->Clear();

}

 

void Adoua()

{

if ((FDaem->Edit1->Text!= "")&& (FDaem->Edit2->Text!= "")

&& (FDaem->Edit3->Text!= "")&&

(FDaem->Edit4->Text!= "")&& (FDaem->Edit5->Text!= "")

&& (FDaem->DateTimePicker1->DateTime.DateString()!= ""))

{

strcpy(FPrima->av[FPrima->i].reis,FDaem->Edit1->Text.c_str());

FPrima->av[FPrima->i].men=StrToFloat(FDaem->Edit2->Text);

FPrima->av[FPrima->i].cias=StrToFloat(FDaem->Edit3->Text);

FPrima->av[FPrima->i].bani=StrToFloat(FDaem->Edit4->Text);

strcpy(FPrima->av[FPrima->i].avion,FDaem->Edit5->Text.c_str());

strcpy(FPrima->av[FPrima->i].data, DateToStr(FDaem->DateTimePicker1->Date).c_str());

FPrima->i++;

FPrima->show(FPrima->StringGrid1);

}

else {

ShowMessage("Заповніть усі поля");

}

}

};

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

__fastcall TFDaem::TFDaem(TComponent* Owner)

: TForm(Owner)

{

}

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

 

void __fastcall TFDaem::Button1Click(TObject *Sender)

{

io Adoua;

Adoua.Adoua();

FPrima->edit = true;

}

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

 

void __fastcall TFDaem::Button2Click(TObject *Sender)

{

io cler;

cler.cler();

}

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

void __fastcall TFDaem::Button3Click(TObject *Sender)

{

io cler;

cler.cler();

Close();

}

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

void __fastcall TFDaem::N3Click(TObject *Sender)

{

io adoua;

adoua.Adoua();

}

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

void __fastcall TFDaem::N4Click(TObject *Sender)

{

io cler;

cler.cler();

}

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

void __fastcall TFDaem::N5Click(TObject *Sender)

{

io cler;

cler.cler();

Close();

}

 

 

void __fastcall TFDaem::Edit3KeyPress(TObject *Sender, char &Key)

{

if ((Key<'0' || Key>'9') && (Key!=',') && (Key!=8))

Key=0;

}

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

 

 

void __fastcall TFDaem::Edit4KeyPress(TObject *Sender, char &Key)

{

if ((Key<'0' || Key>'9') && (Key!=',') && (Key!=8))

Key=0;

}

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

 

 

void __fastcall TFDaem::FormCreate(TObject *Sender)

{

Image1->Picture->LoadFromFile("Avion-1.jpg");

}

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

 

Код сторінки Atria.срр

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

 

#include <vcl.h>

#pragma hdrstop

#include "Prima.h"

#include "Adoua.h"

#include "Atria.h"

#include <dstring.h>

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TFCautam *FCautam;

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

__fastcall TFCautam::TFCautam(TComponent* Owner)

: TForm(Owner)

{

}

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

void cp ()

{

FCautam->Edit1->Visible=false;

FCautam->Edit2->Visible=false;

FCautam->Edit3->Visible=false;

FCautam->Edit4->Visible=false;

FCautam->Edit5->Visible=false;

FCautam->Edit6->Visible=false;

FCautam->Button1->Visible=false;

FCautam->Button2->Visible=false;

FCautam->Button3->Visible=false;

FCautam->Button6->Visible=false;

FCautam->Button7->Visible=false;

FCautam->Button8->Visible=false;

FCautam->Label9->Visible=false;

FCautam->Label3->Visible=false;

FCautam->Label4->Visible=false;

FCautam->Label5->Visible=false;

FCautam->Label6->Visible=false;

FCautam->Label7->Visible=false;

FCautam->Label8->Visible=false;

return;

}

 

void __fastcall TFCautam::Button1Click(TObject *Sender)

{

int s=1;

bool find=false;

String tmp;

tmp=Edit2->Text;

for (int i=0; i<FPrima->i; i++)

{

if (AnsiString(FPrima->av[i].reis)==tmp)

{

StringGrid1->Cells[0][s]=i+1;

StringGrid1->Cells[1][s]=FPrima->av[i].reis;

StringGrid1->Cells[2][s]=FPrima->av[i].men;

StringGrid1->Cells[3][s]=FPrima->av[i].data;

StringGrid1->Cells[4][s]=FPrima->av[i].cias;

StringGrid1->Cells[5][s]=FPrima->av[i].bani;

StringGrid1->Cells[6][s]=FPrima->av[i].avion;

s++;

find = true;

}

if (!find)

{

ShowMessage("Збігів не знайдено");

}

 

}

}

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

 

void __fastcall TFCautam::FormCreate(TObject *Sender)

{

FCautam->StringGrid1->Cells[0][0]="N";

FCautam->StringGrid1->Cells[1][0]="Рейс";

FCautam->StringGrid1->Cells[2][0]="Пасажири";

FCautam->StringGrid1->Cells[3][0]="Дата";

FCautam->StringGrid1->Cells[4][0]="Година";

FCautam->StringGrid1->Cells[5][0]="Гроші";

FCautam->StringGrid1->Cells[6][0]="Літак";

FPrima->i=0;

FPrima->edit = false;

 

cp();

Button1->Visible=false;

Edit2->Visible=false;

Label3->Visible=false;

Image1->Picture->LoadFromFile("Avion-1.jpg");

}

 

 

void __fastcall TFCautam::Button6Click(TObject *Sender)

{

int s=1;

bool find=false;

String pu;

pu=Edit1->Text;

for (int i=0; i<FPrima->i; i++)

{

if (AnsiString(FPrima->av[i].men)==pu)

 

{

StringGrid1->Cells[0][s]=i+1;

StringGrid1->Cells[1][s]=FPrima->av[i].reis;

StringGrid1->Cells[2][s]=FPrima->av[i].men;

StringGrid1->Cells[3][s]=FPrima->av[i].data;

StringGrid1->Cells[4][s]=FPrima->av[i].cias;

StringGrid1->Cells[5][s]=FPrima->av[i].bani;

StringGrid1->Cells[6][s]=FPrima->av[i].avion;

s++;

find = true;

}

}

if (!find)

{

ShowMessage("Збігів не знайдено");

}

 

}

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

 

void __fastcall TFCautam::Button7Click(TObject *Sender)

{

int s=1;

bool find=false;

String pu;

pu=Edit5->Text;

for (int i=0; i<FPrima->i; i++)

{

if (AnsiString(FPrima->av[i].avion)==pu)

 

{

StringGrid1->Cells[0][s]=i+1;

StringGrid1->Cells[1][s]=FPrima->av[i].reis;

StringGrid1->Cells[2][s]=FPrima->av[i].men;

StringGrid1->Cells[3][s]=FPrima->av[i].data;

StringGrid1->Cells[4][s]=FPrima->av[i].cias;

StringGrid1->Cells[5][s]=FPrima->av[i].bani;

StringGrid1->Cells[6][s]=FPrima->av[i].avion;

s++;

find = true;

}

}

if (!find)

{

ShowMessage("Збігів не знайдено");

}

}

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

 

void __fastcall TFCautam::Button8Click(TObject *Sender)

{

int s=1;

bool find=false;

double pu, la;

la=StrToFloat(Edit3->Text);

pu=StrToFloat(Edit4->Text);

for (int i=0; i<FPrima->i; i++)

{

 

if ((StrToFloat(AnsiString(FPrima->av[i].bani)) >= la) &&

(StrToFloat(AnsiString(FPrima->av[i].bani)) <= pu))

{

StringGrid1->Cells[0][s]=i+1;

StringGrid1->Cells[1][s]=FPrima->av[i].reis;

StringGrid1->Cells[2][s]=FPrima->av[i].men;

StringGrid1->Cells[3][s]=FPrima->av[i].data;

StringGrid1->Cells[4][s]=FPrima->av[i].cias;

StringGrid1->Cells[5][s]=FPrima->av[i].bani;

StringGrid1->Cells[6][s]=FPrima->av[i].avion;

s++;

find = true;

}

 

 

}

if (!find)

{

ShowMessage("Збігів не знайдено");

}

}

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

 

void __fastcall TFCautam::RadioButton5Click(TObject *Sender)

{

cp();

Button1->Visible=true;

Button2->Visible=true;

Edit2->Visible=true;

Label3->Visible=true;

}

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

 

void __fastcall TFCautam::RadioButton6Click(TObject *Sender)

{

cp();

Button6->Visible=true;

Button2->Visible=true;

Edit1->Visible=true;

Label4->Visible=true;

}

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

 

void __fastcall TFCautam::RadioButton8Click(TObject *Sender)

{

cp();

Button7->Visible=true;

Button2->Visible=true;

Edit5->Visible=true;

Label8->Visible=true;

}

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

 

void __fastcall TFCautam::RadioButton7Click(TObject *Sender)

{

cp();

Button8->Visible=true;

Button2->Visible=true;

Edit3->Visible=true;

Edit4->Visible=true;

Label5->Visible=true;

Label6->Visible=true;

Label7->Visible=true;

}

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

 

void __fastcall TFCautam::Button2Click(TObject *Sender)

{

for(int j=0; j<StringGrid1->ColCount; j++)

for (int t=1; t<StringGrid1->RowCount; t++)

StringGrid1->Cells[j][t]="";

}

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

 

void __fastcall TFCautam::Button3Click(TObject *Sender)

{

int s=1;

bool find=false;

String pu;

pu=Edit6->Text;

for (int i=0; i<FPrima->i; i++)

{

if (AnsiString(FPrima->av[i].data)==pu)

 

{

StringGrid1->Cells[0][s]=i+1;

StringGrid1->Cells[1][s]=FPrima->av[i].reis;

StringGrid1->Cells[2][s]=FPrima->av[i].men;

StringGrid1->Cells[3][s]=FPrima->av[i].data;

StringGrid1->Cells[4][s]=FPrima->av[i].cias;

StringGrid1->Cells[5][s]=FPrima->av[i].bani;

StringGrid1->Cells[6][s]=FPrima->av[i].avion;

s++;

find = true;

}

}

if (!find)

{

ShowMessage("Збігів не знайдено");

}

 

}

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

 

void __fastcall TFCautam::RadioButton1Click(TObject *Sender)

{

cp();

Button3->Visible=true;

Button2->Visible=true;

Edit6->Visible=true;

Label9->Visible=true;

}

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

 

 

1. Курсовий реферат

Зміст

I. Концепція………………………………………………………………..……49

1. Складність....................................................................................................49

2. Об'єктна модель ………….……………………………………….............51

3. Класи і об'єкти …………………………………………………….……...54

ІІ. Метод…………………………………………………………………............57

1. Система позначень………………………………………………………..57

2.Процес……………………………………………………….……………..62

3. Практичні питання………………………………………………………..62

 

 

Концепція

Глава 1
Складність

Складність викликається чотирма основними причинами:

1. Складністю реальної предметної області, з якої виходить замовлення на розробку.

2. Трудністю управління процесом розробки.

3. Необхідністю забезпечити достатню гнучкість програми.

4. Незадовільними способами опису поведінки великих дискретних систем.

Труднощі управління процесом розробки. Основне завдання розробників полягає в створенні ілюзії простоти, у захисті користувачів від складності описуваного предмета чи процесу. Сьогодні звичайними стали програмні системи, розмір яких обчислюється десятками тисяч або навіть мільйонами рядків на мовах високого рівня і тому, розробників стає все більше і більше. Чим більше розробників, тим складніше зв'язку між ними і тим складніше координація. Таким чином, при колективному виконанні проекту головним завданням керівництва є підтримка єдності і цілісності розробки.

Гнучкість програмного забезпечення. Програмування має граничну гнучкість, і розробник може сам забезпечити себе всіма необхідними елементами, що відносяться до будь-якого рівня абстракції. Така гнучкість надзвичайно спокуслива. Вона змушує розробника створювати своїми силами всі базові будівельні блоки майбутньої конструкції, з яких складаються елементи більш високих рівнів абстракції.

Структура персонального комп'ютера Персональний комп'ютер (ПК) - прилад помірної складності. ПК складається з: системної плати, монітора, клавіатури й пристрої зовнішньої пам'яті будь-якого типу. Можна взяти будь-яку з цих частин і розкласти її в свою чергу на складові. Системна плата, наприклад, містить оперативну пам'ять і т.д. Це приклад складної ієрархічної системи. Персональний комп'ютер нормально працює завдяки чіткому спільному функціонуванню всіх його складових частин. Разом ці частини утворюють логічне ціле. Рівні цій ієрархії представляють різні рівні абстракції, причому один надбудований над іншим. На кожному рівні абстракції ми знаходимо набір пристроїв, які спільно забезпечують деякі функції більш високого рівня, і вибираємо рівень абстракції, виходячи з наших специфічних потреб.

П'ять ознак складної системи:

1. Складні системи часто є ієрархічними і складаються з взаємозалежних підсистем, які в свою чергу також можуть бути розділені на підсистеми, і т. д., аж до найнижчого рівня.

2. Вибір, які компоненти в даній системі вважаються елементарними, довільний і у великій мірі залишається на розсуд дослідника.

3. Внутрішньокомпонентний зв'язок звичайно сильніше, ніж зв'язок між компонентами. Ця обставина дозволяє відокремлювати «високочастотні» взаємодії всередині компонентів від «низькочастотної» динаміки взаємодії між компонентами.

4. Ієрархічні системи зазвичай складаються з небагатьох типів підсистем, по-різному комбінованих і організованих.

5. Будь-яка працююча складна система є результатом розвитку роботи більш простої системи... Складна система, спроектована «з нуля», ніколи не запрацює. Слід починати з працюючої простої системи.

Роль декомпозиції. При проектуванні складної програмної системи необхідно розділяти її на все менші й менші підсистеми, кожну з яких можна вдосконалювати незалежно. Декомпозиції бувають 2 видів: алгоритмічна декомпозиція та об'єктно-орієнтована декомпозиція. Поділ за алгоритмами концентрує увагу на порядку подій, що відбуваються, а поділ по об'єктах надає особливого значення агентам, які є або об'єктами, або суб'єктами дії.

Роль абстракції. Ми змушені охоплювати одночасно значна кількість інформації, але завдяки абстракції ми користуємося одиницями інформації істотно більшого семантичного обсягу, особливо, коли ми розглядаємо світ з об'єктно-орієнтованої точки зору, оскільки об'єкти як абстракції реального світу представляють собою окремі насичені зв'язкові інформаційні одиниці.

Методи проектування програмних систем. Метод - це послідовний процес створення моделей, які описують цілком певними засобами різні сторони розроблюваємої програмної системи. Методологія - це сукупність методів, що застосовуються в життєвому циклі розробки програмного забезпечення та об'єднаних одним загальним філософським підходом. Методи важливі з кількох причин. По-перше, вони впорядковують процес створення складних програмних систем, так як загальні засоби доступні для всієї групи розробників. По-друге, вони дозволяють менеджерам у процесі розробки оцінити ступінь просування і ризик. Існує 3 основних групи методів:

· метод структурного проектування зверху вниз;

· метод потоків даних;

· об'єктно-орієнтоване проектування.

Cтруктурний підхід не дозволяє виділити абстракції і забезпечити обмеження доступу до даних; він також не надає достатніх коштів для організації паралелізму. Структурний метод не може забезпечити створення гранично складних систем, і він, як правило, неефективний в об'єктних і об'єктно-орієнтованих мовах програмування.

У методі потоків даних програмна система розглядається як перетворювач вхідних потоків у вихідні. Метод потоків даних, як і структурний метод, з успіхом застосовувався при вирішенні ряду складних завдань, зокрема, в системах інформаційного забезпечення, де існують прямі зв'язки між вхідними і вихідними потоками системи і де не потрібно приділяти особливої уваги швидкодії.

Об'єктно-орієнтоване проектування (object-oriented design) - в основі OOD лежить уявлення про те, що програмну систему необхідно проектувати як сукупність взаємодіючих один з одним об'єктів, розглядаючи кожен об'єкт як екземпляр певного класу, причому класи утворюють ієрархію.

Роль ієрархії. Об'єктна структура важлива, так як вона ілюструє схему взаємодії об'єктів один з одним, яке здійснюється за допомогою механізмів взаємодії. Структура класів не менш важлива: вона визначає спільність структур і поведінки всередині системи.

Методологія

Глава 1

Система позначень

Елементи системи позначень



Поделиться:


Последнее изменение этой страницы: 2016-06-29; просмотров: 724; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.22.249.158 (0.673 с.)