Помогите описать комбинированый тип, содержащий сведения о 7 самолётах авиакомпании (любой)
Проблема в том, что компилятор выбивает ошибку, я не знаю почему. Помогите написать код так, как это просится в задании. А задание такое: Описать комбинированный тип, содержащий сведения о самолетах авиакомпании: название /модель/ количество членов экипажа, количество пассажирских мест, технические характеристики (максимальная дальность полета, максимальная скорость, количество двигателей, бортовой номер.
Организовать базу данных, содержащих информацию о 7 самолетах, и инициализировать произвольными данными в программном коде записи о них, кроме последнего поля.
Реализовать следующие функции в программе:
а) ввод данных о бортовом номере каждого самолета;
б) вывод полной информации о самолетах в псевдотабличном виде (с отступлениями);
в) вывод названий и бортовых номеров самолетов, дальность перелета не больше 1600 км.
г) вычисление и отображение общей пассажировместимости авиапарка. Я старался решить задание, поэтому прилагаю код
#include <iostream>
using namespace std;
struct date
{
int flight;
};
struct aviacompany
{
char plane1[20], planr2[20], plane3[20]; flight distance; int num_zal; float atestat;
}; const int size=7;
int main()
{
setlocale(LC_CTYPE, "ukr");
aviacompany g[size]= {
{"Boeing 695","RA-85757" {2450},104}, //{имя самолета, бортовой номер{дальность перелёта},кол-во пасажиров}
{"Boeing 660", {2000},105},
{"Boeing C-8",{1600},106},
{"An-32,200ER", {1570},107},
{"Boeing 345", {1400},108},
{"Boenig C-6", {1130},110},
{"Boeing 456", {1450},111},
};
for(int i=0;i<size;i++)
cout<<i+1<<") "<<g[i].plane1<<" "<<g[i].plane2<<" "<<g[i].plane3<<" ("<<g[i].distance.flight<<") кол-во пасажиров"<<g[i].num_zal<<endl;
cout<<endl<<">1600"<<endl; for(int i=0;i<size;i++)
if(g[i].distance.flight>=1600) cout<<i+1<<") "<<g[i].plane1<<" "<<g[i].plane2<<endl; cout<<endl<<":"<<endl;
return 0; }
Ответы (2 шт):
В struct aviacompany тип данных неправильно указан.
struct aviacompany
{
planr2[20], // а здесь синтаксическая ошибка
flight distance;
А должно быть
struct aviacompany
{
plane2[20],
data distance;
Инициализируйте все поля структуры (можно пропускать поля с конца). Но лучше не надо, запишите хоть какие-то значения. А лучше сделайте конструктор по умолчанию и инициализируйте поля структуры значениями по умолчанию.
aviacompany g[size]= {
{"Boeing 695","RA-85757", "", {2450},104,0.0},
{"Boeing 660", "", "", {2000},105}, // не инициализировано последнее поле
{"Boeing C-8", "", "", {1600},106},
{"An-32,200ER", "", "", {1570}}, // не инициализировано 2 последних поля
{"Boeing 345", "", "", {1400},108,0.0},
{"Boenig C-6", "", "", {1130},110,0.0},
{"Boeing 456", "", "", {1450},111,0.0},
};
И пассажиры пишется с 2 с!
#include <iostream>
using namespace std;
const int SIZE = 7;
int passenger_capacity = 0;
struct airplane
{
char name[20];
char model[20];
int number_of_crew;
int number_of_seats;
float max_dist;
float max_speed;
int number_of_engines;
char side_number[20];
};
void print_all_info(airplane airplane_m[]) {
cout << "Название\t" << "Модель\t" << "Кол.эк\t" << "Кол.мест\t" << "Макс.дист\t" << "Макс.cкор\t" << "Кол.двиг\t" << "№ Борт\n";
for (int i = 0; i < SIZE; i++)
cout << airplane_m[i].name << "\t\t" << airplane_m[i].model << "\t" << airplane_m[i].number_of_crew << "\t" << airplane_m[i].number_of_seats
<< "\t\t" << airplane_m[i].max_dist << "\t\t" << airplane_m[i].max_speed << "\t\t" << airplane_m[i].number_of_engines << "\t\t" << airplane_m[i].side_number << "\n";
cout << endl;
}
int main()
{
setlocale(LC_CTYPE, "ru");
airplane airplane_m[SIZE];
airplane_m[0] = {"Boeing", "695", 15, 110, 2300.52, 600.82, 4, "RA-512"};
airplane_m[1] = {"Boeing", "660", 14, 123, 2000.12, 332.57, 2, "64452"};
airplane_m[2] = {"An-32", "С-8", 13, 150, 2100.53, 621.6, 6, "EI-XLL" };
airplane_m[3] = {"Boeing", "200ER", 10, 210, 1500.72, 823.15, 4, "N232CL" };
airplane_m[4] = {"Boeing", "345", 16, 132, 1400.23, 415.7, 4, "HD-1252" };
airplane_m[5] = {"Boeing", "C-6", 13, 162, 1523.15, 512.2, 6, "GAG-2" };
airplane_m[6] = {"Boeing", "456", 15, 152, 1351.62, 563.3, 4, "LOL" };
for (int i = 0; i < SIZE; i++)
cout << "Бортовой номер " << i+1 << " - " << airplane_m[i].name << "\n";
cout << endl;
print_all_info(airplane_m);
cout << "Название " << "Бортовой номер\t" << "Макс. дист\n";
for (int i = 0; i < SIZE; i++)
if (airplane_m[i].max_dist < 1600) cout << airplane_m[i].name << "\t" << airplane_m[i].side_number << "\t\t" << airplane_m[i].max_dist << "\n";
cout << endl;
cout << "Общая пассажировместимость авиапарка: ";
for (int i = 0; i < SIZE; i++)
passenger_capacity += airplane_m[i].number_of_seats;
cout << passenger_capacity;
system("pause >> null");
return 0;
}