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

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

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

Вывести на экран все рейсы, отправляющиеся в пункт А (поиск в массиве структур по заданному полю) - C++

20.11.2016, 18:48. Просмотров 137. Ответов 2
Метки нет (Все метки)

В задаче необходимо вывести на экран все рейсы, отправляющиеся в пункт А, введенный с клавиатуры.
Собственно, неработающий код:
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
#include<iostream>
#include<iomanip>
#include<math.h>
using namespace std;
struct Flights
    {
        char number[7]; //номер рейса
        char type[5]; //тип самолета
        char departure[30]; //пункт отправления
        char arrival[30]; //пункт прибытия
        char time_departure[6]; //время отправления
        char time_arrival[6]; //время прибытия
    };
void IsArrival(Flights f[],Flights arr[],int n,char filter[30])
{
    int k=0;
    for(int i=0;i<n;i++)
    {
        if(strcmp(f[i].arrival,filter)==0)
        {
            arr[k++]=f[i];
        }
    }
    cout<<left<<setw(16)<<"Номер рейса"<<setw(17)<<"Тип самолета"<<setw(22)<<"Пункт отправления"<<setw(21)<<"Пункт назначения"<<setw(22)<<"Время отправления"<<setw(18)<<"Время прилета"<<endl;
    cout<<"____________________________________________________________________________________________________________________"<<endl<<endl;
    for(int i=0;i<k;i++)
    {
        cout<<left<<setw(16)<<arr[i].number<<setw(17)<<arr[i].type<<setw(22)<<arr[i].departure<<setw(21)<<arr[i].arrival<<setw(22)<<arr[i].time_departure<<setw(18)<<arr[i].time_arrival<<endl<<endl;
    }
}
 
