Добавил:
rushevamar@mail.ru Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

мой курсач / записка / ПЗ_Рушева_972304 (1)

.pdf
Скачиваний:
11
Добавлен:
28.03.2021
Размер:
1.49 Mб
Скачать

Министерство образования Республики Беларусь БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ

Кафедра экономической информатики

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА к курсовой работе

по предметной области

«Учет клиентов туристической компании»

Студент Рушева М. В.

Руководитель Полоско Е. И.

Минск 2020

БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ

(название ВУЗа)

Факультет: инженерно-экономический «УТВЕРЖДАЮ»

Заведующий кафедрой

ЭИ

 

(подпись)

«____» ____февраля________ 2020г.

ЗАДАНИЕ

по курсовой работе

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

Студенту Рушевой Маргарите Владиславовне гр. 972304

1.Тема проекта «Учет клиентов туристической компании»

2.Срок сдачи студентом законченного проекта________13.05.2020_________________

3.Исходные данные к проекту

Общее задание: Создать консольное приложение на языке C, взаимодействующее с бинарным/текстовым файлом.

Обязательные требования:

1.Предусмотреть создание меню 1-го уровня со следующими пунктами: a. Вход под администратором

b. Вход под пользователем c. Выход

2.Учетные записи администратора и обычного пользователя должна содержать логин и пароль. Сведения об учетных записях должны храниться в отдельном файле, желательно предусмотреть механизм шифрования/дешифрования логинов/паролей.

3.Меню 2-го уровня должно содержать:

-Для администратора:

a)Создание/открытие файла с данными

b)Добавление записи

c)Редактирование записи

d)Удаление записи

e)Просмотр всех данных в табличной форме

f)Различные процедуры поиска и фильтрации данных

g)Управление пользователями

h)Выход в меню 1-го уровня

-Для обычного пользователя:

a)Открытие файла с данными

b)Просмотр всех данных в табличной форме

c)Выполнение задачи

d)Различные процедуры поиска и фильтрации данных

e)Выход в меню 1-го уровня

4. Данные должны быть организованы в структуре (struct), не менее 5-ти полей, обязательно предусмотреть использование вложенных структур. Для студентов, претендующих на оценку «7» и выше, структур должно быть не менее двух (без учета структуры USER для авторизации пользователей). В случае если данные организованы в 2 или более структур, полей в них должно быть не менее 3-х. Обязательно наличие поля ДАТА и/или ВРЕМЯ.

Требования к поставке

Для зачета необходимо иметь рабочую программу на внешнем носителе.

Дополнительные требования:

1.Предусмотреть обработку исключительных ситуаций.

2.Предусмотреть использование различных встроенных функций для работы со строками.

3.Построение программного кода должно соответствовать правилам, определенным в документе «Code Conventions for the JavaTM Programming Language».

4.Все данные, хранимые в файлах должны быть осмыслены: недопустимо на защите представлять проект, где, напрмер, в поле ФАМИЛИЯ содержится информация из набора символов типа «ййййй» или «ыыыыы». Такие проекты не допускаются к защите.

Перечень используемых стандартов: UML 2.0 и выше, ГОСТЫ 19001–19701

(оформление блок-схем, требования к руководству пользователя), стандарты оформления курсовых и дипломных работ СТП БГУИР 2013.

4. Содержание пояснительной записки (перечисление вопросов, которые подлежат разработке)

1.Титульный лист.

2.Задание по курсовой работе.

3.Содержание.

4.Введение.

5.Краткие теоретические сведения об используемых алгоритмах (до 3-х страниц).

6.Описание организации структур хранимых данных (2 страницы).

7.Создание пользовательских функций приложения (5-7 страниц).

8.Функциональную схему задачи, схемы алгоритмов работы 3-х функций (по указанию руководителя рисуются на защите) (минимум 3 листа с описанием и кодом).

9.Описание программы (7-12 листов) – описываются логически законченные части программы, описывается принцип функционирования программы, т.е. какие действия должен осуществлять пользователь при работе с программой.

10.Заключение.

11.Список использованных источников.

12.Приложения (обязательно листинг кода с комментариями).

5. Перечень графического материала (с указанием обязательных чертежей и графиков)

