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

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

Войти
Регистрация
Восстановить пароль
 
dmmax
0 / 0 / 0
Регистрация: 24.09.2012
Сообщений: 81
#1

сравнение времени - C++

09.12.2012, 19:56. Просмотров 734. Ответов 4
Метки нет (Все метки)

Вообщем само задание вот: Пригородные поезда: время отправления, конечная станция, время в пути. Дополнить
вывод вычисляемой информацией о времени прибытия на конечную станцию. Включить
вычисляемое поле «время прибытия» в сортируемые поля.

как сделать так, чтобы записывать время и сравнивать его время, т.е. надо чтобы время было записано в 60-ой системе. немного непонятно изъяснился, но кто поймет, напишите пожалуйста

Добавлено через 53 минуты
up

Добавлено через 2 часа 4 минуты
ауу

Добавлено через 4 минуты
ну или скажите пожалуйста, как сравнивать к примеру вот что:

к примеру:
C++
1
2
3
4
5
6
7
8
9
struct poezda{
    int hour;
    int minute;
    char city;
    int timeWayHour;
    int timeWayMinute;
    int timeArrivalHour;
    int timeArrivalMinute;
};
...
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
#include "module.h"
 
bool compare(poezda* b1, poezda* b2, char field)
{
    switch(field)
    {
        case '1':      
            return b1->hour + b1->minute > b2->hour + b2->minute;
        case '2':     
            return strcmp(b1->city, b2->city) > 0;
        case '3':     
            return b1->timeArrivalHour + b1->timeArrivalMinute > b2->timeArrivalHour + b2->timeArrivalMinute;
        case '4':     
            return b1->timeWayHour + b1->timeWayMinute > b2->timeWayHour + b2->timeWayMinute;
    }
    return false;
}
 
void sort(poezda* mas, int size, char field)
{
    bool flag;
    do{
        flag = false;
        for(int i = 0; i < size - 1; ++i)
            if(compare(&mas[i], &mas[i+1], field)){
                poezda tmp;
                tmp = mas[i];
                mas[i] = mas[i+1];
                mas[i+1] = tmp;
                flag = true;
            }
    }while(flag);
}
Добавлено через 2 минуты
я могу конечно всю прогу скинуть, но не вижу в этом смысла, я хотел спросить всё правильно ли я делаю в функции bool compare
и в строке 11 выдает у меня ошибку такую: error C2664: strcmp: невозможно преобразовать параметр 1 из 'char' в 'const char *'
1> Для преобразования из целого типа в указатель требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции

Добавлено через 1 час 39 минут
Ну же, добрые люди, помогите пожалуйста.

Добавлено через 46 минут
up up up^^ может не так задал вопрос? Если что-то не понятно, напишите.

Добавлено через 32 минуты
[ссылка удалена]

это вся лаба

Добавлено через 1 час 25 минут
можно закрывать тему, всёровно тут никто не поможет.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.12.2012, 19:56     сравнение времени
Посмотрите здесь:

Сравнение символов C++
C++ Сравнение строк
Как в одномерном массиве проводится сравнение и сколько времени потребовалось на выполнение программы C++
C++ сравнение времени
Сравнение числел C++
Сравнение регистра C++
C++ Сравнение C++ с С#
Сравнение обьекта C++
C++ Сравнение функций
Сравнение дробей C++
C++ Сравнение сортировок
Сравнение массивов C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
12892 / 7278 / 811
Регистрация: 27.09.2012
Сообщений: 17,977
Записей в блоге: 2
Завершенные тесты: 1
09.12.2012, 21:03     сравнение времени #2
Цитата Сообщение от dmmax Посмотреть сообщение
можно закрывать тему, всёровно тут никто не поможет.
Ну почему же Вы так в этом уверены?
У Вас куча ошибок в коде. Некоторые исправил - запускается, работает, правильно или нет - судить Вам.
module.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
 
struct poezda{
    int hour;
    int minute;
    char city[128];
    int timeWayHour;
    int timeWayMinute;
    int timeArrivalHour;
    int timeArrivalMinute;
};
char printMenu(int n);
void setStaff(poezda*& mas, int& size);
void printText(poezda* mas, int& size);
void textFile(poezda*& mas, int& size);
void textFileAll(poezda*& mas, int& size);
void textByHund(poezda*& mas, int& size);
void sort(poezda* mas, int size, char field);
printText.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "module.h"
 
 
void printText(poezda* mas, int& size){
    if(mas != NULL){
        system("cls");
       // cout <<"№:--Страниц:-------Автор------------Проиизведение----Цена---Рекомендация\n";
 
        for(int i = 0;i < size; ++i){
           printf("%d /: %d %s %d /: %d %d /: %d ", mas[i].hour, mas[i].minute, mas[i].city, mas[i].timeArrivalHour,
                mas[i].timeArrivalMinute, mas[i].timeWayHour, mas[i].timeWayMinute);
        cout << "-----------------------------------------------------------------------\n";
        }
    }
}
textFileAll.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
25
26
27
28
#include "module.h"
 
void textFileAll(poezda *& mas, int& size){ 
    system("cls");
    FILE* in;
    if((in = fopen("file01.txt", "r")) != NULL){
        size = 0;
          
        while(!feof(in)){
               poezda np={0};
            fscanf(in, "%d %d %s %d", &np.hour, &np.minute, np.city, &np.timeArrivalHour);
            poezda* tmp = new poezda[size + 1];
            for(int j = 0;j < size; ++j)
                        tmp[j]=mas[j];            
                    tmp[size] = np;
                    
            if (mas != NULL)
                delete [] mas;
            mas = tmp;
          //  mas[size] = b;
            ++size;
        }
 
        fclose(in);
    }
    else
        cout << "Файла с базой в папке нету!" << endl;
}
Добавлено через 5 минут
Цитата Сообщение от dmmax Посмотреть сообщение
но не вижу в этом смысла
действительно. Лучше переписать весь код и проверять работоспособность каждой его части отдельно, чтобы знать, где ошибки.
dmmax
0 / 0 / 0
Регистрация: 24.09.2012
Сообщений: 81
09.12.2012, 21:08  [ТС]     сравнение времени #3
Croessmah, спасибо вам, хоть вы ответили Ошибок нашел сам много, но некоторые функции до сех не работают
Croessmah
Модератор
Эксперт CЭксперт С++
12892 / 7278 / 811
Регистрация: 27.09.2012
Сообщений: 17,977
Записей в блоге: 2
Завершенные тесты: 1
09.12.2012, 21:22     сравнение времени #4
Цитата Сообщение от dmmax Посмотреть сообщение
Ошибок нашел сам много, но некоторые функции до сех не работают
В программе много чего не хватает, скорее всего, поэтому и не работают.
dmmax
0 / 0 / 0
Регистрация: 24.09.2012
Сообщений: 81
09.12.2012, 21:31  [ТС]     сравнение времени #5
Цитата Сообщение от Croessmah Посмотреть сообщение
В программе много чего не хватает, скорее всего, поэтому и не работают.
на данный момент работает уже вывод построчно, т.е. определено кол-во строк читает, но завершается аварийно, когда я загружаю файл полностью.
Yandex
Объявления
09.12.2012, 21:31     сравнение времени
Ответ Создать тему
Опции темы

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