Рассмотрено на заседании кафедры

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

Протокол № ___ от «___»_______2015 г.

 

Утверждено на заседании

Учебно-издательского совета ДонНТУ

Протокол № ___ от «___»_______2015 г.

 

Донецк, 2015
1 ОСНОВНЫЕ ПОЛОЖЕНИЯ

 

 

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

Условиями успешного выполнения курсового проекта являются:

- знание лекционного материала;

- умение пользоваться технической и нормативной литературой (в том числе программной документацией и ГОСТ [1]);

- практические навыки работы на ПЭВМ, полученные при выполнении лабораторных работ.

При выполнении курсового проекта студент должен овладеть методикой проведения проектной работы по формализации и решению поставленной задачи, показать умение использовать техническую и нормативную литературу, обоснованно выбирать методы для решения задачи на ЭВМ, использовать методику объектно-ориентированного анализа, проектирования [2-4] и разработки объектно-ориентированных программ [3-8], анализировать результаты.

 


2 МЕТОДИКА ВЫПОЛНЕНИЯ КУРСОВОГО ПРОЕКТА

 

 

Задание на курсовой проект выдается студенту на первых неделях после начала семестра и фиксируется на специальном стандартном бланке (см. Прил. А), который подписывается преподавателем - руководителем проекта и студентом.

Тема курсового проекта - "объектно-ориентированная система" (ООС). Тематика курсового проекта охватывает все разделы дисциплины "Объектно-ориентированное программирование".

Структура технического задания на курсовой проект приведена в приложении А. Студент должен отформатировать (см. Приложение Б) соответствующий Word-документ (*.rtf - файл) в соответствии с требованиями оформления отчетов в сфере науки и техники (см. Приложение А [9]) и распечатать его для утверждения руководителем курсового проекта и заведующим кафедры ПМИ.

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

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

- техническое задание и его утверждение руководителем, постановка задачи (2-я неделя);

- результаты объектно-ориентированного анализа и проектирования (8-я неделя);

- результаты технического проектирования (9-я неделя);

- результаты рабочего проектирования (10-я неделя);

- текст программы (12-я неделя);

- пояснительная записка (14-я неделя).

Промежуточной формой контроля является аттестация студента из выполнения курсового проекта на 9-10 неделе.

Курсовой проект студент оформляет в виде пояснительной записки, выполненной на ЭВМ или рукописным способом, общим объемом 30-40 страниц. Студент должен представить объяснительную записку руководителю для проверки по 2-3 рабочих дня до срока защиты, указанного в задании.

Курсовой проект защищается в форме доклада студента комиссии из 2-3 преподавателей и ответов на вопросы членов комиссии. Доклад должен состоять из следующих вопросов:

- формулировка задачи;

- постановка задачи.

- объектно-ориентированный анализ и проектирование;

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

- рабочее проектирование;

- обоснование избранных отношений между классами и структуры программы;

- обоснование эффективности выбранных для решения задачи структур данных и алгоритмов;

- объяснение контрольного примера;

- демонстрации работы ООС на ПЭВМ.

 


3 ТРЕБОВАНИЯ К КУРСОВОМУ ПРОЕКТУ

 

3.1 Среда и технология программирования

 

Необходимо разработать объектно-ориентированную систему на языке C++ [3-8, 11-12] в среде языка C++ как консольную программу в операционной системе Windows согласно варианту задания.

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

Курсовой проект представляет собой большой программный комплекс, поэтому при программировании задачи необходимо использовать технологию разработки программ с использованием проекта, раздельной компиляции файлов и разделения интерфейса класса и его реализации [3, 4, 8].

 

3.2 Организация данных

 

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

Результаты работы (состояние объектов системы) необходимо представить в виде файлов, в соответствии с требованиями, зафиксированными в "Техническом задании".

Необходимо обеспечить двуязычие языка общения с пользователем. Рекомендуемые пары языков: одна, использует кириллицу, другая - использует латиницу. В случае необходимости в ООС выполнить транслитерацию фраз языка кириллицы на латиницу.

 

3.3 Режим работы программы

 

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

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

ООС должна работать в режимах:

а) описание предметной области (ПрО);

б) режим демонстрации работы объектов;

а также иметь систему помощи.

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

Режим демонстрации работы объектов должен выполнять действия

а) создание объектов базовых классов;

б) демонстрация состояния объектов базовых классов;

в) создание объектов производных классов;

г) демонстрация состояния объектов производных классов;

д) перегрузку операторов базовых классов;

е) перегрузку операторов производных классов.

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

 

3.4 Структуры данных, методы и алгоритмы

 

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

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

 

3.5 Технологии разработки ООС

 

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

При техническом проектировании ООС необходимо использовать знания технологических этапов создания программ на ЭВМ: постановка задачи, создание метода решения задачи, создание алгоритма решения задачи.

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

При разработке документации к проекту информатизации необходимо ознакомиться со стандартом "Единая система программной документации" [1] и усвоить технологию создания программных документов:

а) техническое задание;

б) описание программы;

в) руководство оператора;

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

Эти программные документы необходимо разместить в приложениях к пояснительной записке к курсовому проекту. "Описание программы" и "Руководство оператора" в электронном виде необходимо представить в системе помощь/справка. Также эта система должна содержать информацию об авторе.

 

 

3.6 Интерфейс

 

Порция информации, предоставленная пользователю на экране в отдельный момент времени, называется кадром.

Работа демонстрационного примера должна начинаться с формы «Заставка». Текст заставки должен содержать:

- название ВУЗа, факультета, кафедры;

- название темы индивидуального задания;

- фамилию и инициалы студента;

- название группы;

- фамилию и инициалы руководителя курсового проекта;

- место и год создания.

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

Следующий кадр должен содержать главное меню с режимами работы ООС.

Кадр описания ПрО должен содержать описание функционального назначения ООС и описание предметной области.

Кадр режима демонстрации работы объектов должен содержать меню с возможными действиями над объектами.

Действия по созданию объектов требуют использования ввода-вывода информации пользователем. Ввод данных непосредственно пользователем необходимо свести к минимуму и контролировать правильность введенных данных.

Кадр помощи/справки может быть создан с использованием текстовых файлов.

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

 

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

 

Пояснительная записка должна быть оформлена в соответствии с Государственным стандартом Украины ДСТУ 3008-95 "Документация. Отчеты в сфере науки и техники. Структура и правила оформления" (см. Приложение А [9]).

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

 

3.8 Графический материал

 

В пояснительной записке для разработанной ООС должны быть представлены в виде схем:

а) статическая модель ПрО, созданная средствами UML:

1) диаграммы классов;

2) диаграммы объектов;

б) динамическая модель ПрО, созданная средствами UML:

1) диаграммы прецедентов;

2) диаграмма последовательностей;

3) диаграмма кооперации;

4) диаграммы состояний объектов;

в) структура ООС;

г) основной алгоритм функционирования ООС;

д) описание структур данных ООС.

Примеры диаграмм UML а) -б) рассмотрены в лекционном курсе.

Описание структур данных, использованных в ООС включает:

- структуру данных программы (входных и выходных данных, файлов);

- структуру файловой системы программы (программных файлов, файлов данных и т.д.).

В таблице 3.1 приведен пример структуры файла входных данных "Надписи для формы заставки" (Cap_Rus.txt), содержащий надписи на русском языке для интерфейса ООС.

 

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

№ строки файла Содержание строки № строки файла Содержание строки
  Для первого кадра:   Опции главного меню:
Название вуза Описание ПрО
Название факультета Режим демонстрации работы объектов
Название кафедры Помощь/справка
Название темы индивидуального задания Выход из системы
Название группы Опции главного меня для режима демонстрации объектов:
Фамилия и инициалы студента Создание объектов базового класса
Фамилия и инициалы руководителя курсового проекта Демонстрация состояния объектов базовых классов
Город и год создания Создание объектов производных классов
Продолжить (переход на следующий кадр) Демонстрация состояния объектов производных классов
Завершить работу Перегрузка операторов базовых классов
Основной язык интерфейса Перегрузка операторов производных классов
Альтернативный язык интерфейса Сообщение об ошибках:
  Сообщение о: Создание объектов
Продолжение работы Демонстрация состояния объектов
Создание объекта Перегрузка операторов
    Выбор опций меню

 

На рисунке 3.1 приведен пример структуры файловой системы ООС "Торговый центр и магазин самообслуживания". Здесь представлены 3 группы файлов:

 

Рисунок 3.1 - Структура файловой системы ООС "Торговый центр и магазин самообслуживания"

 

 

а) программные файлы (интерфейсов классов class1.h и class2.h, файлы реализации классов class*.сpp, файл использования main.cpp, файлы для внешних переменных, которые используются при раздельной компиляции файлов class*.h, файл market.vcproj проекта, исполнимый файл market.exe);

б) файлы входных данных на двух языках для интерфейса:

1) файлы Cap*.txt надписей интерфейса ООС;

2) файлы menu*.txt надписей опций меню;

в) сервисные файлы на двух языках (help.* помощи, руководства оператора rukop.* и т.п.).

"Спецификацию модулей" необходимо оформить в виде таблицы. Термин "модуль" используется для обозначения в языке C ++:

а) функции-члена класса;

б) дружественной функции;

в) статической функции;

г) виртуальной функции;

д) обычной функции языка C++.

О каждом модуле сообщается следующая информация:

- название;

- семантика (краткое описание выполняемых действий);

- интерфейс с данными (описание типов и структуры входных и выходных данных, в роли которых могут быть использованы глобальные переменные);

- интерфейс по управлению (название модулей вызываемых и вызывающих по отношению к данному).

 

 

3.9 Перечень ссылок

 

"Перечень ссылок" должен содержать такие виды литературы:

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

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

- методическая (методические пособия, указания и т.д.);

- нормативная (законы, стандарты и т.д.).

На все литературные источники обязательно должны быть ссылки в тексте пояснительной записки. Правила оформления источников см. в [9].

 

3.10 Приложения

 

Приложения содержат программные документы, тексты файлов входных данных, тексты файлов выходных данных, экранные формы.

Размер шрифта текста всех приложений - 8, межстрочный интервал - 1.

Все программные документы необходимо выполнить в соответствии со стандартом [1]:

- "Техническое задание" (см. Прил. Б [9]);

- "Описание программы" (см. Прил. А [10]);

- "Руководство оператора" (см. Прил. В [9]).

Тексты программ должны быть:

- прокомментированы (каждая процедура и каждый предикат должны содержать комментарии в описаниях переменных и в коде);

- структурированы (отступы для вложенных конструкций и составных частей);

- текст программы на языке C++ необходимо разместить в две колонки.

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

Экранные формы должны содержать виды всех режимов работы ООС.

Дополнительные требования для оценки "отлично", "хорошо" и "удовлетворительно" приведены в тексте примера "Технического задания" с критериями оценивания (см. Приложение Б).

 


4 ПЕРЕЧЕНЬ ИСПОЛЬЗУЕМОГО ПРОГРАММНОГО И АППАРАТНОГО ОБЕСПЕЧЕНИЯ

 

4.1 Перечень используемого программного обеспечения

 

Программное обеспечение, используемое при выполнении курсового проекта:

а) операционная система - MS Windows (версия не ниже XP);

б) трансляторы (компиляторы) языка С++;

в) текстовые редакторы или процессоры.

 

4.2 Состав используемых технических средств

 

Для выполнения курсового проекта используются лаборатории вычислительной техники кафедры прикладной математики и информатики на базе ПЭВМ. При необходимости могут использоваться индивидуальные ПК студентов.

Индивидуальные задания по курсовому проекту работе должны быть выполнены только с использованием стандартных периферийных устройств ПЭВМ.

 

 


5 РЕКОМЕНДАЦИИ ПО ПРОГРАММИРОВАНИЮ

 

5.1 Реализация двуязычия интерфейса

 

Для реализации двуязычия интерфейса используем текстовые файлы, содержимое которых структурируем в соответствии с последовательностью размещения надписей на экране. В таблице 5.1 представлен пример содержимого файлов Cap_Eng.txt и Cap_Rus.txt. Каждая запись этих файлов содержит одну строку надписи на экране, поэтому запись с номером n файла Cap_Eng.txt содержит перевод на английский язык текста записи с номером n файла Cap_Rus.txt.

 

Таблица 5.1 – Содержимое файлов

Cap_Rus.txt Cap_eng.txt
ДонНТУ Кафедра ПМИ … Нажмите любую клавишу Создан объект базового класса … 1. создание объекта базового класса 2. показ состояния объекта базового класса ... ОШИБКА: нельзя перегрузить унарный оператор. Выберите опцию 3 … DonNTU Chair AMI … Press any key Created an object of the base class … 1. The creation of an object of the base class 2. The display state of the object base class … ERROR: you can not overload the unary operator. Select option 3 …

 

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

Альтернативными решениями являются:

а) размещение текстов надписей различных кадров в разных файлах;

б) размещения текстов надписей в файлах по семантике.

Например, на рисунке 3.1 видно, что в проекте тексты надписей кадров размещены в файлах Cap_*. txt, тексты надписей элементов меню - в файлах menu_*. txt, тексты системы помощи - в файлах help.*.

Файлы данных с текстами надписей элементов интерфейса могут быть размещены:

а) в одной папке с исполняемым файлом ООС. Тогда необходимо:

1) получить exe-файл программы с помощью IDE языка С++;

2) в этой же папке (текущей) разместить файлы данных;

3) в программе на языке С++ имена таких файлов могут быть заданы константами без указания пути доступа к папке проекта, например:

char namef [20] = "help.txt";

char namef [20] = "uslovie.txt";

б) в указанной папке, не совпадает с папкой с исполняемым файлом ООС. Тогда необходимо:

1) получить exe-файл программы с помощью IDE языка С++;

2) в указанную папку поместить файлы данных (возможно, файлы структурированы по папкам в соответствии с языком интерфейса);

3) в программе на языке C ++ имена таких файлов могут быть заданы константами с указанием пути доступа к папкам этих файлов, например.

char namef [20] = "D:\STUDENTS\ PS\help.txt";

char namef [20] = "D:\STUDENTS\PS\ uslovie.txt";

Решение а) и б) соответствуют требованиям на оценку "удовлетворительно".

в) в любом месте файловой системы и путь доступа к файлам определяется пользователем на этапе выполнения программы. Тогда необходимо предусмотреть в главном меню ООС опцию настройки, в которой пользователь указывает путь доступа к файлам данных и/или их имена;

Решение в) соответствует требованиям на оценку "хорошо".

г) в любом месте файловой системы, но пользователю не приходится вводить путь доступа к файлам. Тогда необходимо предусмотреть в файловой системе ООС файл конфигурации с данными о пути доступа к файлам данных и/или их именах;

Решение г) соответствует требованиям на оценку "отлично".

Рассмотрим реализацию смены языка интерфейса в программе на C++ для случая: файлы данных расположены в одной папке с исполняемым файлом ООС. Выполняемые действия:

а) в главном меню ООС предполагаем опцию для изменения языка:

1. Описание ПрО

2. Демонстрация работы объектов

3. Изменение языка интерфейса

4. Помощь

5. Выход

 

 

б) определяем глобальную переменную lang целочисленного типа для хранения значения признака языка. Например, ее значение 1 (True) соответствует русскому языку, значение 0 (False) - английскому. Такой выбор типа данных для признака языка позволяет увеличить множество возможных языков интерфейса ООС. По умолчанию после загрузки программы установлен русский язык:

int lang = 1;

в) в функции main_menu(), которая реализует работу главного меню ООС, обрабатываем результат выбора пользователем опции "Изменение языка интерфейса" (ввод значения 3):

cout << "Введите номер опции: 1, 2, 3, 4, 5" << endl;

cin>> reply;

switch (reply)

{...

case 3: if (lang) lang = 0; else lang = 1; // Изменение языка

load_cap (); break; ...

}

г) определяем глобальные переменные для хранения имен файлов с надписями кадров интерфейса:

const char nfile_r [12] = "Cap_Rus.txt";

const char nfile_e [12] = "Cap_Eng.txt";

 

д) определяем глобальную переменную для хранения имени файла для текущего языка интерфейса:

char nfile [12];

е) определяем глобальный массив строк для хранения надписей кадров интерфейса:

const CCAPT = 35;

const LCAPT = 50;

char mas_cap [CCAPT][LCAPT];

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

ж) создаем функцию load_cap(), которая будет изменять содержание надписей-строк в массиве mas_cap:

 

void LoadCaption ()

{

if (lang)

strcpy (nfile, nfile_r);

else

strcpy (nfile, nfile_e);

 

ifstream fcapt;

fcapt.open (nfile);

 

 

if (fcapt.fail ())

{cerr << "Файл" << nfile <<

"Не открыт." << Endl;

getch ();

exit (-1);

}

int i;

for (i = 0; i <CCAPT; i ++)

fcapt >> mas_cap [i];

}

с) элементы массива mas_cap необходимо использовать для вывода строк интерфейса в системные потоки вывода и ошибок (с учетом нумерации надписей в этом массиве), например:

 

void zastavka ()