int main()
{
    setlocale(LC_CTYPE,"Russian");
    Flights f[6]={
        "SU6472","A319","Омск","Санкт-Петербург","05:30","06:20",
        "SU1763","A320","Омск","Москва","05:40","06:10",
        "SU1639","A320","Омск","Москва","08:30","09:00",
        "SU6471","A319","Санкт-Петербург","Омск","21:40","04:20",
        "SU1638","A320","Москва","Омск","01:05","07:20",
        "SU1762","A320","Москва","Омск","22:10","04:35"
    };
    cout<<left<<setw(16)<<"Номер рейса"<<setw(17)<<"Тип самолета"<<setw(22)<<"Пункт отправления"<<setw(21)<<"Пункт назначения"<<setw(22)<<"Время отправления"<<setw(18)<<"Время прилета"<<endl;
    cout<<"____________________________________________________________________________________________________________________"<<endl<<endl;
    for(int i=0;i<6;i++)
    {
        cout<<left<<setw(16)<<f[i].number<<setw(17)<<f[i].type<<setw(22)<<f[i].departure<<setw(21)<<f[i].arrival<<setw(22)<<f[i].time_departure<<setw(18)<<f[i].time_arrival<<endl<<endl;
    }
    char filter[30];
    cout<<"Введите пункт назначения"<<endl;
    cin>>filter;
    Flights arr[6];
    IsArrival(f,arr,6,filter);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2016, 18:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывести на экран все рейсы, отправляющиеся в пункт А (поиск в массиве структур по заданному полю) (C++):

Реализовать поиск в массиве структур по заданному полю - C++
Задание : Определить тип данных запись, имеющий поля фамилия и оценки по 5 предметам.Определить массив из 10 записей.В программе ввести в...

Реализовать поиск в массиве структур по заданному полю - C++
Есть структура #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;conio.h&gt; #include &lt;iomanip&gt; using namespace...

Реализовать поиск по заданному полю в массиве структур и вывод этих данных на консоль - C++
Здравствуйте, пишу код чтобы я вводил какой-либо товар, отмечал какого года он был продан и сколько выручки было получено. Но не могу...

Реализовать поиск в массиве структур "Znak" по заданному полю - C++
Описать структуру с именем znak, содержащую следующие поля: • фамилия, имя; • знак Зодиака; • дата рождения (массив из трех чисел). ...

Реализовать поиск в массиве структур "Student" по заданному полю - C++
Я очень мало понимаю в программировании, но лабораторные как-то надо сдавать, учитывая, что препод ничего не объясняет(( Ребят, помогите...

Реализовать поиск по заданному полю в массиве структур типа "Student" - C++
не могу понять почему не работает цикл void init?? Срабатывает только один раз(то есть могу ввести одно имя,а несколько не получается)...

2
ящюр
97 / 97 / 24
Регистрация: 15.03.2013
Сообщений: 521
Записей в блоге: 1
20.11.2016, 19:37 #2
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
#include <Windows.h>
#include<iostream>
#include<iomanip>
#include<math.h>
#include <string>
using namespace std;
 
typedef BOOL(WINAPI *SETCONSOLEFONT)(HANDLE, DWORD);     // прототип недокументированый функции
 
SETCONSOLEFONT SetConsoleFont;
 
 
struct Flights
{
    char number[7]; //номер рейса
    char type[5]; //тип самолета
    char departure[30]; //пункт отправления
    char arrival[30]; //пункт прибытия
    char time_departure[6]; //время отправления
    char time_arrival[6]; //время прибытия
};
char bufRus[256];
 
void IsArrival(Flights f[], Flights arr[], int n, char filter[30])
{
    int k = 0;
    for (int i = 0; i<n; i++)
    {
        if (strcmp(f[i].arrival, filter) == 0)
        {
            arr[k++] = f[i];
        }
    }
    cout << left << setw(16) << "Номер рейса" << setw(17) << "Тип самолета" << setw(22) << "Пункт отправления" << setw(21) << "Пункт назначения" << setw(22) << "Время отправления" << setw(18) << "Время прилета" << endl;
    cout << "____________________________________________________________________________________________________________________" << endl << endl;
    for (int i = 0; i<k; i++)
    {
        cout << left << setw(16) << arr[i].number << setw(17) << arr[i].type << setw(22) << arr[i].departure << setw(21) << arr[i].arrival << setw(22) << arr[i].time_departure << setw(18) << arr[i].time_arrival << endl << endl;
    }
}
 
int main()
{
    HMODULE hmod = GetModuleHandleA("KERNEL32.DLL");     // функция здесь
 
    SetConsoleFont = (SETCONSOLEFONT)GetProcAddress(hmod, "SetConsoleFont");   // берем ее адрес
 
    if (!SetConsoleFont) { cout << "error\n"; exit(1); }   //   если ошибка
 
    SetConsoleFont(GetStdHandle(STD_OUTPUT_HANDLE), 8);  // устанавливаем 8-й шрифт..
 
    //эксперементально установил что в обычной XP  это Lucida  Console = 6 или 8.
 
    // разница только в размерах. 6 - помельче.
    SetConsoleCP(1251);// установка кодовой страницы win-cp 1251 в поток ввода
    SetConsoleOutputCP(1251); // установка кодовой страницы win-cp 1251 в поток вывода
 
    Flights f[6] = {
        "SU6472", "A319", "Омск", "Санкт-Петербург", "05:30", "06:20",
        "SU1763", "A320", "Омск", "Москва", "05:40", "06:10",
        "SU1639", "A320", "Омск", "Москва", "08:30", "09:00",
        "SU6471", "A319", "Санкт-Петербург", "Омск", "21:40", "04:20",
        "SU1638", "A320", "Москва", "Омск", "01:05", "07:20",
        "SU1762", "A320", "Москва", "Омск", "22:10", "04:35"
    };
    cout << left << setw(16) << "Номер рейса" << setw(17) << "Тип самолета" << setw(22) << "Пункт отправления" << setw(21) << "Пункт назначения" << setw(22) << "Время отправления" << setw(18) << "Время прилета" << endl;
    cout << "____________________________________________________________________________________________________________________" << endl << endl;
    for (int i = 0; i<6; i++)
    {
        cout << left << setw(16) << f[i].number << setw(17) << f[i].type << setw(22) << f[i].departure << setw(21) << f[i].arrival << setw(22) << f[i].time_departure << setw(18) << f[i].time_arrival << endl << endl;
    }
    char filter[30];
    cout << "Введите пункт назначения" << endl;
    cin >> filter;
    Flights arr[6];
    IsArrival(f, arr, 6, filter);
    system("pause");
}
Добавлено через 2 минуты
Так все правильно было. Надо только шрифт в консоль поставить Lucida Console
0
Kseniya_B
0 / 0 / 0
Регистрация: 20.11.2016
Сообщений: 2
21.11.2016, 17:53  [ТС] #3
Спасибо большое!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.11.2016, 17:53
Привет! Вот еще темы с ответами:

Поиск в массиве структур по заданному полю и вывод в алфавитном порядке (файловый ввод/вывод) - C++
Помогите с функцией void runFile() что бы с файла брал и выводил в алфавитном порядке список товаров, хранящихся больше месяца, стоимость...

Реализовать поиск в массиве структур "Student" по заданному полю (файловый ввод/вывод) - C++
Помогите написать программы... 1. Пусть на диске текстовый файл ' Hrupa.txt ' , каждая строка которого имеет следующую структуру:...

Реализовать функцию поиска по заданному полю в массиве структур (файловый ввод/вывод) - C++
Имеется информация о клиентах телефонной компании и предоставляемых им услугах. Каждая услуга имеет собственный тариф, а каждый клиент...

Создать массив структур, который можно редактировать: поиск по заданному полю, удаление и добавление элементов - C++
Создать структуру и именем sklad, которая содержит следующие поля: NAME- Название товара TYPE- единица измерения товара QUANTITI-...


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

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

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