Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:miw:miw08_ruleruntimeg [2008/05/19 22:23] miw |
pl:miw:miw08_ruleruntimeg [2019/06/27 15:50] (aktualna) |
====== Opis ====== | ====== Opis ====== |
| |
| __**Projekt zakończony**__ |
| |
Filip Haftek <filiphaftek@o2.pl> | Filip Haftek <filiphaftek@o2.pl> |
| |
| |
====== Spotkania ====== | ====== Spotkania ====== |
| [[pl:miw:miw08_ruleruntimeg:spotkania]] |
===== 080304 ===== | |
===== 080318 ===== | |
* car.pl skoncz | |
| |
===== 080401 ===== | |
* upload car.pl do wiki | |
* do przeanalizowani: [[pl:prolog:prolog_lab:prolog_lab_6#tematprzyklady_systemow_regulowych|inne systemy]] | |
| |
| |
| |
| |
| |
| |
===== 080422 ===== | |
* xshell oops | |
| |
| |
===== 080520 ===== | |
* zarys sprawozd, opis alternatywnych realizacji, pliki java w wiki we wlasnym namespace | |
| |
| |
============ Projekt ====== | ============ Projekt ====== |
</code> | </code> |
[[pl:miw:miw08_ruleruntimeg:car|Plik car.pl]] | [[pl:miw:miw08_ruleruntimeg:car|Plik car.pl]] |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
jpl_new('miw2.Info',[Q],D) | jpl_new('miw2.Info',[Q],D) |
</code> | </code> |
| Zmienione pliki: |
| * [[pl:miw:miw08_ruleruntimeg:oops|oops.pl]] |
| * [[pl:miw:miw08_ruleruntimeg:animal_kb|animal_kb.pl]] |
| |
== 2.2 OOPS System do produkcji zabawek :== | == 2.2 OOPS System do produkcji zabawek :== |
| * Problem: Po załadowaniu danych wejsciowych, przy próbie ponownego załadowania danych program wczytuje do bazy prologu dane z pierwszego wczytania, trzeba zamknąć aplikacje i uruchomić ponownie. |
* Predykat initial/0 wyświetla okno z wszystkimi możliwymi danymi wejściowymi z możliwością zaznaczenia dowolnej ilości danych | * Predykat initial/0 wyświetla okno z wszystkimi możliwymi danymi wejściowymi z możliwością zaznaczenia dowolnej ilości danych |
<code prolog> | <code prolog> |
Z = exit. | Z = exit. |
</code> | </code> |
| * readF/1 otwiera okno wyboru pliku z rozszerzeniem pl do załadowania |
| <code prolog> |
| readF(File):- |
| jpl_new('miw2.PlFileChooser',[],F), |
| jpl_call(F,getFile,[],File). |
| </code> |
| Zmienione pliki: |
| * [[pl:miw:miw08_ruleruntimeg:xshell|xshell.pl]] |
| * [[pl:miw:miw08_ruleruntimeg:cichild|cichild.pl]] |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
====== Sprawozdanie ====== | ====== Sprawozdanie ====== |
| == 1.Cel projektu :== |
| Celem projektu było swtorzenie aplikacji MV, w której modelem jest program napisany w języku prolog, natomiast interfejs został stworzony w Javie. |
| == 2. Wykonanie :== |
| W projekcie zastosowano 6 klas Javy odpowiedzialnych za wyświetlanie odpowiednich okien w trakcie działania programu. Szczegółowy opis klas znajduje się poniżej, natomiast cały projekt Javy wraz z dokumentacją znajduje się w części Materiały. Dodatkowo stworzono 6 predykatów, których opis znajduje się w części Projekt. |
| Aby uruchomić program należy wpisać odpowiednią komendę w prologu ( main. lub xshell. w zależności od programu), następnie pojawi się okienko Javy z informacją. Dalsza obsługa aplikacji polega na klikaniu odpowiednich przycisków zgodnie z pojawiającymi się instrukcjami. |
| Klasy Javy zostały napisane w możliwie uniwersalny sposób tzn: |
| * klasa Info posiada 3 różne konstruktory w celu ułatwienia obsługi jej z poziomu prologu ( String[], Compound[] lub String) |
| * klasa ControlForm jako argument pobiera Insrtukcję oraz listę przycisków, po wciśnięciu przycisku zwracana jest jego wartośc tj. 1 dla pierwszego, 2 dla kolejnego itp., co wymaga jedynie zastosowania z poziomu języka prolog zamiany wartości liczbowej na dowolną wartość. |
| |
| UWAGA: W programie OOPS po załadowaniu pliku z danymi i wybraniu odpowiednich danych startowych, aby dokonać ponownego załadowania danych wejściowych należy zamknąć program i uruchomić ponownie. |
| == 3. Zastosowane klasy i predykaty :== |
1. Klasy Javy wykorzystywane z poziomu języka Prolog: | 1. Klasy Javy wykorzystywane z poziomu języka Prolog: |
* Info | * Info - odpowiada za wyświetlanie okna z informacją [[pl:miw:miw08_ruleruntimeg:info|Info.java]] |
* MyRBForm | * MyRBForm - okno z RadioButtonami [[pl:miw:miw08_ruleruntimeg:myrbform|MyRBForm.java]] |
* MyCBForm | * MyCBForm - okno z CheckBoxami |
* YNQuestion | * YNQuestion - okno z pytaniem oraz przyciskami YES i NO [[pl:miw:miw08_ruleruntimeg:ynquestion|YNQuestion.java]] |
* MainForm | * ControlForm - okno z przyciskami do sterowania aplikacją [[pl:miw:miw08_ruleruntimeg:controlform|ControlForm.java]] |
* PlFileChooser | * PlFileChooser - okno z wyborem pliku prologu [[pl:miw:miw08_ruleruntimeg:plfilechooser|PlFileChooser.java]] |
| |
2. Predykaty wykorzystyjuące klasy Javy: | 2. Predykaty wykorzystyjuące klasy Javy: |
* question2(Result,Question) | * question2(Result,Question) |
* info(X) | * info(X) |
| * initial |
| * readF(File) |
| * control(X,Buttons) |
| Dokładny opis predykatów znajduje się w części Projekt. |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
====== Materiały ====== | ====== Materiały ====== |
Pytania: | |
- nazwa zwierzaka w MyCBForm | [[pl:miw:miw08_ruleruntimeg:wymagania|Wymagania]] |
- rozmiar Frame - 2 opcje | |
| Spakowany projekt Javy - {{:pl:miw:miw08_ruleruntimeg:miw2.zip|miw2.zip}} |
| |
| Do projektu CAR: |
| {{:pl:miw:miw08_ruleruntimeg:car.pl|car.pl}} |
| |
| Do projektu OOPS: |
| {{:pl:miw:miw08_ruleruntimeg:oops.pl|oops.pl}} |
| {{:pl:miw:miw08_ruleruntimeg:animal_kb.pl|animal_kb.pl}} |
| |
| Do projektu XSHELL: |
| {{:pl:miw:miw08_ruleruntimeg:xshell.pl|xshell.pl}} |
| {{:pl:miw:miw08_ruleruntimeg:cichlid.pl|cichlid.pl}} |
| {{:pl:miw:miw08_ruleruntimeg:readstr.pl|readstr.pl}} |
| {{:pl:miw:miw08_ruleruntimeg:readnum.pl|readnum.pl}} |
| {{:pl:miw:miw08_ruleruntimeg:writeln.pl|writeln.pl}} |