Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.87
mixon-21
3 / 3 / 0
Регистрация: 05.03.2013
Сообщений: 219
#1

Класс time - C++

21.08.2013, 22:10. Просмотров 2173. Ответов 4
Метки нет (Все метки)

Создайте класс Время, в котором реализованы операции сложения, вычитания, сравнения, ввода и вывод на экран. Возможность конвертации времени из американского формата am (pm): 10:00 pm = 22:00, 12:00 pm =00:00

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <string>
using namespace std;
class myTaim
{
public:
myTaim(){???????????:confused:};
~myTaim(){???????????:confused:};
 
};
 
int _tmain(int argc, _TCHAR* argv[])
{
??????????????? :confused:
}
подскажите на словах что и как писать. плиз
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.08.2013, 22:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Класс time (C++):

Не могу разобраться с заданием "Создайте класс Time с конструкторами Time(), Time( int hour)......" - C++
/* Создайте класс Time с конструкторами Time(), Time( int hour), Time(int hour, int min), Time( int h, int m, int s) и ...

Класс Time через time(0) - C++
Всем привет. На форуме искал ничего похожего не нашол. Не могу до конца разобраться. В класе 1 член, который держит секунды, которые...

Класс "Время". Двусмысленность между time и std:time(long*) - C++
Здравствуйте. Дали код, сказали есть проблема(скриншот): http://joxi.ru/12MxOENhw14QmJ Код: # include &lt;iostream.h&gt; # include...

Создать базовый класс Тройка_чисел (Triad) и производный класс Time с полями часы, минуты и секунды - C++
Наследование. Виртуальныефункции.Полиморфизм. 1. Цельзадания: 1) Создание консольного приложения, состоящего и - Базовый класс:...

класс Time - C++
Создайте класс Time(время суток) считая что представлением времени суток является число секунд прошедших от полуночи( классе одной...

класс Time - C++
у класса Time скрытые переменные - minutes и hours. функция-член должна принять ссылку на оъект Time и... короче, вот код: Time...

4
XRuZzz
Антикодер
680 / 582 / 29
Регистрация: 15.09.2012
Сообщений: 2,525
21.08.2013, 22:45 #2
для начала посмотрите как пишется по английски время, уберите my - просто это некрасиво писать в названиях класса, есть пространства имен для этого
0
Ded_Vasilij
231 / 213 / 15
Регистрация: 01.09.2012
Сообщений: 2,103
21.08.2013, 22:49 #3
три закрытых поля - часы, минуты, секунды. При сложении следить за переходом секунд в минуты, минут в часы - типа "2 пишем, один в уме", сравнивать по полям
типа
C++
1
2
3
4
  bool myTaim::operator==(myTaime t)
  { 
       return (hour==t.hour&&minute==t.minute&&secund==t.secund);
   }
1
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
22.08.2013, 09:02 #4
Клуб любителей некорректно поставить задачу вновь открылся.

Форматирование времени в двенадцати часовом формате имеет смысл, когда мы говорим про некий момент внутри суток.
Сложение и вычитание "времени" имеет смысл, когда мы говорим о некоторых абстрактных промежутках времени.

Совершенно разные пограничные условия и смысл значений.

Как вы себе представляете в двенадцати часовом формате минус тридцать два часа восемнадцать минут? Это что, минус восемь часов утра?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include <iostream>
#include <iomanip>
#include <cmath>
 
class SimpleTime {
 public:
  SimpleTime() : time(0) {}
  SimpleTime(double time) : time(time) {}
  SimpleTime(int hours, int minutes, double seconds)
    : time(hours * 3600 + minutes * 60 + seconds) {}
  int getHours() const {
    return int(time) / 3600;
  }
  int getMinutes() const {
    return std::abs(int(time) % 3600) / 60;
  }
  double getSeconds() const {
    return std::abs(time) - std::abs(getHours()) * 3600 - getMinutes() * 60;
  }
  double asDouble() const {
    return time;
  }
 private:
  double time;
};
 
SimpleTime operator+(const SimpleTime &a, const SimpleTime &b) {
  return SimpleTime(a.asDouble() + b.asDouble());
}
 
SimpleTime operator-(const SimpleTime &a, const SimpleTime &b) {
  return SimpleTime(a.asDouble() - b.asDouble());
}
 
int compare(const SimpleTime &a, const SimpleTime &b, const double epsilon = 0.00001) {
  return ((std::fabs(a.asDouble() - b.asDouble()) < epsilon) ? 0 :
    (a.asDouble() < b.asDouble()) ? -1 : 1);
}
 
bool operator==(const SimpleTime &a, const SimpleTime &b) {
  return compare(a, b) == 0;
}
 
bool operator!=(const SimpleTime &a, const SimpleTime &b) {
  return compare(a, b) != 0;
}
 
bool operator<(const SimpleTime &a, const SimpleTime &b) {
  return compare(a, b) < 0;
}
 
bool operator>(const SimpleTime &a, const SimpleTime &b) {
  return compare(a, b) > 0;
}
 
bool operator<=(const SimpleTime &a, const SimpleTime &b) {
  return compare(a, b) <= 0;
}
 
bool operator>=(const SimpleTime &a, const SimpleTime &b) {
  return compare(a, b) >= 0;
}
 
std::ostream &operator<<(std::ostream &stream, const SimpleTime &time) {
  int hours = time.getHours();
  return stream <<
    std::setfill('0') << std::setw(2) <<
    ((hours % 12 == 0) ? 12 : hours % 12) << ":" << 
    std::setfill('0') << std::setw(2) <<
    time.getMinutes() << ":" << 
    std::setfill('0') << std::setw(6) <<
    std::fixed << std::setprecision(3) <<
    time.getSeconds() << " " <<
    ((hours % 24 >= 12) ? "pm" : "am");
    
}
 
int main(int, char**) {
  std::cout << (SimpleTime(-18, -1, -0.54) + SimpleTime(-32, -18, -10)) << std::endl;
  std::cout << (SimpleTime(-18, -1, -0.54) > SimpleTime(-32, -18, -10)) << std::endl;
}
1
MousePro
49 / 30 / 1
Регистрация: 25.04.2013
Сообщений: 366
22.08.2013, 11:30 #5
Цитата Сообщение от mixon-21 Посмотреть сообщение
Создайте класс Время, в котором реализованы операции сложения, вычитания, сравнения, ввода и вывод на экран. Возможность конвертации времени из американского формата am (pm): 10:00 pm = 22:00, 12:00 pm =00:00

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <string>
using namespace std;
class myTaim
{
public:
myTaim(){???????????:confused:};
~myTaim(){???????????:confused:};
 
};
 
int _tmain(int argc, _TCHAR* argv[])
{
??????????????? :confused:
}
подскажите на словах что и как писать. плиз
Сам не давно писал задачку из учебника, надо было написать класс подсчета и вывода времени(военном формате и стандартном - АМ,PM) и даты, думаю разберешься.

Class.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#ifndef DATE_H
#define DATE_H
class DateAndTime
{
public:
DateAndTime();  
void setTime(int,int,int);
void printTime();
void printTimest();
void tick(int);
void setDate(int,int,int);
void printDate();
void nextDay(int);
 
 
private:
int day;
int month;
int year;
int hour;
int minute;
int sec;
};
#endif
Class.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#include "iostream"
#include "Date.h"
 
DateAndTime::DateAndTime()
{
setDate(1,1,1900);
setTime(0,0,0);
}
 
void DateAndTime::setDate( int d,int m ,int y)
{
 if(m==1 || m==3 || m==6 || m==8 || m==10 || m==12)
 {
     day=(d>0 && d<32)?d:1;
     month=(m> 0&& m<12)?m:1;
     year=(y >1900 && y<9999)?y:1900;
 }
 else if(m==2)
 {
day=(d>0 && d<29)?d:1;
     month=(m> 0&& m<12)?m:1;
     year=(y >1900 && y<9999)?y:1900;
 }
 else if( m==4 || m==5 || m==7 || m==9 || m==11)
 {
     day=(d>0 && d<31)?d:1;
     month=(m> 0&& m<12)?m:1;
     year=(y >1900 && y<9999)?y:1900;
 }
 
 
}
void DateAndTime::printDate()
{
    std::cout<<" Сегодня " <<day<<"."<<month<<"."<<year<<"\n";
}
void DateAndTime::nextDay (int a)
{
    day+=a;
    if(month==1 || month==3 || month==6 || month==8 || month==10 || month==12)
 { 
     if(day==32)
     {
         day=1;
         month+=1;
     }
     
 }
 else if(month==2)
 {
 
     if(day==29)
     {
         day=1;
         month+=1;
     }
 }
 else if( month==4 || month==5 || month==7 || month==9 || month==11)
 {
     
     if(day==31)
     {
         day=1;
         month+=1;
     }
 }
 
 if(day==31 && month==12)
 {
     day=1;
     month=1;
     year+=1;
 }
 
}
 
 
void DateAndTime::setTime(int h,int m, int s)
{
    hour=(h<24 && h>0)?h:0;
    minute=(m<60 && m>0)?m:0;
    sec=(s<60 && s>0)?s:0;
}
void DateAndTime::printTime()
{
    std::cout<<"Время в военном формате равно: "<<hour<<":"<<minute<<":"<<sec;
}
void DateAndTime::printTimest()
{
    std::cout<<"Время в стандартном формате равно: ";
    std::cout<<((hour==0 || hour==12)?12:hour%12)
        <<":"<<(minute<10?"0":"")<<minute<<":"
        <<(sec<10?"0":"")<<sec<<(hour<12?"AM":"PM")<<"\n";
}
void DateAndTime::tick(int a)
{
    sec+=a;
    if(sec==60)
    {
    sec=0;
    minute+=1;
    }
    if(minute==60)
    {
        sec=0;
    minute=0;
    hour+=1;
    }
    if(hour==24)
    {
        sec=1;
        minute=0;
        hour=0;
        nextDay(1);
    }
}

Main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include "iostream"
#include "Date.h"
 
int main()
{
setlocale(LC_ALL,"");
DateAndTime D;
D.setDate(20,8,2013);
D.setTime(22,58,40);
D.printTime();
D.printDate();
 
for (int x=0;x<5000;x++)
{
    D.tick(1);
    
D.printTime();
D.printDate();
}
 
 
system("pause");
return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.08.2013, 11:30
Привет! Вот еще темы с ответами:

Создать класс Time - C++
Здравствуйте. Помогите написать программу. Заранее спасибо. Создать класс Time для работы со временем в формате «час:минута:секунда»....

Создать класс Time - C++
Помогите решить: Класс Time. Создать класс Time, который должен включать: a. Два поля: int min; int hour; b. Конструкторы....

Создать класс с именем time - C++
Я в программировинии (более-менее знаю только Turbo Pascal) ещё совсем профан, в универе задание дали написать программу на ООП, т.е. С++,...

Класс Time. Не могу перевести на другую строку - C++
// Class Time(with operator. Example4).cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot; #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
22.08.2013, 11:30
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru