48696

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

Курсовая

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

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

Русский

2013-12-13

746.5 KB

85 чел.

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


 

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

83408. Нетрадиционные операции банков 44.92 KB
  Целью данной работы является подробное изучение таких нетрадиционных операций коммерческого банка как лизинг факторинг и трастовые операции. В настоящее время некоторые кредитные операции проводимые российскими коммерческими банками можно отнести к косвенному нетрадиционному кредитованию...
83409. Понятие государственной налоговой службы, ее задачи и компетенция 76.5 KB
  Производить в органах в органах государственной власти и органах местного самоуправления, организациях, у граждан Российской Федерации, иностранных граждан и лиц без гражданства (далее – органы, организации и граждане) проверки документов, связанных с исчислением и уплатой обязательных платежей...
83410. Методы определения относительного возраста четвертичных отложений 763.84 KB
  Эта группа методов основана на характерной для четвертичного периода климатической ритмичности с чередованием теплых и холодных эпох. Это отражается в литологии отложений, составе заключенных в них остатков фауны и флоры, а также других особенностях.
83411. Карельские пословицы поговорки загадки. Портрет жанра. Воспитательские возможности 107 KB
  Пословицы и поговорки являются отражением мудрости многих поколений, не утратившие веками своей актуальности. Многие годы эти изречения являлись сводом законов нравственности и норм поведения, оказывали непосредственное влияние на формирование духовности нации.
83412. Актуальность государственного и муниципального управления в современных условиях 48.13 KB
  Государственное управление страной осуществляется с помощью организации государственных органов, аппарата государственных учреждений (военные, судебные, полицейские, административные). Каждое учреждение обеспечивает выполнение основных и неосновных функций государства (поддержание порядка, защита...
83413. Классификация видов опасности, основные методы обеспечения безопасности 121.5 KB
  Влияние на организм человека вибрации и шума. Колебательные движения свыше 16000 гц относятся к ультразвуку и органами чувств человека не воспринимаются. Интенсивный шум отрицательно действует на весь организм человека.
83414. ПЕРСПЕКТИВЫ РАЗВИТИЯ РЫНКА ЦЕННЫХ БУМАГ В РОССИЙСКОЙ ФЕДЕРАЦИИ 359.27 KB
  Первичный рынок ценных бумаг — это место, где происходит первичная эмиссия и первичное размещение ценных бумаг. Целью первичного рынка является организация первичного выпуска ценных бумаг и его размещение. К задачам первичного рынка ценных бумаг относятся: привлечение временно свободных ресурсов...
83415. Пушкин в Украине. Сценарий внеклассного мероприятия 76.5 KB
  Пушкин в свое время внес большой вклад в духовную сокровищницу Украины и ее народа. Многие стихотворения написанные Пушкиным связаны с Украиной ее людьми прекрасной природой. Пушкин был великим жизнелюбом гуманистом умел находить общий язык с дворянином и простолюдином с человеком любой национальности.
83416. НЕСТАНДАРТНИЙ УРОК З ОБРАЗОТВОРЧОГО МИСТЕЦТВА І МУЗИКИ 56.5 KB
  Розвивати і поглиблювати знання учнів про одне з найдавніших, найбільших, найурочистіших релігійних свят – Великдень. Ознайомити дітей із символом воскресіння Ісуса Христа – писанкою. Розвивати творчість дітей, уяву, пам’ять, мислення, вокально-хорові та музично-ритмічні здібності, вміння підбирати кольори...