Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабы / 6_time

.cpp
Скачиваний:
23
Добавлен:
30.04.2013
Размер:
2.29 Кб
Скачать
#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();
}
Соседние файлы в папке Лабы