Смекни!
smekni.com

Інформаційно-довідкова система 2 (стр. 2 из 3)

Змінна Призначення Методи Призначення
*head*tail*current

Указ. на голову

Указ. на хвіст

Указ. на текущій

Void add(int type, int vvod) Додавнна нових елементів списку

Клас аlbum – це базовий (батьківський) клас, що містить два інформаційних поля: назву альбому (строковий тип) та рік випуску (цілочисловий тип). Він має дві віртуальні функції (вводу/виводу), та конструктор з деструктором.

Клас аlbum1 – це клас-нащадок класу аlbum, він містить інформаційне поле, що несе інформацію о кількості треків у альбомі. Він також має віртуальні функції (вводу/виводу) та конструктор з деструктором, але ще він має дві функції що створюють поле trek, та повертають значення цього поля.

Клас аlbum2 – це клас-нащадок класу аlbum1, він містить інформаційне поле, що несе інформацію о протяжності альбому за часом. Він також має віртуальні функції (вводу/виводу) та конструктор з деструктором, але ще він має дві функції що створюють поле time, та повертають значення цього поля.

Клас аlbum3 – це клас-нащадок класу аlbum2, він містить інформаційне поле, що несе інформацію о кількості бонусних треків у альбомі. Він також має віртуальні функції (вводу/виводу) та конструктор з деструктором, але ще він має дві функції що створюють поле bonus, та повертають значення цього поля.

Клас Tool – це клас який є двонапрямленим списком об’єктів класу аlbum та його нащадків. Функціями даного класу є конструктор та деструктор що відповідно створюють поліморфний список об’єктів та вивільняють пам'ять відведену під нього.

Клас Trist є дружнім до класу Tool.Він вміщає функцію додавання нових об’єктів до списку. Нові об’єкти додаються у кінець(хвіст) списку і можуть бути одного з типів аlbum, аlbum1, аlbum2 та аlbum3.

Функція intget….() повертає значення даного поля для об’єкту.

Функція intset….() створює поле об'єкта а саме встановлює відповідність(заносить у поле інформацію) з інформацією що вводить користувач при заповнені таблиці.

Функції virtualvoidoutput() та virtualvoidinput() являються яскравими покажчиками поліморфізму бо є віртуальними функціями. Вони слугують для виводу на екран або заповнення об’єкту при роботі з таблицею.

6. Список використаної літератури

· Шилдт Г. Самоучитель С++. – Санкт-Петербург, 2007.

· Матеріали локальної сітки НТУ "ХПІ".

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

НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ

"ХАРКІВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ

Кафедра Обчислювальної техніки та програмування

ЗАТВЕРДЖУЮ

Завідувач кафедри ОТП

__________ /Xxxxxxxxxxx./

"___" __________ 2007р.

Розрахунково-графічне завдання № 1, 2

ІНФОРМАЦІЙНО-ДОВІДКОВА СИСТЕМА

Програма та методика іспитів

ЛИСТ ЗАТВЕРДЖЕННЯ

Xxxxxxxxxxx-01 51 01-1-ЛЗ

РозробникиКерівник проекту__________ /доц. Xxxxxxxxxxx./"___" __________ 2007 р.Виконавець__________ /студ. Xxxxxxxxxxx./"___" __________ 2007 р.

2007
УЗГОДЖЕНО

Xxxxxxxxxxx-01 51 01-1-ЛЗ

Розрахунково-графічне завдання № 1, 2

ІНФОРМАЦІЙНО-ДОВІДКОВА СИСТЕМА

Програма та методика іспитів

Xxxxxxxxxxx-01 51 01-1

2007


1. Об’єкт іспитів

Програма являє собою модуль, що складається з трьох файлів:

- RGZ.cpp (Основний файл, містить функцію main( ) );

- RGZ_DSC.cpp (Файл, що містить опис функцій класів) ;

- RGZ.Н (Файл, що містить опис класів)

Об’єктом іспитів є нижче приведена програма.

2. Мета іспитів

Мета іспитів – це впевнитися у правильності роботи даної програми та оцінити її ефективність.

Тести, котрі перевірюють правильність роботи програми приведені у пункті «Засоби та порядок випробувань».

3. Вимоги до програми та програмного документа

Функціонування системи цілком забезпечується стандартною конфігурацією IBM сумісних персональних ЕОМ.

Основна вимога до програми – це чітке демонстрування поліморфізму та правильність роботи, а також, втілення основної задачі.

4. Засоби та порядок іспитів

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

Розглянемо виконання програми по пунктах:

· Перед користувачем з'являється повідомлення: "Vveditenomeroperatsii".

· Якщо ви натиснете клавішу "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 predel poiska(god): 1

Vvedite praviy predel 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 <string.h>

classalbum

{

public:

album() {}

virtualvoidinput();

virtualvoidoutput();

charnazv[4];//Назва

intgod;//Рік випуску

~album() {}

};

classalbum1: publicalbum

{ protected:

inttrek;//Кількість треків

public:

album1();

virtualvoidinput();

virtualvoidoutput();

intgetTrek()

{

returntrek;

}

voidsetTrek(intc)//ф-ція створення поля

{

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 <iostream.h>

#include <string.h>

#include <stdlib.h>

#include <iomanip.h>

void album::input()//ф-ція вводу

{

cout << "Vvedite nazvanie alboma: ";

cin >> nazv;

nazv[3]=NULL;

cout << "Vvedite god vipuska: ";