Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Домашнє заликове завдання.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
186.88 Кб
Скачать

2. Завдання на домашню контрольну з теми ооп

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

Вказівки

Програма повинна відповідати наступним вимогам:

  1. Кількість класів не менше 3.

  2. Наявність зв'язків між класами, у тому числі стосунків спадкоємства завглибшки не менше 2

  3. Для ініціалізації об'єктів повинні використовуватися конструктори різних видів.

  4. У програмі повинні використовуватися віртуальні функції;

  5. Слід використовувати абстрактні класи.

  6. У класах повинні використовуватися різні види доступу до полів і методів (public, private, protected).

Варіанти

  1. Облік платежів за електроенергію побутових споживачів

  2. Облік платежів за електроспоживання промислових споживачів

  3. Облік платежів на будівництво автодоріг

  4. Облік платежів за навчання

  5. Облік абонементної плати за користування кабельним телебаченням

  6. Облік товарів на складі

  7. Облік витрати складових на виробництво тканин

  8. Облік погашення позик

  9. Облік виконання договорів постачання складових для будівництва автодоріг

  10. Розрахунок лікарняних

  11. Облік плати за телефон

  12. Облік основних засобів

  13. Розрахунок дивідендів

  14. Облік прокату радіоапаратури

  15. Облік технічного стану будівель

  16. Облік плати за гуртожиток

  17. Облік договорів медичного страхування

  18. Облік витрат на відшкодування страхових випадків

  19. Єдина книжка платежів за комунальні послуги.

  20. Облік результатів екзаменаційної сесії

  21. Розклад занять

  22. Облік видачі методичних посібників

  23. Облік відвідуваності занять

Приклад виконання контрольної роботи

  1. Робота зі списками.

Тип даних, що зберігаються в списку double. Реалізувати наступні дії:

а) Заповнення списку та вивід списку на екран;

б) пошук найбільшого елементу списку;

в) перевірка, чи є в списку введений елемент, якщо є їх кількість;

г) заміна заданого елементу на інший.

#include "stdafx.h"

#include "iostream.h"

#include <windows.h>

#include <string.h>

#include <stdio.h>

typedef double TE;

struct spisok

{

TE E;

spisok* next;

};

TE d,s,k,max,el1,el2,m;

spisok*vvod();

void print(spisok*);

void del(spisok*);

void found(spisok*,TE);

void kolfound(spisok*,TE);

void maximus(spisok*,TE);

void zamena(spisok*,TE,TE);

main()

{

SetConsoleCP(1251); //инициализация русского шрифта

SetConsoleOutputCP(1251); //инициализация русского шрифта

s=0;max=-1000;

cout<<"введите список элементов"<<endl;

spisok*head=vvod();

cout<< "введите элемент наличие которого хотите узнать"<<endl;

cin>>d;

found(head,d);

cout<<"//////////////////////////"<<endl;

cout<< "введите элемент количество которых в списке хотите узнать"<<endl;

cin>>k;

kolfound(head,k);

cout<<"количество элементов=" <<s<<endl;

cout<<"//////////////////////////"<<endl;

maximus(head,max);

cout<<"максимальный элемент "<<m<<endl;

cout<<"//////////////////////////"<<endl;

cout<<"введите элемент который хотите заменить " ;

cin>>el1;

cout<<"введите элемент на который хотите заменить " ;

cin>>el2;

zamena(head,el1,el2);

print(head);

cout<<"//////////////////////////"<<endl;

del(head);

}

spisok*vvod() //заповнення списку

{

TE el;

spisok*head=new spisok,*tek,*tm;

cin>>el;

tek=head;

tek->E=el;

while(el!=0)

{

tm= new spisok;

cin >> el;

tm->E=el;

tek->next=tm;

tek=tm;

}

tek->next=NULL;

return head;

}

void print(spisok*head) //вивід на екран

{

spisok*tek;

tek=head;

while(tek)

{

cout<<tek->E<<endl;

tek=tek->next;

}

}

void del(spisok*head) //видалення списку

{

spisok*tm,*tek;

tek=head;

while(tek!=NULL)

{

tm=tek->next;

delete tek;

tek=tm;

}

}

void found(spisok*tek,TE d) //пошук елементу

{

if(tek->E==d) cout<<"этот элемент есть"<<endl;

else

if(tek->next!=NULL) found(tek->next,d);

else cout<<"этого элемента нет"<<endl;

}

void kolfound(spisok*tek,TE k) //підрахунок кількості заданого елементу

{

if(tek->E==k) s++;

if(tek->next!=NULL) kolfound(tek->next,k);

}

void maximus(spisok*tek,TE max) //пошук максімального елементу

{

if(tek->E>max) max=tek->E;

if(tek->next!=NULL) maximus(tek->next,max);

else m=max;

}

void zamena (spisok*tek, TE el1, TE el2) // заміна елементів

{

if(tek->E==el1) tek->E=el2;

if(tek->next!=NULL) zamena(tek->next,el1,el2);

}