Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Індивідуальні завдання до практичної роботи № 9






Вимоги до ЗАВДАННЯ №1 для всих варіантів:

1) розробити запропонований клас згідно віаріанту: всі данні класу зробити закритими, всі методи – відкритими;

2) в класі окрім данних реалізувати конструктор за замовчуванням (який обнулює всі данні для об’єктів), параметризований конструктор (який задає початкові значення данних об’єктів), конструктор копіювання, деструктор;

3) реалізуванти метод INIT, який організує введення даних об’єктів з клавіатури;

4) реалізуванти метод SHOW, який організує виведення даних об’єктів на екран;

5) реалізуванти методи, які повертають значення закритих данних;

6) реалізувати метод TEST згідно варіанта;

7) в основній програмі (у функції main) необхідно розробити тестову частину, яка повинна:

· створити три об’єкта (перший створюється конструктором за замовчуванням, другий – параметризованим конструктором, третій – конструктором копіювання, який копіює данні з другого об’єкта);

· данні для першого об’єкта вводяться з клавіатури за допомогою виклику метода INIT;

· викликати метод TEST для всих трьох об’єктів;

· вивести данні всих трьох об’єктів на екран через метод SHOW;

· створити масив з двох об’єктів конструктором за замовчуванням, проініціалізувати їх данні за допомогою виклику метода INIT;

· данні масиву об’єктів вивести на екран через метод SHOW;

· для масиву об’єктів реалізувати СПЕЦ-ЗАВДАННЯ (використавши методи, які повертають значення закритих данних);

Вимоги до ЗАВДАННЯ №2 для всих варіантів:

Створити новий проект. Розробити інтерфейс та реалізація класу, як в завданні №1. Всі данні класу та всі методи зробити відкритими. В основній програмі (в функції main) необхідно розробити тестову частину, яка повинна: створювати два об’єкти (перший констрктором з параметрами, другий конструктором за замовчуванням). Данні першого об’єкта записати у файл 1.txt. Відкрити повторно файл 1.txt, зчитати з нього інформацію і записати її у змінні другого об’єкта. Данні другого об’єкта вивести на екран методом SHOW.

Виконати відокремлення інтерфейсу від реалізації класу (тобто, інтерфейс класу записати у заголовочний файл my.h, реалізацію класу записати у заголовочний файл my.cpp, головну функцію main розмістити у файлі testmyclass.cpp)


