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

Вывести самолет, который вылетает позже всего - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Заполнить двумерный массив размером 10 на 10 целыми числами по возрастанию http://www.cyberforum.ru/cpp-beginners/thread1175958.html
требуется написать программу, заполняющую двухмерный массив размерностью 10 на 10 целыми числами по возрастанию. (помогите плиз не могу отсортировать, именно, двумерный массив.)
C++ Двоичные файлы Помогите пожалуйста, а то никак сообразить не могу. Нужно создать двоичный файл и записать в него n целых чисел. Создать массив из исходного файла, записав в него числа, расположенные в файле между минимальным и максимальным элементами. http://www.cyberforum.ru/cpp-beginners/thread1175957.html
C++ Записи: анкетные данные учеников
Составить программу, выводящую на экран анкетные данные учеников (Ф. И. О., год рождения, адрес, сведения о родителях). Распечатать данные об учениках, родившихся ранее заданного года. сделала по примеру после запроса на год начинаются ошибки не дает дальше ничего водить( #include <iostream> #include <fstream> #include <cstdlib> using namespace std; struct krolik {char name; double...
C++ Доступ к функции
Добрый день. Есть класс, в котором я вызываю функцию другого класса, функция объявлена как public. Но при сборке проекта компилятор ругается на недействительную ссылку. Понимаю, что дело в последовательности добавления хедеров, но не пойму где ошибка. #include "UIManager.h" #include "SolutionManager.h" auto criteriaNames = UIManager::GetInstance()->GetCriteriaTable() ...
C++ Сформировать массив В, элементами которого являются нули и единицы http://www.cyberforum.ru/cpp-beginners/thread1175915.html
Тема:из матрицы А создать массив В В файле F матрица действительных чисел размером 3 * 6. Сформировать массив В, элементами которого являются нули и единицы. b = 1 Если все элементы i-го строки меньше действительного числа х и b=0 если хотя бы один элемент строки больше от х. поправьте пожалуйста #include "stdafx.h" #include "stdafx.h" #include <stdio.h>
C++ Строки Работа со строками. С помощью текстового редактора создать файл, содержащий текст, длина которого не превышает 1000 символов (длина одной строки не должна превышать 70 символов.) Имя файла должно иметь расширение .DAT. Написать программу: • Выводит текст на экран • По нажатию произвольной клавиши выделяется поочередно каждое слово • Определить количество слов в тексте здравствуйте,... подробнее

Показать сообщение отдельно
Forsak3n
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 29
14.05.2014, 22:17     Вывести самолет, который вылетает позже всего
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
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
#include <cstdlib>
#include <iostream>
#include <conio.h>
#include <string.h>
#include <iomanip>
#include <fstream>
 
using namespace std;
 
const int len_dest = 18;
const int len_num = 13;
struct time {
    int mes;
    int den;
};
struct aeroflot{
        char dest[len_dest];
        char num[len_num];
        char plane [len_dest];
        time t;
        };
const int size_a = sizeof(aeroflot);
const int size_p = sizeof(time);
FILE *fbin;
aeroflot elem1,elem2;
time eleme1,eleme2;
int create_file(FILE *fbin);
int print_file(FILE *fbin);
int search_dest(FILE *fbin);
int search_same(FILE *fbin);
int search_time(FILE *fbin);
 
void sort_file(){
    long i,j;
    fseek(fbin,0,SEEK_END);
    long len=ftell(fbin)/size_a;
    rewind(fbin);
    for(i=len-1;i>=1;i--)
        for(j=0;j<=i-1;j++){
            fseek(fbin,j*size_a,SEEK_SET); //указатель на j-ую запись
            fread(&elem1,size_a,1,fbin); //читаем запись j в elem1
            fread(&elem2,size_a,1,fbin); //читаем след.запись в элементе 2
                if(strcmp(elem1.num,elem2.num)>=1){ //сравниваем
 
                fseek(fbin,(-2)*size_a,SEEK_CUR); //указатель на 2 позиции назад
                //обмен
                fwrite(&elem2,size_a,1,fbin); //сначала элемент 2
                fwrite(&elem1,size_a,1,fbin); //затем элемент 1
            }
        }
}
int main(){
      char c;
      setlocale( LC_ALL,"Russian" );
      fbin = fopen("aeroflot.dat","r+b");
      if (!fbin) {
            fbin = fopen ("aeroflot.dat","w+b");
 
                   if (!fbin){
                    puts ("Не могу открыть (создать) файл\n");
                    return 1;
                   }
      }
    while (1) {
        system("cls");
        puts ("1 - Запись в файл.");
        puts ("2 - Вывод файла. ");
        puts ("3 - Поиск записей по пункту назначения.");
        puts ("4 - Поиск типов самолета с одинаковым номером рейса.");
        puts ("5 - Вывод самолета, который вылетает позже всех.");
        puts ("6 - Выход из программы.");
        puts ("_________________________________ ");
        puts ("Введите номер пункта меню\n");
        c=getch();
        switch(c) {
        case '1': create_file(fbin);break;
        case '2': print_file(fbin);break;
        case '3': search_dest(fbin);break;
        case '4': search_same(fbin);break;
        case '6': return 0;
        }
    }
}
int create_file(FILE *fbin){
    aeroflot elem;
    time eleme;
    char c;
    fseek(fbin,0,SEEK_END);
    puts("Ввод данных о рейсах");
    puts ("Для выхода нажмите 'Escape'");
    puts ("____________________________\n");
    while(1) {
        system("cls");
        cout << "Введите пункт назначения: ";
        cin >> elem.dest;
        cout << "Введите номер рейса: ";
        cin >> elem.num;
        cout << "Введите тип самолёта: ";
        cin >> elem.plane;
        cout << "Введите время отправления(число) :";
        cin >> elem.t.den;
        cout <<"Введите время отправления (месяц) :";
        cin >> elem.t.mes;
        fwrite(&elem,size_a,1,fbin);
        sort_file();
        cout << "'Enter' - следующая запись, 'Escape' - возврат в главное меню";
        c = getche();
        if (c==27) return 1;
    }
}
int print_file(FILE *fbin){
        aeroflot elem;
        time eleme;
        int n;
        system("cls");
        rewind(fbin);
        puts("._____________________________________________________________________.");
        puts("| Пункт назначения | Номер рейса |   Тип самолёта  |  Время(месяц:год)|");
        puts("|_____________________________________________________________________|");
        do {
             n=fread(&elem,size_a,1,fbin);
             if(n<1) break;
             printf("|%-18s|%-13s|%-17s|  %2i.%4i         |\n",elem.dest,elem.num,elem.plane,elem.t.den,elem.t.mes);
             puts("|_____________________________________________________________________.");
        } while(1);
        puts("Нажмите любую клавишу");
        getch();
        return 0;
}
int search_dest(FILE *fbin){
    aeroflot elem;
    int n;
    int found = 0;
    char key[len_dest];
    system("cls");
    rewind(fbin);
    puts("Поиск записей по пункту назначения.\n");
    puts("Введите пункт назначения");
    cin.getline(key,len_dest);
    puts(".___________________________________________________.");
    puts("| Пункт назначения | Номер рейса |   Тип самолёта   |");
    puts("|___________________________________________________|");
    do {
             n=fread(&elem,size_a,1,fbin);
             if(n<1) break;
             if (!strcmp(elem.dest,key)) {
                found=1;
                printf("|%-18s|%-13s|%-18s|\n",elem.dest,elem.num,elem.plane);
                puts("|___________________________________________________|");
             }
        } while(1);
    if (!found) puts("Записей не найдено");
    puts("Нажмите любую клавишу");
    getch();
    return 0;
}   
int search_time(FILE *fbin){
 
 
int search_same(FILE *fbin){
    aeroflot elem1,elem2;
    int n,p;
    int found=0;
    system("cls");
    rewind(fbin);
    puts("Поиск пунктов и типов самолета с одинаковым номером рейса.\n");
  do{
    n=fread(&elem1,size_a,1,fbin);
    p=fread(&elem2,size_a,1,fbin);
    if(!strcmp(elem1.num,elem2.num)){
        found=1;
         printf("Одинаковые рейсы:\nРейс 1: Пункт  %s,Тип  %s;  Рейс 2: Пункт  %s,Тип  %s.\n",elem1.dest,elem1.plane,elem2.dest,elem2.plane);
         break;
     }
    }while(1);
    if(!found) puts("Нет записей.");
    puts("Нажмите любую клавишу...");
    getch();
    return 0;
}
Написал все нужные мне функции,но немогу придумать как вывести самолет,который вылетает позже всего.
В структуре Time значение int менять нельзя(так бы сам поставил char и использовал функцию strcmp).

Добавлено через 1 час 57 минут
Помогите, пожалуйста

Добавлено через 1 час 20 минут
Помогите,ребята!!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru