Примеры использования структур из библиотек
Структуры часто используются в библиотеках языка С. В языке С++ обычно применяются не структуры, а классы.
// Пример 6.1.4
// Функции для даты и времени
// tm - структура для работы с датой и временем <time.h>
// struct tm {
// int tm_sec; /* seconds after the minute - [0,59] */
// int tm_min; /* minutes after the hour - [0,59] */
// int tm_hour; /* hours since midnight - [0,23] */
// int tm_mday; /* day of the month - [1,31] */
// int tm_mon; /* months since January - [0,11] */
// int tm_year; /* years since 1900 */
// int tm_wday; /* days since Sunday - [0,6] */
// int tm_yday; /* days since January 1 - [0,365] */
// int tm_isdst; /* daylight savings time flag */
// };
#include <iostream>
#include <time.h>
using namespace std;
// главная функция
void main() {
setlocale( LC_ALL, "Russian"); // для вывода на экран русского текста
time_t currentTime;
time(¤tTime);
cout << "Сегодня - " << ctime(¤tTime) << endl;
cin.get();
time(¤tTime);
struct tm ptm1=*localtime(¤tTime);
cout << "Сегодня - " << ((ptm1.tm_mon)+1) << "/"
<< ptm1.tm_mday << "/" << ptm1.tm_year+1900 << endl;
cout << "Текущее время - " << ((ptm1.tm_hour)) << ":"
<< ptm1.tm_min << ":" << ptm1.tm_sec << endl;
cin.get();
}
// Пример 6.1.5
// Cтруктуры для Windows
#include <iostream>
// заголовки Windows
#include <windows.h>
using namespace std;
// точки
void ViewPoint(POINT);
void ViewPoint(char [],POINT);
POINT CreatePoint(LONG,LONG);
// прямоугольники
void ViewRect (RECT);
void ViewRect(char name [],RECT r);
RECT CreateRect(POINT, POINT);
// главная функция
void main() {
setlocale( LC_ALL, "Russian"); // для вывода на экран русского текста
// точки
POINT p1={0,0};
ViewPoint(p1);
ViewPoint("p1",p1);
cin.get();
POINT p2;
p2.x=100;
p2.y=100;
ViewPoint("p2",p2);
cin.get();
POINT p3=CreatePoint(300,500);
ViewPoint("p3",p3);
cin.get();
// прямоугольники
RECT r1={100,100,200,200};
ViewRect(r1);
ViewRect("r1",r1);
cin.get();
RECT r2;
r2.left=p1.x;
r2.top=p1.y;
r2.right=p2.x;
r2.bottom=p2.y;
ViewRect("r2",r2);
cin.get();
RECT r3=CreateRect(p1,p3);
ViewRect("r3",r3);
cin.get();
}
// точки
void ViewPoint(POINT p) {
cout << "(" << p.x << "," << p.y << ")" << endl;
}
void ViewPoint(char name [] ,POINT p) {
cout << name << " : ";
ViewPoint(p);
}
POINT CreatePoint(LONG x,LONG y) {
POINT p;
p.x=x;
p.y=y;
return p;
}
// прямоугольники
void ViewRect(RECT r) {
cout << "(left=" << r.left << "; top=" << r.top << "; right=" << r.right
<< "; bottom=" << r.bottom << ")" << endl;
}
void ViewRect(char name [],RECT r) {
cout << name << " : ";
ViewRect(r);
}
RECT CreateRect(POINT p1, POINT p2) {
RECT r;
r.left=p1.x;
r.top=p1.y;
r.right=p2.x;
r.bottom=p2.y;
return r;
}
Лекция 6.2. Классы с открытыми данными.