
- •Міністерство аграрної політики та продовольства україни рівненський державний аграрний коледж
- •Тема: оголошення та структура класів.
- •Зміст та послідовність виконання завдань
- •Тема: агрегування та композиція класів.
- •Зміст та послідовність виконання завдань
- •Тема: перевантаження операцій.
- •Зміст та послідовність виконання завдань
- •Тема: агрегування та композиція класів.
- •Зміст та послідовність виконання завдань
- •Тема: віртуальні функції, поліморфізм.
- •Зміст та послідовність виконання завдань
- •Тема: класи потокового введення-виведення та робота з файлами.
- •Зміст та послідовність виконання завдань
- •Тема: шаблонні класи.
- •Зміст та послідовність виконання завдань
- •Зміст та послідовність виконання завдань
- •Тема: опрацювання виняткових ситуацій.
- •Зміст та послідовність виконання завдань
- •Тема: динамічна ідентифікація та приведення типів.
- •Зміст та послідовність виконання завдань
- •Висновок
- •Список використаной літератури
Зміст та послідовність виконання завдань
1. На основі списку list побудувати модель кільцевої черги елементів. Кожен елемент позначає роботу (процес), яка характеризується часом виконання. Час виконання роботи є випадковою величиною, розподіленою за експоненційним законом. Нові елементи надходять у систему і стають у кінець черги із заданою імовірністю (або через проміжки часу, розподілені за експоненційним законом). Обслуговування елементів здійснюється з голови черги методом квантування часу, що моделює паралельне виконання робіт. Квант часу є постійною або випадковою величиною. Якщо елемент не може бути обслуженим за довжину кванту часу, то він стає у кінець черги. При конфлікті включення у чергу перевага надається елементам з перерваним часом обслуговування.
Програма:
#include<iostream.h>
#include<conio.h>
#include<string.h>
void main()
{
float x,n,x1;
char r[100];
cout<<"vvedit riadok"<<"\n";
cin.get(r,100);
x=strlen(r);
for (int i=1; i<=x; i++)
{
if (r[i]==' ')
x1++;
}
x-=x1;
cout<<x;
getch();
}
Результат:
2. Написати шаблон класу, який використовує шаблонний клас vector для реалізації стекової структури даних. Продемонструвати операції занесення елемента у стек, вилучення елемента зі стека, копіювання стека, виведення вмісту стека.
Програма:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
/*#define max=50*/
int *tos,*bos,*p;
void push(int x);
int pop(void);
void main(void)
{
clrscr();
int x,m,i,max;
printf("vvedite vershinu steka\n");
scanf("%d",max);
printf("vvedite iskomyi element\n");
p=(int *)malloc(max*sizeof(int));
tos=p;
bos=p+max-1;
for (i=0;i<4;i++)
{
scanf("%d",&x);
if(x<0) push(x);
printf("\n Otvet - \n");
while(p>tos)
{
x=pop();
printf("\n%d",x);
}
getch();
}
void push(int x);
{
if(p>bos)
{
printf("stek is full\n");
return;
}
*p=x;
p++;
}
int pop(void);
{
p--;
getch() ;
}
}
Результат:
Тема: опрацювання виняткових ситуацій.
Мета: полягає у вивченні засобів опрацювання виняткових ситуацій С++.
Матеріально-технічне оснащення робочого місця: ПК, інструкційна картка.
Зміст та послідовність виконання завдань
1. Побудувати клас-годинник, який має поля для збереження годин (0..23), хвилин (0..59) та секунд (0..59). Визначити обробник винятковоїситуації, якщо створюється об’єкт-годинник з недопустимими значеннями годин, хвилин або секунд.
Програма:
#pragma once
#define cls system("cls")
class CDate
{
public:
//konstruktor
CDate();
//setters---------------------------------------
void SetDay(const int _day) { day = _day; }
void SetMonth(const int _month) { month = _month; }
void SetYear(const int _year) { year = _year; }
//Getters-----------------------------------------
int GetDay() const { return day; }
int GetMonth() const { return month; }
int GetYear() const { return year; }
//inits--------------------------------------------
void InitDay();
void InitMonth();
void InitData();
//Increment day------------------------------------
void DateIncrement();
void Print() const; //Print data
private:
int day;
int month;
int year;
};
CDate::CDate()
{
InitData();
}
void CDate::InitDay()
{
int d;
std::cout << "Enter Day: ";
std::cin >> d;
if (d < 32 && d > 0)
SetDay(d);
else
{
cls;
InitDay();
}
}
void CDate::InitMonth()
{
int m;
std::cout << "Enter Month: ";
std::cin >> m;
if (m > 0 && m < 13)
SetMonth(m);
else
{ cls;
InitMonth();
}
void CDate::DateIncrement()
{
this->day++;
}
void CDate::Print() const
{
std::cout << "\n\tDate: \n"
<< "Day = " << day << "\n\nMonth = " << month
<< "\n\nYear = " << year << std::endl;
}
Результат:
2. Визначити обробник виняткової ситуації, який забороняє передавати
об’єкти у функцію через список параметрів або повертати їх з функції “за
значенням” (без допомоги вказівників або посилань).
Програма:
#include<iostream>
using namespace std;
class Chet
{
int k,min,max,k2;
public:
Chet()
{
int k2=0,min=0,max=100;
}
~Chet()
void Inpmin(int);
void Inpmax(int);
void Plus();
}obj;
void Chet::Plus()
{
k++;
if(k>=(max+1))
void Chet::Show()
{
cout<<k2<<" : "<<k<<endl;
cout<<"vvedit minimalne znachenia: ";
cin>>omin;
cout<<"vvedit maksumalne znachenia: ";
cin>>omax;
if((omax<omin)||(omin==omax))
obj.Inpmin(omin);
obj.Inpmax(omax);
system("pause");
system("cls");}
Результат: