223.26K

Электронный_дневник_презентация

1.

КУРСОВОЙ ПРОЕКТ
Электронный дневник
Настольное приложение для учёта успеваемости и посещаемости
на платформе Avalonia UI
Avalonia UI
·
Entity Framework Core
·
SQLite
·
MVVM

2.

Цели и задачи
ЦЕЛЬ ПРОЕКТА
Разработать настольное приложение «Электронный дневник» для автоматизации ведения журнала успеваемости и
посещаемости учеников.
ЗАДАЧИ
1
Спроектировать модели данных
Ученики, предметы, уроки и записи журнала — 5
классов
4
Добавление и удаление учеников
Прямо из интерфейса, без правки базы вручную
Электронный дневник — курсовой проект
2
Реализовать интерфейс по MVVM
Avalonia UI + ReactiveUI, без логики в code-behind
5
Сохранение без закрытия окна
Кнопка «Сохранить» фиксирует изменения и не
завершает работу
3
Настроить хранение в SQLite
Сохранение через Entity Framework Core
6
Валидация оценки (2–5)
Проверка вводимого значения при редактировании
ячейки
2

3.

Возможности программы
Приложение реализовано как электронный дневник и включает следующий функционал:
1
3
5
Выбор предмета и даты
Журнал формируется по конкретному предмету и уроку
Удаление учеников
С автоматическим удалением его записей из журнала
Оценка в диапазоне 2–5
Некорректный ввод отклоняется до сохранения в базу
Электронный дневник — курсовой проект
2
4
6
Добавление учеников
Новый ученик сразу появляется в текущем журнале
Отметка присутствия
Флажок «присутствует» в каждой строке журнала
Сохранение без выхода
Кнопка «Сохранить» фиксирует данные, окно остаётся открытым
3

4.

Технологии реализации
Компонент
Технология
ПОЧЕМУ ТАК
Интерфейс
Avalonia UI
Avalonia UI — кроссплатформенный
UI-фреймворк, аналог WPF.
Архитектура
MVVM + ReactiveUI
MVVM — отделяет логику от
интерфейса, упрощает тестирование.
База данных
SQLite
EF Core + SQLite — лёгкая локальная
база без установки сервера СУБД.
Доступ к данным
Entity Framework Core
Язык / платформа
C# / .NET 10
Валидация ввода
Проверка диапазона оценки в обработчике DataGrid
Электронный дневник — курсовой проект
4

5.

Диаграмма классов
«DbContext»
JournalContext
+ Students : DbSet<Student>
+ Subjects : DbSet<Subject>
+ Lessons : DbSet<Lesson>
+ JournalRecords : DbSet<JournalRecord>
Subject
- Id : int
- Name : string
Lesson
1
*
- Id : int
- SubjectId : int
- Date : DateTime
связь по внешнему ключу (1 — *)
Электронный дневник — курсовой проект
JournalRecord
1
*
- Id : int
- LessonId : int
- StudentId : int
- Mark : string
- IsPresent : bool
Student
1
*
- Id : int
- FullName : string
- Grade : string
использование в DbContext
5

6.

Схема базы данных
SQLite · 4 таблицы, связанные внешними ключами
Subjects
Id : INTEGER
Name : TEXT
PK
Lessons
1*
Id : INTEGER PK
SubjectId : INTEGER
Date : TEXT
JournalRecords
1*
FK
Id : INTEGER PK
LessonId : INTEGER FK
StudentId : INTEGER FK
Mark : TEXT
IsPresent : INTEGER
Students
*1
Id : INTEGER PK
FullName : TEXT
Grade : TEXT
PK — первичный ключ таблицы. FK — внешний ключ, ссылка на PK связанной таблицы.
Каждый предмет содержит несколько уроков; каждый урок и каждый ученик — несколько записей в журнале (JournalRecords).
Электронный дневник — курсовой проект
6

7.

Итоги
Все поставленные задачи выполнены:

Спроектированы 5 классов и структура базы данных SQLite

Интерфейс реализован по MVVM на Avalonia UI + ReactiveUI

Добавлена возможность добавлять и удалять учеников

Кнопка «Сохранить» фиксирует изменения, не закрывая приложение

Оценка ограничена диапазоном от 2 до 5
Спасибо за внимание!
English     Русский Rules