--PAGE_BREAK--- RGZ_DSC.cpp (Файл, що містить опис функцій класів);
- RGZ.Н (Файл, що містить опис класів)
Об’єктом іспитів є нижче приведена програма.
2. Мета іспитів
Мета іспитів – це впевнитися у правильності роботи даної програми та оцінити її ефективність.
Тести, котрі перевірюють правильність роботи програми приведені у пункті «Засоби та порядок випробувань».
3. Вимоги до програми та програмного документа
Функціонування системи цілком забезпечується стандартною конфігурацією IBM сумісних персональних ЕОМ.
Основна вимога до програми – це чітке демонстрування поліморфізму та правильність роботи, а також, втілення основної задачі.
4. Засоби та порядок іспитів
Засобом іспитів є введення інформації за підказками, які з’являються у процесі роботи програми. Шляхом порівняння фактичного результату роботи програми з прогнозованими результатами, встановлюється вірність роботи програми.
Розглянемо виконання програми по пунктах:
· Перед користувачем з'являється повідомлення: «Vvedite nomer operatsii».
· Якщо ви натиснете клавішу «1», то виконаєте наступні дії:
Sozdanie tablizi dannih
Vvedite N: 3
Vvedite tip zapisi [0..2]: 2
Vvedite nazvanie alboma: qqq
Vvedite god vipuska: 1889
Vvedite kl-vo trekov v albome: 11
Vvedite prodolzitelnost alboma po vremeni: 60
Vvedite kolichestvo bonus trekov: 2
Vvedite tip zapisi [0..2]: 0
Vvedite nazvanie alboma: www
Vvedite god vipuska: 1990
Vvedite kl-vo trekov v albome: 12
Vvedite tip zapisi [0..2]: 1
Vvedite nazvanie alboma: eee
Vvedite god vipuska: 1991
Vvedite kl-vo trekov v albome: 13
Vvedite prodolzitelnost alboma po vremeni: 58
· При натисканні на клавішу «2» на екрані з'явиться таблиця яку ви заповнили вище:
Vivod na ekran
|Nazv |God |Treki |Vremya |Bonus+
—
qqq 1889 11 60 2
www 1990 12
eee 1991 13 58
Vivod na ekran zavershen.
· Якщо ви натиснете «3», то на екрані з'явиться повідомлення:
Vvedite nomer operatsii:3
Vivod v fail a.dat
Vivod v fail uspeshno zavershen.
· Якщо ви натиснете «4», то на екрані з'явиться повідомлення:
Vvedite nomer operatsii:4
Chtenie iz faila a.dat
Chtenie iz faila uspeshno zavershena.
· При натисканні на клавішу «5» на екрані з'явиться повідомлення та ви виконаєте наступні дії:
Vvedite nomer operatsii:5
Poisk obyekta
Vvedite kluch dlya poiska(nazvanie alboma): www
Zapis bila naidena.
|Nazv |God |Treki |Vremya |Bonus+
—
www 1990 12
· Якщо ви натиснете «6», то на екрані з'явиться повідомлення та ви виконаєте наступні дії:
Vvedite nomer operatsii:6
Redaktirovanie zapisi
Vvedite nomer zapisi: 2
vedite nazvanie alboma: rrr
vedite god vipuska: 1234
vedite kl-vo trekov v albome: 13
vedite prodolzitelnost alboma po vremeni: 56
Redaktirovanie uspeshno zaversheno.
· Результатом ваших дій буде те, що один запис у таблиці зміниться:
Vivod na ekran
|Nazv |God |Treki |Vremya |Bonus+
—
qqq 1889 11 60 2
www 1990 12
rrr 1234 13 56
Vivod na ekran zavershen.
· При натисканні на клавішу «7» на екрані з'явиться повідомлення та ви виконаєте наступні дії:
Vvedite nomer operatsii:7
Vstavka novoi zapisi
Vvedite tip novoy zapisi [0..2]: 2
vedite nazvanie alboma: zzz
vedite god vipuska: 1534
Vvedite kl-vo trekov v albome: 13
Vvedite prodolzitelnost alboma po vremeni: 222
Vvedite kolichestvo bonus trekov: 1
Vstavka zapisi uspeshno zaversena.
· Результатом ваших дій буде те що один запис у таблиці зміниться:
Vivod na ekran
|Nazv |God |Treki |Vremya |Bonus+
—
qqq 1889 11 60 2
www 1990 12
rrr 1234 13 56
zzz 1534 11 222 1
Vivod na ekran zavershen.
· Якщо ви натиснете «8» то на екрані з'явиться повідомлення та ви виконаєте наступні дії:
Vvedite nomer operatsii:8
Udalenie zapisi
Vvedite nomer zapisi dlya udalenia:1
Zapis bila udalena.
· Результатом ваших дій буде те, що один запис у таблиці буде знищено:
Vivod na ekran
|Nazv |God |Treki |Vremya |Bonus+
—
qqq 1889 11 60 2
rrr 1234 13 56
zzz 1534 11 222 1
Vivod na ekran zavershen.
· При натисканні на клавішу «9» на екрані з'явиться повідомлення та ви виконаєте наступні дії:
Vvedite nomer operatsii:9
Poisk obyekta s minimalnim kl-vom trekov v zadannom diapazone let
Vvedite leviy divdel poiska(god): 1
Vvedite praviy divdel poiska(god): 1600
Zapis bila naidena.
|Nazv |God |Treki |Vremya |Bonus+
—
zzz 1534 11 222 1
· При натисканні на клавішу «10» програму буде завершено.
Кожний отриманий результат відповідає поставленій задачі.
Отриманні результати збігаються з прогнозами, щодо вірності роботи даної програми, тобто задача виконана вірно.
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ
«ХАРКІВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ
Кафедра Обчислювальної техніки та програмування
ЗАТВЕРДЖУЮ
Завідувач кафедри ОТП
__________ /Xxxxxxxxxxx./
»___" __________ 2007р.
Розрахунково-графічне завдання № 1, 2 ІНФОРМАЦІЙНО-ДОВІДКОВА СИСТЕМА Текст програми
Xxxxxxxxxxx-01 12 01-1-ЛЗ
Розробники
Керівник проекту
__________ /доц. Xxxxxxxxxxx./
"___" __________ 2007 р.
Виконавець
__________ /студ. Xxxxxxxxxxx./
"___" __________ 2007 р.
2007
УЗГОДЖЕНО
Xxxxxxxxxxx-01 81 01-1-ЛЗ
Розрахунково-графічне завдання № 1, 2 ІНФОРМАЦІЙНО-ДОВІДКОВА СИСТЕМА Текст програми
Xxxxxxxxxxx-01 12 01-1
2007
Текст програми
//Заголовковий файл
#include
class album
{
public:
album() {}
virtual void input();
virtual void output();
char nazv[4];//Назва
int god;//Рік випуску
~album() {}
};
class album1: public album
{ protected:
int trek;//Кількість треків
public:
album1();
virtual void input();
virtual void output();
int getTrek()
{
return trek;
}
void setTrek(int c)//ф-ція створення поля
{
trek=c;
}
~album1();
};
class album2: public album1
{
protected:
int time;//Час звучання
public:
album2();
virtual void input();
virtual void output();
int getTime()
{
return time;
}
void setTime(int c)
{
time=c;
}
~album2();
};
class album3: public album2
{
protected:
int bonus;//Кількість бонус треків
public:
album3();
virtual void input();
virtual void output();
int getBonus()
{
return bonus;
}
void setBonus(int c)
{ bonus=c;
}
~album3();
};
class Tool
{
public:
album *d;
int t;
friend class Trist;//об'явлення дружнього класу
Tool *right,*left;
};
class Trist
{
public:
Tool *head,*tail;
Tool *current;
Trist(int type,int vvod);//Конструктор
void add(int type, int vvod);//ф_ція добавлення об’єктів
~Trist();//Деструктор
};
//Описний файл
#include «RGZ.h»
#include
#include
#include
#include
void album::input()//ф-ція вводу
{
cout
cin >> nazv;
nazv[3]=NULL;
cout
cin >> god;
}
void album::output()//ф-ція виводу
{
cout
}
album1::album1():album() {}//конструктор
album1::~album1(){ album::~album(); }//деструктор
void album1::input()
{
album::input();
cout
cin >> trek;
}
void album1::output()
{
album::output();
cout
}
album2::album2():album1() {}
album2::~album2() { album1::~album1(); }
void album2::input()
{
album1::input();
cout
cin >> time;
}
void album2::output()
{
album1::output();
cout
}
album3::album3():album2() {}
album3::~album3() { album2::~album2(); }
void album3::input()
{
album2::input();
cout
cin >> bonus;
}
void album3::output()
{
album2::output();
cout
}
void caption()//заголовкова ф-ція
{
cout
cout
}
Trist::Trist(int type, int vvod)//Створення списку об'єктів
{
album1 *pr;
album2 *sp;
album3 *fl;
head = new Tool;
head->t = type;
if (head->t == 0)
{
pr = new album1;
if (vvod)
pr->input();
head->d=pr;
} else
if (head->t == 1)
{
sp = new album2;
if (vvod)
sp->input();
head->d=sp;
} else
if (head->t == 2)
{
fl = new album3;
if (vvod)
fl->input();
head->d=fl;
}
head->right=NULL;
head->left=NULL;
tail=head;
current=head;
}
Trist::~Trist()//Висвободження памяті
{
Tool *h;
h=head;
while (h!=0)
{ head=head->right;
head->left=NULL;
delete h;
h=head;
}
}
void Trist::add(int type, int vvod)//додавання нового об’єкта у список
{
Tool *q = new Tool;
album1 *pr;
album2 *sp;
album3 *fl;
q->t = type;
switch (q->t)
{
case 0:
pr = new album1;
if (vvod)
pr->input();
q->d=pr;
break;
case 1:
sp=new album2;
if (vvod)
sp->input();
q->d=sp;
break;
case 2:
fl=new album3;
if (vvod)
fl->input();
q->d=fl;
break;
}
if (current==tail)
{
q->right=NULL;
q->left=current;
current->right=q;
tail=q;
current=q;
} else
{ q->right=current->right;
current->right->left=q;
current->right=q;
q->left=current;
current=q;
}
}
//Головний файл
#include «RGZ_dsc.cpp»
#include
#include
#include
#include
void sozdan(Trist *&a, int n);//створення
void output(Trist *&a);//вивід на екран
void output_file(Trist *&a, int n);//вивід до файлу
void input_file(Trist *&a);//читання з файлу
Tool* pois(Trist *&a, char* nazv);//ф-ція пошуку
продолжение
--PAGE_BREAK--