48696

Описать структуру с именем TRAIN

Курсовая

Информатика, кибернетика и программирование

Алгоритм функции print_str представлен на рисунке Алгоритм функции input_str представлен на рисунке Алгоритм функции print_str представлен на рисунке 2. Рисунок 2 Алгоритм функции input_str представлен на рисунке 3.

Русский

2013-12-13

746.5 KB

74 чел.

8

Министерство образования и науки Российской Федерации

Российский государственный гидрометеорологический университет

Кафедра Информационных технологий и систем безопасности

КУРСОВАЯ РАБОТА

по дисциплине: «Языки программирования»

Вариант №7

Выполнил: студент гр. ИБ-239

Минкин П.А.

Проверил: Доцент кафедры ИТ и СБ

Шишкин А. Д.

Санкт-Петербург

2012

СОДЕРЖАНИЕ

[1] СОДЕРЖАНИЕ

[2] Задание на курсовое проектирование по дисциплине «Языки программирования»

[3] Алгоритм главной функции main( ). Главная функция предназначена для вызова всех функций представлена на рисунке 1.

[4] Алгоритм функции print_str( ) представлен на рисунке 2. Функция выводит на экран элементы структуры.

[5] Алгоритм функции input_str( ) представлен на рисунке 3. Функция позволяет задать новые значения для переменных структуры.

[6] Алгоритм функции sortBydest_city( )  на рисунке 4. Функция сортирует названия городов по алфавиту и построена на принципе быстрой сортировки.

[7] Алгоритм функции sortBytime( ) на рисунке 5 Функция производит вывод на экран тех поездов, время которых позднее указанного.

[8] Название программы: «Структуры и операции с ними»

[9] Листинг Программы:

[10] Вывод результатов

[11] Список используемой литературы:

Задание на курсовое проектирование по дисциплине «Языки программирования»

Описать структуру с именем TRAIN, содержащую следующие поля:

  •  название пункта назначения ;
  •  номер поезда;
  •  время отправления;

Написать программу, выполняющую следующие действия:

  •  ввод с клавиатуры данных в массив, состоящий из восьми элементов типа TRAIN; записи должны быть размещены в алфавитном порядке по названиям пунктов назначения;
  •  вывод на экран информации о поездах, отправляющихся после введенного с клавиатуры времени;
  •  если таких поездов нет, выдать на дисплей  соответствующее сообщение.

Содержание проекта:

  1.  Постановка задачи и метод решения.
  2.  Алгоритм модулей и главной функции.
  3.  Листинг программы.
  4.  Результаты тестирования программы.
  5.  Использованная литература

Дата выдачи «____»    сентября 2012 г.

Дата сдачи «____»    декабря 2012г.

Задание выдал                                                                    доц. Шишкин А.Д.

Задание получил                                                               студент Минкин П.А.

Санкт-Петербург

2012

Алгоритм главной функции main( ). Главная функция предназначена для вызова всех функций представлена на рисунке 1. 

 

Рисунок 1.

Алгоритм функции print_str( ) представлен на рисунке 2. Функция выводит на экран элементы структуры.

Рисунок 2

Алгоритм функции input_str( ) представлен на рисунке 3. Функция позволяет задать новые значения для переменных структуры.

Рисунок 3

Алгоритм функции sortBydest_city( )  на рисунке 4. Функция сортирует названия городов по алфавиту и построена на принципе быстрой сортировки.

Рисунок 4

Алгоритм функции sortBytime( ) на рисунке 5 Функция производит вывод на экран тех поездов, время которых позднее указанного.

Рисунок 5

Название программы: «Структуры и операции с ними»

Автор: студент группы Иб-239 Минкин Павел

Листинг Программы:

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <conio.h>

#define BUFFER 64

#define SEP "___________________________________________"

#define SIZE 8

typedef struct TRAIN

{ char dest_city[BUFFER];

char* tr_num;

int dep_time_h;

int dep_time_m;

} train_t str[SIZE];

void input_str(train_t *str, size_t size)

{int k;

clrscr();

size_t i;

printf("%s\nFilling a NEW train base\n%s\n",SEP,SEP);

 for ( i = 0; i < size; i++ )

 { k=0; k=i+1;

   printf("Train # [%d]\nDestination city      : ",k);

   scanf("%s", &str[i].dest_city);

   printf("Train number          : ");

   scanf("%s", &(char)str[i].tr_num);

   printf("Departure time HOUR   : ");

   scanf("%d", &str[i].dep_time_h);

   printf("Departure time MINUTES: ");

   scanf("%d", &str[i].dep_time_m);}

void sortBytime(int low_h, int low_m, const train_t *str, size_t size)

{ clrscr();

 size_t i;

 int j=0, sc=0;

 printf("%s\nDestanation city   Tr.num.  Departure time \n%s\n", SEP, SEP);

  for ( i = 0; i < size;i++)

{ if (str[i].dep_time_h < low_h || str[i].dep_time_h == low_h && str[i].dep_time_m < low_m || str[i].dep_time_m == low_m)

    sc=j++; }

if (sc>=7)

printf("ERROR!\nThere are no trains after entered time!\n\n\n\n\n\n\n");

if (sc<7)

{ for ( i = 0; i < size;i++)

  { if (str[i].dep_time_h > low_h)

   {if(str[i].dep_time_h >10 && str[i].dep_time_m >10)

    printf("%-20s%-8s %d:%d \n", str[i].dest_city, str[i].tr_num, str[i].dep_time_h, str[i].dep_time_m);

    if(str[i].dep_time_h >10 && str[i].dep_time_m <10)

    printf("%-20s%-8s %d:0%d \n", str[i].dest_city, str[i].tr_num, str[i].dep_time_h, str[i].dep_time_m);

    if(str[i].dep_time_h <10 && str[i].dep_time_m >10)

    printf("%-20s%-8s  %d:%d \n", str[i].dest_city, str[i].tr_num, str[i].dep_time_h, str[i].dep_time_m);

    if(str[i].dep_time_h <10 && str[i].dep_time_m <10)

    printf("%-20s%-8s  %d:0%d \n", str[i].dest_city, str[i].tr_num, str[i].dep_time_h, str[i].dep_time_m);

   }}}

int sortBydest_city(const void *a, const void *b)

{ int delta = stricmp((*(train_t*)a).dest_city,(*(train_t*)b).dest_city);

 if ( delta < 0.0 )     return -1;

 else if ( delta > 0.0 )     return 1;

 else   return 0;}

void print_str(const train_t *str, size_t size)

{ clrscr();

 size_t i;

 printf("%s\nDestanation city   Tr.num.  Departure time \n%s\n", SEP, SEP);

 for ( i = 0; i < size; i++ )

{  if(str[i].dep_time_h >10 && str[i].dep_time_m >10)

 printf("%-20s%-8s %d:%d \n", str[i].dest_city, str[i].tr_num, str[i].dep_time_h, str[i].dep_time_m);

 if(str[i].dep_time_h >10 && str[i].dep_time_m <10)

 printf("%-20s%-8s %d:0%d \n", str[i].dest_city, str[i].tr_num, str[i].dep_time_h, str[i].dep_time_m);

 if(str[i].dep_time_h <10 && str[i].dep_time_m >10)

 printf("%-20s%-8s  %d:%d \n", str[i].dest_city, str[i].tr_num, str[i].dep_time_h, str[i].dep_time_m);

 if(str[i].dep_time_h <10 && str[i].dep_time_m <10)

 printf("%-20s%-8s  %d:0%d \n", str[i].dest_city, str[i].tr_num, str[i].dep_time_h, str[i].dep_time_m);}

printf("%s\n", SEP);}

int menuMsg()

{ int ret;

 printf("%s\nMENU:\n[1] Print all\n[2] NEW base\n[3] Show all after entered dep. time\n[4] Sort by alphabet\n[5] INFO\n[0] EXIT\n%s \n > ", SEP,SEP);}

int main(void)

{ clrscr();

 train_t str[SIZE] =

{  {"Moscow", "55342", 12, 0},    {"S.-Petersburg", "33245",18, 5},    {"Novgorod", "78425", 17, 0},    {"Novgorod", "95662", 22, 0},    {"S.-Petersburg", "45978", 23, 20},    {"Novgorod", "45512", 14, 50},    {"S.-Petersburg", "94875", 17, 20},  {"London", "23145", 9, 7}, };

int menu, found, low_h, low_m;

char buf[BUFFER], *p;

  while ( 1 ) {  menu = menuMsg();

   switch ( menu )

 { case 1 :    print_str(str, SIZE);    break;

   case 2 :    input_str(str, SIZE);    print_str(str, SIZE);    break;

   case 3 :    printf("Show all from time\n");    printf("HOUR   :");    scanf("%d", &low_h);    printf("MINUTES:");    scanf("%d", &low_m);   sortBytime(low_h, low_m, str, SIZE);    break;

   case 4 :    qsort(str, SIZE, sizeof(train_t), sortBydest_city);    print_str(str, SIZE);    break;

   case 5 :    print_info();    break;

   case 0 :    exit(0);

   default :    clrscr();

   printf("%s\n ERROR!\n Menu index is not correct\n",SEP);} }}

Вывод результатов

Функция print_str() Функция вывода структуры на экран. (Рисунок 5)

 Рисунок 5

input_str() Функция ввода структуры (Рисунок 6)

Рисунок 6

sortBytime() Функция сортировки по времени(Рисунок 7)

Рисунок 7

sortBydest_city() Функция сортировки по алфавиту (Рисунок 8)

 Рисунок 8

Список используемой литературы:

1) Шишкин, А. Д. Программирование на языке СИ : Учебное пособие – Санкт-Петербург.: РГГМУ, 2003.

2) Введение в язык С++ Бьярн Страустрап, 1995 г.

