Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
16
Добавлен:
20.04.2015
Размер:
2.72 Mб
Скачать

Курсовая работа

2 Курс, 3 семестр Задание на курсовую работу

Общие положения

Курсовая работа завершает 3-х семестровый курс изучения программирования.

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

В курсовой работе необходимо:

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

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

3. Разработать и отладить программу в соответствии с вариантом.

4. Протестировать программу

5. Сдать протестированную программу преподавателю. Доказать, что программа удовлетворяет принципам инкапсуляции, абстракции и полиморфизма.

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

7. Подготовить доклад и плакаты (презентацию).

8. Защитить курсовую работу на публичной защите.

Оценка по экзамену не может превышать оценку, полученную на защите курсовой работы!

Базовый уровень (на оценку “3”)

Разработать на языке С++ программу, в текстовом режиме выполняющую следующие действия со списком окон:

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

  • Добавление нового окна к списку (параметры задаются с клавиатуры) – с клавиатуры нужно ввести все параметры окна и место в списке, куда новое окно нужно вставить. Вставленное окно выводится на экран и становится активным.

  • Перемещение по списку окон – выбор окна (текущего) – для перемещения необходимо использовать клавиши указанные в варианте.

  • Изменение положения на экране и цвета текущего окна – при помощи указанных в варианте клавиш.

  • Удаление текущего окна (с обязательным запросом на подтверждение) – действие выполняется из меню.

  • Сохранение списка окон в файле (в бинарном формате) - в файле сохраняется информация, достаточная для восстановления текущего состояния списка окон.

  • Загрузка списка окон из файла – восстановление сохраненного состояния списка окон.

  • Сохранение списка окон в текстовом файле в виде таблицы. В таблице сохраняется полная информация по каждому окну.

  • Вывод окна помощи – с перечислением всех действий и горячих клавиш.

  • Сохранение (оба вариант) должно включать в себя и сжатие сохраненного файла. Т.е. если например пользователь выбрал сохранение в «data.txt», то генерируется 2 файла – «data.txt» и «data.cmp» (cmp - compressed). При загрузке данных пользователь выбирает, из какого файла грузить. Тип сжатия выбирается по списку в соответствии с вариантом в конце документа

  • Окна могут быть 2х типов – прямоугольное и не прямоугольное. Непрямоугольные окна рисуются с помощью символов псевдографики.

  • Программа реализуется в Borland C++ 3.1 под DOS или в Visual Studio 2010 C++

Внешний вид программы:

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

Между строкой меню и строкой подсказки демонстрируется список окон.

Схематически внешний вид окна изображен на рисунке:

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

Внешний вид окна:

Каждое окно имеет заголовок, одну строку текста и уникальный номер. Окно имеет произвольные размеры и произвольное размещение на экране. При этом окно должно целиком помещаться в пределах экрана между строкой, содержащей сведения об авторе, и строкой-подсказкой. Заголовком окна с номером окна должны помещаться в одной строке. Также в одной строке должен помещаться текст окна. Каждое окно может иметь свой собственный цвет окна, цвет рамки, цвет заголовка и цвет текста. Цвет рамки, цвет заголовка и цвет текста не может совпадать с цветом окна. Рамка неактивного окна имеет одинарную толщину, рамка активного (текущего) окна имеет двойную толщину (в текством режиме – двойную линию). Активное окно показывается полностью (как бы спереди – перед другими). В любой момент времени имеется одно активное окно. Активному окну можно установить новый цвет и изменить его положение на экране. Его можно удалить.

Схематически внешний вид окна изображен на рисунке:

Меню:

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

Требования к реализации:

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

  • Окно

  • Элемент списка (может быть не класс, а структура)

  • Список окон

  • Меню

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

ВАРИАНТЫ:

Тип меню:

1 Вертикальное, "выплывающее" из нижнего края экрана

2 Вертикальное, "выплывающее" из верхнего края экрана

3 Вертикальное, "выплывающее" из левого края экрана

4 Вертикальное, "выплывающее" из правого края экрана

5 Вертикальное "раскрывающееся"

Тип списка

1. Односвязанный

2. Односвязанный циклический

3. Двухсвязанный

4. Двухсвязанный циклический

5. Двухстековая машина

Горячие клавиши:

Для всех вариантов: вызов меню <F10>, вызов помощи <F1>

Варианты

  1. Выбор активного окна:

  • следующее <F5>

  • предыдущее (только для двухсвязанного списка) <F6>

  • первое <F2>

  • последнее (только для двухсвязанного списка) <F3>

Изменение положения окна: стрелки

Изменение цвета окна <F4>

  1. Выбор активного окна:

  • следующее <n>

  • предыдущее (только для двухсвязанного списка) <p>

  • первое <f>

  • последнее (только для двухсвязанного списка) <e>

Изменение положения окна: стрелки

Изменение цвета окна <c>

  1. Выбор активного окна:

  • следующее <PgDn>

  • предыдущее (только для двухсвязанного списка) <PgUp>

  • первое <Home>

  • последнее (только для двухсвязанного списка) <End>

Изменение положения окна: стрелки

Изменение цвета окна <Ins>

Таблица вариантов

№ варианта

Тип меню

Тип списка

Горячие клавиши

Группа

ФИО

1

1

1

1

2

2

1

2

3

3

1

3

4

4

2

1

5

5

2

2

6

1

2

3

7

2

3

1

8

3

3

2

9

4

3

3

10

5

4

1

11

1

4

2

12

2

4

3

13

3

5

1

14

4

5

2

15

5

5

3

Соседние файлы в папке Лабы3сем