Объектно-ориентированное, или объектное, программирование (ООП) - парадигма программирования, в которой основными концепциями являются понятия объектов и классов. Данная концепция в настоящее время является ведущей в области программирования. Количество прикладных языков программирования, реализующих объектно-ориентированную парадигму, является наибольшим по отношению к другим парадигмам. Данный подход реализован в таких языках программирования как С, C++, Object Pascal, Java, С# и другие.
Целью курсовой работы является разработка иерархии классов для работы с профилями пользователей и социальными связями.
Предметом исследования является совокупность теоретических, методических и практических вопросов возникающие в процессе разработки иерархии классов для работы с профилями пользователей и социальными связями.
1 Теоретическое обоснование
1.1 Использование динамической типизации в объектно-ориентированном программировании
Типизированные языки разделяются на несколько пересекающихся категорий:
1. Статическая / динамическая типизация [1]. Статическая определяется тем, что конечные типы переменных и функций устанавливаются на этапе компиляции. Т.е. уже компилятор на 100% уверен, какой тип, где находится.
Динамическая типизация – приём, используемый в языках программирования и языках спецификации, при котором переменная связывается с типом в момент присваивания значения, а не в момент объявления переменной [2]. Таким образом, в различных участках программы одна и та же переменная может принимать значения разных типов.
Примеры:
Статическая: C, Java, C#;
Динамическая: Python, JavaScript, Ruby.
2. Сильная / слабая типизация (также иногда говорят строгая / нестрогая). Сильная типизация выделяется тем, что язык не позволяет смешивать в выражениях различные типы и не выполняет автоматические неявные преобразования, например нельзя вычесть из строки множество. Языки со слабой типизацией выполняют множество неявных преобразований автоматически, даже если может произойти потеря точности или преобразование неоднозначно.
Примеры:
Сильная: Java, Python, Haskell, Lisp;
Слабая: C, JavaScript, Visual Basic, PHP.
3. Явная / неявная типизация. Явно-типизированные языки отличаются тем, что тип новых переменных / функций / их аргументов нужно задавать явно. Соответственно языки с неявной типизацией перекладывают эту задачу на компилятора / интерпретатор.
Примеры:
Явная: C++, D, C#
Неявная: PHP, Lua, JavaScript
Также нужно заметить, что все эти категории пересекаются, например язык C имеет статическую слабую явную типизацию, а язык Python – динамическую сильную неявную.
Рассмотрим подробнее динамическую типизацию [3].
Преимущества динамической типизации
[...]
2 Практическая часть
2.1 Постановка задачи
Предметной областью данного задания является иерархия классов для работы с профилями пользователей и социальными связями.
Проанализировав предметную область, можно выделить в ней следующие особенности:
У каждого пользователя есть данные, которые его идентифицируют (ФИО, дата рождения, место проживания и т.д.).
Каждый пользователь может иметь определенный круг пользователей, которые находятся у него в друзьях (при этот это двухстороннее «сотрудничество», т.е. пользователь находится в друзьях и у второго человека).
Пользователь может быть только подписанным на кого-то, т.е. либо человек изъявил желание кого-то добавить в друзья, но его заявка была не одобрена, либо пользователя кто-то удалил з друзей.
При этом пользователь видит кто подписан на него и может в любой момент из этого списка добавить человека в друзья.
Программа должна обладать следующими функциональными возможностями:
– регистрация новых пользователей;
– загрузка (сохранение) данных учетных записей и их связей из (в) файлов (файлы);
– авторизация пользователей с предоставлением права управления своим профилем;
– просмотр, добавление и удаление друзей;
– просмотр, добавление и удаление своих подписок;
– просмотр людей, которые подписаны на пользователя;
– организация поиска по ФИО, дате рождения или городу проживания;
– редактирование своего профиля, в том числе логина и пароля;
– вывод сообщения об ошибке при некорректном вводе пользователем какого-либо значения во время работы программы и продолжение работы программы;
– обеспечение возможности возврата назад в окнах программы (навигации);
– выдача запроса на подтверждение удаления учетной записи.
[...]
Заключение
В результате выполнения курсового проекта была рассмотрена тема «Разработка программы учета сведений о пациентах медицинского центра». В результате, были выполнены следующие задачи:
– исследована предметную области;
– выбрана подходящая технология для создания приложения;
– разработана система классов;
– разработано приложение;
– проведено тестирование;
– сделаны выводы.
Программный продукт позволяет регистрироваться в системе, заполнять и редактировать свой профиль, добавлять друзей, подписчиков, просматривать подписанных людей на пользователя, искать других пользователей, зарегистрированных в системе. При этом данные при запуске программы сохраняются между сеансами.
Результаты проектирования могут являться основой для разработки социальной сети или любого приложения данной тематики.