Описать структуру с именем 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); }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы:
- #include
для работы с функцией вывода и ввода данных; - #include
для работы с функцией getch(), которая используется для приостановки выполнения программы до тех пор, пока пользователь не введет данные; - #include
для работы с функцией malloc() и free(), которые используются для динамического выделения и освобождения памяти; - #include
для работы со строками.
- #include
- Определяем структуру TRAIN:
- В структуре TRAIN есть четыре поля:
- char punkt[15] - название пункта назначения;
- int r_num - номер поезда;
- int ch - часы;
- int min - минуты.
- В структуре TRAIN есть четыре поля:
- Создаем массив структур TRAIN:
- Мы создаем массив структур TRAIN с фиксированным размером n.
- Функция Read():
- Эта функция используется для чтения данных о поездах в массив структур TRAIN.
- Функция Sort():
- Эта функция сортирует массив структур TRAIN по полю punkt в алфавитном порядке.
- Функция Output(int i):
- Эта функция выводит данные о поезде с индексом i в консоль.
- Основная функция main():
- В этой функции мы сначала считываем данные о поездах, затем выводим их в консоль, после чего сортируем и снова выводим.
- Затем мы считываем время и ищем поезда, которые отправляются в это время.
- Если таких поездов нет, выводим сообщение
Takoe vremi net!
.
- Код в строке 17:
- Здесь мы используем цикл for для перебора всех поездов и проверки, отправляется ли поезд в указанное время.
- Если да, мы выводим данные о поезде и устанавливаем флаг s в 1.
- Код в строке 26:
- Здесь мы используем функцию scanf() для считывания времени.
- Код в строке 32:
- Здесь мы используем цикл for для перебора всех поездов и проверки, отправляется ли поезд в указанное время.
- Если да, мы выводим данные о поезде и устанавливаем флаг s в 1.
- Код в строке 38:
- Здесь мы используем функцию printf() для вывода сообщения
Takoe vremi net!
.
- Здесь мы используем функцию printf() для вывода сообщения
- Код в строке 44:
- Здесь мы используем функцию getch() для приостановки выполнения программы до тех пор, пока пользователь не введет данные.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д