При розгляді вихідних даних створюється структура ієрархії класів «Розклад студентів». Для максимальної відповідності завданням, створюється три класи:
TObject (абстрактний базовий клас);
TGroup (клас, що містить інформацію про групи);
Lesson (клас, що містить інформацію про заняття).
Ієрархія класів показана на малюнку 1.
Базовим класом в ієрархії є абстрактний клас TObject, який має абстрактний метод Show (), переобумовленої в успадкованих класах. При класичному спадкуванні на основі існуючих класів створюються нові класи, що містять як свої поля і методи, так і поля, методи, успадковані від базового класу. Суть спадкування включення-делегування полягає в тому, що один клас поглинає іншу. Простіше кажучи - це використання одного класу в іншому.
У цій роботі від абстрактного класу TObject успадковуються клас TGroup і клас Lesson за допомогою класичного наслідування. Клас TGroup так-же є абстрактним і містить віртуальну функцію AddToGroup (), яка використовується для додавання об'єкта в клас-групу, вона успадковується і переопределяется надалі. Клас Lesson використовується для створення заняття. Він містить поля: номер пари, назва, викладач, аудиторія і група; а так же метод для виведення пари та методи для отримання значення кожного поля.
Від класу TGroup успадковуються 3 класу: Semestr, Week та Day. Всі вони являють собою групи. Клас Semestr містить пов'язаний список і методи додавання в групу, а так само метод отримання номера поточного тижня GetWeek ().
Клас Week так само містить пов'язаний список, поле «Номер тижня» і методи додавання в групу, отримання поточного дня і тижня.
Клас Day, успадковані від TGroup, схожий на 2 попередніх класу, за винятком того, що він містить поля: день тижня, кількість занять в цей день, поле, яке показує, чи є взагалі заняття в цей день і масив, що містить номери занять в цей день.
Малюнок 1 - Ієрархія класів
На основі ієрархії класів будується алгоритм роботи програми:
Необхідно натиснути кнопку «Додати пару»
Заповнити всі поля.
Вибрати тижні і дні, за якими буде дана пара якщо пари чергуються по парних і непарних тижнях, то додавати окремо).
Повторювати пункт 1 до тих пір, поки не буде заповнено розклад.
Для перемикання між тижнями використовувати відповідні кнопки.
Для завершення програми повернутися на головну форму і натиснути кнопку «Вихід».
3. Програмна реалізація
На головній формі знаходяться 3 кнопки для виклику одного з дій, описаних вище. Друга форма містить 5 компонентів textbox для введення потрібних текстових значень і кілька компонентів checkbox для вибору потрібних днів і тижнів. Вибір checkbox обумовлений тим, що вони надають можливість вибрати відразу кілька пунктів. Після заповнення натискається кнопка «ОК», дані заносяться в заздалегідь створений екземпляр класу Lesson, який потім передається в клас-групу Semestr, де заноситься в потрібні тижні і групи.
Lesson obj (this-> textBox1-> Text, this-> textBox2-> Text, this-> textBox3-> Text, this-> textBox4-> Text, this-> textBox5-> Text);
if (this-> checkBox1-> Checked == true) // 1 тиждень
if (this-> checkBox18-> Checked == true)
semestr-> AddToGroup (% obj, 1, 0);
if (this-> checkBox19-> Checked == true)
semestr-> AddToGroup (% obj, 1, 1);
if (this-> checkBox20-> Checked == true)
semestr-> AddToGroup (% obj, 1, 2);
if (this-> checkBox21-> Checked == true)
semestr-> AddToGroup (% obj, 1, 3);
if (this-> checkBox22-> Checked == true)
semestr-> AddToGroup (% obj, 1, 4);
Далі дані повертаються з форми додавання в головну форму. Після додавання дані заносяться в зв'язаний список.
ref struct List
У третій формі (формі висновку) містяться 5 компонентів ListView (для кожного навчального дня тижня) і 2 кнопки для переходу між тижнями.
При виборі потрібної тижні викликається функція заповнює поля ListView:
for (int j = 0; j GetWeek (i) -> GetDay (0) -> number_of_lessons [j] semestr-> GetWeek (i) -> GetDay (0) -> GetLesson (j + 1))
ListViewItem ^ item = gcnew ListViewItem (semestr-> GetWeek (i) -> GetDay (0) -> GetLesson (j + 1) -> GetNumber (), 0);
Далі при виклику форми додавання (InputData.h) об'єкт Semestr передається в неї. Після створення екземпляра класу Lesson у формі додавання він включається в обрані тижні і дні групи Semestr.
Для виведення розкладу на екран викликається 3 форма (Form3.h). Коли Ви телефонуєте в неї так само передається об'єкт Semestr. Для виведення на екран використовується функція void PrintWeek (), яка заповнює поля listView парами, сортуючи їх по порядку.
3.2 Керівництво адміністратора
Файл Form1.h відповідає за головну форму, в ній відбувається створення об'єктів Day, Week і Semestr і потім включення їх в останній. Так-же з неї здійснюється виклик 2 форми (форми додавання) і 3 форми (форми виведення).
Файл InputData.h відповідає за форму додавання об'єктів, в якій, власне, і відбувається додавання об'єктів.
Файл Form3.h містить форму виведення і функції пов'язані з виведенням.
Дана програма тестувалася на комп'ютері наступної конфігурації:
Процесор AMD Athlon 64 3000+ S939
Windows 7 Professional 32-розрядна
Майже всі сучасні комп'ютери задовольняють даним вимогам.
Інструкція користувача
Для запуску програми потрібно відкрити файл Schedule.exe. Після цього з'явиться головна форма програми, на якій знаходяться три кнопки: "Додати пару», «Показати розклад» і «Вихід».
Для додавання заняття в список необхідно натиснути кнопку «Додати пару», після чого з'явиться форма додавання. Потім потрібно заповнити всі поля, вибрати дні занять і натиснути кнопку «Ок». Якщо не заповнені всі поля, то програма видасть повідомлення про помилку і запропонує заповнити всі поля. Після додавання запис автоматично заноситься в клас-групу Semestr в відповідну тиждень і день.
Для виведення розкладу на екран натисніть кнопку «Висновок розкладу». У вікні, за замовчуванням відкриється розклад на перший тиждень, для перемикання між тижнями використовуйте відповідні кнопки.
Рекомендовані вимоги до Компьтер:
- ЦП x86 або x64 з тактовою частотою 1 ГГц
- Об'єм оперативної пам'яті 1 Гб
- Графічний процесор з підтримкою DirectX 9 і 128 МБ пам'яті.
- .NET FrameWork 4.0
Вимоги складалися на основі вимоги ОС Windows 7, тому що програма призначена для роботи в цій ОС.
Схожі роботи:
Ієрархія і типи менеджерів
одиниці, є організація усередині системи іерархійклассов і об'єктів. Об'єктна структура важлива, так. економічної ефективності; e) складання програм рішення; f) розробка і складання детального плану рішення. 3. Виконання.
Розробка інформаційної системи Оптова база
Дипломна робота >> Інформатика
які суміщають як безпосередню розробку виробів, так розробку систем управління цими. можливо застосовувати для розробки та інших класів программ.Как вже. в стилі ООП, створюючи складну іерархіюклассов. Вибрав я цю мову програмування тому.
Розробка елементу управління для відображення векторних карт
Дипломна робота >> Інформатика
Ієрархія представлена на Рис. 2.1 Рис. 2.1 Іерархіяклассов 2.2 Додаткові елементи управління Клас AutoColor. Взаємодія цього класу.
Розробка методики досліджень. Планування і проведення досліджень
Розробка програми, що обчислює інтеграл
програмування. Мета роботи полягає в розробці програми на мові C # демонструє інтегрування. В рамках бібліотеки розроблена іерархіяклассов з успадкуванням. Базовим класом визначено абстрактний клас Integral, в якому оголошено.