Блок-схемы алгоритмов, реализующих бизнес-логику. Листинг основных элементов программы.

6.Консультант по проекту _____________________________

7.Дата выдачи задания___________________________________________________

8.Календарный график работы над проектом на весь период проектирования (с указанием сроков выполнения и трудоемкости отдельных этапов

1.Проработка предметной области. Подготовка 1-6 разделов пояснительной записки

(11.03.2020)

2.Разработка программного каркаса, реализующего архитектуру системы. Подготовка 7 раздела пояснительной записки (18.04.2020)

3.Завершенная программная реализация системы. Подготовка 8-12 разделов пояснительной записки (05.05.2020)

РУКОВОДИТЕЛЬ___________________________________________

(ФИО, подись)

Задание принял к исполнению___«19 » февраля 2020г._____________________________

(дата и подпись студента)

 

СОДЕРЖАНИЕ

 

Введение .....................................................................................................

5

1.

Краткие теоретические сведения об используемых алгоритмах ....

7

2.

Описание организации структур хранимых данных........................

9

3.

Пользовательские функции приложения........................................

13

4.

Схемы алгоритмов работы приложения .........................................

21

5.

Описание программы.......................................................................

31

Выводы .....................................................................................................

43

Список использованных источников ......................................................

44

Приложение А Код программы ...............................................................

45

ВВЕДЕНИЕ

Туризм играет важную роль в жизни каждого человека, который хочет узнать что-то новое и просто любит хорошо и интересно проводить время. В настоящее время туризм – набирающая силу индустрия. Путешествия помогают открыть в себе то, что было скрыто за серостью обыденной жизни, расширить свое сознание, реализовать свои мечты. Путешествие должно стать неотъемлемой частью жизни каждого человека. В каждой поездке вы можете завести новые знакомства, новых друзей, партнеров по бизнесу. Благодаря путешествиям Вы растете, выходите на новый уровень своего личного развития. Это отличный способ отвлечься и великолепно провести время с семьей или друзьями. Главная польза путешествий в том, что человек, покидая свою привычную среду обитания, теряет те факторы и их силу, которые ежедневно влияют на него. Во время отпуска он начинает жизнь с чистого листа:

-просыпается и ложится в другое время -питается по-другому

-регулярно наполняется новой информацией из экскурсий, общения. Связи с тем, что с каждым годом число туристов увеличивается,

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

Реализация данного программного продукта значительно облегчит работу с информацией, так как появится своеобразная база данных, содержащая всю необходимую информацию о туристах (ФИО, дата рождения, возраст, номер телефона, номер паспорта, дата вылета, рейс, название тура и его цену, а также другую важную информацию). Важным аспектом является возможность быстро найти данные по параметру.

Цель курсовой работы: сократить количество ошибок при обработке информации.

Для достижения цели требуется реализовать следующие задачи:

исследовать предметную область;

организовать структуры необходимых данных;

создать пользовательские функции приложения;

разработать схемы алгоритмов работы приложения;

разработать приложения для получения информации о ФИО, дата рождения, возраст, номер телефона, номер паспорта, дата отлета, дата прилета, рейс, авиакомпания.

описать программу;

5

Объектом исследования является процесс работы с личной информацией туристов.

6

1 КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ ОБ ИСПОЛЬЗУЕМЫХ АЛГОРИТМАХ

ОПЕРАТОР – это наименьшая автономная часть языка программирования.

Используемые операторы:

If-else , switch – оператор ветвления (switch предназначен для организации выбора из разных вариантов, а If-else используются для выбора одного из двух направлений дальнейшего хода программы в зависимости от истинности/ложности условия).

break – оператор перехода, предназначенный для прерывания цикла. while – операторы выполнения тела цикла, пока условие истинно.

for – оператор, выполняющий тело цикла, пока пере менная не достигнет конечного значения.

return – обеспечивает выход из функции. Управление передаётся оператору, следующему за вызовом функции.

break – данный оператор применяется для выхода из операторов циклов (for, while, do) или оператора выбора switch. При использовании этого оператора метки не нужны, как как управление передаётся на оператор, следующий за оператором цикла или выбора.

ФУНКЦИЯ – это синтаксически выделенный именованный программный модуль, выполняющий определенное действие или группу действий. Каждая функция имеет свой интерфейс и реализацию. Интерфейс функции – заголовок функции, в котором указывается название функции, список ее параметров и тип возвращаемого значения.

Используемые библиотечные функции:

printf_s()

scanf()

puts()

fputs()

perror()

free()

strcpy_s

system(“cls”)

system(“pause”)

fflush(stdin)

fopen(), fclose()

fopen_s

7

fopenf_s

fprintf()

fscanf()

fwrite()

gets()

gets_s()

fseek()

fread()

feof()

Используемые АЛГОРИТМЫ:

Алгоритм - набор инструкций, описывающих порядок действий исполнителя для достижения результата решения задачи за конечное число действий.

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

Сортировка пузырьком – простейший алгоритм сортировки. К его плюсам относится простота реализации алгоритма. Алгоритм сортировки пузырьком сводится к повторению проходов по элементам сортируемого массива. Проход по элементам массива выполняет внутренний цикл. За каждый проход сравниваются два соседних элемента, и если порядок неверный элементы меняются местами. Внешний цикл будет работать до тех пор, пока массив не будет отсортирован. Таким образом внешний цикл контролирует количество срабатываний внутреннего цикла Когда при очередном проходе по элементам массива не будет совершено ни одной перестановки, то массив будет считаться отсортированным.

Добавление нового туриста осуществляется с помощью функций gets() и scanf() , описанных ранее.

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

8

2 ОПИСАНИЕ ОРГАНИЗАЦИИ СТРУКТУР ХРАНИМЫХ ДАННЫХ

Структура – это объединение одного или нескольких объектов (переменных, массивов, указателей, других структур и т.д.), наборы данных которых могут быть как одного, так и разного типов.

В общем случае при работе со структурами следует выделить четыре

шага:

1.объявление и определение типа структуры,

2.объявление структурной переменной,

3.инициализация структурной переменной,

4.использование структурной переменной.

Структура, являющаяся компонентом другой структуры, называется вложенной.

В курсовой работе использованы вложенные структуры. Полем структурной переменной может быть переменная любого типа, в том числе другая структурная переменная. Поле, представляющее собой структуру, называется вложенной структурой.

Рассмотрим каждую из них.

Ниже представлена информация о структурах хранимых данных.

//структура для админа и пользователя

enum ROLE { GUEST, ADMIN, EXIT, CONTINUE }; //перечисление для обозначения роли пользователя

//перечисление для сравнения даты

enum COMPARE { EQUAL, LESS, GREATER };

//структура для админа и пользователя

typedef struct {

 

 

char password[33];

//для пароля

char login[33];

//для логина

enum ROLE role;

//для идентификации пользователя

} User;

 

 

//структура для даты

 

 

typedef struct {

 

 

size_t day;

//день

 

size_t month;

//месяц

size_t year;

//год

 

} Date;

 

 

//структура для ФИО

9

typedef struct {

 

 

 

char name[31];

//имя

char surname[31];

//фамилия

char patronimic[31];

//отчество

} Fio;

 

 

 

//структура для клиента

 

typedef struct {

 

 

 

Fio fio;

//фио

 

size_t age;

//возраст

char tel[21];

//телефон

char passport[20];

//номер+серия паспорта

Date departure;

//дата отлёта

size_t flight_number;

//номер рейса

Date order;

 

//дата заказа

} Client;

 

 

 

//структура для сотрудника

 

typedef struct {

 

 

 

Fio fios;

//фио сотрудника

size_t age;

//возраст

char tel[21];

//телефон

Date startwork;

//дата начала работы в турфирме

size_t premia;

//размер премии

char dolzhnost[31];

//должность

} Sotr;

 

 

 

//структура для рекламы

 

typedef struct {

 

 

 

char tour[31];

//название рекламируемого тура

char opisanie[31];

//описание тура

size_t tsena;

//цена тура

} Reclama;

 

 

 

//структура для отзывов

 

typedef struct {

 

 

 

Date mes;

 

//дата написания отзыва

char nikname[31];

//nikname написавшего отзыв

char otzyf[31];

//отзыв

size_t zvezdy;

//оценка работы тур фирмы по мнению клиента

} Otzyf;

 

 

 

Структура User нужна для того чтобы хранить в ней данные о логине и пароле:

10