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, содержащую следующие поля:
Написать программу, выполняющую следующие действия:
Содержание проекта:
Дата выдачи «____» сентября 2012 г.
Дата сдачи «____» декабря 2012г.
Задание выдал доц. Шишкин А.Д.
Задание получил студент Минкин П.А.
Санкт-Петербург
2012
Рисунок 1.
Рисунок 2
Рисунок 3
Рисунок 4
Рисунок 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 | |
Розвивати і поглиблювати знання учнів про одне з найдавніших, найбільших, найурочистіших релігійних свят – Великдень. Ознайомити дітей із символом воскресіння Ісуса Христа – писанкою. Розвивати творчість дітей, уяву, пам’ять, мислення, вокально-хорові та музично-ритмічні здібності, вміння підбирати кольори... | |||