Прикладной математики и информатики
Протокол № ___ от «___»_______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 - График выполнения курсового проекта
№ | Наименование этапа | Срок выполнения | |||||||||||
Неделя | Дата | ||||||||||||
Выдача задания на курсовой проект.Уточнение задачи. | |||||||||||||
Постановка задачи. Определение требований к программе. а) запись постановки задачи; б) составление технического задания и его утверждение. | 1-2: |
|
|
|
|
Дата добавления: 2015-09-20; Мы поможем в написании ваших работ!; просмотров: 858 | Нарушение авторских прав
Лучшие изречения:
Надо любить жизнь больше, чем смысл жизни. © Федор Достоевский
==> читать все изречения...
Ген: 0.016 с.