{

clrscr ();

cout << endl;

cout.width (45); cout.setf (ios :: right);

cout << mas_cap [0] << endl;

cout.width (42); cout.setf (ios :: right);

cout << mas_cap [1] << endl;

cout.width (45); cout.setf (ios :: right);

cout << mas_cap [2] << endl;

cout << endl << endl << endl << endl;

...

}

void main_menu ()

{int reply;

cout.width (10);

cout << "1." << mas_cap [14];

cout.width (25);

cout << "2." << mas_cap [15];

cout.width (10);

cout << "3." << mas_cap [16];

cout.width (10);

cout << "4". << mas_cap [17] << endl;

 

}
6 ТЕМАТИКА СПЕЦИАЛЬНОЙ ЧАСТИ КУРСОВОГО ПРОЕКТА

 

 

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

 

Вариант 1

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

- поле «координата X» float X;

- поле «координата Y» float Y;

- метод установления координат void SetCoordinate(float X, float Y);

- метод получения координаты X float GetX();

- метод получения координаты Y float GetY();

- конструктор без параметров Point();

- конструктор с параметрами Point(float X, float Y).

Унаследовать от класса Point класс ColorPoint, содержащий в себе элементы:

- поле «цвет» int Color;

- метод установления цвета void SetColor (int Color);

- метод получения цвета int GetColor ();

- конструктор без параметров ColorPoint ();

- конструктор с параметрами ColorPoint (float X, float Y, int Color).

В классе СolorPoint перегрузить оператор ++ (унарный оператор класса), новое действие - увеличить цвет на единицу (цвет меняется по кругу в диапазоне 0..16).

 

Вариант 2

Создать класс Animal, включающий в себя следующие элементы:

- поле «вес» float Mass;

- поле «пол» char * Sex;

- поле «цвет» char * Color;

- поле «возраст» int Age;

- метод получения веса float GetMass();

- метод получения пола char * GetSex();

- метод получения возраста int GetAge();

- метод получения цвета char * GetColor();

- конструктор с параметрами Animal(float Mass, char * Sex, char * Color, int Age).

Унаследовать от класса Animal класс Dog, содержащий в себе элементы:

- поле «кличка» char * Name;

- поле «порода» char * Race;

- поле «вид» (охотничье, декоративная, бойцовая и т.д.) char * Type;

 

- конструктор с параметрами Dog(float Mass, char * Sex, char * Color, int Age, char * Name, char * Race, char * Type).

В классе Animal перегрузить оператор -- (унарный оператор класса), новая действие - уменьшить вес на 0.1 кг (вес должен быть не менее 0,1 кг).

 

Вариант 3

Создать класс Vegetable, включающий в себя следующие элементы:

- поле «вес» float Mass;

- поле «спелость» int Ripeness;

- метод получения веса float GetMass();

- метод получения спелости int GetRipeness();

- метод сдобрить овощ void Fertilize(); (увеличивает массу на 0.1 кг)

- конструктор с параметрами Vegetable(float Mass, int Ripeness).

Унаследовать от класса Vegetable класс Tomato, что включает в себя элементы:

- поле «сорт» char * Type;

- поле «цвет» char * Color;

- поле «размер» char * Size;

- конструктор с параметрами Tomato(float Mass, int Ripeness, char * Type, char * Color, char * Size).

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

 

Вариант 4

Создать класс Vehicle, что включает в себя следующие элементы:

- поле «скорость» int Speed;

- поле «вес» int Mass;

- метод получения веса int GetMass();

- метод остановки void Stop(); (Скорость = 0);

- конструктор с параметрами Vehicle(int Speed, int Mass).

Унаследовать от класса Vehicle класс Truck, что включает в себя элементы:

- поле «грузоподъемность» int Capacity;

- поле «вес груза» int Cargo;

- конструктор с параметрами Truck(int Speed, int Mass, int Capacity);

- метод «загрузить груз» int Load(int Mass); (Если успешно, то возвращает 0, иначе -1);

- метод «разгрузить груз» int UnLoad(); (Возвращает вес груз и устанавливает ее в 0).

В классе Vehicle перегрузите оператор ++ (унарный оператор класса), новое действие - увеличить скорость на 10 км / ч.

 

Вариант 5

Создать класс Veapon, включающий в себя следующие элементы:

- поле «объем магазина» int Capacity;

- поле «калибр» int Calibre;

- поле «дальность стрельбы» int Distance;

- метод «зарядить оружие» void Charge();

- метод «разрядить оружие» void UnCharge();

- конструктор с параметрами Veapon(int Capacity, int Calibre, int Distance).

Унаследовать от класса Veapon класс Gun, содержащий в себе элементы:

- поле «табельный номер» int Number;

- поле «тип ствола» char * BarrelType; (гладкоствольное, нарезное)

- поле «состояние» int State; (На предохранителе или нет)

- конструктор с параметрами Gun (int Capacity, int Calibre, int Distance, int Number, char * BarrelType);

- метод «одиночный выстрел» void Shot ().

В классе Gun перегрузить оператор ! (унарный оператор класса), новое действие - поставить/снять с предохранителя.

 

Вариант 6

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

- поле «объем» long Size;

- поле «Скорость чтения» int ReadSpeed;

- поле «Скорость записи» int WriteSpeed;

- поле «Производитель» char * Vendor;

- поле «Данные» char * Data;

- метод считывания данных char * Read();

- метод записи данных void Write(char * buffer);

- конструктор с параметрами Media (long Size, int ReadSpeed, int WriteSpeed).

Унаследовать от класса Media класс HDD, содержащий в себе элементы:

- поле «интерфейс» char * Interface; (SATA, IDE, SCSI)

- поле «количество разделов на диске» int PartitionNum;

- конструктор с параметрами HDD(long Size, int ReadSpeed, int WriteSpeed, char * Interface, int PartitionNum);

