Курсовая работа: Структура иерархии классов "Экран курсового проектирования"
2. Обеспечение гибкости программы для добавления новых функций;
3. Надежность программы.
Данное приложение было реализовано в среде MicrosoftVisualStudio 2010(http://www.microsoft.com/visualstudio/ru-ru/, Пахомов Б. И. С/С++ и MSVisualC++ 2008 для начинающих. – СПб.: БХВ-Петербург. 2009. – 624с.). Выбор обусловлен тем, что данная среда максимально совместима с операционной системой MicrosoftWindows7(http://windows.microsoft.com/ru-RU/windows7/products/home). Также данная среда поддерживает все версии .NETFramework(http://msdn.microsoft.com/ru-ru/netframework/default), что позволяет создавать приложения для различных платформ. MicrosoftVisualStudio 2010 включает в себя новые функции, позволяющие полностью контролировать и упрощать все этапы разработки приложения, выполнять его отладку и тестирование. Также данная среда разработки позволяет использовать визуальный конструктор, что очень важно для написания приложения. Это позволяет более быстро и качественно создать удобный пользовательский интерфейс.
Исходя из вышеперечисленного, программный продукт будет обладать следующими аппаратными требованиями:
- 32-разрядный (x86) или64-разрядный (x64)процессор с тактовой частотой 1 гигагерц (ГГц) или выше;
- 1 гигабайт (ГБ) (для 32-разрядной системы) или 2 ГБ (для 64-разрядной системы) оперативной памяти (ОЗУ);
- 16 гигабайт (ГБ) (для 32-разрядной системы) или 20 ГБ (для 64-разрядной системы) пространства на жестком диске;
- графическое устройство DirectX 9 с драйвером WDDM версии 1.0 или выше.
2 .Проектирование структуры классов
При рассмотрении исходных данных создается структура иерархии классов «Экран курсового проектирования». Для максимального соответствия заданию, создается три класса:
- TObject(абстрактный базовый класс);
- TScreen(класс, содержащий информацию об экране курсового проектирования);
- TStudent(класс, содержащий информацию о студенте и ходе его выполнения курсовой работы).
Иерархия классов показана на рисунке 1.
Абстрактный базовый класс TObject содержит поле TName(имя), которое наследуется в классы TStudent и TScreen. Это поле служит для задания имени курсовому проекту и имени студента. В конструкторе класса TObject этому полю присваивается значение «Default». Это поле наследуется с атрибутом Public. Также класс TObject содержит виртуальную функцию SetName(), которая переопределяется в классах TStudent и TScreen. Она служит для присвоения значения полю TName заданного имени. В качестве атрибута ей передается устанавливаемое имя.
Класс TScreenсодержит поля и методы, относящиеся к заголовку экрана курсового проекитрования. Информация о группе студентов, выполняющих курсовые работы хранится в поле TName, которое наследуется от базового класса TObject; информация о дате утверждения экрана курсового проектирования хранится в поле Date; информация о составе приемной комиссии – в поле Composition. В этом классе переопределяется функция присвоения имени полю TNameSetName(). Данный класс содержит две собственные функции:
- SetDate(присваивает полю Date дату утверждения экрана курсового проектирования);
- SetComposition(присваивает полю Composition информацию о составе приемной комиссии).
В качестве атрибутов этим функциям передается необходимая информация.
В классе TStudent содержится информация о студенте, выполняющем курсовую работу, точнее о ходе ее выполнения. Также как класс TScreen класс TStudent имеет наследуемое поле TName от класса TObject. Этому полю присваивается значение функцией SetName, которая переопределяется в этом же классе. Помимо этого наследуемого поля, класс содержит собственные поля:
- ControlScore(контрольная оценка за курсовой проект);
- NumberWeek(номер контрольной недели);
- *Plan(указатель на массив с плановыми процентами выполнения курсовых работ);
- *Fact(указатель на массив с фактическими процентами выполнения курсовых работ);
- *Control(указатель на массив с оценками за контрольные недели);
- Test(плановая дата сдачи завершенного курсового проекта на проверку);
- TestF(фактическая дата сдачи завершенного курсового проекта на проверку);
- Revision(плановая дата выдачи завершенного курсового проекта на доработку);
- RevisionF(фактическая дата выдачи завершенного курсового проекта на доработку);