Визуальное оформление

За вознаграждение или нахаляву (если повезёт)

Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill

Ответить
Аватара пользователя
Alex_Burn
Сообщения: 147
Зарегистрирован: 13 апр 2007, 17:49
Контактная информация:

Здравствуйте, уважаемые участники форума!

Мое задание состоит в следующем:

Создать класс time, имитирующий единицы измерения времени. Класс должен содержать поля типа int: для хранения значения часов, минут, секунд и часового пояса. Поля объектов инициализировать конструктором по умолчанию и конструктором с параметрами. Класс должен содержать константный метод вывода значений полей в формате hh:mm:ss и перегруженную операцию вычитания (сложения) (-/+) объектов типа time. Операция вычитания (сложения), примененная к объектам типа time, возвращает величину временного промежутка.
Класс-наследник должен по значению московкого времени определять значение времени в заданном часовом поясе часовых поясах.
Клиент (программа WinMain) должна продемонстрировать возможности обоих классов.

Я написал следующее консольное приложение

Код: Выделить всё

//---------------------------------------------------------------------------

#include <iostream.h>
#include <windows.h>

#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused

class ttime
{
protected:

int hours, minutes, seconds, zone;

public:

ttime(): hours(0),minutes(0),seconds(0),zone(0) // Конструктор без параметров
{}

// Конструктор с 4-мя аргументами
ttime(int h, int m, int s, int z):
hours(h),minutes(m),seconds(s),zone(z)
{}

void show_time()
{
if ((minutes<10) && (seconds<10))
cout<<hours<<":"<<"0"<<minutes<<":"<<"0"<<seconds<<" ("<<zone<<")";

if ((minutes<10) && (seconds>=10))
cout<<hours<<":"<<"0"<<minutes<<":"<<seconds<<" ("<<zone<<")";

if ((minutes>=10) && (seconds<10))
cout<<hours<<":"<<minutes<<":"<<"0"<<seconds<<" ("<<zone<<")";

if ((minutes>=10) && (seconds>=10))
cout<<hours<<":"<<minutes<<":"<<seconds<<" ("<<zone<<")";
}

ttime operator+(ttime t);
};

ttime ttime: :o perator+(ttime t)
{
int s=seconds+t.seconds;
int m=minutes+t.minutes;
int h=hours+t.hours;
int z=zone+t.zone;

if (s>59)
{s-=60; m++;};

if (m>59)
{m-=60; h++;};

if (z>23)
{z-=24;};

if (h>23)
{h-=24;};

return ttime(h,m,s,z);
};

class moscow: public ttime
{

public:

void calculate_time(int hr, int mn, int sc, int zn)
{
int h, m, s, z;

switch (zn)
{
case 0: {h=hr-3; m=mn; s=sc; z=zn; break;}
case 1: {h=hr-2; m=mn; s=sc; z=zn; break;}
case 2: {h=hr-1; m=mn; s=sc; z=zn; break;}
case 3: {h=hr; m=mn; s=sc; z=zn; break;}
case 4: {h=hr+1; m=mn; s=sc; z=zn; break;}
case 5: {h=hr+2; m=mn; s=sc; z=zn; break;}
case 6: {h=hr+3; m=mn; s=sc; z=zn; break;}
case 7: {h=hr+4; m=mn; s=sc; z=zn; break;}
case 8: {h=hr+5; m=mn; s=sc; z=zn; break;}
case 9: {h=hr+6; m=mn; s=sc; z=zn; break;}
case 10: {h=hr+7; m=mn; s=sc; z=zn; break;}
case 11: {h=hr+8; m=mn; s=sc; z=zn; break;}
case 12: {h=hr+9; m=mn; s=sc; z=zn; break;}
case 13: {h=hr+10; m=mn; s=sc; z=zn; break;}
case 14: {h=hr+11; m=mn; s=sc; z=zn; break;}
case 15: {h=hr+12; m=mn; s=sc; z=zn; break;}
case 16: {h=hr+13; m=mn; s=sc; z=zn; break;}
case 17: {h=hr+14; m=mn; s=sc; z=zn; break;}
case 18: {h=hr+15; m=mn; s=sc; z=zn; break;}
case 19: {h=hr+16; m=mn; s=sc; z=zn; break;}
case 20: {h=hr+17; m=mn; s=sc; z=zn; break;}
case 21: {h=hr+18; m=mn; s=sc; z=zn; break;}
case 22: {h=hr+19; m=mn; s=sc; z=zn; break;}
case 23: {h=hr+20; m=mn; s=sc; z=zn; break;}
};

if (s>59)
{s-=60; m++;};

if (m>59)
{m-=60; h++;};

if (z>23)
{z-=24;};

if (h>23)
{h-=24;};


if ((m<10) && (s<10))
cout<<h<<":"<<"0"<<m<<":"<<"0"<<s<<" ("<<z<<")";

if ((m<10) && (s>=10))
cout<<h<<":"<<"0"<<m<<":"<<s<<" ("<<z<<")";

if ((m>=10) && (s<10))
cout<<h<<":"<<m<<":"<<"0"<<s<<" ("<<z<<")";

if ((m>=10) && (s>=10))
cout<<h<<":"<<m<<":"<<s<<" ("<<z<<")";

};
};

void main()
{
char* Rus(const char* text);
int hh,mm,ss,zz;
ttime t1(12,24,07,3);
ttime t2(17,24,07,8);
ttime t3;
moscow m;
cout<<Rus("Введите московское время в формате Ч М С")<<endl;

cin>>hh>>mm>>ss; cout<<endl;
ttime t(hh,mm,ss,3);
cout<<Rus("Московское время: ");
t.show_time();
cout<<endl;
cout<<endl;
cout<<Rus("Введите часовой пояс (от 0 до 23): ");
cin>>zz;
cout<<endl;
cout<<Rus("Время в ")<<zz;
cout<<Rus("-м часовом поясе: ");
m.calculate_time(hh,mm,ss,zz);

getchar();
getchar();
}

//---------------------------------------------------------------------------
char bufRus[256];
char* Rus(const char* text) {
CharToOem(text, bufRus);
return bufRus; }
Но дело в том, что нужно написать визуальное приложение.
Я из всех языков знаю Паскаль, а на С++ я писал только консоль.
Не мог бы кто-нибудь из вас написать по данному заданию визуальное приложение?
Очень прошу.

Заранее большое спасибо.

P.S. Кодить нужно в Borland C++Builder 6.0

С уважением, Alex Burn.
Аватара пользователя
Alex_Burn
Сообщения: 147
Зарегистрирован: 13 апр 2007, 17:49
Контактная информация:

Кто-нибудь, помогите пожалуйста. Очень прошу! :confused:
Ответить