- метод «форматировать диск» void Format ();

- метод «форматировать раздел» int Format(int PartitionNum); (Форматирует раздел с указанным номером, если такого раздела нет, то возвращает - 1, иначе - 0).

В классе Media перегрузить оператор ~ (унарный оператор класса), новое действие - возвращает количество разделов.

 

Вариант 7

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

- поле «размер» long Size;

- поле «Дата создания» char * Date;

- поле «Владелец» char * Owner;

- поле «содержание файла» char * Content;

- метод считывания данных char * Read();

- метод записи данных void Write(char * buffer);

- конструктор с параметрами File(long Size, char * Date, char * Owner).

Унаследовать от класса File класс Document, содержащий в себе элементы:

- поле «размер шрифта» int FontSize;

- поле «цвет шрифта» int FontColor;

- конструктор с параметрами Document(long Size, char * Date, char * Owner, int FontSize, char * Color);

- метод «Установить цвет» void SetColor(char * Color).

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

 

Вариант 8

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

- поле «ФИО» char * FIO;

- поле «Табельный номер» int Number;

- поле «Возраст» int Age;

- поле «Стаж» int Stage;

- метод получения ФИО char * GetFIO();

- метод получения таб. номера int GetNumber();

- метод получения стажа int GetStage();

- метод получения возраста int GetAge();

- конструктор с параметрами Employee(char * FIO, int Number, int Stage, int Age).

Унаследовать от класса Employee класс Turner (Токарь), содержащий в себе элементы:

- поле «Разряд» int Experience;

- поле «Номер цеха» int Department;

- конструктор с параметрами Turner(char * FIO, int Number, int Stage, int Age, int Department, int Experience);

- метод «Изменение цеха» void ChangeDepartment (int NewDepartment).

В классе Turner перегрузить оператор ++ (унарный оператор класса), новое действие - повысить разряд.

 

Вариант 9

Создать класс LightDevice, включающий в себя следующие элементы:

- поле «Яркость» int Light;

- поле «Мощность» int Power;

- поле «Напряжение» int Voltage;

- метод получения яркости int GetLight();

- метод получения мощности int GetPower();

- метод получения напряжения int GetVoltage();

- конструктор с параметрами LightDevice(int Light, int Power, int Voltage).

Унаследовать от класса LightDevice класс Lamp, содержащий в себе элементы:

- поле «состояние» (вкл/выкл) int State;

- поле «цвет» int Color;

- конструктор с параметрами Lamp(int Light, int Power, int Voltage, int Color);

- метод «Включить» void On();

- метод «Исключить» void Off().

В классе Lamp перегрузить оператор ++ (унарный оператор класса), новое действие - увеличить яркость.

 

Вариант 10

Создать класс Confection, включающий в себя следующие элементы:

- поле «Название» char * Name;

- поле «Дата изготовления» struct Date {int year; int month; int day} ProductDate;

- поле «Срок годности» struct Date {int year; int month; int day} BestBefore;

- включить в класс поле класса Filling (начинка) Filling * filling;

- метод получения даты изготовления int GetProductDate();

- метод получения названия int GetName();

- метод добавления начинки void AddFilling(Filling filling);

- конструктор с параметрами Confection (char * Name, Date ProductDate, Date BestBefore, Filling * filling).

Создать класс Filling, содержащий в себе элементы:

- поле «количество ингредиентов» int Number;

- поле «Название» char * Name;

- конструктор с параметрами Filling (int Number, char * Name);

- метод «Удалить ингредиент» void AddIngredient ();

- метод «Добавить ингредиент» void DelIngredient ().

В классе Confection перегрузить оператор ~ (унарный оператор класса), новое действие - удалить начинку.

 

Вариант 11

Создать класс Ellipse, включающий в себя следующие элементы:

- поле «центр» Point * Center;

- поле «малый радиус» float a;

- поле «большой радиус» float b;

- метод координат центра Point GetCenter();

- метод получения малого радиуса float Get_a();

- метод получения большого радиуса float Get_b();

- метод проверки, является эллипс окружностью int isCircle();

- конструктор с параметрами Ellipse(Point * Center, float a, float b).

Создать класс Point, содержащий в себе элементы:

- поле «координата X» float X;

- поле «координата Y» float Y;

- метод установления координат void SetCoordinate(float X, float Y);

- метод получения координаты X float GetX();

- метод получения координаты Y float GetY();

- конструктор с параметрами Point(float X, float Y).

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

 

Вариант 12

Создать класс Function, что включающий в себя следующие элементы:

- поле «запись функции» char * FunctionString;

- поле «количество точек разрыва» int NumOfPointDiscontinuity;

- поле «количество переменных» int NumOfVariables;

- метод получения записи функции char * GetFunctionString();

- метод получения количества точек разрыва int GetNumOfPointDiscountinuity();

- метод получения количества переменных int GetNumOfVariables();

- конструктор с параметрами Function(char * FunctionString, int NumOfPointDiscontinuity, int NumOfVariables).

Создать класс Sin, содержащий в себе элементы:

- поле «период» float Period;

- поле «амплитуда» float Amplitude;

- метод установления амплитуды void SetAmplitude(float A);

- метод установления периода void SetPeriod(float T);

- метод получения значения функции в указанной точке float GetValue(float x);

- конструктор без параметров Sin().

В классе Sin перегрузить оператор -- (унарный оператор класса), новое действие - уменьшить амплитуду на 0.1.

 

Вариант 13

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

- поле «скорость» int Speed;

- поле «высота полета» int Height;

- поле «дальность полета» int Distance;

- поле «количество пассажиров» int NumOfPass;

- метод получения скорости int GetSpeed();

- метод получения дальности полета int GetDistance();

- метод получения высоты полета int GetHeight();

- метод получения количества пассажиров int GetNumOfPass();

- метод проверки, может летать на указанной высоте int IsFlying(int Height);

