Помощь студентам дистанционного обучения: тесты, экзамены, сессия
Помощь с обучением
Оставляй заявку - сессия под ключ, тесты, практика, ВКР
Заявка на расчет

Разработка информационно-справочной системы театра

Автор статьи
Валерия
Валерия
Наши авторы
Эксперт по сдаче вступительных испытаний в ВУЗах
ВВЕДЕНИЕ …………………………………………………………………………..3 1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ ……………………………………………5 1.1 Постановка задачи 5 1.2 Анализ требований к системе 6 2. ОПИСАНИЕ ПРОГРАММЫ…………………………………………………… ..8 2.1 Описание системы классов………………………………………………… .8 2.2 Описание интерфейсных классов ……………………………………………12 2.3 Описание пользовательского интерфейса 13 2.4 Описание алгоритмов программы 15 3.5 Описание программного кода 16 2.5 Тестирование приложения 21 ЗАКЛЮЧЕНИЕ……………………………………………………………………. .28 СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ……………………………… 30 ПРИЛОЖЕНИЕ …………………………………………………………………….33

ВВЕДЕНИЕ

Создание программ для применения в различных областях человеческой деятельности – автоматизации повседневных и промышленных задач, обучения, развлечения т.д. – по-прежнему остается актуальной проблемой. Появление новых технологий программирования и средств разработки программ позволяет упростить этот процесс. Почти каждый современный язык программирования имеет большой набор стандартных методов и встроенных средств, предназначенных для быстрой и эффективной разработки. Одним из таких языков, поддерживающих несколько парадигм (технологий) программирования, является язык общего назначения C++. Он может использоваться как для начальных шагов в программировании, так и для решения серьезных научных задач. В большинстве высших учебных заведениях по всему миру C++ постепенно становится первым языком при изучении программирования. Это один из самых популярных языков в промышленном программировании, который отлично подходит не только для решения школьных задач из курса информатики, но и для выполнения проектов по самым разным тематикам: обработка данных и визуализация, машинное обучение, веб-разработка, написание скриптов для автоматизации различных процессов и т.п. Также язык характеризуется наличием большого количества обучающих материалов. Все это позволяет его использовать в качестве основного средства при обучении программированию. Часто используемым методом для этого является создание элементарных прикладных программ. Поскольку программное обеспечение становится все более сложным, особую важность приобретают хорошо структурированные программы, при разработке которых может быть использован восходящий подход: в первую очередь для заданной предметной области выделяются и реализуются наиболее простые функции. Такие программы легко писать и отлаживать, поскольку они, как правило, предоставляют набор модулей, которые могут быть повторно использованы с целью сокращения будущих временных или финансовых затрат. Подход к проектированию таких программ называют архитектурным, для него характерны глобальные ограничения, накладываемые на проектирование прикладного программного обеспечения: выбор стандартов разработки, парадигмы программирования, архитектурных стилей. Объектно-ориентированное программирование, представляющее программу как набор объектов и их взаимодействий, способно внести особый вклад в модульность и быстродействие программ. Таким образом, проектирование прикладных программ на объектно-ориентированных языках программирования является актуальной задачей. Целью курсовой работы является получение навыков самостоятельной разработки программного продукта на языке программирования С++. В ходе курсового проекта необходимо разработать информационно-справочную систему, которая представляет собой приложение, позволяющее протестировать взаимодействие объектов классов, спроектированных и реализованных для решения конкретной задачи при заданных критериях. Предпочтение должно быть отдано графическому приложению. При этом подлежат разработке следующие задачи: a) анализ задания; b) разработка классов; c) разработка тестового приложения; d) оформление пояснительной записки по результатам выполнения проекта. Тематика курсового проекта – разработка системы классов для обеспечения работы театра (в системе должны поддерживаться режимы учета спектаклей, актеров, играющих в спектаклях, концертов, распределения мест и стоимости билетов, анализа популярности спектаклей по различным критериям).

1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ

1.1 Постановка задачи

