Unitermy to podstawowe jednostki opisu algorytmów w ujęciu algebraicznym. Ten projekt to aplikacja desktopowa stworzona w C++ z Qt 6, która wizualnie demonstruje i realizuje transformację algebraicznej struktury unitermu z poziomej operacji eliminowania na postać pionową.
Aplikacja ma na celu graficzne odzwierciedlenie operacji zamiany, zgodnie z rozszerzoną algebrą algorytmów, oraz umożliwia archiwizację przeprowadzonych transformacji w lokalnej bazie danych.
-
Wizualizacja Unitermów: Graficzne przedstawienie unitermów w dwóch formach:
-
Poziomej:
$A ; B ; u - ?$ . -
Pionowej:
$1 ; 2 ; w - ?$ .
-
Poziomej:
-
Interaktywna Transformacja: Możliwość zamiany unitermu poziomego na pionowy poprzez podstawienie pionowej formy w miejsce jednego z operandów:
- "Zamień za A".
- "Zamień za B".
-
Lokalna Baza Danych (SQLite): Trwałe zapisywanie danych transformacji do pliku
moja_baza.db. -
Archiwizacja Danych: Formularz do zapisywania nazwy i opisu operacji wraz z wartościami unitermów (
$val1$ ,$val2$ ,$valW$ ,$valA$ ,$valB$ ,$valU$ ). - Przegląd Historii: Dedykowane okno do wglądu w zapisane rekordy w formie tabelarycznej.
Projekt jest samodzielną aplikacją desktopową (Standalone Application).
| Kategoria | Technologia | Uwagi |
|---|---|---|
| Język Programowania | C++ | Zapewnienie wydajności i pełnej kontroli nad logiką. |
| Framework GUI | Qt 6 (QtWidgets, QtSql, QtGui) | Wieloplatformowy framework do tworzenia graficznego interfejsu. |
| Baza Danych | SQLite (lokalna) | Wykorzystuje biblioteki QtSql do przechowywania danych w pliku moja_baza.db. |
| Rysowanie | QPainter |
Klasa odpowiedzialna za niestandardowe rysowanie komponentów (linii, tekstu) w metodzie paintEvent. |
Aplikacja oparta jest na architekturze warstwowej i wzorcach obiektowych (OOP), z jasną separacją logiki od warstwy prezentacji (UI) i dostępu do danych (DAL).
| Moduł / Klasa | Opis Odpowiedzialności |
|---|---|
main.cpp / MainWindow
|
Główny kontroler. Tworzy interfejs, obsługuje interakcje użytkownika i koordynuje przepływ danych. |
VerticalWidget / HorizontalWidget
|
Komponenty View. Samodzielne rysowanie unitermów w układzie pionowym/poziomym za pomocą QPainter. |
ASwapWidget / BSwapWidget
|
Wizualizacja wyniku transformacji (zagnieżdżenie pionowego unitermu w miejscu A lub B). |
database.cpp / database.h
|
Warstwa Dostępu do Danych (DAL). Statyczne metody do inicjalizacji bazy i operacji $INSERT / SELECT$. |
save.cpp / save.h
|
Okno dialogowe do wprowadzania metadanych ( |
globals.cpp / globals.h
|
Przechowuje zmienne globalne ( |
Projekt wymaga środowiska Qt 6 (z modułami
-
Pobierz kod:
-
Kompilacja (Qt Creator lub wiersz poleceń):
- Użyj Qt Creator do otwarcia pliku
.proi zbudowania projektu.
- Użyj Qt Creator do otwarcia pliku
-
Uruchomienie:
- Uruchom skompilowany plik wykonywalny.
- Przy pierwszym uruchomieniu zostanie automatycznie utworzony plik bazy danych
moja_baza.dbw katalogu aplikacji.
| Funkcjonalność | Opis |
|---|---|
| Uniterm Poziomy | Reprezentacja |
| Uniterm Poziomy i Pionowy | Jednoczesna prezentacja obu struktur eliminowania unitermów. |
| Okno Wyboru Zamiany | Interaktywny wybór wariantu transformacji: "Zamień za A" lub "Zamień za B". |
| Wynik Zamiany za B | Graficzny rezultat transformacji: pionowy uniterm osadzony w miejscu operandu B. |
| Podgląd Zapisów | Widok tabelaryczny wszystkich archiwizowanych rekordów z bazy SQLite. |
- Mateusz Misiak (Numer indeksu: 91297)
- Uczelnia: Politechnika Świętokrzyska, Wydział Elektrotechniki, Automatyki i Informatyki
- Przedmiot: Modelowanie i analiza systemów informatycznych – Projekt