Проект во Јава

Член од
2 септември 2007
Мислења
72
Поени од реакции
9
Здраво на сите...Имам една мака, па ако може и ако сака некој да ми помогне...На факултет, ПМФ - Информатика имаме како задача да направиме проект во Јава програмскиот јазик, но јас не знам како да го направам проектот, ќе поставам овде да видите и ако може некој нешто да направи. Инаку, ова треба да биде направено до вторник 8 декември во 23:55 часот. Ако може некој да помогне и ако сака ќе му бидам многу благодарен, а ако не можете и не сакате не е проблем, сепак тоа е моја обврска :smir:. Еве ги задачите:

Задача 1:Евалуација на код (10 поени)
Податочната структура стек многу често се користи за евалуацијана кодот во програмските јазици. Ваша задача е да направите парсер на код од некој програмски јазик. Парсерот ќе треба да внимава на бројот на отворени големи и мали загради {} и редоследот на нивно отварање и затварање. Уште повеќе, парсерот треба да се грижи за индентацијата на кодот. После секоја отворена заграда, кодот треба да се вовлече во десно за одреден број на места. После секоја затворена заграда (и самата затворена заграда) треба да се врати наназад во лево за одреден број на места. Доколку некоја линија код не завршува со точка-запирка тогаш следната линија код е составен дел од тековната, и треба да биде вовлечена во десно за одреден број на места.



Пример:
public void test() {
int a=3;
int b=7;
for(int i=0;i<a;i++)
b=b+a;
System.out.println(b);
}
}

Парсирањето на горниот код би требало да даде exception бидејќи има една затворена заграда повеќе отколку што треба. Доколку се пушти истиот код без последната заграда, тогаш парсерот треба да го даде следниот излез:

public void test() {
int a=3;
int b=7;
for(int i=0;i<a;i++)
b=b+a;
System.out.println(b);
}

Задача 2:Каматни стапки (10 поени)
Да се направи објектно ориентирано решение со имплементација во Java за пресметување камати. Притоа знаеме дека во банкарското работење постојат два типа камати на вашите пари кои ги имате на вашата сметка: тековни камати и камати на орочени средства. За тековните камати е значајно тоа што каматната стапка е фиксна и се пресметува на месечно ниво континуирано во зависност од средствата кои ги имате на сметка, а додека пак за каматите на орочени средства е значаен периодот (бројот на месеци) на кој се орочени средствата.

Во датотека се дадени клиентите од една банка заедно со нивните сметки и средствата со кои располагаат и тоа во следниов формат:
<БР.СМЕТКА><ИМЕ><ПРЕЗИМЕ><СРЕДСТВА><Т/О><КАМАТНА СТАПКА><ВРЕМЕТРАЕЊЕ>
каде што БР. СМЕТКА е трансакциската сметка на клиентот со име ИМЕ и презиме ПРЕЗИМЕ. СРЕДСТВА се парите кои ги има клиентот на таа трансакциска сметка и Т/О дава евиденција за тоа дали на тие средства ќе се пресметува тековна камата или камата за орочени средства и КАМАТНА СТАПКА дава информација за тоа колкава е камата која треба да се пресмета. Параметарот ВРЕМЕТРАЕЊЕ е опционален и се пополнува само за орочени средства.

Ваша задача е да направите симулација на пресметување камата. Се избира кој тип накамата се пресметува. Доколку се пресметува тековна месечна камата, на моментално расположливите средства се одредува оваа камата и се додава, а доколку се пресметува месечна камата на орочени средства, каматната стапка се дели на бројот на месеци на кои се орочени средствата и врз орочените средства се пресметува камата. На крај да се направи една излезна датотека во која ќе се испечати колку изнесува каматата и моменталната состојба на средствата за секој клиент. Исто така треба да се води сметка и за исклучоците. Кога се читаат податоците од датотека, доколку се наиде на непозната камата, да се покрене исклучок НепознатаКамата. Доколку пак има линија во датотеката со недоволен број на параметри (на пр. Орочени средства без параметарот ВРЕМЕТРАЕЊЕ), се покренува исклучок НедоволноПраметри.

