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

Прокомментировать код - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Описать класс «матрица». Добавить метод, вычисляющий определитель матрицы http://www.cyberforum.ru/cpp-beginners/thread1123667.html
Описать класс «матрица». Добавить метод, вычисляющий определитель матрицы, чтение из файла и запись в файл. Помогите кто может, хотя бы описать класс и чтение, запись в файл, определитель сам сделаю.
C++ Сортировка массива структур через сортировку массива указателей Ошибка возникает в функции void sort(student **ppStud, int k, char ch). Кто видит ошибку - помогите, пожалуйста. Код программы: #include "stdafx.h" #include <iostream> #include <string.h> #include <time.h> #include <memory.h> #include <memory> http://www.cyberforum.ru/cpp-beginners/thread1123663.html
Построить класс для работы с датой C++
Добрый день товарищи, очень нужна помощь, буду благодарен каждому ответу. Задание: Постpоить класс для работы с датой. Класс должен включать следующие поля: число, месяц, год, день недели. Класс должен обеспечивать пpостейшие методы для pаботы с полями класса: изменение значе-ний, вывод значений.
C++ Вывод дробной части
Всем привет. Проблема собственно такая, не получается вывести дробную часть стороны треугольника, т.е 4,5(выводит только 4) уже не выводит, менял тип переменных, тип вычисления на float, высчитывает но почему-то длина стороны получается еще меньше чем в первом случае(при выводе целой части). Помогите, в чем проблема? вот код: #include <iostream.h> #include <math.h> #include <stdio.h> int...
C++ Сформировать вектор D (n) из произведений абсолютных ненулевых значений соответствующих строк матрицы http://www.cyberforum.ru/cpp-beginners/thread1123609.html
Задана матрица целых чисел A(n×n). Все числа-палиндромы, расположенные на главной диагонали, заменить суммой цифр модуля минимального элемента соответствующего столбца матрицы. Сформировать вектор D(n) из произведений абсолютных ненулевых значений соответствующих строк матрицы.
C++ Как сделать голосовой поток вывода? Ну то есть скармливаешь ему строку оператором <<, а он её читает через динамики. Как это сделать? подробнее

Показать сообщение отдельно
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
19.03.2014, 13:43     Прокомментировать код
alucard115, написал свой код, не в обиду автору кода третьего задания, но по условию там нужно класс создать а не структуру + методы, плюшки, + свои блэкджэк и шлюхи, но там этого не было.
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
138
139
140
141
142
143
144
145
146
147
148
149
150
#include <iostream>
#include <cstdlib>
#include <locale>
 
using namespace std;
 
class Train            //класс поезд
{
    friend istream& operator>>(istream&, Train&);   //объявляем друга класса, чтобы можно было вводить инфу в поезд так: cin >> poezd;
    friend ostream& operator<<(ostream&, Train&);    //объявляем друга класса, чтобы можно было выводить инфу о поезде cout << poezd;
    public:
        Train();    //конструктор
        
        void setDestination(string);      //установить пункт назначения
        string getDestination(){return destination;}     //узнать пункт назначения
        
        void setPlateNumber(int);      //установить номер поезда
        int getPlateNumber(){return plateNumber;}   //узнать номер поезда
        
        void setTimeOfStart(int, int, int);    //выставить время старта поезда
        int getHour(){return hour;}         //узнать время старта: часы, минуты, секунды
        int getMinute(){return minute;}
        int getSecond(){return seconds;}
        
        int calculateSecondsFromStart(){return 3600*hour + 60*minute + seconds;}    //этот метод поможет в сортировке массива позже. Вовзращает в секундах от полночи когда стартовал поезд
        
        void print();     //вывести инфу о поезде
        
    private:
        string destination;   //пункт назначения
        int plateNumber;   //номер поезда
        int hour;
        int minute;
        int seconds;
};
 
Train::Train()
{
    setDestination("");     //все значения будут нулями, когда будут создаватся поезда
    setPlateNumber(0);
    setTimeOfStart(0, 0, 0);
}
        
void Train::setDestination(string name)
{
    destination = name;     
}
        
void Train::setPlateNumber(int x)
{
    plateNumber = x;
}
        
void Train::setTimeOfStart(int hh, int mm, int ss)
{
    if (hh >= 0 && hh < 24)
        hour = hh;
    else
    {
        hour = 0;
        cout << "Час выставлен неправильно! Приравнен к полуночи." << endl;
    }
    
    if (mm >= 0 && mm < 60)
        minute = mm;
    else
    {
        minute = 0;
        cout << "Минуты выставлены неправильно! Приравнены к нулю." << endl;
    }
    
    if (ss >= 0 && ss < 60)
        seconds = ss;
    else
    {
        seconds = 0;
        cout << "Секунды выставлены неправильно! Приравнены к нулю." << endl;
    }
}
        
void Train::print()
{
    cout << "Номер поезда: " << plateNumber << endl;
    cout << "Пункт назначения: " << destination << endl;
    cout << "Время отхода: " << hour << ":" << minute << ":" << seconds << endl;
}
 
istream& operator>>(istream &input, Train &train)
{
    cout << "Введите номер поезда: ";
    input >> train.plateNumber;
    cout << "Введите пункт назначения: ";
    input >> train.destination;
    cout << "Введите время отхода (чч мм сс): ";
    int hh, mm, ss;
    input >> hh >> mm >> ss;
    train.setTimeOfStart(hh, mm, ss);
    return input;
}
 
ostream& operator<<(ostream &output, Train &train)
{
    train.print();
    return output;
}
 
int main() 
{
    setlocale(0, "rus");
    
    const int N = 2;    //кол-во поездов
    Train station[N];    //создаем станцию из N поездов
    
    for (int i = 0; i < N; i++)     //вводим инфу о поездаъ
        cin >> station[i];
    
    for (int i = 0; i < N; i++)       //сортируем массив станция
        for (int j = 0; j < N; j++)
            if (station[i].calculateSecondsFromStart() > station[j].calculateSecondsFromStart())    //если i стартанул позже чем j, то надо поменять их местами
            {
                Train buf = station[j];
                station[j] = station[i];
                station[i] = buf;
            }
    
    int x;  //переменная для того, что введет юзер
    
    for (int i = 0; i < N; i++)
        cout << station[i] << endl;
    cout << endl << endl;
    
    while (x != -1)   //пока юзер не ввел -1 для выходя из проги
    {
        cout << "Введите номер поезда для его печати на экран или -1 для выхода: ";
        cin >> x;
        bool found = false;   //думаем, что такого поезда нет в природе
        for (int i = 0; i < N; i++)    //
            if(station[i].getPlateNumber() == x)   //а вдруг есть?
            {
                cout << station[i] << endl;    //выводим поезд, если таки нашли
                found = true;    //точно есть, я так и знал
            }
            
        if (!found)  //если юзер ввел неверный номер поезда, то есть мы его не нашли
            cout << "Не найден поезд с таким номером." << endl;
    }
    
    system("PAUSE");
    return 0;
}
 
Текущее время: 18:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru