Об'єкт визначається як реальний предмет або явище, що має чітко визначену поведінку. Об'єкт має стан, поведінку і індивідуальність; структура і поведінка схожих об'єктів визначають загальний для них класом. Стан об'єкта характеризується переліком усіх можливих (статичних) властивостей даного об'єкту і поточними значеннями (динамічними) кожного. Поведінка об'єкта повністю визначається його діями. Індивідуальність – це властивість об'єкта, що відрізняє його від усіх інших об'єктів.
Певний вплив одного об'єкта на інший з метою отримати відповідну реакцію називається операцією. Як правило, в об'єктних і об'єктно-орієнтованих мовах операції, що виконуються над даним об'єктом,називаються методами і є складовою частиною визначення класу.
Клас - це безліч об'єктів, пов'язаних спільністю структури і поведінки. Будь-який об'єкт є екземпляром класу. Визначення класів і об'єктів - одне з найскладніших завдань об'єктно-орієнтованого програмування.
1.2.Типи даних, конструкцій та операторів С++.
|
|
А)Тип даних int
Типи даних: short (короткий), unsigned short (без знаковий короткий), int (цілий), unsigned int (без знаковий цілий), long (довгий), unsigned long (без знаковий long). Характеристичним для цих типів є те, що їх використання забезпечує виділення комірок різної памяті.
Б)Конструкція struct
Структура в мові С(С++) – це тип даних, який складається з визначеної кількості елементів, що називаються членами структури (інколи – полями структури). Члени структури можуть мати різні типи. Синтаксис визначення структури:
struct tag_name
{
<тип_1> mem_1;
<тип_2> mem_2;
...
<тип_n> mem_n;
};
Тут mem_1, mem_2,..., mem_n – члени структури, визначеної з тегом (тег – дослівно означає наклейка) tag_name. Тепер змінну, яка відноситься до структури такого типу, або, як ще кажуть екземпляр цієї структури, можна визначити таким чином:
struct tag_name <змінна-структура>;
2.Практична частина
2.1.Лістинг програми з коментарями
#include <iostream.h>
#include <conio.h>
struct Time
{
unsigned int h,m,s; };
void vvid(Time&);
void secToMinut(Time&);
void sub(Time&);
void vuvid(Time&);
void change(Time&);
int main()
{
Time x1;
vvid(x1);
secToMinut(x1);
sub(x1);
change(x1);
vuvid(x1);
getch();
return 0;
}
//---------------------
void vvid(Time& x1)
{
int met;
cout<<"metod 1 norm, 2 sek"<<endl;
cin>>met;
if(met==1)
{
cout<<"vvedit 4as"<<endl;
cout<<"h: "; cin>>x1.h;
cout<<"m: "; cin>>x1.m;
cout<<"s: "; cin>>x1.s; }
if(met==2)
{
cout<<"vvedit sekyndu"<<endl;
cin>>x1.s;
x1.h=0; x1.m=0;
}
}
void secToMinut(Time& x1)
{
unsigned int s1,m1;
s1=x1.h*3600+x1.m*60+x1.s;
m1=s1/60;
cout<<"vvedenuy chas: "<<endl;
cout<<" sec: "<<s1<<endl;
cout<<"hvulun:"<<m1<<endl;
s1=s1-m1*60;
if(s1>=30)
{m1++;}
cout<<"zaokruglennia do hv:"<<m1<<endl;
}
void sub(Time& x1)
{
cout<<"vidniatu"<<endl;
|
|
cout<<"------------------------"<<endl;
unsigned int h1,m1,s1,s2;
cout<<"vvedit 4as"<<endl;
cout<<"h1: "; cin>>h1;
cout<<"m1: "; cin>>m1;
cout<<"s1: "; cin>>s1;
s2=x1.h*3600+x1.m*60+x1.s;
s1=h1*3600+m1*60+s1;
if(s1>s2)
{
cout<<"riznutsia: "<<(s1-s2)<<"sec"<<endl;
}
else
{
cout<<"riznutsia: "<<(s2-s1)<<"sec"<<endl;
}
}
void vuvid(Time& x1)
{
if(x1.h<10)
{cout<<"0"<<x1.h<<":";}else
{ cout<<x1.h<<":";}
if(x1.m<10)
{cout<<"0"<<x1.m<<":";}else
{cout<<x1.m<<":";}
if(x1.s<10)
{cout<<"0"<<x1.s<<endl;}
else{cout<<x1.s<<endl;}
}
void change(Time& x1)
{
cout<<"zmenshutu na"<<endl;
cout<<"------------------------"<<endl;
unsigned int s1;
cout<<"s1: "; cin>>s1;
x1.s=x1.h*3600+x1.m*60+x1.s;
if(s1>x1.s)
{
x1.s=86400-s1-x1.s;
}
else
{
x1.s=x1.s-s1;
}
x1.h=x1.s/3600;
x1.s=x1.s-x1.h*3600;
x1.m=x1.s/60;
x1.s=x1.s-x1.m*60;
cout<<x1.h<<":"<<x1.m<<":"<<x1.s<<endl;
x1.s=x1.h*3600+x1.m*60+x1.s;
cout<<"----------"<<endl;
cout<<"zbilshutu na:"<<endl;
cout<<"s1: "; cin>>s1;
x1.s=x1.s+s1;
if(x1.s>86400)
{
x1.s=x1.s-86400;}
x1.h=x1.s/3600;
x1.s=x1.s-x1.h*3600;
x1.m=x1.s/60;
x1.s=x1.s-x1.m*60;}
3.Практична частина – розробка програми з використанням об’єктно-орієнтованого підходу
Лістинг програми з коментарями
#include <iostream.h>
#include <conio.h>
Class Time
{
private:
unsigned int h,m,s;
public:
Time(): h(0),m(0),s(0){}
void vvid();
void secToMinut();
void sub();
void vuvid();
void change();
~Time()
{}
};
Int main()
{
Time x1;
x1.vvid();
x1.secToMinut();
x1.sub();
x1.change();
x1.vuvid();
getch();
return 0;
}
//---------------------
Void Time::vvid()
{
int met;
cout<<"metod 1 norm, 2 sek"<<endl;
cin>>met;
if(met==1)
{
cout<<"vvedit 4as"<<endl;
cout<<"h: "; cin>>h;
cout<<"m: "; cin>>m;
cout<<"s: "; cin>>s; }
if(met==2)
{
cout<<"vvedit sekyndu"<<endl;
cin>>s;
h=0; m=0;
}
}