- конструктор с параметрами Fly(int Speed, int Distance, int NumOfPass, int Height).

Создать класс Helicopter, содержащий в себе элементы:

- поле «количество винтов» int NumOfScrew;

- поле «объем топливного бака» int Capacity;

- метод заправки бака int AddFuel(int Fuel); (Если бак уже полный, то возвращает - 1, иначе - 0)

- конструктор с параметрами Helicopter(int Speed, int Distance, int NumOfPass, int Height, int NumOfScrew, int Capacity).

В классе Helicopter перегрузить оператор ~ (унарный оператор класса), новое действие - сброс топлива.

 

Вариант 14

Создать класс CelestialBody, включающий в себя следующие элементы:

- поле «вес» float Mass;

- поле «радиус» float Radius;

- метод получения веса int GetMass();

- метод получения радиуса int GetRadius();

- метод расчета плотности вещества небесного тела float GetDensity();

- конструктор с параметрами CelestialBody(float Mass, float Radius).

Создать класс Planet, содержащий в себе элементы:

- поле «период обращения вокруг оси» float RotatePeriod;

- поле «период обращения вокруг центра системы» float RotationPeriod;

- расстояние до центра системы float Distance;

- метод получения скорости оборота вокруг оси float GetRotatePeriod();

- метод получения скорости оборота вокруг центра системы float GetRotationPeriod();

- метод получения расстояния от центра системы float GetDistance ();

- конструктор с параметрами Planet (float Mass, float Radius, float RotatePeriod, float RotationPeriod, float Distance).

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

 

Вариант 15

Создать класс MobilePhone, включающий в себя следующие элементы:

- поле «производитель» char * Vendor;

- поле «модель» char * Model;

- класс включает объект класса SIM-карта SIM * card;

- метод получения названия телефона (производитель + модель) char * GetName();

- метод вызова void Call();

- метод отправки SMS void SendSMS();

- метод «вставить SIM» void InsertSIM(SIM card);

- конструктор с параметрами MobilePhone(char * Vendor, char * Model).

Создать класс SIM, содержащий в себе элементы:

- поле «номер» char * Number;

- поле «оператор» char * Operator;

- конструктор с параметрами SIM(char * Operator, char * Number).

В классе MobilePhone перегрузить оператор ~ (yнарный, оператор класса), новое действие - вынуть SIM-карту.

 

Вариант 16

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

- поле «валюта» char * Currency;

- поле «сумма» long Sum;

- метод получения валюты char * GetCurrency();

- метод получения суммы long GetSum();

- конструктор с параметрами Money(char * Currency, long Sum).

Создать класс Account, содержащий в себе элементы:

- поле «ФИО» char * FIO;

- поле «идентификационный код» long ident;

- метод «положить деньги на счет» void AddMoney(long Sum);

- метод «снять деньги со счета» long SubMoney(long Sum); (-1 Если нет указанной суммы)

- конструктор с параметрами Account(char * FIO, long Ident, Money m).

В классе Account перегрузить оператор ! (унарный, оператор класса), новое действие - обнулить счет.

 

Вариант 17

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

- поле «название» char * Title;

- поле «количество страниц» int Number;

- метод получения названия char * GetTitle();

- метод получения количества страниц int GetNumberPage();

- конструктор с параметрами Print(char * Title, int Number).

Унаследовать от класса Print класс Book, содержащей в себе элементы:

- поле «Автор» char * Author;

- поле «Издательство» char * Publicator;

- поле «Тираж» int Count;

- конструктор с параметрами Book(char * Publicator, int Count, char *).

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

 

Вариант 18

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

- поле «размер» Size s;

- поле «данные» int Data [s.Raw, s.Column];

- метод получения количество строк int GetRaw();

- метод получения количество столбцов int GetColumn();

- метод получения значения ячейки int GetValue(int i, int j);

- конструктор с параметрами Matrix(Size s, int InitialValue).

Создать класс Size, содержащий в себе элементы:

- поле «количество строк» int Raw;

- поле «количество столбцов» int Column;

- конструктор с параметрами Size(int Raw, int Column).

В классе Matrix перегрузить оператор ++ (бинарный, дружественный оператор), новое действие - умножение матриц.

 

Вариант 19

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

- поле «сорт» char * Type;

- поле «возраст» int Age;

- поле «влажность» int humidity;

- метод получения сорта int GetType();

- метод получения возраста int GetAge();

- метод получения влажности int GetHumidity();

- конструктор с параметрами Wood (char * Type, int Age, int humidity).

Создать класс Timber (брус), включающий в себя элементы:

- поле «длина» int Length;

- поле «площадь поперечного сечения» float Square;

- метод отпиливание куска void Truncate(int length);

- конструктор с параметрами Timber(char * Type, int Age, int humidity, int Length, float Square).

В классе Wood перегрузить оператор -- (унарный оператор класса), новое действие - уменьшение влажности на 5%.

 

Вариант 20

Создать класс Mebel, включающий в себя следующие элементы:

- поле «производитель» char * Vendor;

- поле «материал» char * Material;

- метод получения производителя char * GetVendor();

- метод получения материала char * GetMaterial();

- конструктор с параметрами Mebel(char * Vendor, char * Matrial).

Унаследовать от класса Mebel класс Table, содержащий в себе элементы:

- поле «количество ножек» int Num;

- поле «высота» int Height;

- поле «ширина» int Width;

- поле «длина» int Length;

- метод расчета периметра стола float Perimeter();

- конструктор с параметрами Table(char * Vendor, char * Material, int Num, int Height, int Width, int Length).

В классе Table перегрузить оператор ++ (унарный оператор класса), новое действие - вернуть площадь крышки стола.


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

 

 

1. Единая система программной документации. - М.: Государственный комитет СССР по стандартам, 1982. - 128 c.