Задача 3:Нумерички загатки (15 поени)
Нумеричка загатка е составена од букви и знаци за аритметички операции. Пример за таква загатка е следниот: AB+B=BA.
Во нумеричките загатки различни букви означуваат различни цифри и исти букви – исти цифри. Решение на загатката е доделување на цифри на буквите на начин на кој би се добило валидно равенство. За дадениот пример едно можно решемние е 89+9=98.
Ваша задача е да напишете програма во java за решевање на нумерички загатки.
Загатките се сместени во датотека, каде секој ред од датотеката претставува една загатка. Една загатка се состои од било кој голем латински карактер (A,B,C,…) и карактери ‘+’,‘-’ и ‘=’.
Излезот треба да бидат сите можни решенија за секоја од загатките во датотеката. Притоа не треба да се печатат решенија кои имаат водечки нули (доколку има такви). Пример за изразот AB+B=C едно решение е 01+1=2, но ова решение не треба да се печати бидејќи изразот 01 има водечка нула.


Задача 4:Логички кола (20 поени)
Со користење на програмскиот јазик java треба да се измоделира креирање и евалуација на логичко коло. Логичкото коло се состои од еден влез (X), еден излез(Y) и стандардни логички порти (NOT, AND, OR и XOR). Пример за едно такво коло е даден на следната слика.



Во датотека се задава логичкото коло и тоа во следниов формат:
<БР.ПОРТА><ТИП><ВЛЕЗ1><ВЛЕЗ2>
каде што БР. ПОРТА е реден број на логичка порта, ТИП е типот на логичка порта (NOT, AND, OR или XOR), а ВЛЕЗ1 и ВЛЕЗ2 се влезовите во портата (ако е NOT порта занемарете го ВЛЕЗ2). ВЛЕЗ1 и ВЛЕЗ2 може да бидат реден број на некои од претходните зададени порти во датотеката (т.е. излез на дадена порта може да биде влез во друга порта) или симбол за единствениот влез во колото (X). Во последниот ред на датотеката е сместен излезот Y во следниов формат <Y><ВЛЕЗ> каде ВЛЕЗ е реден број на некои од претходните зададени порти во датотеката.

Вие треба со помош на датотеката да го изградите логичкото коло и да евалуирате колку ќе биде вредноста на излезот Y за двете различни вредности на влезот X.
Притоа треба да внимавате прво во валидноста на датотеката, т.е. дали има навистина само 1 влез, дали секоја порта има соодветни влезови дали има излез (и тоа само еден). Доколку има било каква невалидност треба да фрлите соодветен исклучок.
 
Член од
19 септември 2009
Мислења
14
Поени од реакции
2

Задача 1:Евалуација на код (10 поени)
Податочната структура стек многу често се користи за евалуацијана кодот во програмските јазици. Ваша задача е да направите парсер на код од некој програмски јазик. Парсерот ќе треба да внимава на бројот на отворени големи и мали загради {} и редоследот на нивно отварање и затварање. Уште повеќе, парсерот треба да се грижи за индентацијата на кодот. После секоја отворена заграда, кодот треба да се вовлече во десно за одреден број на места. После секоја затворена заграда (и самата затворена заграда) треба да се врати наназад во лево за одреден број на места. Доколку некоја линија код не завршува со точка-запирка тогаш следната линија код е составен дел од тековната, и треба да биде вовлечена во десно за одреден број на места.



Пример:
public void test() {
int a=3;
int b=7;
for(int i=0;i<a;i++)
b=b+a;
System.out.println(b);
}
}

Парсирањето на горниот код би требало да даде exception бидејќи има една затворена заграда повеќе отколку што треба. Доколку се пушти истиот код без последната заграда, тогаш парсерот треба да го даде следниот излез:

