Добавил:
Diryabuh
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабы / 6_time
.cpp#include <stdio.h>
#include <conio.h>
#include <math.h>
class CTime
{
public:
// Construction/destruction
inline CTime(void);// default
inline CTime(unsigned short h, unsigned short m, unsigned short s);// overloaded
inline ~CTime(void);
// Functions
void Input(unsigned short h, unsigned short m, unsigned short s);
void Print(void);
// Methods
unsigned short GetHours(void) { return m_usHours; }
unsigned short GetMinutes(void) { return m_usMinutes; }
unsigned short GetSeconds(void) { return m_usSeconds; }
private:
// Members
unsigned short m_usHours;
unsigned short m_usMinutes;
unsigned short m_usSeconds;
};
inline CTime::CTime(void)
{
m_usHours = 0;
m_usMinutes = 0;
m_usSeconds = 0;
}
inline CTime::CTime(unsigned short h, unsigned short m, unsigned short s)
{
Input(h,m,s);
}
inline CTime::~CTime(void)
{
m_usHours = 0;
m_usMinutes = 0;
m_usSeconds = 0;
}
void CTime::Input(unsigned short h, unsigned short m, unsigned short s)
{
if (h > 23)
{
printf("WARNING: illegal value: '%d hours' was truncated.\n", h);
h = 23;
}
if (m > 59)
{
printf("WARNING: illegal value: '%d minutes' was truncated.\n", m);
m = 59;
}
if (s > 59)
{
printf("WARNING: illegal value: '%d seconds' was truncated.\n", s);
s = 59;
}
m_usHours = h;
m_usMinutes = m;
m_usSeconds = s;
}
void CTime::Print(void)
{
printf("%d %d %d\n", m_usHours, m_usMinutes, m_usSeconds);
}
void datainput(CTime **a, int c)
{
unsigned short h,m,s;
for (int i=0; i<c; i++)
{
printf("Element %d, input 'HH MM SS': ", i);
if (scanf("%d %d %d", &h, &m, &s) == 3)
{
a[i] = new CTime(h,m,s);
printf("OK\n");
}
else
{
printf("error\n");
i --;// re-enter
}
}
}
void dataprint(CTime **a, int c)
{
for (int i=0; i<c; i++)
printf("Element %d: %d h %d m %d s\n", i, a[i]->GetHours(), a[i]->GetMinutes(), a[i]->GetSeconds());
}
#define CNT 4
void main(void)
{
CTime *a[CNT];
datainput(a, CNT);
printf("\n----\n");
dataprint(a, CNT);
// save the world - save the memory!
for (int i=0; i<CNT; i++)
{
printf("Deleting element %d...\n", i);
delete a[i];
}
printf("Done.\nNow hit a key to quit\n");
getch();
}
Соседние файлы в папке Лабы