2. Скотт К. UML. Основные концепции. – М.: Издательский дом “Вильямс”, 2002. – 144с.

3. Страуструп Б. Язык программирования С++. - М.: Бином, Невский Диалект, 2004. - 1104с.

4. Прата С. Язык программирования С++. Лекции и упражнения. Учебник. - М.: Диасофт, 2005. - 1102с.

5. Павловская Т.А. C/C++. Программирование на языке высокого уровня. - СПб.: Питер, 2006. - 461с.

6. Подбельский В.В. Язык Си ++. Учебное пособие. - М.: Финансы и статистика, 2008. – 560с.

7. Франка П. С++: учебный курс. - СПб.: Питер, 2006. - 528с.

8. Дейтел Х.М., Дейтел П.Дж. Как программировать на C++. - М.: Бином. Лаборатория знаний, 2003. - 1152 с.

9. Методические указания и задания к выполнению курсовой работы по дисциплине "Основы программирования и алгоритмические языки (для студентов специальности "Программное обеспечение автоматизированных систем") / Сост .Н.Н. Дацун. - Донецк, ДонГТУ, 2001. - 56с.

10. Методичні вказівки і завдання до лабораторних робіт із курсу «Основи програмування» (для студентів напряму підготовки 6.050103 «Програмна інженерія» денної форми навчання і очно-заочної форми навчання з наданням денних послуг). Част. 1./ Укладачi: Н.М. Дацун, I.О. Коломойцева. - Донецьк, ДонНТУ, 2010. - 128 с.


ПРИЛОЖЕНИЕ А

 

Задание на курсовой проект

студента ____________________ (фамилия, имя, отчество) групы _____

 

1 Тема работы ________________________________________________

_____________________________________________________________

2 Срок сдачи студентом законченной работы __________ "__.__.____"

(Неделя) (дата)

3. Входные данные для работы: __________________________________

_____________________________________________________________

4. Содержание пояснительной записки: ___________________________

_____________________________________________________________

_____________________________________________________________

5 Перечень графического материала: _____________________________

_____________________________________________________________

_____________________________________________________________

_____________________________________________________________

6. Дата выдачи задания ________. 02. 20___

ГРАФИК выполнения курсового проекта

Наименование этапа Срок выполнения
Неделя Дата
Выдача задания на курсовой проект.Уточнение задачи.  
Постановка задачи. Определение требований к программе. а) запись постановки задачи; б) составление технического задания и его утверждение. 1-2:      
Объектно-ориентированный анализ и проектирование: а) объектно-ориентированный анализ; б) проектирование структуры классов; в) проектирование отношений между классами; г) проектирование структуры объектов и их поведения. 3-8:   3-4 4-5 5-6   6-8    
Техническое проектирование: а) модульный анализ: определение структуры программы, ее модулей и их взаимосвязей; б) разработка основного алгоритма функционирования программы; в) создание спецификации модулей.    
  Рабочее проектирование: а) определение структур данных и разработка алгоритмов работы модулей; б) разработка классов: 1) реализация инкапсуляции; 2) реализация наследования; 3) реализация полиморфизма. 5-10: 5-6     6-7 7-9 9-10  
Написание программы 9-12  
Настройка программы 11-12  
Комплексная отладка и тестирование  
Написание пояснительной записки  
Защита курсового проекта  

 

Студент ________________ (подпись) Руководитель __________ (подпись)

"___" марта 20___ г.

(Дата)

 


ПРИЛОЖЕНИЕ Б

ПРИМЕР "ТЕХНИЧЕСКОГО ЗАДАНИЯ" НА КУРСОВОЙ ПРОЕКТ С КРИТЕРИЯМИ ОЦЕНКИ

 

 

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

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

 

Утверждаю

Башков Е.А.

___________

__. 03.20__ г..

 

 

ТЕХНИЧЕСКОЕ ЗАДАНИЕ

к курсовому проекту по дисциплине

"Объектно-ориентированное программирование"

на тему: "Объектно-ориентированная система

"Торговый центр и магазин самообслуживания" "

 

Руководитель: Выполнил:

 

_______ каф. ПМИ студент (ка) гр.ПИ -__

 

_________________ __________________

__. 03.20__ г. __. 03.20__ г.

 

Донецк 20__

ВВЕДЕНИЕ

 

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

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

Целью курсового проекта является закрепление практических навыков самостоятельной постановки и решения задачи обработки данных с помощью ЭВМ средствами ООП. Во время выполнения курсового проекта студент должен овладеть методикой объектно-ориентированного проектирования программ по формализации и решению поставленной задачи, технологическими приемами разработки объектно-ориентированных программ на языке Си++.

Условием успешного выполнения курсового проекта являются практические навыки ООП, полученные при выполнении лабораторных работ по дисциплине “ООП”.

Разработанная программа market.exe является объектно-ориентированной системой для предметной области “Торговый центр и магазин самообслуживания”. Она предназначена для использования в высших учебных заведениях с целью демонстрации знаний, приобретенных обучаемым в области технологии разработки объектно-ориентированных программ средствами языка Си++.

 

1 ОСНОВАНИЯ ДЛЯ РАЗРАБОТКИ

 

Курсовой проект выполняется на основании “Задания на курсовой проект” по дисциплине “Объектно-ориентированное программирование” для студентов направления подглотовки “Программная инженерия”, выданное кафедрой “Прикладной математики и информатики” ДонНТУ.

 

2 НАЗНАЧЕНИЕ РАЗРАБОТКИ

 

Программное изделие market.exe является информационной системой типа “Объектно-ориентированная система”.

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

а) демонстрация описания классов Market и SelfM и работоспособности функций-членов класса:

1) конструкторов;

2) функций-членов Getxx (Get-методов);

3) функций-членов Setxx (Set-методов);

4) деструктора;

5) функций-членов Actionxx;

