Практические / Отчеты студентов 2011-2012 / ВТ-11 Лр / Суковатова / лаба9
.docМОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ЛЕСА
Факультет электроники и системотехники.
Лабораторная работа № 9
по программированию на языке высшего уровня С
Тема: «Структуры»
Выполнил студент: Суковатова Л.Н.
ВТ-11
Проверил: Ларионов Н.В.
Москва 2012 г.
1. Условия задачи:
1. Описать структуру с именем MARSH, содержащую следующие поля:
• название начального пункта маршрута;
• название конечного пункта маршрута;
• номер маршрута.
2. Написать программу, выполняющую следующие действия:
• ввод с клавиатуры данных в массив, состоящий из восьми элементов типа
MARSH; записи должны быть упорядочены по номерам маршрутов;
• вывод на экран информации о маршруте, номер которого введен с клавиатуры;
• если таких маршрутов нет, выдать на дисплей соответствующее сообщение.
2. Данные: входящие: num, start,stop,res
рабочие:
выходящие: num, start,stop
3. Листинг программы:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define N 8
struct MARSH
{
int num;
char start[50];
char stop[50];
};
void print_marsh(int index);
void input_marsh(int index);
void sort_marsh(struct MARSH marsh[]);
struct MARSH marshruty[8];
int main()
{
int i,res;
for(i = 0;i < N;i++)
input_marsh(i);
sort_marsh(marshruty);
printf("======================\n");
for(i = 0;i < N;i++)
{
print_marsh(i);
printf("================\n");
}
do
{
scanf("%d",&res);
for(i = 0;i < N;i++)
{
if (marshruty[i].num == res)
{
printf("================\n");
print_marsh(i);
printf("================\n");
break;
}
else if(i == N - 1)
{
printf("Takogo marshruta net\n");
break;
}
}
}while(res != 999);
getch();
return 0;
}
void print_marsh(int index)
{
printf("Nomer marshruta: %d\n",marshruty[index].num);
printf("Nazvanie nachalnogo marshruta: %s\n",marshruty[index].start);
printf("Nazvanie konechnogo marshruta: %s\n",marshruty[index].stop);
}
void input_marsh(int index)
{
printf("Vvedite nomer marshruta: ");
scanf("%d",&marshruty[index].num);
printf("Vvedite nazvanie nachlnogo marshruta: ");
scanf("%s",&marshruty[index].start);
printf("Vvedite nazvanie konechnogo marshryta: ");
scanf("%s",&marshruty[index].stop);
}
void sort_marsh(struct MARSH marsh[])
{
int i,j;
struct MARSH temp;
for(i = 0;i < N;i++)
for(j = N - 1;j > i;j--)
if (marsh[j - 1].num > marsh[j].num)
{
temp = marsh[j-1];
marsh[j-1] = marsh[j];
marsh[j] = temp;
}
}