public void test() {
int a=3;
int b=7;
for(int i=0;i<a;i++)
b=b+a;
System.out.println(b);
}
Ајде прво за оваа задача. Не го разбирам добро текстот - значи треба да направиш рудиментиран парсер со користење на податочна структура "стек"??
Ако е така, тогаш треба да го читаш кодот, од датотека, и за заградите на пример -- како ќе доаѓаш до заграда истата ја ставаш на стек. И кога ќе завршиш со читање на кодот, почни да ги вадиш заградите од стекот и ако најдеш отворена заграда зголеми го бројачот на загради за 1, а ако најдеш затворена заграда тогаш намали за 1. На крај ако бројачот на загради е 0 тогаш се е ок.
Ова што тука ти го опишав е исклучиво за заградите. Не се однесува на индентацијата, како и проверките за тоа дали на крајот од редот има ";".

Инаку, парсер за некој програмски јазик се прави преку креирање на контексно слободна граматика во која ќе ги внесеш правилата за отворени/затворени загради и целокупната синтакса.
Повеќе, можеш да читаш тука http://en.wikipedia.org/wiki/Parsing


Задача 2:Каматни стапки (10 поени)
Да се направи објектно ориентирано решение со имплементација во Java за пресметување камати. Притоа знаеме дека во банкарското работење постојат два типа камати на вашите пари кои ги имате на вашата сметка: тековни камати и камати на орочени средства. За тековните камати е значајно тоа што каматната стапка е фиксна и се пресметува на месечно ниво континуирано во зависност од средствата кои ги имате на сметка, а додека пак за каматите на орочени средства е значаен периодот (бројот на месеци) на кој се орочени средствата.

Во датотека се дадени клиентите од една банка заедно со нивните сметки и средствата со кои располагаат и тоа во следниов формат:
<БР.СМЕТКА><ИМЕ><ПРЕЗИМЕ><СРЕДСТВА><Т/О><КАМАТНА СТАПКА><ВРЕМЕТРАЕЊЕ>
каде што БР. СМЕТКА е трансакциската сметка на клиентот со име ИМЕ и презиме ПРЕЗИМЕ. СРЕДСТВА се парите кои ги има клиентот на таа трансакциска сметка и Т/О дава евиденција за тоа дали на тие средства ќе се пресметува тековна камата или камата за орочени средства и КАМАТНА СТАПКА дава информација за тоа колкава е камата која треба да се пресмета. Параметарот ВРЕМЕТРАЕЊЕ е опционален и се пополнува само за орочени средства.

Ваша задача е да направите симулација на пресметување камата. Се избира кој тип накамата се пресметува. Доколку се пресметува тековна месечна камата, на моментално расположливите средства се одредува оваа камата и се додава, а доколку се пресметува месечна камата на орочени средства, каматната стапка се дели на бројот на месеци на кои се орочени средствата и врз орочените средства се пресметува камата. На крај да се направи една излезна датотека во која ќе се испечати колку изнесува каматата и моменталната состојба на средствата за секој клиент. Исто така треба да се води сметка и за исклучоците. Кога се читаат податоците од датотека, доколку се наиде на непозната камата, да се покрене исклучок НепознатаКамата. Доколку пак има линија во датотеката со недоволен број на параметри (на пр. Орочени средства без параметарот ВРЕМЕТРАЕЊЕ), се покренува исклучок НедоволноПраметри.
Оваа задача ти е поедноставна. Најпрво ја отвараш влезната датотека (http://www.roseindia.net/java/beginners/java-read-file-line-by-line.shtml) од која ги читаш податоците, и тоа најдобро е да го правиш линиија по линија. Потоа за секоја земена линија се движиш низ истата и во локални променливи ги зачувуваш клучните податоци. Откатко ќе ти заврши линијата, ги вршиш сите пресметки, за потоа истите да ги внесеш во излезната датотека (http://www.javapractices.com/topic/TopicAction.do?Id=42).

Во погорните линкови имаш неколку примери за читање и запишување во датотека преку јава. Можеш да го погледнеш и овој туториал од официјалната страница на "sun" за влезно/излезни класи каде многу убаво ти се објаснети сите работи http://java.sun.com/docs/books/tutorial/essential/io/
Внимавај отварањето на датотеките да го правиш во try{...} блок, а во finaly{...} блокот затворај ги истите.

Во врска со исклучоците едниствено треба да внимаваш ако дојдеш до корумпиран податок (невалидна каматна стапка) тогаш "фрли" исклучок, кој подолу во кодот ќе го обработиш. Исто за орочените сметки провери дали имаш времетраење, доколку не, фрли исклучок, а потоа обработи го истиот. А да, овие исклучоци ќе треба сам да ги дефинираш, за исклучоци повеќе тука http://java.sun.com/docs/books/tutorial/essential/exceptions/index.html

поздрав
 

Srcee

Unforgettable
Член од
29 април 2008
Мислења
5.275
Поени од реакции
3.496
Хах за Структури ти треба? Ах пусти ПМФ :)
 
