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

Операции со временем - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Блок схема алгоритма http://www.cyberforum.ru/cpp-beginners/thread193122.html
Помогите пожалуйста составить блок схему алгоритма #include <stdio.h> #include <conio.h> #include <iostream> #include <math.h> #define E 2.718281828 const double e= 0.00001;
C++ code blocks и кодировка windows 866 вобщем поставил code blocks, начал осваивать, наткнулся на проблему с кодировкой, вот самый простой пример #include <iostream> using namespace std; int main() { int x; http://www.cyberforum.ru/cpp-beginners/thread193121.html
C++ Простой калькулятор в объектно-ориентированном стиле
Здравствуйте. А можно написать совсем простой калькулятор типа: Введите 2 числа Выберите операцию Результат с классом? Конструкторы, деструктор. Вроде простенькая программа. А вот как это сделать именно с классом не очень понятно.
C++ Совершенные числа
Натуральное число называется совершенным, если оно равно сумме всех своих делителей, кроме себя самого. Число 6 является совершенным, так как 6=1+2+3. Число 8 – не совершенное, так как 8?1+2+4. Дан целочисленный массив А. Найти все элементы массива, являющиеся совершенными числами. Вывести на экран значения, индексы и все делители найденных элементов.
C++ Бинарные деревья http://www.cyberforum.ru/cpp-beginners/thread193089.html
Здравствуйте!! Передо мной стоит не простая задача....Описать класс, реализующий бинарное дерево, обладающее возможностью добавления новых элементов, удаления существующих, поиска элемента по ключу, а также последовательного доступа ко всем элементам. Написать программу, использующую этот класс для представления англо-русского словаря.... я ужасно не дружу с бинарными деревьями!! Нашла...
C++ матрица Задание такое,необходимо сформировать матрицу размером n*m, а затем переставить строки так, что бы на главной диагонали матрицы были расположены элементы наибольшие по обсолютной величине. я загряз уже в самом начале, я незнаю как задать двумерную матрицу, а уж тем более потом и ещё отсортировать, если кто может помочь, то помогите плиз.. вот я кое что придумал но там где я пытаюсь... подробнее

Показать сообщение отдельно
LiverpoolMan
1 / 1 / 0
Регистрация: 17.11.2010
Сообщений: 14
18.11.2010, 10:14     Операции со временем
Здравствуйте. Прошу помочь в решении задачи:

Время задается в формате час.минута.секунда. Реализовать следующие операции (учесть переход через 24 часа):
- Сложение времени и определенного пользователем количества секунд (операция +);
- Вычитание из времени определенного пользователем количества секунд (операция-);
- Вычисление числа секунд, прошедших между двумя моментами времени (операция %);
- Вычитание из одного момента времени другого.

Попытался сделать два действия, но и они не доработаны до конца.
Не получается вставить код в поле для формул. Просто в сообщение вставлю.

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
117
118
119
120
121
122
123
#include<iostream.h>
 
class vremya
{
public:
    int vvod();
   int vivod();
    vremya();
   vremya(const vremya&);
   ~vremya();
   friend vremya operator%(const vremya&,const vremya&);
   friend vremya operator-(const vremya&,const vremya&);
   friend ostream& operator<<(ostream&,const vremya&);
   friend istream& operator>>(istream&,const vremya&);
    int *A;
   int n,m,g;
};
//Конструктор без параметров
vremya::vremya()
{
    n=m=g=4;
};
//Конструктор копирования
vremya::vremya(const vremya &t)
{
    n=t.n;
    m=t.m;
    g=t.g;
};
//Деструктор
vremya::~vremya()
{
};
 
//Перегрузка операции %
vremya operator%(const vremya &t1,const vremya &t2)
{
 
    vremya c;
   int d;
    c.n= t1.n;
         c.g=t2.g-t1.g;
 
         c.m=t2.m-t1.m;
         if(t2.m<t1.m)
            {c.g=c.g-1;c.m=c.m+60;}
 
         c.n=t2.n-t1.n;
          if(t2.n<t1.n)
            {c.m=c.m-1;c.n=c.n+60;}
    if(c.n>60)
        {c.n=c.n-60; c.m=c.m+1;}
      if(c.m>60)
        {c.m=c.m-60;  c.m=c.m+1;}
      d=c.n*3600+c.m*60+c.g*1;
      cout<<"Количество секунд между двумя моментами времени: " <<d<<endl;
   return c;
};
 
//Перегрузка операции -
vremya operator-(const vremya &t1,const vremya &t2)
{
 
    vremya c;
   int d;
      c.n= t2.n-t1.n;
     c.m=t2.m-t1.m;
     c.g=t2.g-t1.g;
 
 
     if(t2.m>t1.m)
        {c.m=60+t1.m-t2.m; c.n=c.n-1;}
 
         if(t2.g>t1.g)
            {c.g=60+t1.g-t2.g; c.m=c.m-1;}
 
 
      cout<<"Вычитание из первого момента времени второго: "<<endl;
      cout<<c.n<<":"<<c.m<<":"<<c.g<<endl;
   return c;
};
 
 
//Перегрузка операции <<
ostream& operator<<(ostream &os,const vremya&t)
{
    os<<t.n<<":"<<t.m<<":"<<t.g<<endl;
   return os;
};
//Перегрузка операции >>
istream& operator>>(istream&is,vremya &t)
{
    cout<<"Введите часы"<<endl;
    is>>t.n;
   cout<<"Введите минуты"<<endl;
    is>>t.m;
   cout<<"Введите секунды"<<endl;
      is>>t.g;
    if(t.n>24)
        {t.n=t.n-24;
        t.m=t.m+1;}
    if(t.m>60)
        t.m=t.m+1;
    cout<<t.n<<":"<<t.m<<":"<<t.g<<endl;
   return is;
 
};
//Главная программа
void main()
{
   vremya a,b,m;
   cout<<"Ввод первого момента времени"<<endl;
   cin >> a;
   cout<<"Ввод второго момента времени"<<endl;
   cin >> b;
   m=a%b;
   cout<<"Ввод первого момента времени"<<endl;
   cin >> a;
   cout<<"Ввод второго момента времени"<<endl;
   cin >> b;
   m=a-b;
 
   };
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru