48696

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

Курсовая

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

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

Русский

2013-12-13

746.5 KB

73 чел.

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


 

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

31746. Реформирование бухгалтерского учета в России 34 KB
  Реформирование бухгалтерского учета в России. Переход России к рыночной экономике в начале девяностых годов вызвал необходимость реформирования бухгалтерского учета в стране. Система отечественного бухгалтерского учета должна трансформироваться отражая реформу экономики России и связанные с ней изменения принципов и объектов учета. Необходимость реформы бухгалтерского учета в России была очевидна однако конкретные направления ее вызывали дискуссии ученых и специалистов.
31747. Сегментарна структура ринку фінансових послуг 133.5 KB
  Сегментарна структура ринку фінансових послуг 1. Методологічні підходи до вирішення проблеми структуризації ринку фінансових послуг 2. Методи структуризації ринку фінансових послуг 3. Поняття сегментації ринку фінансових послуг 4.
31748. ФІНАНСОВІ ПОСЛУГИ НА ГРОШОВОМУ РИНКУ 97.5 KB
  Організація та особливості функціонування депозитного ринку Залучення коштів вкладників та інших кредиторів – це основний вид пасивних операцій банків. Максимальний розмір залучених коштів залежить від власного капіталу банків. Поточні пасиви формуються залишками коштів на розрахункових поточних і кореспондентських рахунках. Операції пов'язані із залученням грошових коштів на вклади називаються депозитними.
31749. ФІНАНСОВІ ПОСЛУГИ НА ВАЛЮТНОМУ РИНКУ 137.5 KB
  Конверсійні операції це угоди агентів валютного ринку щодо обміну обумовлених сум грошової одиниці однієї країни на валюту іншої країни за узгодженим курсом на певну дату. Споткурс курс спот ціна валюти однієї країни виражена у валюті іншої країни. spot готівкова є угодою купівліпродажу валюти за курсом зафіксованим в угоді відповідно до якої обмін валют між банкамиконтрагентами проводиться як правило протягом 2х робочих днів не враховуючи дня укладення угоди. Валютний курс і котировки Поточним конверсійним операціям...
31750. ФІНАНСОВІ ПОСЛУГИ НА РИНКУ ПОЗИК 113.5 KB
  Пряма чи опосередкована участь банку у капіталі будьякого підприємства установи не повинна перевищувати 15 відсотків капіталу банку. Сукупні інвестиції банку не повинні перевищувати 60 відсотків розміру капіталу банку. Це обмеження не застосовується у разі якщо: 1 акції та інші цінні папери придбані банком у зв'язку з реалізацією права заставодержателя і банк не утримує їх більше одного року; 2 банком з метою створення фінансової холдингової групи придбані акції емітентом яких є інший банк; 3 цінні папери знаходяться у власності...
31751. ФІНАНСОВІ ПОСЛУГИ НА ФОНДОВОМУ РИНКУ 66 KB
  Саморегулівна організація професійних учасників фондового ринку неприбуткове об’єднання учасників фондового ринку що провадять професійну діяльність на фондовому ринку з торгівлі цінними паперами управління активами інституційних інвесторів депозитарну діяльність діяльність реєстраторів та зберігачів утворене відповідно до критеріїв та вимог установлених Державною комісією з цінних паперів та фондового ринку. Професійна діяльність на фондовому ринку діяльність юридичних осіб з надання фінансових та інших послуг у сфері розміщення та...
31752. ФІНАНСОВІ ПОСЛУГИ З перейняття РИЗИКУ 119.5 KB
  ФІНАНСОВІ ПОСЛУГИ З перейняття РИЗИКУ 1. Ймовірніснопсихологічні аспекти проблеми ризику в економіці 2. Місце валютних ризиків в системі комерційних ризиків. Підходи до вибору стратегії захисту від валютних ризиків 3.
31753. ІНФРАСТРУКТУРА РИНКУ ФІНАНСОВИХ ПОСЛУГ 108.5 KB
  ІНФРАСТРУКТУРА РИНКУ ФІНАНСОВИХ ПОСЛУГ 1. Поняття та елементи ринкової інфраструктури ринку фінансових послуг 2. Розміщення інфраструктури фінансового ринку: аналітичний аспект 3. Сегментний аналіз розвитку ринку фінансових послуг 4.
31754. ДЕРЖАВНЕ РЕГУЛЮВАННЯ ОСНОВНИХ СЕГМЕНТІВ 107 KB
  ДЕРЖАВНЕ РЕГУЛЮВАННЯ ОСНОВНИХ СЕГМЕНТІВ РИНКУ ФІНАНСОВИХ ПОСЛУГ 1. Необхідність державного регулювання ринку фінансових послуг на етапі становлення його функціональної системи 2. Національний банк як орган державного регулювання ринку фінансових послуг 3. Методи регулювання банківської діяльності 4.