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

Создать класс время с данными-членами часы, минуты, секунды - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как послать своё сообщение другому приложению? http://www.cyberforum.ru/cpp-beginners/thread330016.html
#define WM_MYMESSAGE 2000 void main() { HWND hWnd; hWnd = ::FindWindow(NULL,"MyApp"); ::SendMessage(hWnd,WM_MYMESSAGE,0,0); }
C++ Класс "Студент", реализовать динамический список "Группа студентов" реализовать динамический список " группа студентов". Узел: -группа -фамилия Функции списка: -добавление по алфавиту -удаление указанного -очистка списка -поиск студента -печать списка http://www.cyberforum.ru/cpp-beginners/thread329994.html
Чтение из файла, запись в файл C++
Тут такая у меня проблема. 1) Не работает цикл в майне. Как его правильно организовать? 2) И, похоже, чтение из файла все-таки, неправильно организовано. 3) И оошшшень хотелось бы поиск в файле как-нить организовать Кто может, помогите или подскажите, пожалуйста) #include<iostream> #include<fstream> #include<iomanip>
C++ двойная буферизация
Здравствуйте. Ребят не сочтите за труд, помогите разобраться. Проблема собственно вот в чём: Пишу тетрис, в окошке находится стакан с фигурами, а на фоне нужно чтобы была некая картинка. Сначала всё сделал с выводом прямо на экран, но столкнулся с миганием окна. Теперь пробую через двойную буферизацию, но, после показа первого расположения падающей фигурки экран совсем не меняется.:wall: Вот...
C++ абстрактный тип данных http://www.cyberforum.ru/cpp-beginners/thread329962.html
надо написать на С++... разработать абстрактный тип данных :двусвязный циклический список. атд должен обеспечивать выполнение следующих операций: 1)добавление элемента в список 2)удаление элемента из списка 3)редактирование элемента в списке 4)просмотр нескольких списков 5)объединение нескольких списков 6)определение количества элементов в списке написать демонстрационную программу с...
C++ Копирование строк с файла Есть прога которая находит наименьшее слово в файле(находит). #include <iostream> #include <fstream> #include <string> #include <sstream> #include <vcl.h> #pragma hdrstop #pragma argsused #include <iomanip> подробнее

Показать сообщение отдельно
lemegeton
 Аватар для lemegeton
2913 / 1342 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
07.07.2011, 15:34     Создать класс время с данными-членами часы, минуты, секунды
Вот как-то так.
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
#include <iostream>
#include <cstdlib>
 
class Time {
 public:
  Time() : hour_(0), minute_(0), second_(0) {}
  Time(int hour, int minute, int second) {
    set(hour, minute, second);
  }
  explicit Time(long int seconds) {
    setInSeconds(seconds);
  }
  void setHour(int new_value) {
    hour_ = new_value;
  }
  void setMinute(int new_value) {
    setHour(getHour() + new_value / 60);
    minute_ = new_value % 60;
  }
  void setSecond(int new_value) {
    setMinute(getMinute() + new_value / 60);
    second_ = new_value % 60;
  }
  int getHour() const { return hour_; }
  int getMinute() const { return minute_; }
  int getSecond() const { return second_; }
  void set(int hour, int minute, int second) {
    setHour(hour);
    setMinute(minute);
    setSecond(second);
  }
  long int getInSeconds() const {
    return getSecond() + getMinute() * 60 + getHour() * 3600;
  }
  void setInSeconds(long int new_value) {
    setHour(0);
    setMinute(0);
    setSecond(std::abs(new_value));
  }
  void addSeconds(long int value) {
    setInSeconds(getInSeconds() + value);
  }
  void subSeconds(long int value) {
    if (getInSeconds() < value)
      setInSeconds(getInSeconds() - value);
    else
      setInSeconds(0);
  }
 private:
  int hour_;
  int minute_;
  int second_;
};
 
Time operator+(const Time &a, const Time &b) {
  return Time(a.getInSeconds() + b.getInSeconds());
}
 
long int operator-(const Time &a, const Time &b) {
  return a.getInSeconds() - b.getInSeconds();
}
 
Time operator+(const Time &a, long int seconds) {
  Time result = a;
  result.addSeconds(seconds);
  return result;
}
 
Time operator-(const Time &a, long int seconds) {
  Time result = a;
  result.subSeconds(seconds);
  return result;
}
 
std::ostream &operator<<(std::ostream &stream, const Time &time) {
  return stream << time.getHour() << ":" << time.getMinute() << ":" <<
    time.getSecond();
}
 
std::istream &operator>>(std::istream &stream, Time &time) {
  int hours, minutes, seconds;
  stream >> hours >> minutes >> seconds;
  time.set(hours, minutes, seconds);
  return stream;
}
 
int main(int argc, char **argv) {
  Time a(10, 59, 30), b(12, 0, 30);
  std::cout << (a + b) << std::endl <<
    Time(a - b) << std::endl;
  return 0;
}
Добавлено через 12 минут
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 <string>
#include <map>
#include <cstdlib>
#include <ctime>
 
int main(int argc, char **argv) {
  std::srand(std::time(NULL));
  int total_symbols = 200;
  std::string source;
  
  for (int i = 0; i < total_symbols; ++i)
    source.push_back('a' + std::rand() % 26);
  std::cout << "Source string:" << std::endl << source << std::endl;
  
  std::map<char, int> symbols;
 
  for (std::string::iterator i = source.begin(); i != source.end(); ++i)
    ++symbols[*i];
 
  for (std::map<char, int>::iterator i = symbols.begin(); i != symbols.end(); ++i)
    if (i->second != 0)
      std::cout << i->first << ": " << i->second << std::endl;
}
 
Текущее время: 13:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru