Описать структуру с именем TRAIN - C (СИ) (77621)

Узнай цену своей работы

Формулировка задачи:

Ребят,помогите сделать пожалуйста! (в поиске такой проги на Си нет) Описать структуру с именем TRAIN, содержащую следующие поля: - название пункта назначения - номер поезда - время отправления Написать программу, выполняющую следующие действия: - ввод с клавиатуры данных в массив, состоящий из восьми элементов типа TRAIN; записи должны быть размещены в АЛФАВИТНОМ ПОРЯДКЕ ПО НАЗВАНИЯМ ПУНКТОВ НАЗНАЧЕНИЯ; - вывод на экран информации о поездах, отправляющихся после ВВЕДЕННОГО С КЛАВ. ВРЕМЕНИ; - если таких поездов нет, выдать на дисплей соответствующее сообщение. (перерыла весь форум.есть много похожих.но такой на Си нет нигде) Помогите пожалуйста сделать! вот примерно те же темы. http://www.cyberforum.ru/search.php?searchid=4263433

Решение задачи: «Описать структуру с именем TRAIN»

textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#define n 2
 
struct TRAIN
{
char punkt[15];
int r_num;
int ch;
int min;
} train[n];
 
void Read(TRAIN *);
void Sort();
void Output(int);
 
int main(void)
{
int ch1,min1;
Read(train);
printf("|Punkt naznacheniya|\tNomer reisa|\tVremi|\t\n");
for(int i=0;i<n;i++)
Output(i);
Sort();
printf("Sortirovka\n");
printf("|Punkt naznacheniya|\tNomer reisa|\tVremi|\t\n");
for(int i=0;i<n;i++)
Output(i);
printf("\nVvedite Vremi: \n");
printf("Hour:\n");
scanf("%d",&ch1);
printf("Minutes: \n");
scanf("%d",&min1);
 
int s=0;
for(int i=0;i<n;i++)
if(train[i].ch>=ch1 && train[i].min>=min1){
printf("|Punkt naznacheniya|\tNomer reisa|\tVremi|\t\n");
Output(i);
s=1;
}
if(!s) printf("Takoe vremi net!\n");
 
return 0;
}
 
void Read(TRAIN t[n])
{
int i;
for(i = 0;i<n;i++)
{
printf("Punkt naznacheniya:\n");
scanf("%s",&t[i].punkt);
printf("Nomer reisa: \n");
scanf("%d",&t[i].r_num);
printf("Hour: \n");
scanf("%d",&t[i].ch);
printf("Minutes: \n");
scanf("%d",&t[i].min);
}
}
 
void Sort() //sortirovka po punkty naznacenia
{
 
int swap=1;
while(swap!=0)
{
swap=0;
for(int i=0;i<n-1;i++)
if(strcmp(train[i].punkt,train[i+1].punkt)>=0)
{
swap=1;
TRAIN temp=train[i];
train[i]=train[i+1];
train[i+1]=temp;
}
}
 
}
void Output(int i)
{
printf("|%s\t\t |%d\t\t |%d.%d\t |\n",
train[i].punkt,train[i].r_num,train[i].ch,train[i].min);
}

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы:
    • #include для работы с функцией вывода и ввода данных;
    • #include для работы с функцией getch(), которая используется для приостановки выполнения программы до тех пор, пока пользователь не введет данные;
    • #include для работы с функцией malloc() и free(), которые используются для динамического выделения и освобождения памяти;
    • #include для работы со строками.
  2. Определяем структуру TRAIN:
    • В структуре TRAIN есть четыре поля:
      • char punkt[15] - название пункта назначения;
      • int r_num - номер поезда;
      • int ch - часы;
      • int min - минуты.
  3. Создаем массив структур TRAIN:
    • Мы создаем массив структур TRAIN с фиксированным размером n.
  4. Функция Read():
    • Эта функция используется для чтения данных о поездах в массив структур TRAIN.
  5. Функция Sort():
    • Эта функция сортирует массив структур TRAIN по полю punkt в алфавитном порядке.
  6. Функция Output(int i):
    • Эта функция выводит данные о поезде с индексом i в консоль.
  7. Основная функция main():
    • В этой функции мы сначала считываем данные о поездах, затем выводим их в консоль, после чего сортируем и снова выводим.
    • Затем мы считываем время и ищем поезда, которые отправляются в это время.
    • Если таких поездов нет, выводим сообщение Takoe vremi net!.
  8. Код в строке 17:
    • Здесь мы используем цикл for для перебора всех поездов и проверки, отправляется ли поезд в указанное время.
    • Если да, мы выводим данные о поезде и устанавливаем флаг s в 1.
  9. Код в строке 26:
    • Здесь мы используем функцию scanf() для считывания времени.
  10. Код в строке 32:
    • Здесь мы используем цикл for для перебора всех поездов и проверки, отправляется ли поезд в указанное время.
    • Если да, мы выводим данные о поезде и устанавливаем флаг s в 1.
  11. Код в строке 38:
    • Здесь мы используем функцию printf() для вывода сообщения Takoe vremi net!.
  12. Код в строке 44:
    • Здесь мы используем функцию getch() для приостановки выполнения программы до тех пор, пока пользователь не введет данные.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5