Сайт студентов математиков для студентов математиков!
Главная Курсовые по математике Методичка по выполнению курсовой по программированию

Методичка по выполнению курсовой по программированию

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ

ПРОГРАММИРОВАНИЕ

Методические указания к выполнению курсового проекта

для студентов специальности

1 – 40 05 01 – 01 Информационные системы и технологии

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

1. ЦЕЛЬ КУРСОВОГО ПРОЕКТА

Курсовая работа по дисциплине «Объектно-ориентированное программирование» ставит своей целью закрепление и углубление навыков использования объектно-ориентированного подхода к программированию, полученных в процессе изучения дисциплины «Объектно-ориентированное программирование».

2. ЗАДАЧИ КУРСОВГО ПРОЕТКТА

Для достижения поставленной выше цели, студентам предлагается, пользуясь средствами объектно-ориентированного языка Visual С++, разработать программу в среде Microsoft Visual Studio в соответствии с выбранным вариантом задания. В результате выполнения данной работы студенты осваивают приемы практического использования объектно-ориентированного подхода в создании законченного программного продукта:

·  реализующего выбранную (в соответствии с вариантом) тему курсового проекта,

·  обладающего графическим интерфейсом пользователя (допускается разработка консольного приложения).

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

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

1) изучение необходимых теоретических сведений в соответствии с заданием;

2) выявление действующих субъектов системы (описание объектов и классов);

3) построение и описание диаграммы классов (Class Diagram);

4) создание программы, ее отладка и тестирование.

Содержание расчетно-пояснительной записки (перечень подлежащих разработке вопросов):

ВВЕДЕНИЕ

1. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

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

1.2 Описание объектно-ориентированного подхода

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

2. ПРАКТИЧЕСКАЯ ЧАСТЬ

2.1 Описание объектов системы, их свойств и методов

2.2 Результаты тестирования программного продукта

ЗАКЛЮЧЕНИЕ

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

ПРИЛОЖЕНИЯ

Теоретическая часть должна включать: постановку задачи, описание объектно-ориентированного подхода (понятие класса, конструктора, деструктора, наследования и т. д.), а также описание предметной области и применяемых алгоритмов (если применимо) в соответствии с заданием.

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

Варианты тем для курсового проекта

Студент также может предложить свою тему для курсового проекта

1. Разработка иерархии классов, реализующих графические примитивы на плоскости на языке программирования Visual C++.

Графические примитивы – линии; прямоугольники; окружности, эллипсы, дуги, сегменты и секторы.

2. Разработка иерархии классов, реализующих графические примитивы на плоскости с реализацией операций над множествами на языке программирования Visual C++.

Графические примитивы – прямоугольники; окружности, эллипсы. Операции на множествами – пересечение, объединение и разность.

3. Разработка иерархии классов, реализующих графические примитивы в трёхмерном пространстве (Open GL или DirectX 3D) на языке программирования Visual C++.

Графические примитивы – куб, шар, прямоугольник.

4. Разработка иерархии классов для описания оконного графического интерфейса, аналогичного интерфейсу MS Windows на языке программирования Visual C++.

Кнопка (Button), однострочное поле для ввода (Edit, TextBox), многострочное поле для ввода (Memo, ListBox).

5. Разработка иерархии классов на языке программирования Visual C++, реализующих комплексную арифметику.

Стандартная модель комплексных чисел. Действия над комплексными числами – сложение, вычитание, умножение, деление и сравнение.

6. Разработка иерархии классов на языке программирования Visual C++, реализующих операции над векторами.

Понятие и модель вектора. Операции над векторами – сложение, разность, произведение вектора на вещественное число.

7. Разработка иерархии классов на языке программирования Visual C++, реализующих строки и операции над ними, включая работу с регулярными выражениями.

Понятие строки и регулярного выражения. Операции на строками: поиск подстроки, копирование, конкатенация, определение длины и т. д.

8. Разработка класса «Обобщённый массив» (позволяющий хранить данные произвольных типов) на языке программирования Visual C++.

Понятие обобщенного массива. Операции с массивом: поиск элемента, добавление (в начало/конец/заданную позицию), удаление (с начала/конца/заданной позиции), определение длины массива.

9. Разработка класса «Ассоциативный массив (хэш-массив)» на языке программирования Visual C++.

Понятие ассоциативного массива. Понятие хэша. Операции с массивом: поиск элемента, добавление (в начало/конец/заданную позицию), удаление (с начала/конца/заданной позиции), определение длины массива.

10. Разработка иерархии классов на языке программирования Visual C++, реализующих различные типы графов и операции над ними.

Ориентированный и смешанный граф. Операции над графами: пересечение и объединение.

11. Разработка системы классов для обеспечения работы с абонентами телефонной компании на языке программирования Visual C++.

12. Разработка системы классов для обеспечения работы деканата на языке программирования Visual C++.

13. Разработка системы классов, описывающих сотрудников предприятия / организации с их функциями (сотрудник, менеджер, …) на языке программирования Visual C++.

14. Разработка системы классов, описывающих различные транспортные средства, реализуемые дилерским центром на языке программирования Visual C++.

15. Разработка системы классов для обеспечения работы библиотеки на языке программирования Visual C++.

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

16. Разработка иерархии классов для обеспечения работы магазина на языке программирования Visual C++.

В системе должны поддерживаться режимы заказа товара (продовольственных товаров), покупки и учета товаров, анализа покупаемости товара, анализа покупаемости продуктов в зависимости от времени дня и дня недели.

17. Разработка системы классов для обеспечения работы гостиницы на языке программирования Visual C++.

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

18. Разработка системы классов для обеспечения работы театра на языке программирования Visual C++.

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

19. Разработка системы классов «Успеваемость студентов на факультете» на языке программирования Visual C++.

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

20. Разработка системы классов для обеспечения работы центра занятости на языке программирования Visual C++.

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

21. Разработка системы классов для обеспечения работы больницы на языке программирования Visual C++.

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

22. Разработка системы классов для обеспечения работы школы на языке программирования Visual C++.

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

23. Разработка системы классов «Расписание занятий в университете» на языке программирования Visual C++.

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

24. Разработка системы классов для обеспечения работы аптеки на языке программирования Visual C++.

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

25. Разработка системы классов для обеспечения работы ресторана на языке программирования Visual C++.

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

26. Разработка системы классов для обеспечения работы поликлиники на языке программирования Visual C++.

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

27. Разработка системы классов «Автобусный парк» на языке программирования Visual C++.

В системе должны поддерживаться режимы учета транспортных средств в автопарке, маршрутов, водителей, учета доходов и расходов (оплата за проезд, ремонт и т. п.), выдачи отчетов по запросам.

28. Разработка класса «Банковский счет» на языке программирования Visual C++.

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

29. Разработка калькулятора для обработки арифметических операций с двойной точностью ("-","+","/","*","(",")","0"-"9",".") на языке программирования Visual С++ с применением объектно-ориентированного подхода.

30. Разработка игры «Судоку» на языке программирования Visual С++ с применением объектно-ориентированного подхода.

Мат. модель игры «Судоку».

31. Разработка игры «Арканойд» на языке программирования Visual С++ с применением объектно-ориентированного подхода.

Мат. модель или описание игры «Арканойд».

32. Разработка игры «Крестики-нолики» на языке программирования Visual С++ с применением объектно-ориентированного подхода.

Мат. модель или описание игры «Крестики-нолики».

33. Разработка игры «Шашки» на языке программирования Visual С++ с применением объектно-ориентированного подхода.

Мат. модель или описание игры «Шашки».

34. Разработка игры «Пятнашки» на языке программирования Visual С++ с применением объектно-ориентированного подхода.

Мат. модель игры «Пятнашки».

35. Разработка игры «2048» на языке программирования Visual С++ с применением объектно-ориентированного подхода.

Мат. модель или описание игры «2048».

36. Разработка класса «Дата» на языке программирования Visual С++

Класс типа — дата с полями: день (1-31), месяц (1-12), год (2014).Класс имеет конструктор: с параметрами, без параметров, копирования; деструктор; функции-члены получения дня, месяца и года, а также две функции-члены печати по шаблону: "5 января 1997 года" и "05.01.1997"; функции-члены должны проверять корректность задаваемых параметров.

37. Разработка класса «Время» на языке программирования Visual С++.

Класс типа — время с полями: часы (00-23), минуты (00-59), секунды (00-59).Класс имеет конструктор: с параметрами, без параметров, копирования; деструктор; функции-члены получения часа, минуты и секунды, а также две функции-члены печати по шаблону: "23:59:59" и "5:00:00 AM"; метод перевода времени в Unix-формат; функции-члены должны проверять корректность задаваемых параметров.

38. Разработка класса для выполнения операций с матрицами на языке программирования Visual С++.

Понятие матрицы. Операции над матрицами: сложение матриц, умножение матриц и транспонирование матрицы.

39. Разработка класса для выполнения операций с полиномами на языке программирования Visual С++.

Понятие полинома. Операции над полиномами: сложение полиномов, вычитание полиномов, умножение и деление полинома на число.

40. Разработка класса для выполнения операций с двоичными числами на языке программирования Visual С++.

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

41. Разработка класса для выполнения операций с шестнадцатеричными числами на языке программирования Visual С++.

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

42. Разработка класса-таймера, который по истечении заданного промежутка времени, выдает звуковой сигнал.

Класс типа — таймер с полями: часы (00-23), минуты (00-59), секунды (00-59).Класс имеет конструктор: с параметрами, копирования; деструктор; функции-члены установки и получения времени, старта, паузы и останоки. функции-члены должны проверять корректность задаваемых параметров.

43. Разработка класса для реализации шифрования и дешифрования с помощью алгоритма моноалфовитной замены на языке программирования Visual С++.

Алгоритм шифрованиядешифрования методом моноалфовитной замены

44. Разработка класса для реализации шифрования и дешифрования с помощью алгоритма полиалфовитной замены на языке программирования Visual С++.

Алгоритм шифрованиядешифрования методом полиалфовитной замены

45. Разработка класса для реализации шифрования и дешифрования с помощью алгоритма перестановки на языке программирования Visual С++.

Алгоритм шифрованиядешифрования методом перестановки

46. Разработка класса для реализации структуры данных «Список» на языке программирования Visual С++.

47. Разработка класса для реализации структуры данных «Очередь» на языке программирования Visual С++.

48. Разработка класса для реализации структуры данных «Стек» на языке программирования Visual С++.

49. Разработка класса для реализации структуры данных «Бинарное дерево» на языке программирования Visual С++.

50. Разработка класса для реализации различных видов сортировки массива (выбором, пузырьком, перестановкой и т. д.) на языке программирования Visual С++.

51. Разработка класса для реализации различных видов сортировки символов в строке (выбором, пузырьком, перестановкойна языке программирования Visual С++.

52. Разработка класса для реализации различных видов поиска элементов в массиве (линейный, быстрый линейный, двоичный поиск и т. д.) на языке программирования Visual С++.

53. Разработка программы для поиска слов в текстовом файле на языке программирования Visual C++ с применением объектно-ориентированного подхода.

Разработать программу, которая осуществляет в текстовом файле поиск заданных слов. Слова последовательно вводятся с клавиатуры. Для каждого слова должно определяться количество вхождений и номера строк текста. Если указанное слово в файле отсутствует, то программа должна выводить соответствующее сообщение.

54. Разработка класса для реализации шифрования и дешифрования с помощью шифра Цезаря на языке программирования Visual С++.

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

55. Разработка программы для тестирования по одному из разделов курса «Объектно-ориентированное программирование» на языке программирования Visual C++ с применением объектно-ориентированного подхода.

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

56. Разработка приложения «Записная книжка» на языке программирования Visual C++ с применением объектно-ориентированного подхода.

Программа должна обеспечивать ввод и корректировку информации, а по запросу — поиск следующей информации:

• номер телефона указанного лица и ФИО по номеру телефона;

• почтовый адрес и адрес электронной почты указанного лица;

• ФИО лиц, чьи даты рождения приходятся на указанный месяц (неделю).

57. Разработка класса для решения системы линейных алгебраический уравнений матричным методом и методом Гаусса на языке программирования Visual C++.