В рамках данной работы в качестве предметной области выбрана информация о спектаклях и участвующих в них актерах, а также о концертах некоего театра. Программное обеспечение позволяет моделировать работу театра, используя введенные пользователем данные, а также подключив простейшую файловую базу данных (вся необходимая информация расположена в одном или нескольких текстовых файлах); основным предназначением программы является учет спектаклей и концертов, а также актеров, задействованных в театре и играющих в тех или иных спектаклях. Программа также позволяет анализировать популярность спектаклей по различным критериям, используя механизм моделирования работы театральной кассы (продавая, таким образом, билеты на тот или иной спектакль или концерт покупателю). С наступлением XXI века подобный учет обеспечивают прикладные компьютерные программы, позволяющие накапливать пользовательскую информацию, выполнять поиск (и в некоторых случаях сортировку) необходимых данных. Использование аналогичного разрабатываемому программного обеспечения позволяет предпринимать необходимые действия, связанные с управлением данными о спектаклях, концертах и актерах. Согласно поставленной задаче, разрабатываемая программа должна выполнять следующие основные функции: 1. Автоматически при запуске загружать текстовые файлы, содержащие информацию о спектаклях или концертах (в общем – о представлении: т.ч. названии, дате, когда оно состоится; играется ли основным составом или дублерским. 2. Обеспечить вывод билета для клиента при покупке билета на тот или иной сеанс. 3. Реализовать модель работы театральной кассы (возможность покупки нескольких билетов на разные спектакли и концерты). 4. Определить наиболее популярный спектакль. 5. Определить выручку кассы. Определить количество проданных билетов по каждому спектаклю.

1.2 Анализ требований к системе

1. Система должна позволять пользователю работать в двух режимах: администратора театра (с возможностью учета актеров театра, спектаклей и концертов театра, а также актеров по каждому спектаклю; редактирования данных, в том числе добавления и удаления актеров и представлений, а также поиском самых популярных спектаклей по двум различным критериями – общему числу проданных билетов и общей стоимости проданных билетов) и покупателя (с возможностью покупки одного или нескольких билетов на тот или иной спектакль из репертуара театра по выбранным параметрам: ряд, место, зрительная зона – партер или балкон). 2. При запуске программы система должна автоматически загружать базу актеров и представлений (спектаклей и концертов) из соответствующих текстовых файлов, которые необходимо располагать в одной директории с исходным кодом программы. 3. При входе в режиме администратора система должна запрашивать пароль и проверять введенный пароль с эталонным. В случае несовпадения паролей или при пустом вводе необходимо сообщать об ошибке, после чего предоставлять возможность выполнить повторный ввод. В случае успешного ввода пароля необходимо предоставлять возможность отображения всех актеров театра, всех представлений (концертов и спектаклей) театра, актеров по тому или иному спектаклю, добавления и удаления актеров из списка всех актеров театра, вывода самого популярного спектакля по числу проданных билетов и сумме проданных билетов. При входе в режиме покупателя система должна предоставлять возможность выбрать тот или иной спектакль или концерт, зрительную зону (партер или балкон), ряд и место, отобразить цену билета согласно выбранным параметрам. Покупатель может приобрести билет (в этом случае в системе должен вестись учет проданных ранее билетов с хранением всех параметров билета). При попытке приобрести ранее проданный билет покупатель должен получать соответствующее сообщение. Диаграмма прецедентов приведена на рисунке 1. Рисунок 1 – Диаграмма вариантов использования

2. ОПИСАНИЕ ПРОГРАММЫ

2.1 Описание системы классов

Для реализации приложения были использованы 12 классов: три интерфейсных класса и девять управляющих. Управляющие классы позволяют полностью описать выбранную предметную область; три интерфейсных класса соответствуют стартовому окну и двум используемым в системе режимам (администратора театра и покупателя билетов). 1. Класс Date содержит информацию о дате (рождения актера или начала представления в театре) и состоит из трех полей:  day – день (целое число int от 1 до 31);  month – месяц (целое число int от 1 до 12);  year – год (целое число int от 1920 до 2025). Также класс содержит конструкторы по умолчанию, с параметрами и копирования; в нем определены следующие методы:  bool dateIsValid – логический метод для проверки даты на корректность;  String^ ToStr – метод вывода информации о дате в виде строки;  int CompareTo – метод сравнения даты с переданной в качестве параметра другой датой (в порядке возрастания дат, то есть в хронологическом порядке); 2. Класс Actor содержит информацию об актере (ФИО, название ВУЗа, год окончания ВУЗа и дата рождения актера) и состоит из четырех полей:  name – ФИО (строка String^);  university – название университета (строка String^);  year – год окончания университета (целое беззнаковое число unsigned int);  birthday – дата рождения студента (дата Date^). Также класс содержит конструктор с параметрами; в нем определены следующие методы:  String^ ToStr – метод вывода информации об актере в виде строки;  int CompareTo – виртуальный (может быть переопределен) метод сравнения актера с переданным в качестве параметра другим актером (в алфавитном порядке по ФИО актера и названию университета); 3. Класс ActorList содержит информацию о списке актеров Actor и состоит из единственного поля actors типа List<Actor^>^ (объект списка из стандартной коллекции). В классе определен конструктор по умолчанию и следующие методы:  bool Contains – проверяет, есть ли актер в списке;  Actor^ Get – возвращает актера по номеру в списке;  void Add – добавляет переданного актера в список актеров;  void Delete – удаляет актера по номеру в списке;  void Delete – удаляет переданного актера из списка;  int GetActorsCount – возвращает число актеров в списке;  String^ GetInfo – возвращает информацию об актерах в списке в виде строки;  void Sort – сортирует список актеров, используя метод CompareTo, определенный в классе актера, для упорядочивания. 4. Класс Ticket содержит информацию о билете на представление и состоит из трех полей:  row – ряд (беззнаковое целое число unsigned int);  seat – место (беззнаковое целое число unsigned int);  is_parterre – признак того, выбран партер или балкон (логическая переменная типа bool). В классе определены конструкторы по умолчанию и с параметром. Также класс содержит следующие методы:  String^ ToStr – выводит информацию о билете в виде строки;  bool IsFree – проверяет, свободен ли билет на выбранное место (с заданными параметрами билета);  double GetPrice – рассчитывает стоимость билета в зависимости от заданных параметров и возвращает в виде вещественного числа. 5. Класс TicketList содержит список билетов Ticket на представление (спектакль или концерт). Единственным полем является List<Ticket^>^ tickets. В классе определен конструктор по умолчанию и следующие методы:  Ticket^ Get – возвращает билет по номеру в списке;  void Add – добавляет билет в список;  void Delete – удаляет билет из списка по номеру;  int GetTicketsCount – возвращает число билетов в списке. 6. Класс Performance является базовым классом для описания представления – спектакля (Spectacle) и концерта (Concert), которые наследуются в виде производных классов. Здесь имеются четыре поля:  title – название спектакля или концерта (строка String^);  dt – дата проведения представления согласно афише театра (число, месяц, год – Date^);  is_main_cast – состав представления (логическая переменная bool, определяющая, выбран основной актерский состав или дублерский);  tickets – список купленных билетов на представление (объект TicketList^). Базовый класс представления содержит пару конструкторов – по умолчанию и с параметрами – и несколько методов:  bool Exists – возвращает результат проверки, существует ли билет на выбранное представление;  int CompareTo – виртуальный (может быть переопределен) метод сравнения представления с переданным в качестве параметра другим представлением (в алфавитном порядке и по числу проданных билетов);  String^ GetTitle – возвращает название представления в виде строки;  int GetTicketsCount – возвращает общее число проданных на представление билетов;  double GetTicketsSum – возвращает общую сумму проданных на представление билетов в виде вещественного числа;  String^ Sell – метод продажи билета на данное представление согласно заданным параметрам;  virtual String^ ToStr – переопределенный метод для вывода данных о представлении в виде строки;  virtual String^ ToShortStr – чистый виртуальный метод (не содержит реализации и переопределяется в производных классах) для вывода сжатой информации о представлении в виде строки. 7. Класс Time содержит описание времени начала спектакля. Полями класса являются два целых числа – hh (час) и mm (минута). В классе определены конструкторы по умолчанию, с параметрами и копирования, а также методы для проверки времени на корректность bool timeIsValid и вывода данных о времени в строку String^ ToStr. 8. Класс спектакля Spectacle является производным от класса представления Performance. Таким образом, он наследует все поля и методы, определенные в классе Performance. Кроме того, здесь вводятся два новых поля: список актеров ac типа ActorList^ и время начала спектакля tm типа Time^. В классе определены конструкторы по умолчанию и с параметром, а также несколько методов:  bool Contains – проверяет, есть ли актер в списке актеров данного спектакля;  Actor^ GetActor – возвращает актера по номеру в списке актеров данного спектакля;  void Add – добавляет переданного актера в список актеров данного спектакля;  void RemoveActor – удаляет переданного актера из списка актеров данного спектакля;  int GetActorsCount – возвращает число актеров в списке актеров данного спектакля;  String^ GetInfo – возвращает информацию об актерах в списке в виде строки. Также в классе переопределены (override) методы ToStr и ToShortStr базового класса. 9. Класс концерта Concert является производным от класса представления Performance и содержит единственное поле count – целое число int, определяющее количество номеров в концертной программе. В классе предусмотрены конструкторы по умолчанию и с параметрами, а также переопределены методы ToStr и ToShortStr базового класса. Реализация всех классов сущностей и их методов вынесена в отдельный файл (модуль) Classes.h.

2.2 Описание интерфейсных классов

Для организации пользовательского интерфейса в приложении предусмотрены три класса, каждый из которых расположен в отдельном файле (модуле) и представляет собой форму приложения:  MainForm.h – стартовый модуль (рисунок 2; точка входа описана в файле MainForm.cpp); Рисунок 2 – Вид стартовой формы приложения  AdminForm.h (рисунок 3; с точкой входа в AdminForm.cpp) – модуль администратора театра, позволяющий выполнять редактирование и учет данных, а также сортировку и вывод самого популярного спектакля по заданным критериям;  UserForm.h (рисунок 4; с точкой входа в UserForm.cpp) – модуль покупателя, позволяющий приобрести билет на выбранный спектакль. Рисунок 3 – Вид формы администратора театра

2.3 Описание пользовательского интерфейса

Как следует из рисунка 2, стартовая форма состоит из следующих визуальных компонентов:  ComboBox – выпадающий список для выбора режима (Администратор театра или Покупатель билета);  TextBox – текстовое поле для ввода пароля (в случае выбора режима Администратора);  Label – текстовая метка (на форме расположены две метки для соответствующих подписей к элементам формы);  Button – кнопка выбора режима (по клику левой кнопкой мыши выполняется переход к одной из других двух форм). Как следует из рисунка 3, форма Администратора состоит из следующих визуальных компонентов:  TextBox – текстовые поля для ввода ФИО актера, названия ВУЗа, названия представления; Рисунок 4 – Вид формы покупателя билета на спектакль или концерт (моделирование театральной кассы)  ComboBox – выпадающий список для выбора состава представления (основной или дублерский);  NumericUpDown – регуляторы типа «вверх-вниз» для выбора года окончания ВУЗа актером, числа номеров концерта;  DateTimePicker – компонент даты / времени;  ListBox – списки всех актеров театра, представлений в репертуаре театра (концертов и спектаклей), актеров для выбранного спектакля;  RadioButton – радиокнопки для выбора критерия поиска самого популярного спектакля (по числу или сумме проданных билетов);  Button – кнопки для добавления, сортировки и удаления актеров и представлений из списков, поиска самого популярного спектакля и возврата к стартовой форме;  Label – метки для подписей к соответствующим элементам формы. Как следует из рисунка 3, форма Покупателя состоит из следующих визуальных компонентов:  TextBox – текстовое поле для вывода информации о приобретенных билетах в кассе театра;  ComboBox – выпадающие списки для выбора названия представления (спектакля и концерта в репертуаре театра), зрительной зоны (балкон или партер);  NumericUpDown – регуляторы типа «вверх-вниз» для выбора ряда и места в зрительном зале;  TextBox – текстовые поля для вывода стоимости билета и информации обо всех проданных билетах;  Button – кнопки для приобретения билета и возврата к стартовой форме;  Label – текстовые метки для подписей к соответствующим элементам формы; одна из меток содержит изображение со схемой зрительного зала для удобства выбора параметров билета покупателем. Общая схема классов программы приведена на рисунке 5.

2.4 Описание алгоритмов программы

Блок-схема алгоритма для работы с формой покупки билетов приведена на рисунке 6. Блок-схема алгоритма для работы с формой учета представлений приведена на рисунке 7. Рисунок 5 – Общая схема классов программы Блок-схема алгоритма основной программы приведена на рисунке 8.

3.5 Описание программного кода

После запуска программы выполняется чтение данных из файлов «actors.txt» (листинг 1) и «theatre.txt» (листинг 2). Данные об актерах и театрах хранятся в текстовых файлах, поэтому для каждого из файлов все строки считываются в соответствующий ему строковый массив. Для каждой строки выделяются необходимые параметры (актера или представления). Затем создается новый объект класса (Actor / Performance), который добавляется в массив представлений / список актеров. Рисунок 6 – Алгоритм работы с формой покупки билетов Рисунок 7 – Алгоритм работы с формой учета представлений Рисунок 8 – Алгоритм работы с главным окном программы Если файл не существует, программа выдаст сообщение об этом и продолжит работу с пустыми коллекциями, позволив пользователю программы ввести данные вручную (с клавиатуры) в процессе работы программы. Листинг 1. Чтение данных об актерах с диска AdminForm::ac = gcnew ActorList(); if (File::Exists(«actors.txt»)) { array<String^>^ allLinesFromFile = File::ReadAllLines(«actors.txt»); for each (String ^ line in allLinesFromFile) { array<String^>^ fields = line->Split(‘;’); Actor^ a = gcnew Actor(fields[0], fields[1], gcnew Date(int::Parse(fields[2]), int::Parse(fields[3]), int::Parse(fields[4])), int::Parse(fields[5])); AdminForm::ac->Add(a); } } else MessageBox::Show(«Файл с данными актеров не найден на диске»); Листинг 2. Чтение данных о представлениях с диска AdminForm::rep = gcnew cliext::vector<Performance^>(); if (File::Exists(«theatre.txt»)) { array<String^>^ allLinesFromFile = File::ReadAllLines(«theatre.txt»); for each (String ^ line in allLinesFromFile) { array<String^>^ fields = line->Split(‘;’); if (int::Parse(fields[1]) == 0) { Spectacle^ spec = gcnew Spectacle(fields[0], Date(int::Parse(fields[2]), int::Parse(fields[3]), int::Parse(fields[4])), bool::Parse(fields[5]), Time(int::Parse(fields[6]), int::Parse(fields[7]))); array<String^>^ actors = fields[8]->Split(); for (int i = 0; i < actors->Length; i++) spec->Add(AdminForm::ac->Get(int::Parse(actors[i]))); AdminForm::rep->push_back(spec); } if (int::Parse(fields[1]) == 1) { Concert^ conc = gcnew Concert(fields[0], Date(int::Parse(fields[2]), int::Parse(fields[3]), int::Parse(fields[4])), bool::Parse(fields[5]), int::Parse(fields[6])); AdminForm::rep->push_back(conc); } } } else MessageBox::Show(«Файл с данными театров не найден на диске»); В листинге 3 приведен фрагмент кода программы, описывающий алгоритм входа в один из выбранных режимов. Для Администратора театра проверяется корректность введенного пароля, в то время как Покупатель может выполнить вход в соответствующую ему форму, моделирующую работу билетной кассы театра, без ввода пароля. Листинг 3. Обработка входа в выбранный режим // если выбран администратор, то if (comboBox1->SelectedIndex == 0) { // убедиться, что задан пароль if (String::IsNullOrEmpty(textBox1->Text)) { MessageBox::Show(«Пароль не может быть пустым!», «Ошибка!», MessageBoxButtons::OK, MessageBoxIcon::Error); return; } // убедиться, что пароль задан верно if (!textBox1->Text->Equals(«123456»)) { MessageBox::Show(«Пароль задан неверно!», «Ошибка!», MessageBoxButtons::OK, MessageBoxIcon::Error); return; } // открыть форму администратора AdminForm^ af = gcnew AdminForm(); af->Show(); } // иначе (выбран покупатель) else { // открыть форму покупателя UserForm^ uf = gcnew UserForm(); uf->Show(); } Полный исходный код программы с подробными комментариями приведен в приложении 1.

2.5 Тестирование приложения

Результатом тестирования приложения является набор тестов, на которых была проверена работа спроектированной программы, в виде входных текстов, предъявленных программе, и текстов ее ответных реакций. Существует несколько стратегий тестирования, в том числе «тестирование черного ящика» (приложение рассматривается как черный ящик). Целью здесь ставится выяснение обстоятельств, в которых поведение приложения не соответствует спецификации. Для обнаружения всех ошибок в приложении необходимо выполнить тестирование на всевозможных наборах данных. Для большинства приложений такое невозможно, поэтому применяют ручное тестирование, при котором тестирование программы ограничивается небольшим подмножеством всевозможных наборов данных. Объем этих данных должен быть достаточным для демонстрации всех функций разработанной программы с учетом проверок и обработки исключительных ситуаций. При этом необходимо выбирать наиболее подходящие подмножества, то есть подмножества с наивысшей вероятностью обнаружения ошибок (контрольный пример). Для проверки на тестовом примере необходимо выполнить запуск программы. Он осуществляется так же, как и запуск любой другой программы в среде Windows, то есть для ее запуска необходимо щелкнуть мышью по пиктограмме запускающего (исполняемого) файла «TheatreProject.exe» двойным щелчком мыши. Установка приложения не требуется. Результат проверки работоспособности приложения приводится на рисунках 9 – 19. При стартовом запуске форма имеет вид, приведенный на рисунке 2. Рисунок 9 – Вид стартового окна программы при попытке ввода пустого пароля администратора Рисунок 10 – Вид стартового окна программы при попытке ввода неверного пароля Рисунок 11 – Вид окна администратора после ввода верного пароля. Содержимое файлов считывается и отображается корректно, как следует из рисунка Рисунок 12 – Вид окна администратора после упорядочения актеров и представлений. Сортировка работает корректно Рисунок 13 – Вид окна администратора после выбора спектакля в списке. Список актеров для выбранного спектакля отображается в нижней части окна Рисунок 14 – Вид стартового окна при выборе режима покупателя Рисунок 15 – Вид окна покупателя после покупки нескольких билетов Рисунок 16 – Вид окна администратора после поиска самого популярного спектакля по числу проданных билетов Рисунок 17 – Информационное окно программы при попытке купить ранее проданный билет Рисунок 18 – Вид окна администратора после поиска самого популярного спектакля по общей стоимости проданных билетов Рисунок 19 – Вид окна администратора после удаления из списка актеров «Арапова Е.Д.». Выбранная актриса также удаляется из списка актеров для выбранного спектакля, как следует из рисунка

ЗАКЛЮЧЕНИЕ

Языки программирования высокого уровня (ЯВУ) изначально были созданы, чтобы облегчить написание программ и для того, чтобы приблизить описание программы к человеку и предоставить абстракцию, не привязанную к ЭВМ. Сейчас ЯВУ ушли далеко за пределы только описания программ. Например, существуют полуформальные графические языки для описания алгоритмов, дизайна программ, описания вариантов использования и многого другого (имеются ввиду различные блок-схемы и UML). Существует большое число языков программирования на сегодняшний день, причем все они обладают своими особенностями, поддерживают различные парадигмы, имеют свою область применения. Само понятие ЯВУ претерпело со временем множество изменений – для первых языков, таких как COBOL, числа, строки и файлы были существенным уровнем абстракции, теперь же большинство языков снабжены полиморфизмом и абстрактными типами данных. Стоит отметить, что в различных инженерных дисциплинах есть свои формальные языки, но в области программирования их выбор существенно больше и разнообразнее, и этот выбор не ограничен какими-либо стандартами, государственными или отраслевыми. Традиционно программисты писали программы, которые являлись структурированными. Программа разрабатывалась для решения одной большой задачи, но программисты разбивали ее на более мелкие и простые задачи и писали небольшие фрагменты кода для решения каждой из них. Объектно-ориентированное программирование стало естественным преемником этого традиционного способа. Программисты стали делить задачу на объекты, каждый из которых имеет свою собственную судьбу. Затем программист выяснял, какими свойствами должен обладать объект, и какие методы необходимы для его воплощения в жизнь. Как и большинство интересных новых разработок, объектно-ориентированное программирование опиралось на некоторые старые идеи, расширило их и объединило новыми способами. В рамках данного проекта была разработана иерархия классов, описывающая информационно-справочную систему для работы театра. Приобретены навыков практического программирования с использованием объектно-ориентированной парадигмы. Созданная абстракция предметной области полностью реализовывает требования, выставленные в заданиях курсового проекта. Для разработки программного обеспечения был выбран язык программирования C++ со средой разработки Microsoft Visual Studio 2019, обеспечивающей быструю многоуровневую разработку, переносимость на уровне исходного кода и обладающей хорошей документацией. Был спроектирован пользовательский интерфейс приложения с интуитивно-понятным для пользователя управлением, а также описаны его основные алгоритмы. Разработанная система, хоть и имеет некоторые недостатки, однако, они не являются критичными в рамках данной работы:  Отсутствие возможности сохранения измененных данных в файл;  Хранение данных в открытом виде, без использования криптоалгоритмов шифрования и / или паролей к файлам данных. Таким образом, все поставленные в работе цели были выполнены в полном объеме.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Вирт Н. Алгоритмы и структуры данных. Новая версия для Оберона + CD / Н. Вирт; пер. Д. Б. Подшивалов. — 2-е изд., испр. — М.: ДМК Пресс, 2012. — 272 с. 2. Давыдов В.Г. Visual С++. Разработка Windows-приложений с помощью MFS и API функций / В.Г. Давыдов – СПб.: БХВ – Петербург, 2008. – 576 с. 3. Демидович Е.М. Основы алгоритмизации и программирования. Язык СИ, учебное пособие / Е. М. Демидович. — 2-е изд., испр. и доп. — СПб.: БХВ — Петербург, 2008. — 440 с. 4. Зиятдинов Н.Н., Дмитриева Л.М., Сережкина А.Е., Дмитриев М.Е. Компьютерные технологии в науке и образовании / Вестник Казанского технологического университета. 2015. Т. 18. №2. С. 357-361. 5. Кнут Д. Искусство программирования // The art of computer programming: [в 3 т.]. Т.1. Основные алгоритмы / Д. Кнут; ред. Ю. В. Козаченко. — 3-е изд. — М.: Вильямс, 2014. — 720 с. 6. Колдаев В.Д. Основы алгоритмизации и программирования: Учебное пособие / В. Д. Колдаев под ред. проф. Л.Г. Гагариной — М.: ИД ФОРУМ, НИЦ ИНФРА-М, 2016. — 416 с. 7. Оберг Р.Д., Торстейнсон П. Архитектура .NET и программирование с помощью Visual C++ / Р.Д. Оберг, П. Торстейнсон пер.с англ. М.:Издательский дом «Вильям», 2002. — 656 с. 8. Страуструп Б. Язык программирования C++: специальное издание / Б. Страуструп; пер.: С. Анисимов, М. Кононов; ред.: Ф. Андреев, А. Ушаков. — [Б. м.]: Бином-Пресс, 2008. — 1098 с. 9. Шилдт Г. Полный справочник по С, 4-ое издание / Г. Шилдт пер. с англ. – М.: Издательский дом «Вильямс», 2015. – 704 с. 10. Широкова, О.А. Особенности обучения программированию на основе общности и различия принципов / Современные проблемы науки и образования. — 2015 — №1 11. Abott, R. Program Design by Informal English Descriptions, CACM, 1993, Vol. 26 No. 11, pp. 892 — 894. 12. Biddle, R. L., Tempero, E. D., Teaching C++ Experience at Victoria University of Wellington, 1994, In Proceedings of Software Education Conference, Dunedin, New Zealand, pp. 274 — 281. 13. Champeaux, D. D., Panel: Structured Analysis and Object-Oriented Analysis, ECOOP/OOPSLA ’90 Proceedings, pp. 135 — 139. 14. Deitel, P. J., Deitel, H. M., Java How To Program, USA, Pearson Inc., 7th Ed., 2007, pp. 421 — 423. 15. Hilgard, Ernest. Review of B.F. Skinner’s The Behaviour of Organisms, Journal of the Experimental Analysis of Behavior (1988), 50(2), pp. 283-286. 16. Hubbard, J. R., Programming with C++ Schaum’s Outlines, New York, 2005, McGraw-Hill Companies, Inc., pp. 273 – 299 17. Istatkova, G. Algebra of Algorithms in Procedural and Object-Oriented, structured Programming, Automatica & Informatics, 2001, Vol.3, No. 4, pp. 56 — 62. 18. Lockmiller D.A., Enoch H. Crowder, soldier, lawyer and statesman, Columbia, 1955. 19. Louden, K. C., Programming Languages: Principles and Practice, Boston, 1993, PWS Publishing Company, pp. 300 — 345. 20. Owolabi, O., Ndeekor, C. B. Structured Programming with Pascal, Aba, 2005, Granite Ventures Nig. Ltd, pp. 19 — 21. 21. Pressman, R. S. Software Engineering: A Practitioner’s Approach, New York, 2005, McGrawHill International 6th Ed., pp. 217 — 218. 22. Prosise, J. Programming Microsoft .NET, Microsoft Press, 2002, pp. 810 — 816. 23. Skinner, B.F. The Behavior of Organisms: An Experimental Analysis, Cambridge, Massachusetts: B.F. Skinner Foundation, pp. 546 — 756 24. Документация по семейству продуктов Visual Studio [Электронный ресурс]. – Режим доступа: https://docs.microsoft.com/ru-ru/visualstudio/?view=vs-2019 – (Дата обращения – 05.02.2021). 25. Advantages and Disadvantages of C++ [Электронный ресурс]. — Режим доступа: https://data-flair.training/blogs/advantages-and-disadvantages-of-cpp/ — (Дата обращения — 06.02.2021). 26. C# docs [Электронный ресурс]. – Режим доступа: https://docs.microsoft.com/ru-ru/dotnet/csharp/ – (Дата обращения – 07.02.2021). 27. Index | TIOBE [Электронный ресурс]. — Режим доступа: https://www.tiobe.com/tiobe-index/ — (Дата обращения — 07.02.2021). 28. Systems Engineering and Software Development Life Cycle Framework [Электронный ресурс]. – Режим доступа: http://opensdlc.org/mediawiki/index.php?title=Main_Page – (Дата обращения – 07.02.2021).

или напишите нам прямо сейчас

Написать в WhatsApp Написать в Telegram

О сайте
Ссылка на первоисточник:
https://www.universitys.ru/
Поделитесь в соцсетях:

Оставить комментарий

Inna Petrova 18 минут назад

Нужно пройти преддипломную практику у нескольких предметов написать введение и отчет по практике так де сдать 4 экзамена после практики

Иван, помощь с обучением 25 минут назад

Inna Petrova, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Коля 2 часа назад

Здравствуйте, сколько будет стоить данная работа и как заказать?

Иван, помощь с обучением 2 часа назад

Николай, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Инкогнито 5 часов назад

Сделать презентацию и защитную речь к дипломной работе по теме: Источники права социального обеспечения. Сам диплом готов, пришлю его Вам по запросу!

Иван, помощь с обучением 6 часов назад

Здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Василий 12 часов назад

Здравствуйте. ищу экзаменационные билеты с ответами для прохождения вступительного теста по теме Общая социальная психология на магистратуру в Московский институт психоанализа.

Иван, помощь с обучением 12 часов назад

Василий, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Анна Михайловна 1 день назад

Нужно закрыть предмет «Микроэкономика» за сколько времени и за какую цену сделаете?

Иван, помощь с обучением 1 день назад

Анна Михайловна, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Сергей 1 день назад

Здравствуйте. Нужен отчёт о прохождении практики, специальность Государственное и муниципальное управление. Планирую пройти практику в школе там, где работаю.

Иван, помощь с обучением 1 день назад

Сергей, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Инна 1 день назад

Добрый день! Учусь на 2 курсе по специальности земельно-имущественные отношения. Нужен отчет по учебной практике. Подскажите, пожалуйста, стоимость и сроки выполнения?

Иван, помощь с обучением 1 день назад

Инна, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Студент 2 дня назад

Здравствуйте, у меня сегодня начинается сессия, нужно будет ответить на вопросы по русскому и математике за определенное время онлайн. Сможете помочь? И сколько это будет стоить? Колледж КЭСИ, первый курс.

Иван, помощь с обучением 2 дня назад

Здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Ольга 2 дня назад

Требуется сделать практические задания по математике 40.02.01 Право и организация социального обеспечения семестр 2

Иван, помощь с обучением 2 дня назад

Ольга, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Вика 3 дня назад

сдача сессии по следующим предметам: Этика деловых отношений - Калашников В.Г. Управление соц. развитием организации- Пересада А. В. Документационное обеспечение управления - Рафикова В.М. Управление производительностью труда- Фаизова Э. Ф. Кадровый аудит- Рафикова В. М. Персональный брендинг - Фаизова Э. Ф. Эргономика труда- Калашников В. Г.

Иван, помощь с обучением 3 дня назад

Вика, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Игорь Валерьевич 3 дня назад

здравствуйте. помогите пройти итоговый тест по теме Обновление содержания образования: изменения организации и осуществления образовательной деятельности в соответствии с ФГОС НОО

Иван, помощь с обучением 3 дня назад

Игорь Валерьевич, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Вадим 4 дня назад

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

Иван, помощь с обучением 4 дня назад

Вадим, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Кирилл 4 дня назад

Здравствуйте! Нашел у вас на сайте задачу, какая мне необходима, можно узнать стоимость?

Иван, помощь с обучением 4 дня назад

Кирилл, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Oleg 4 дня назад

Требуется пройти задания первый семестр Специальность: 10.02.01 Организация и технология защиты информации. Химия сдана, история тоже. Сколько это будет стоить в комплексе и попредметно и сколько на это понадобится времени?

Иван, помощь с обучением 4 дня назад

Oleg, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Валерия 5 дней назад

ЗДРАВСТВУЙТЕ. СКАЖИТЕ МОЖЕТЕ ЛИ ВЫ ПОМОЧЬ С ВЫПОЛНЕНИЕМ практики и ВКР по банку ВТБ. ответьте пожалуйста если можно побыстрее , а то просто уже вся на нервяке из-за этой учебы. и сколько это будет стоить?

Иван, помощь с обучением 5 дней назад

Валерия, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Инкогнито 5 дней назад

Здравствуйте. Нужны ответы на вопросы для экзамена. Направление - Пожарная безопасность.

Иван, помощь с обучением 5 дней назад

Здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Иван неделю назад

Защита дипломной дистанционно, "Синергия", Направленность (профиль) Информационные системы и технологии, Бакалавр, тема: «Автоматизация приема и анализа заявок технической поддержки

Иван, помощь с обучением неделю назад

Иван, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Дарья неделю назад

Необходимо написать дипломную работу на тему: «Разработка проекта внедрения CRM-системы. + презентацию (слайды) для предзащиты ВКР. Презентация должна быть в формате PDF или формате файлов PowerPoint! Институт ТГУ Росдистант. Предыдущий исполнитель написал ВКР, но работа не прошла по антиплагиату. Предыдущий исполнитель пропал и не отвечает. Есть его работа, которую нужно исправить, либо переписать с нуля.

Иван, помощь с обучением неделю назад

Дарья, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru