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

Сортировка времени - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Создать двумерный массив чисел с плавающей точкой и вывести на экран все числа по диагонали с лева на право http://www.cyberforum.ru/cpp-beginners/thread969177.html
Создать двумерный массив чисел с плавающей точкой и вывести на экран все числа по диагонали с лева на право. Друзья-программисты выручайте
C++ Need hlp Доброго времени суток! Задача моя состоит в следующем: существует матрица, строки которой соответствуют орудиям, а столбцы целям. aij - элемент матрицы, являющийся временем наведения орудия i на цель... http://www.cyberforum.ru/cpp-beginners/thread969155.html
C++ Некорректный вывод
Доброго времени суток Суть такова: есть прога, выполняющая действия с односвязным списком. Первоначально, инфа в список подаётся из файла, также реализована возможность добавления фрагмента,...
Таблица TableLayoutPanel C++
В этой таблице есть ячейки. Вопрос такой: можно ли в каждой ячейке выводить элемент массива. Дело в том, что я практически не работал в Windows Form, а только по мелочи "баловался". Есть...
C++ Вычислить и вывести на экран в виде таблицы значения функции F на интервале http://www.cyberforum.ru/cpp-beginners/thread969107.html
Вычислить и вывести на экран в виде таблицы значения функции F на интервале Xнач. до Xкон.с шагом dX. Формула в вложениях; Функция F должна принимать действительное значение, если выражение (Ац...
C++ Получить слова из звука Собираюсь написать программу, которая получает слова из звуков т.е. записывает текст услышанной к примеру немецкой речи. Как это реализовать? С чего начать? Раньше никогда не имел дело со звуком.... подробнее

Показать сообщение отдельно
anmartex
...
1705 / 1198 / 496
Регистрация: 12.02.2013
Сообщений: 1,978
05.10.2013, 13:20
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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <stdexcept>
#include <algorithm>
 
struct TTime
{
    int HH;
    int MM;
    int SS;
};
 
//-----------------------------------------------------------------------------
std::istream& operator >> (std::istream& in, TTime& time)
{
    in >> time.HH >> time.MM >> time.SS;
 
    return in;
}
//-----------------------------------------------------------------------------
std::ostream& operator << (std::ostream& out, const TTime& time)
{
    out << time.HH << " " << time.MM << " " << time.SS;
 
    return out;
}
//-----------------------------------------------------------------------------
std::ostream& operator << (std::ostream& out, const std::vector<TTime>& list)
{
    std::vector<TTime>::const_iterator it = list.begin();
 
    for (; it != list.end(); ++it)
    {
        out << *it << std::endl;
    }
 
    return out;
}
//-----------------------------------------------------------------------------
void ReadRecords(std::ifstream& f, std::vector<TTime>& list) throw(std::runtime_error)
{
    int i = list.size();
 
    TTime time;
 
    while ((f >> time) && (i-- > 0))
    {
        list[i] = time;
    }
 
    if (i > 0)
    {
        throw std::runtime_error("unexpected end of file ...");
    }
}
//-----------------------------------------------------------------------------
std::vector<TTime> GetTimeList(const std::string& fname) throw(std::runtime_error)
{
    std::ifstream f(fname.c_str());
 
    if (f.is_open() == false)
    {
        throw (std::runtime_error(fname + ": file is not open ..."));
    }
 
    int n;
 
    if ((f >> n) == NULL)
    {
        throw (std::runtime_error(fname + ": unknow format ..."));
    }
 
    if ((n < 1) || (100 < n))
    {
        throw (std::runtime_error(fname + ": count record must be [1..100] ..."));
    }
 
    std::vector<TTime> list(n);
 
    try
    {
        ReadRecords(f, list);
    }
    catch (const std::runtime_error& error)
    {
        throw (std::runtime_error(fname + ": " + error.what()));
    }
 
    return list;
}
//-----------------------------------------------------------------------------
bool TimeCompare(const TTime& a, const TTime& b)
{
    int compare = b.HH - a.HH;
 
    if (compare == 0)
    {
        compare = b.MM - a.MM;
    }
 
    if (compare == 0)
    {
        compare = b.SS - a.SS;
    }
 
    return (compare > 0);
}
//-----------------------------------------------------------------------------
 
int main(int argc, char* argv[])
{
    if (argc != 2)
    {
        std::cerr << "Usage: program <FILE>" << std::endl;
        return 1;
    }
 
    std::vector<TTime> list;
 
    try
    {
        list = GetTimeList(argv[1]);
    }
    catch (const std::runtime_error& error)
    {
        std::cerr << error.what() << std::endl;
        return 1;
    }
 
    std::sort(list.begin(), list.end(), TimeCompare);
 
    std::cout << list << std::endl;
 
    return 0;
}


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