3) Шишкин, А. Д. Программирование на языке СИ : Практикум  – Санкт-Петербург.: РГГМУ, 2003.


menuMsg( )

print_str( )

sortBytime( )

Конец

input_str( )

Начало

witch()

sortBydest_city()

print_info( )

exit( )

Функция передачи

управления

1

2

4

5

6

7

8

9

10

3

Начало

i=0; i<size

Вывод

str[i].dest_citystr[i].tr_num str[i].dep_time

Конец

Конец цикла

1

2

4

5

3

город назначения

номер поезда

время отправления

Начало

i=0; i<size

Конец

Конец цикла

Ввод

str[i].dest_city

str[i].tr_num str[i].dep_time

1

4

3

5

2

город     назначения

номер поезда

время отправления

 

 

1

Начало

Конец

delta=stricmp()

delta=?

qsort( )

0

-1

1

3

2

5

4

cравнение двух строк и присвоение результата переменной delta

 

 

Стандартное действие «быстрая сортировка»

 

 

Начало

i=0; i<size

Конец

Конец цикла

j++, sc=j

SC>=7?

Да

Нет

Сообщение об ошибке

Вывод элементов

i=0; i<size

Конец цикла

1

5

12

8

10

7

11

9

h>h1?

3

Да

Нет

введенное время > заданного в структуре?

 

 

6

sc=0, j=0

2

4


 

А также другие работы, которые могут Вас заинтересовать

27216. Покажите использование игровых технологий на уроке истории 25 KB
  Покажите использование игровых технологий на уроке истории ИГРА вид деятельности детей заключающийся в воспроизведении действий взрослых и отношений между ними и направленный на ориентировку и познание предметной и социальной действительности. ПОЧЕМУ ВАЖНА ВИДЫ Виды деловых игр: В зависимости от типа человеческой деятельности: Учебный Исследовательский Аттестационный Управленческий Ежова Без ограниченный Ограниченный В реальном времени Время смято По оценке деятельности Бальная Как работал По конечному результату Жесткие игры...
27217. Продумайте приемы проверки и оценки знаний и умений учащихся 24 KB
  Но в настоящее время появилась новая система отслеживания всего комплекса образованности учащегося. Это система педагогического мониторинга.
27218. Покажите приемы реализации внутри и межпредметных связей 25.5 KB
  покажите приемы реализации внутри и межпредметных связей ВНУТРИПРЕДМЕТНЫЕ СВЯЗИ – зависимость между конкретными частями отдельной науки МЕЖПРЕДМЕТНЫЕ СВЯЗИ это объективно существующие связи между информацией из разных областей науки и практики входящей в содержание обучения. Отражение в сознании учащихся этих связей делает знание более прочным структурируемым гибким. В методической литературе перечислены основные приемы реализации межпредметных связей : напоминание учителем ранее изученных фактов понятий и идей постановка вопросов и...
27222. Предложите приемы по формированию у учащихся умений работы с фактами на уроке истории 23.5 KB
  ФАКТСОБЫТИЕ ФАКТЯВЛЕНИЕ ФАКТПРОЦЕСС Пути методы и приемы создания исторических представлений: 1.Отобрать несколько опорных исторических представлений ярко отражающих явление или событие.При создании исторических представлений учитывать возрастные особенности учащихся.Задача формирования исторических представлений.
27223. Предложите приемы частично-поискового метода обучения на конкретном историческом уроке истории 27.5 KB
  Предложите приемы частичнопоискового метода обучения на конкретном историческом уроке истории ЧАСТИЧНЫЙ ПОИСК – учитель ставит проблему и ребята вместе с ним ее решают. Но в одном из классов она встретила затруднения и учитель организовал решение задачи в ходе эвристической беседы запись которой мы приведем несколько сокращенно. Учитель. Какой вопрос возник бы у вас с самого начала если бы вы были археологами Ученик К К одному и тому же времени относятся поселения или не к одному Учитель.