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

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

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

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

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

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #define n 2
  6.  
  7. struct TRAIN
  8. {
  9. char punkt[15];
  10. int r_num;
  11. int ch;
  12. int min;
  13. } train[n];
  14.  
  15. void Read(TRAIN *);
  16. void Sort();
  17. void Output(int);
  18.  
  19. int main(void)
  20. {
  21. int ch1,min1;
  22. Read(train);
  23. printf("|Punkt naznacheniya|\tNomer reisa|\tVremi|\t\n");
  24. for(int i=0;i<n;i++)
  25. Output(i);
  26. Sort();
  27. printf("Sortirovka\n");
  28. printf("|Punkt naznacheniya|\tNomer reisa|\tVremi|\t\n");
  29. for(int i=0;i<n;i++)
  30. Output(i);
  31. printf("\nVvedite Vremi: \n");
  32. printf("Hour:\n");
  33. scanf("%d",&ch1);
  34. printf("Minutes: \n");
  35. scanf("%d",&min1);
  36.  
  37. int s=0;
  38. for(int i=0;i<n;i++)
  39. if(train[i].ch>=ch1 && train[i].min>=min1){
  40. printf("|Punkt naznacheniya|\tNomer reisa|\tVremi|\t\n");
  41. Output(i);
  42. s=1;
  43. }
  44. if(!s) printf("Takoe vremi net!\n");
  45.  
  46. return 0;
  47. }
  48.  
  49. void Read(TRAIN t[n])
  50. {
  51. int i;
  52. for(i = 0;i<n;i++)
  53. {
  54. printf("Punkt naznacheniya:\n");
  55. scanf("%s",&t[i].punkt);
  56. printf("Nomer reisa: \n");
  57. scanf("%d",&t[i].r_num);
  58. printf("Hour: \n");
  59. scanf("%d",&t[i].ch);
  60. printf("Minutes: \n");
  61. scanf("%d",&t[i].min);
  62. }
  63. }
  64.  
  65. void Sort() //sortirovka po punkty naznacenia
  66. {
  67.  
  68. int swap=1;
  69. while(swap!=0)
  70. {
  71. swap=0;
  72. for(int i=0;i<n-1;i++)
  73. if(strcmp(train[i].punkt,train[i+1].punkt)>=0)
  74. {
  75. swap=1;
  76. TRAIN temp=train[i];
  77. train[i]=train[i+1];
  78. train[i+1]=temp;
  79. }
  80. }
  81.  
  82. }
  83. void Output(int i)
  84. {
  85. printf("|%s\t\t |%d\t\t |%d.%d\t |\n",
  86. train[i].punkt,train[i].r_num,train[i].ch,train[i].min);
  87. }

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

  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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут