Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пример2_ ПЗ_курсовой ЧМИ.doc
Скачиваний:
0
Добавлен:
28.08.2019
Размер:
803.84 Кб
Скачать

33

МИНИСТРЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ

ДОНЕЦКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

кафедра прикладной математики и информатики

Пояснительная записка

к курсовой работе по курсу «Объектно-ориентированное проектирование»

на тему: «Чат»

Разработал: ст.гр. ПКД-0

Проверил: доц. каф. ПМиИ

Гладунов С.А.

Донецк 2007

РЕФЕРАТ

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

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

Объектом реализации в данной курсовой работе является компьютерная программа, написанная на языке Borland C++.

Интерфейсы классов программы разработаны в соответствии с принципами объектно-ориентированного программирования: полиморфизм, наследование, инкапсуляция.

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

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

КЛАСС, КОНСТРУКТОР, ДЕСТРУКТОР, НАСЛЕДОВАНИЕ, ПАМЯТЬ, ИНТЕРФЕЙС, ГРАФИКА

СОДЕРЖАНИЕ

ВВЕДЕНИЕ 5

1 ПОСТАНОВКА ЗАДАЧИ 7

1.1 Описание исходных данных 7

1.2 Результат 7

1.3 Описание работы программы 7

При повторном нажатии кнопки Ввод программа блокируется. 8

Кнопка Заблокировать не активна до тех пор, пока не нажата последовательность кнопок Настройки->Расширенные Настройки и не введены нужные сайты. 8

Кнопка Разблокировать разблокирует компьютер полностью от всех введенных сайтов. 8

При нажатии кнопки Настройка появляется следующее окно: 8

8

Рис 3.3- Настройки программы 8

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

При нажатии кнопки Изменить- пароль будет изменен. 8

Если нажать кнопку Расширенные настройки, появится следующее окно: 8

9

Рис 3.4- Расширенные настройки 9

В этом окне можно ввести нужные сайты, нажав кнопку Добавить, сайт будет добавлен в список блокируемых сайтов. 9

Этот список можно редактировать. Выделив нужный сайт, его можно удалить, воспользовавшись кнопкой Удалить 9

2 ТЕХНИЧЕСКОЕ ПРОЕКТИРОВАНИЕ 9

2.1 Структура программы 9

2.2 Спецификация модулей 10

Модуль chat.cpp содержит функцию main(). 11

2.3 Основные алгоритмы работы модулей 11

Главный модуль программы – Chat.cpp он является точкой входа в программу, и объединяет в себе все модули программы mouse.h, gobject.h, button.h, list.h, textarea.h, label.h, frame.h, iface.h. 11

3 ПРОГРАММНАЯ РЕАЛИЗАЦИЯ 12

3.1 Основные структуры данных 12

Файл с сообщениями massages имеет следующую структуру: 12

<<< [name] – [time] >>> 12

[message] 12

Пример: 12

<<< One -- 10:10:34 >>> 12

This is first message! 12

Сообщение, соответствует времени 10:10:34, текст сообщения «This is first message!». 12

Файл со списком пользователей имеет структуру: 12

[name]|[пароль] 12

Пример: 12

One|1111 12

Имя пользователя One, пароль 1111 12

3.2 Основные классы программы 12

Класс Button, наследник от GObject, реализует прорисовку кнопок 12

Класс Label, наследник от GObject, реализует «надпись» 13

Класс List, наследник от GObject, реализует список пользователей 13

Класс TextArea, наследник от GObject, реализует поле ввода 13

3.3 Обоснование выбора структуры данных и алгоритмов 14

Для размещения в памяти графических объектов была использована динамическая структура данных «однонаправленный список». Такой выбор обусловлен простотой реализации, а так же требованиями к экономии оперативной памяти. 14

Для реализации удаления символов из строки и вставки символов в строку использовались функции deleteChar и insertChar 14

ВЫВОДЫ 15

ПЕРЕЧЕНЬ ССЫЛОК 16

Приложение А 17

21

Приложение Б 22

Приложение В 23

ВВЕДЕНИЕ

C++ - универсальный язык программирования, задуманный так, чтобы сделать программирование более приятным для серьезного программиста. За исключением второстепенных деталей C++ является надмножеством языка программирования C. Помимо возможностей, которые дает C, C++ предоставляет гибкие и эффективные средства определения новых типов. Используя определения новых типов, точно отвечающих концепциям приложения, программист может разделять разрабатываемую программу на легко поддающиеся контролю части. Такой метод построения программ часто называют абстракцией данных. Информация о типах содержится в некоторых объектах типов, определенных пользователем. Такие объекты просты и надежны в использовании в тех ситуациях, когда их тип нельзя установить на стадии компиляции. Программирование с применением таких объектов часто называют объектно-ориентированным. При правильном использовании этот метод дает более короткие, проще понимаемые и легче контролируемые программы.

Ключевым понятием C++ является класс. Класс - это тип, определяемый пользователем. Классы обеспечивают скрытие данных, гарантированную инициализацию данных, неявное преобразование типов для типов, определенных пользователем, динамическое задание типа, контролируемое пользователем управление памятью и механизмы перегрузки операций. C++ предоставляет гораздо лучшие, чем в C, средства выражения модульности программы и проверки типов. В языке есть также усовершенствования, не связанные непосредственно с классами, включающие в себя символические константы, inline- подстановку функций, параметры функции по умолчанию, перегруженные имена функций, операции управления свободной памятью и ссылочный тип. В C++ сохранены возможности языка C по работе с основными объектами аппаратного обеспечения (биты, байты, слова, адреса и т.п.). Это позволяет весьма эффективно реализовывать типы, определяемые пользователем.

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

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

1 ПОСТАНОВКА ЗАДАЧИ

1.1 Описание исходных данных

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

1.2 Результат

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

1.3 Описание работы программы

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

Рис.3.1-Окно ввода пароля

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

Рис.3.2- Главное окно программы

При повторном нажатии кнопки Ввод программа блокируется.

Кнопка Заблокировать не активна до тех пор, пока не нажата последовательность кнопок Настройки->Расширенные Настройки и не введены нужные сайты.

Кнопка Разблокировать разблокирует компьютер полностью от всех введенных сайтов.

При нажатии кнопки Настройка появляется следующее окно:

Рис 3.3- Настройки программы

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

При нажатии кнопки Изменить- пароль будет изменен.

Если нажать кнопку Расширенные настройки, появится следующее окно:

Рис 3.4- Расширенные настройки

В этом окне можно ввести нужные сайты, нажав кнопку Добавить, сайт будет добавлен в список блокируемых сайтов.

Этот список можно редактировать. Выделив нужный сайт, его можно удалить, воспользовавшись кнопкой Удалить

2 ТЕХНИЧЕСКОЕ ПРОЕКТИРОВАНИЕ

2.1 Структура программы

При разработке программы использовался принцип раздельной компиляции. Структурно программа состоит из девяти модулей:

файл mouse.h – содержит функции поддержки мыши;

файл gobject.h – содержит описание и реализацию базового класса иерархии графических объектов;

файл button.h – содержит описание и реализацию класса Button (элемент управления «Кнопка»);

файл list.h – содержит описание и реализацию класса ListBox (элемент управления «Список»);

файл textarea.h – содержит описание и реализацию класса TextArea (элемент графического интерфейса «Текстовое поле»);

файл label.h – содержит описание и реализацию класса Label (элемент графического интерфейса «Надпись»);

файл frame.h – содержит описание и реализацию класса Frame (элемент графического интерфейса «Форма»);

файл iface.h – содержит реализацию графического интерфейса;

файл chat.cpp – главный модуль программы.

На рис. 2.1 показано взаимодействие модулей программы. Описание интерфейса классов из planner.h используется при реализации методов классов в planner.cpp, при объявлении объектов классов в kurs.cpp. В planner.cpp описана реализация методов классов, используемых в kurs.cpp.

Рисунок 2.1 – Взаимодействие модулей программы

2.2 Спецификация модулей

Модуль mouse.h – содержит функции для работы с устройством ввода мышь

Модуль gobject.h – содержит описание и реализацию класса GObject;

Модуль button.h – содержит описание и реализацию класса Button;

Модуль list.h – содержит описание и реализацию класса ListBox;

Модуль textarea.h – содержит описание и реализацию класса TextArea ;

Модуль label.h – содержит описание и реализацию класса Label;

Модуль frame.h – содержит описание и реализацию класса Frame;

Модуль iface.h – содержит функции графического интерфейса;

Модуль chat.cpp содержит функцию main().

2.3 Основные алгоритмы работы модулей

Главный модуль программы – Chat.cpp он является точкой входа в программу, и объединяет в себе все модули программы mouse.h, gobject.h, button.h, list.h, textarea.h, label.h, frame.h, iface.h.

3 ПРОГРАММНАЯ РЕАЛИЗАЦИЯ

3.1 Основные структуры данных

Файл с сообщениями massages имеет следующую структуру:

<<< [name] – [time] >>>

[message]

Пример:

<<< One -- 10:10:34 >>>

This is first message!

Сообщение, соответствует времени 10:10:34, текст сообщения «This is first message!».

Файл со списком пользователей имеет структуру:

[name]|[пароль]

Пример:

One|1111

Имя пользователя One, пароль 1111

3.2 Основные классы программы

Класс GObject – базовый класс в иерархии графических обьектов

Таблица 3.1 – Методы класса GObject

Имя метода

Назначение

GObject

Создание объекта класса

Класс GObject – класс являющийся базовым для классов Button.

Таблица 3.2 – Методы класса Button

Имя метода

Назначение

Button

рисует кнопки в наследниках

Класс Button, наследник от GObject, реализует прорисовку кнопок

Таблица 3.3 – Методы класса Label

Имя метода

Назначение

Label

Элемент интерфейса надпись

Класс Label, наследник от GObject, реализует «надпись»

Таблица 3.4 – Методы класса List

Имя метода

Назначение

List

список пользователей

Класс List, наследник от GObject, реализует список пользователей

Таблица 3.5 – Методы класса TextArea

Имя метода

Назначение

TextArea

поле ввода

Класс TextArea, наследник от GObject, реализует поле ввода

3.3 Обоснование выбора структуры данных и алгоритмов

Для размещения в памяти графических объектов была использована динамическая структура данных «однонаправленный список». Такой выбор обусловлен простотой реализации, а так же требованиями к экономии оперативной памяти.

Для реализации удаления символов из строки и вставки символов в строку использовались функции deleteChar и insertChar

ВЫВОДЫ

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

ПЕРЕЧЕНЬ ССЫЛОК

  1. Т.А.Павловская. Язык Си/Си++. - Москва, 2001 -15 с.

  2. Стивен Прата. Язык программирования С. - С. ~Петербург,2002

  3. С. В. Симонович, Г. А. Евсеев. Специальная информатика. Москва, 1999 – 232 с

Приложение А

Министерство образования и науки Украины

Донецкий национальный технический университет

Техническое задание на курсовую работу:

Программа «Органайзер»

Выполнил ст. гр.: КЭМ-06

Донецк - 2007

  1. Основания для разработки

Задание, выданное кафедрой КСМ ДонНТУ по дисциплине «Объектно-ориентированное программирование»

  1. Назначение разработки

Разработка данной программы носит учебный характер и предназначена для изучения базовых принципов ООП, реализации принципов ООП в С++, перегрузки операций, дружественных функций, стандартных шаблонов ООП.

  1. Требования к программному стилю

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

  1. Инкапсуляция, наследование, полиморфизм.

  2. Иерархии классов.

  3. Фабрика классов.

  4. Модульная структура, раздельная компиляция.

  5. Параметры должны храниться во внешних файлах. Пользователю должна быть предоставлена возможность редактировать их из программы.

  6. Перегруженные операторы.

  7. Обработка исключительных ситуаций.

3.1 Требования к функциональным характеристикам

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

ОСНОВНЫЕ ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ

КАЛЕНДАРЬ

Ежедневник, который служит для хранения заметок и записи напоминаний.

НАПОМИНАНИЯ

Текстовое сообщение, которое высвечивается на экране в определенный день и в определенное время.

ТАЙМЕР

Отчет времени начиная с заданное времени.

СЕКУНДОМЕР

Отчет времени начиная с нуля.

БУДИЛЬНИК

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

КАЛЬКУЛЯТОР

Программа для вычисления математических выражений.

ЗАМЕТКИ

Текстовые сообщения занесенные на определенное время.

3.2 Требования к надёжности

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

3.3 Условия эксплуатации

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

3.4 Требования к составу и параметрам технических средств

Процессор - Pentium 3 или выше.

Видеокарта – GeForce 4 mx или лучше.

Оперативная память – 16 Мб или больше.

Монитор – цветной, 1024*768 или больше.

Клавиатура, мышь, колонки.

3.5 Требования к информационной и программной совместимости

Операционная система Windows XP.

  1. Требования к программной документации

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

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

  2. Руководство программиста.

  3. Руководство оператора.

  4. Текст программы.

  1. Стадии и этапы разработки

Наименование этапа

Срок выполнения(нед.)

1

Выдача задания, уяснение.

1-2

2

Постановка задачи. Определение требований. Запись постановки задачи.

Составление технического задания и его утверждение.

1

2

3

Техническое проектирование:

  1. Разработка методов решения задачи.

  2. Модульный анализ. Определение классов, иерархий классов, их взаимосвязей.

  3. Разработка основного алгоритма.

2-4

2

3,4

4

Рабочее проектирование:

  1. Определение структур данных, алгоритм работы классов.

  2. Оценка оптимальности структур данных и алгоритмов.

4,5

5

5

Наименование программы.

5-7

6

Отладка программы.

5-10

7

Комплексная отладка и тестирование.

8-10

8

Написание пояснительной записки.

11

9

Защита курсовой работы.

11-12