
- •1. Завдання на домашню контрольну з теми робота зі списками
- •Варіанти завдання
- •2. Тип даних, що зберігаються в списку: рядок змінної довжини. Реалізувати наступні дії:
- •12. Тип даних, що зберігаються в списку: число з плаваючою точкою. Реалізувати наступні дії:
- •13. Тип даних, що зберігаються в списку: символ. Реалізувати наступні дії:
- •16. Тип даних, що зберігаються в списку: число з плаваючою точкою. Реалізувати наступні дії:
- •17. Тип даних, що зберігаються в списку: рядок змінної довжини. Реалізувати наступні дії:
- •18. Тип даних, що зберігаються в списку: рядок змінної довжини. Реалізувати наступні дії:
- •19. Тип даних, що зберігаються в списку: рядок змінної довжини. Реалізувати наступні дії:
- •20. Тип даних, що зберігаються в списку: рядок змінної довжини. Реалізувати наступні дії:
- •22. Тип даних, що зберігаються в списку: символ. Реалізувати наступні дії:
- •2. Завдання на домашню контрольну з теми ооп
- •2. Робота з класами
2. Завдання на домашню контрольну з теми ооп
Написати програму згідно вказаного варіанту та вказівок наданих нижче. Програма повина працювати з файлом для збереження даних та отримання даних, мати динамічний характер зебереження даних, тобто список. Зробити звіт з проведеної роботи.
Вказівки
Програма повинна відповідати наступним вимогам:
Кількість класів не менше 3.
Наявність зв'язків між класами, у тому числі стосунків спадкоємства завглибшки не менше 2
Для ініціалізації об'єктів повинні використовуватися конструктори різних видів.
У програмі повинні використовуватися віртуальні функції;
Слід використовувати абстрактні класи.
У класах повинні використовуватися різні види доступу до полів і методів (public, private, protected).
Варіанти
Облік платежів за електроенергію побутових споживачів
Облік платежів за електроспоживання промислових споживачів
Облік платежів на будівництво автодоріг
Облік платежів за навчання
Облік абонементної плати за користування кабельним телебаченням
Облік товарів на складі
Облік витрати складових на виробництво тканин
Облік погашення позик
Облік виконання договорів постачання складових для будівництва автодоріг
Розрахунок лікарняних
Облік плати за телефон
Облік основних засобів
Розрахунок дивідендів
Облік прокату радіоапаратури
Облік технічного стану будівель
Облік плати за гуртожиток
Облік договорів медичного страхування
Облік витрат на відшкодування страхових випадків
Єдина книжка платежів за комунальні послуги.
Облік результатів екзаменаційної сесії
Розклад занять
Облік видачі методичних посібників
Облік відвідуваності занять
Приклад виконання контрольної роботи
Робота зі списками.
Тип даних, що зберігаються в списку 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);
}