Член од
2 септември 2007
Мислења
72
Поени од реакции
9
Горан брат, се арно што ми објаснуваш, ама работава е што јас појма немам сеуште од Јава, ептен го баталив овој предмет семестаров, а и овие задачи што ни ги поставија за проект не ни знам што се бара, да можев барем во C++ да ги решам па да најдев некој што ќе можеше во Јава да го напише тој решен код...А јас барам ако некој има нешто готово ако сака да ми прати, инаку изгледа и потпис ќе изгубам и ќе морам да го презапишам предметов следната година, ама и да нема никој да ми прати тоа е тоа, сам сум виновен ако не успеам да направам ништо..А "Срцее", да за Структури ми треба на ПМФ...
 

SkyDriver

Would like my bananna ?
Член од
31 јули 2008
Мислења
2.140
Поени од реакции
221
Друже, задачиве не се тешки само тешко дека некој би се нафатил од чиста мира да ти ги реши.

Немој да ме сватиш погрешно, ама многу безвезно звучи јас да тупам мозок со решавање задачи кои не ми требаат и притоа знаејки дека типот на кој му ги решавам задачите чека на готово т.е. луфтира мозок (можда иде по журки додека јас му решавам задачи или штознам...).

Почни да ги решаваш (што можеш сам, што можеш од Google, другари од факс...) па каде што ќе заглавиш слободно прашај, би ти помогнал, ама без да покажеш никаква заинтересираност би се чуствувал како идиот ако би се нафатил да ти помогнам. :\

Или пак крајна шанса да чекаш, некој што ќе ги реши (или што ги има веќе решено) да се смилува и да ти ги прати. :toe:
 
Член од
2 септември 2007
Мислења
72
Поени од реакции
9
SkyDriver те сваќам и во право си, но работата е што јас не му посветив време на овој предмет, го оставив за на крај, но доцна се сетив дека се ближи времето кога проектот треба да биде готов. Да се сетев порано ќе направев нешто, а вака се ми е залудно, за 2 дена јас од нула да почнам и да направам проект немам шанси. Па затоа се надевам само на помош од некој, а како што веќе кажав, ако нема таков што ќе ми помогне не е проблем, затоа што ова е моја обврска и сам ја преземам вината за мојот неуспех. И следниот пат знаејќи колку поскапо ќе платам за презапишување на овој предмет и за губење време, следната година повторно да го слушам, наместо оваа да го исчистам, е тогаш нема да го оставам како сега...Сепак благодарам :smir:
 
Член од
19 септември 2009
Мислења
14
Поени од реакции
2
Незнам што да ти кажам. Јас немам премногу време, инаку ќе ти пишев некој код, но овие денови сум многу зафатен, па време за пишување и тестирање кодови немам. Поздрав
 
Член од
2 септември 2007
Мислења
72
Поени од реакции
9
Нема проблем Горан...Ќе видам ако нешто направам со помош од колегите...Инаку благодарам :) сепак се обиде да помогнеш :smir:
 
Член од
24 август 2007
Мислења
761
Поени од реакции
15
Нема проблем Горан...Ќе видам ако нешто направам со помош од колегите...Инаку благодарам :) сепак се обиде да помогнеш :smir:
Ова ти е за денес :) Ако се снајдеш во '95та минута убаво . . .
 

Kajgana Shop

На врв Bottom