б) демонстрация работоспособности класса Market при перегрузке бинарного оператора -=;

в) демонстрация работоспособности класса SelfM при перегрузке унарного оператора !;

г) демонстрация работоспособности классов Market и SelfM при одиночном наследовании;

д) система помощи:

1) о программе (программный документ ”Описание программы”);

2) руководство оператора (программный документ “Руководство оператора”);

3) об авторе.

Программное изделие должно функционировать в среде MS Windows версии не ниже XP.

 

3 ТРЕБОВАНИЯ К ПРОГРАММНОМУ ИЗДЕЛИЮ

 

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

 

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

а) использование технологии раздельной компиляции файлов;

б) режим работы монитора для программы – текстовый (консольное приложение);

в) использование файлов для хранения всех данных;

г) обеспечение двуязычия в общении с пользователем.

Критерии оценивания программного изделия по степени выполнения требований технологии раздельной компиляции:

а) для оценки «удовлетворительно»: отсутствие файла проекта, объединение исходных файлов с помощью директив препроцессора;

б) для оценок «хорошо» и «отлично»: использование файла проекта и технологии раздельной компиляции файлов;

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

а) для оценки «удовлетворительно»: реализованы только два класса, описание которых представлено в словесном описании предметной области;

б) для оценки «хорошо»:

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

2) реализованы дополнительные классы, расширяющие словесное описание предметной области.

в) для оценки «отлично»:

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

2) реализованы дополнительные классы, расширяющие словесное описание предметной области и возможности интерфейса программы;

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

Критерии оценивания программного изделия по степени выполнения требований для наследования:

а) для оценки «удовлетворительно»: реализованы только два класса, описание которых представлено в словесном описании предметной области, и указанные отношения между ними;

б) для оценки «хорошо»:

1) реализованы классы, описание которых представлено в словесном описании предметной области, и указанные отношения между ними;

2) реализованы дополнительные классы - иерархия классов и/или контейнерные классы (только одиночное наследование);

в) для оценки «отлично»:

1) реализованы классы, описание которых представлено в словесном описании предметной области, и указанные отношения между ними;

2) реализованы дополнительные классы - иерархия классов и/или контейнерные классы (одиночное наследование);

3) реализовано множественное наследование.

Критерии оценивания программного изделия по степени выполнения требований для полиморфизма:

а) для оценки «удовлетворительно»: реализована перегрузка только тех операторов, описание которых представлено в словесном описании предметной области;

б) для оценки «хорошо»:

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

2) реализована перегрузка операторов для некоторых дополнительных классов;

3) перегрузка операторов выполнена как внутри, так и вне класса.

в) для оценки «отлично»:

1) реализована перегрузка только тех операторов, описание которых представлено в словесном описании предметной области;

2) реализована перегрузка операторов для всех дополнительных классов;

3) перегрузка операторов выполнена как внутри, так и вне класса.

4) в реализации полиморфизма использованы абстрактные классы и виртуальные функции.

Критерии оценивания программного изделия по степени выполнения требований к демонстрации работы системы:

а) для оценки «удовлетворительно»: все результаты работы выводятся в системный поток вывода;

б) для оценок «хорошо» и «отлично»:

1) результаты работы выводятся в системный поток вывода;

2) состояние объектов системы выводится в файловый поток вывода.

Критерии оценивания программного изделия по степени выполнения требований в режиме помощи:

а) для оценки «удовлетворительно»: использование файла с условием задачи и файла помощи;

б) для оценок «хорошо» и «отлично» - использование файлов:

1) о программе (программный документ “Описание программы”);

2) руководство оператора (программный документ);

3) об авторе.

Критерии оценивания программного изделия по степени выполнения требований по организации работы с файлами:

а) для оценки «удовлетворительно»:

1) путь доступа файлам данных установлен программным путем (является константой в программе);

б) для оценки «хорошо»:

1) путь доступа к файлам определяется пользователем на этапе выполнения программы (наличие в главном меню проекта опции настройки, в которой пользователь указывает путь доступа к файлам данных и/или их имена);

в) для оценки «отлично»:

1) путь доступа к файлам определяется пользователем на этапе выполнения программы (наличие файла конфигурации с данными о пути доступа к файлам данных и/или их именах);

2) предусмотрена обработка исключительных ситуаций при работе с файлами.

Критерии оценивания программного изделия по степени выполнения требований по обеспечению двуязычия интерфейса пользователя:

а) для оценки «удовлетворительно»:

1) приложение имеет фиксированную пару языков общения (тексты надписей являются константами в программе);

2) переключение языков реализовано только в одном кадре интерфейса;

3) двуязычие реализовано не для всех режимов работы;

б) для оценок «хорошо» и «отлично»:

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

2) переключение языков реализовано на каждом кадре интерфейса;

3) двуязычие реализовано для всех режимов работы;

 

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

 

Программное изделие для обеспечения надежности функционирования должно:

а) проверять наличие всех файлов данных;

б) обеспечить минимизацию количества информации, вводимой пользователем;

в) контролировать корректность ввода данных пользователем;

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

 

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

 

Пользователь должен иметь квалификацию не ниже “оператор ПЭВМ”.

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

 

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

 

Для функционирования программного изделия необходим персональный компьютер со стандартным набором периферийных устройств (монитор, клавиатура, мышь).

 

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

 

Курсовой проект должна быть выполнена на языке Си++ в операционной системе MS Windows версии не ниже XP.

 

4 ТРЕБОВАНИЯ К ПРОГРАММНОЙ ДОКУМЕНТАЦИИ

 

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

а) описание программы;

б) руководство оператора;

в) текст программы.

 

5 СТАДИИ И ЭТАПЫ РАЗРАБОТКИ

 

Перечень этапов и сроки приведен в табл.5.1

Таблица 5.1 - График выполнения курсового проекта