Практические / Отчеты студентов 2011-2012 / ВТ-12 ЛР / Смирнов / Laba_9 (1)
.docxМосковский государственный университет леса
Факультет электроники и системотехники
Лабораторная работа №9
Тема: Структуры
Выполнил: Смирнов С.А.
Группа: ВТ-12
Москва 2012
Задание
1. Описать структуру с именем TRAIN, содержащую следующие поля:
• название пункта назначения;
• номер поезда;
• время отправления.
2. Написать программу, выполняющую следующие действия:
• ввод с клавиатуры данных в массив, состоящий из восьми элементов типа
TRAIN; записи должны быть упорядочены по номерам поездов;
• вывод на экран информации о поезде, номер которого введен с клавиатуры;
• если таких поездов нет, выдать на дисплей соответствующее сообщение.
#include <stdio.h>
#include <math.h>
#include <windows.h>
#include <string.h>
struct TRAIN{
char NAZN[20];
unsigned NUMR;
char TIME[6];
} RASP[8],T;
main()
{
int i, j, k=0;
unsigned Num;
char Name[20];
for(i=0; i<8; i++)
{
printf("\nName of the place? ");
scanf("%s", &RASP[i].NAZN);
if(strlen(RASP [i].NAZN)==0)
break;
printf("Train number? ");
scanf("%u",&RASP[i].NUMR);
printf("Departure time? ");
scanf("%s",&RASP[i].TIME);
k++;
}
for(i=0; i<k; i++)
for(j=0; j<k-i-1; j++)
if(RASP[i].NAZN < RASP[j].NAZN)
{
T= RASP[j];
RASP[j] = RASP[j+1];
RASP[j+1]=T;
}
printf("\nTrains:\n");
for(i=0; i<k; i++)
printf("%-19s - #%3u - %7s\n",RASP[i].NAZN,RASP[i].NUMR,RASP[i].TIME);
while(1)
{
printf("\nTrain number for seach (0 for exit)? ");
scanf("%u",&Num);
j=0;
if(!Num)
break;
for(i=0;i<k;i++)
if(Num==RASP[i].NUMR)
{
printf("\nName of the place: %s \nTrain number: %u \nDeparture time: %s\n\n",
RASP[i].NAZN,RASP[i].NUMR,RASP[i].TIME);
j=1;
}
if(!j)
printf("No such train!\n");
getchar();}
}