№ вар. Завдання 1 СПЕЦ-ЗАВДАННЯ  
Варіант 1, 16 Об’явити клас для збереження даних про літаки, який містить данні: номер рейсу літака, назву літака, кількість місць, день відправлення, вартість квитка. Метод TEST: обчислення та виведення загальної вартості перевезення пасажирів для кожного літака. Визначити кількість літаків, які мають більше 50 посадочних місць.  
Варіант 2, 17 Об’явити клас для збереження даних про робітників, який містить данні: прізвище, посада, кількість відпрацьованих годин, категорія. Метод TEST: обчислення та виведення зарплати робітника згідно категорій (1 категорія – 15грн/год, 2 категорія – 12, 35грн/год). Визначити загальну кількість годин, яку відпрацювали всі робітники підприємства.  
Варіант 3, 18 Об’явити клас для збереження даних про станки (назва станка, кількість відпрацьованих годин, кількість виготовлених деталей в годину). Метод TEST: обчислення та виведення загальної кількості розроблених деталей за всі години для кожного станка. Визначити назву станка, який має найменшу кількість відпрацьованих годин.  
Варіант 4, 19 Об’явити клас для збереження даних про студентів (прізвище, група, курс, оцінка з програмування, оцінка з фізики, оцінка з математики. Метод TEST: обчислення та виведення середнього балу кожного студента. Визначити та вивести всі дані про відмінників.  
Варіант 5, 20 Об’явити клас для збереження даних про пацієнта (прізвище, рік народження, частота пульсу і температура). Метод TEST: визначення та виведення інформації про те, чи показники пацієнта в нормі. Визначити та вивести всі дані про пацієнтів, тиск яких підвищений.  
Варіант 6, 21 Об’явити клас для збереження даних про робітників (прізвище, вік, стаж, категорію). Метод TEST: обчислення та виведення кількість років, які працівнику залишилось відпрацювати до пенсії: (пенсійним віком вважати вік – 60 років). Вивести прізвище та категорію працівника з найменшим стажем роботи.  
Варіант 7, 22 Об’явити клас для збереження даних про потяги (номер потяга, місце призначення, середню швидкість потягу, відстань між пунктом відправлення та пунктом призначення). Метод TEST: обчислення та виведення час ходу кожного потяга. Визначити кількість потягів, які прибувають у місце призначення, назва якого починається з літери «А».  
Варіант 8, 23 Об’явити клас для збереження даних про магазини (назва магазину, місце знаходження, товарообіг за місяць в грн, премія). Конструктор з параметрами та метод INIT ініціалізують всі данні окрім премії. Метод TEST: обчислення премії кожного магазину(якщо продано продукції на суму < 7000 грн – премія 5%, інакше 7%). Для масиву об’єктів також визвати метод TEST перед виведенням данних. Визначити та вивести на екран дані про назву та місце знаходження магазинів, товарообіг яких належить діапазону від 3000грн до 20000грн.  
Варіант 9, 24 Об’явити клас для збереження даних про картку енергоспоживання (прізвище власника будинка, кількість спожитої енергії, сума до сплати (в грн), сплачено (в грн). Конструктор з параметрами та метод INIT ініціалізують всі данні окрім суми до сплати. Метод TEST: обчислення суми до сплати для кожної картки, якщо вартість електроенергії 2грн/КВт. Для масиву об’єктів також визвати метод TEST перед виведенням данних. Визначити та вивести на екран дані карток всих боржників.  
Варіант 10, 25 Об’явити клас для збереження даних про процесори (назва, покоління, об’єм пам’яті, тактова частота). Метод TEST: визначення та виведення інформації, чи відносяться процесори до 6 покоління. Визначити середню тактову частоту всих процесорів.  
Варіант 11, 26 Об’явити клас для збереження даних про учасника змагання (прізвище, назва спортклуба, час пробігу, швидкість пробігу). Конструктор з параметрами та метод INIT ініціалізують всі данні окрім швидкості. Метод TEST: визначення швидкость учасника, якщо дистанція пробігу 100м. Для масиву об’єктів також визвати метод TEST перед виведенням данних. Визначити та вивести всі дані переможця пробігу.  
Варіант 12, 27 Об’явити клас для збереження даних про трикутники (назва трикутника, розмір першої сторони, другої сторони, третьої сторони, периметр. Конструктор з параметрами та метод INIT ініціалізують всі данні окрім периметра. Метод TEST: обчислення периметра кожного трикутника Для масиву об’єктів також визвати метод TEST перед виведенням данних. Визначити та вивести всі дані про трикутники, які мають розмір першої сторони менший, ніж 5см.  
Варіант 13, 28 Об’явити клас для збереження даних про вищі учбові заклади (місто знаходження, назва, кількість спеціальностей, кількість бюджетних місць для вступу). Метод TEST: визначення та виведення інформації, чи має заклад кількість спеціальностей більшу за 7. Визначити назви учбових закладів, які знаходяться в місті, назва якого починається на букву «З».  
Варіант 14, 29 Об’явити клас для збереження даних про автомобіль (модель, вартість, пробіг). Метод TEST: визначення та виведення інформації, чи має авто пробіг більше 20000 км. Визначити середню вартість всих авто.  
Варіант 15, 30 Об’явити клас для збереження даних про країну (назва, президент, кількість населення, площа). Метод TEST: визначення та виведення інформації, чи має країна населення більше 1 млн. людей. Визначити загальну площу країн.  
 

 


Приклад 1:

class RECTANGLE { int x, y; //закриті компоненти класу рublic: //відкриті компоненти класу int P, S; //в конструкторі з параметрами відбувається // перевірка, чи сторони прямокутника додатні RECTANGLE(int a, in b) { if (x> 0 & & y> 0) {x=a; y=b; } else {x=0; y=0; }} //конструктор копіювання RECTANGLE(RECTANGLE & obj) {x=obj.x; y=obj.y; } //деструктор ~ RECTANGLE() { } //методи класу void Perim() {P=2*(x+y); } void Plosh() {S=x*y); } void Prn() {cout< < " Storoni: " < < x< < " " < < y; cout< < " Perimetr: " < < P; cout< < " Ploshad: " < < S; } }; //Продовження void main() { RECTANGLE rec1(3, 4); RECTANGLE rec2(5, 8); RECTANGLE rec3(rec1); RECTANGLE *ptr=& rec3; rec1.Perim(); rec1.Plosh(); rec1.Prn(); rec2.Perim(); rec2.Plosh(); rec2.Prn(); ptr-> Perim(); ptr-> Plosh(); ptr-> Prn(); }

Приклад 2:

Підключення бібліотек… class MARKET { private: //закриті члени класу char name[50]; float k; float price; public: //відкриті члени класу //конструктори MARKET(); MARKET(char *n, float kol, float p); MARKET(const MARKET & obj); //деструктор ~MARKET(); void prndata(void); void initdata(void); char* getname(void); float getkol(void); float getprice(void); float vart(void); }; //Реалізація класу---------------------------------- MARKET:: MARKET() { cout< < " \n\n Ob'ekt stvoreno konstruktorom za zamovchuvannyam"; strcpy(name, " "); k=0.0; price=0.0; } MARKET:: MARKET(char *n, float kol, float p) { cout< < " \n\n Ob'ekt stvoreno konstruktorom z parametrami"; strcpy(name, n); k=kol; price=p; } MARKET:: MARKET(const MARKET & obj) {cout< < " \n\n Ob'ekt stvoreno konstruktorom kopiuvannya"; strcpy(name, obj.name); k=obj.k; price=obj.price; } MARKET:: ~MARKET() {cout< < " \n Vidalennya ob'ektu destruktorom"; } //Продовження //Функція виведення даних про товар void MARKET:: prndata(void) { cout< < " \nInformaciya pro tovar: "; cout< < " \nNazva - " < < name; cout< < " \tKilkist - " < < k; cout< < " \tCina - " < < price; } //Функція введення даних про товар void MARKET:: initdata(void) { cout< < " \n===Vveditе dani pro tovar: ==="; cout< < " \nNazva - "; cin> > name; cout< < " \nKilkist - "; cin> > k; cout< < " \nCina - "; cin> > price; } //Функція отримання назви товару char* MARKET:: getname(void) { return name; } //Функція отримання кількості товару float MARKET:: getkol(void) { return k; } //Функція отримання ціни одиниці товару float MARKET:: getprice(void) { return price; } //Функція обчислення загальної вартості товару float MARKET:: vart(void) { return k*price; } //Тестова частина---------------------------------- void main() { //працює кон-р за замовчуванням для 1 об’єкта MARKET t1; cout< < ”\nВведення даних для 1-го товару: ”; t1.init(); //працює кон-р з параметрами для 2 об’єкта MARKET t2(" Shokolad", 3.5, 5.90); //працює конструктор копіювання для 3 об’єкта MARKET t3(t2); //виведення інформації про всі товари t1.prndata(); cout< < ”Vartist tovaru1 = ”< < t1.vart(); t2.prndata(); cout< < ”Vartist tovaru2 = ”< < t2.vart(); t3.prndata(); cout< < ”Vartist tovaru3 = ”< < t3.vart(); //працює кон-р за замовчуванням MARKET tov[2]; //створення масиву об’єктів //Введення даних в масив об’єктів for(int i=0; i< 2; i++) {tov[i].initdata(); } //Виведення даних про товари, обчислення вартості кожного товару, обчислення загальної вартості float sum=0.0; for(int i=0; i< 2; i++) { tov[i].prndata(); cout< < ”Vartist tovaru = ”< < tov[i].vart(); sum+=tov[i].vart(); } cout< < ”\nЗагальна вартість всих товарів”< < sum; //Пошук товарів з вартістю більше 115, 50 грн cout< < ”Товари з вартістю більше 115, 50 грн: ”; for(int i=0; i< 2; i++) { if (tov[i].getprice() > 115.50) tov[i].prndata(); cout< < " \n"; } //Пошук кількості товарів з назвою на букву «М» int kol=0; for(int i=0; i< 2; i++) { char *n; n=tov[i].getname(); if (n[0] == ‘M’) kol++; } cout< < ”Кількість товарів з назвою на букву М = ” < < kol < < ”\n”; }

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.