Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Практические / Отчеты студентов 2011-2012 / ВТ-11 Лр / Рудов / лабораторная работа №9

.doc
Скачиваний:
18
Добавлен:
17.04.2015
Размер:
32.26 Кб
Скачать

МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ЛЕСА

Факультет электроники и системотехники.

Лабораторная работа № 9

Тема: «Структуры»

Выполнил студент: Рудов К. А. ВТ-11

Проверил: Ларионов Н.В.

Москва 2011 г.

  1. Условие задачи:

1. Описать структуру с именем AEROFLOT, содержащую следующие ноля:

• название пункта назначения рейса;

• номер рейса;

• тип самолета.

2. Написать программу, выполняющую следующие действия:

• ввод с клавиатуры данных в массив, состоящий из семи элементов типа

AEROFLOT; записи должны быть размещены в алфавитном порядке по

названиям пунктов назначения;

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

• если таких рейсов нет, выдать на дисплей соответствующее сообщение.

  1. Данные:

  2. Схема программы:

  3. Листинг программы:

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

#include <string.h>

#define N 7

struct AEROFLOT

{

char type[50];

int num;

char name[50];

};

void print_race(int index);

void scanf_race(int index);

void sort_race();

void find_race(char type[]);

struct AEROFLOT aeroflot[N];

int main()

{

int i,n;

char type[50];

for(i = 0;i < N;i++)

scanf_race(i);

sort_race();

for(i = 0;i < N;i++)

print_race(i);

do

{

printf("Vvedite tip samoleta: ");

scanf("%s",type);

if (strcmp(type,"!") == 0)

return 0;

find_race(type);

} while(1);

getch();

return 0;

}

void print_race(int index)

{

printf("===================\n");

printf("Tip samoleta: %s\n",aeroflot[index].type);

printf("Nomer reisa: %d\n",aeroflot[index].num);

printf("Punkt naznacheniya: %s\n",aeroflot[index].name);

}

void scanf_race(int index)

{

printf("Vvedite tip samoleta: ");

scanf("%s",aeroflot[index].type);

printf("Vvedite nomer reisa: ");

scanf("%d",&aeroflot[index].num);

printf("Vvedite nazvanie punkta naznacheniya: ");

scanf("%s",aeroflot[index].name);

}

void sort_race()

{

int i,j,res;

struct AEROFLOT temp;

for(i = 0;i < N;i++)

for(j = N -1 ;j > i;j--)

{

res = strcmp(aeroflot[j-1].name,aeroflot[j].name);

if (res > 0)

{

temp = aeroflot[j-1];

aeroflot[j-1] = aeroflot[j];

aeroflot[j] = temp;

}

}

}

void find_race(char type[])

{

int i;

int is = 0;

for(i = 0;i < N;i++)

{

if (strcmp(aeroflot[i].type,type) == 0)

{

print_race(i);

is = 1;

}

}

if (!is)

printf("Takogo reisa net\n");

}