0 / 0 / 0
Регистрация: 23.04.2015
Сообщений: 138
1

Вывод на экран пунктов назначения и номеров рейсов, обслуживаемых самолетом, тип которого введен с клавиатуры

16.06.2017, 21:19. Показов 2029. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задание
- вывод на экран пунктов назначения и номеров рейсов, обслуживаемых самолетом, тип которого введен с клавиатуры;
- если таких рейсов нет, выдать на дисплей соответствующее сообщение.
Помогите исправить ошибку.

Ошибка в поиске типа самолета.
Вывод на экран пунктов назначения и номеров рейсов, обслуживаемых самолетом, тип которого введен с клавиатуры

В этих строках.
C++
1
2
if (strcmp(t, elem[i].typeair) == 0)
            fout << elem[i].name << " " << elem[i].numflight << endl;
Полный код:
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
#include <iostream>
#include <fstream>
#include <conio.h>  
#include <iomanip>
#include <string>
#include <cstring>
#define _CRT_SECURE_NO_WARNINGS
using namespace std;
 
const int len_size = 15;
struct aeroflot {
    char name[len_size]; // Название пункта назначения
    char numflight; // Номер рейса
    char typeair[len_size]; // Тип самолета
} elem;
 
const int size_p = sizeof(aeroflot);
const int struct_size = sizeof(aeroflot);
 
int create_file(); // Запись в файл
int search_file(); // Сортировка файла
int view_file(); // Вывод файла
 
int main() {
    while (1) {
        system("cls");
        cout << "1. Create file." << endl;
        cout << "2. Search for aircraft by type" << endl;
        cout << "3. View file." << endl;
        cout << "4. Exit." << endl;
    
    char c;
    c = _getch();
    switch (c) {
    case '1':create_file(); break;
    case '2':search_file(); break;
    case '3':view_file(); break;
    case '4':return 0;  
        }
    }
}
 
int create_file() {
    ofstream file("lab6.txt", ios::binary);
    char key;
    while (1) {
        cout << "Flight number: ";
        cin >> elem.numflight;
        cout << "Enter Destination: ";
        cin >> elem.name;
        cout << "Type of aircraft: " << endl;
        cin >> elem.typeair; 
        file.write((char*)&elem, sizeof elem);
        cout << "Successfully! Post created ;)" << endl;
        cout << "To exit enter 0 " << endl;
        if ((key = _getch()) == '0') {
            
            return 1;
        }
    }
    file.close();
 
}
 
int view_file() {
    ifstream file("lab6.txt", ios::binary);
    system("cls");
    cout << "|   Number   |   Destination   |   Type of aircraft   |" << endl;
    while (!file.eof()) {
        file.read((char*)&elem, sizeof elem);
        if (!file.eof()) {
            cout << "|" << setw(3) << elem.numflight << setw(10) << "|";
            cout << setw(8) << elem.name << setw(12);
            cout << "|" << setw(10) << elem.typeair << setw(10) << "|" << endl;
        }
    }
    file.close();
    _getch();
    return 0;
}
 
int search_file() {
    int i; char *t;
    string s;
    ifstream file("lab6.txt");
    while (file.peek() != EOF) {
        getline(file, s);
    }
    int kol = atoi(s.c_str());
    int count = 0;
    cout << "\nВведите тип: "; cin >> t;
    ofstream fout("lab6.txt");
    
    for (i = 0; i < kol; i++)
    {
        if (strcmp(t, elem[i].typeair) == 0)
            fout << elem[i].name << " " << elem[i].numflight << endl;
        else
            count++;
    }
 
    if (count == kol)
        fout << "\nНет совпадений!" << endl;
    fout.close();
system("pause");
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.06.2017, 21:19
Ответы с готовыми решениями:

Вывод на экран пунктов назначения и номеров рейсов, обслуживаемых самолетом
Описать структуру, содержащую следующие поля: название пункта назначения рейса; номер рейса; тип...

Структура: вывод на экран пунктов назначения и номеров рейсов, обслуживаемых самолетом
Описать структуру с именем AER0FL0T, содержащую следующие поля: • название пункта назначения...

Вывести пункты назначения и номера рейсов, обслуживаемых самолетом
Описать структуру с именем AEROFLOT, содержащую следующие поля: - название пункта назначения...

Структуры: вывод на экран информации о поезде, номер которого введен с клавиатуры
Описать структуру с именем POEZD, содержащую следующие поля: название пункта назначения; номер...

4
7784 / 6553 / 2982
Регистрация: 14.04.2014
Сообщений: 28,615
17.06.2017, 09:03 2
У тебя нет массива структур, поэтому индексировать нечего. Да и не требуется это для поиска. Считывай по одной.
0
0 / 0 / 0
Регистрация: 23.04.2015
Сообщений: 138
17.06.2017, 20:49  [ТС] 3
Цитата Сообщение от nmcf Посмотреть сообщение
У тебя нет массива структур, поэтому индексировать нечего. Да и не требуется это для поиска. Считывай по одной.
Как это реализовать?
0
7784 / 6553 / 2982
Регистрация: 14.04.2014
Сообщений: 28,615
17.06.2017, 23:45 4
Лучший ответ Сообщение было отмечено Weiz как решение

Решение

Цикл из view_file() возьми за основу. Только выводить всё не надо, сравнивай нужное поле.
1
0 / 0 / 0
Регистрация: 23.04.2015
Сообщений: 138
18.06.2017, 15:14  [ТС] 5
Цитата Сообщение от nmcf Посмотреть сообщение
Цикл из view_file() возьми за основу. Только выводить всё не надо, сравнивай нужное поле.
Разобрался, спасибо)
0
18.06.2017, 15:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.06.2017, 15:14
Помогаю со студенческими работами здесь

Структура: Вывод на экран информации о человеке, номер телефона которого введен с клавиатуры
1. Описать файл записей с именем note, содержащий следующие поля: фамилия, имя, номер телефона,...

Вывести на экран информации о человеке, номер телефона которого введен с клавиатуры
Программа должна :Написать программу, выполняющую следующие действия: • ввод с клавиатуры данных в...

Создать и вывести на экран дерево, элементы которого вводятся с клавиатуры и имеют целый тип
Создать и вывести на экран дерево, элементы которого вводятся с клавиатуры и имеют целый тип....

Вывести элемент списка номер которого введен с клавиатуры
Вывести элемент списка номер которого введен с клавиатуры


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru