 | |
Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum |
[SECONDO PROGETTINO] grossi Clicca QUI per vedere il messaggio nel forum |
| wose82 |
| qualcuno ha un'idea su come si possa cominciare questo progetto??a me sembra abbastanza difficile... |
| bog86 |
Io pensavo di far qualcosa del genere: 1) Leggo il file con uno stream cn buffer 2) Metto qualcona in uno stack 3)Stampo a video cn un metodo print() 4)scrivo i metodi richiesti cn relative eccezioni 5) Implemento l'interfaccia...
Xò sono in alto mare... Basterà lo stack o servira qualche altro tipo di sequenza?? come faccio a legger e distinguer i vari tag?? help.... :? :sad: |
| wose82 |
| io insieme ad altri compagni in 2 gg abbiamo concluso poco...penso bisogna usare una lista di stack in cui suddividere le 3 parti del menu...però è un gran casino.... |
| NoWhereMan |
Sapete tradurre questa frase?
/**
* Interfaccia che rappresenta un menu come collezione di comandi (voci di
* menu), oppure singole voci inserite in un menu. |
| zizzagnaman |
A me sembra un pò un casino, cmq dopo una mattinata di scervellamento credo di esserci vicino:
si legge il file riga x riga. se si incontra il tag menu si crea un nuovo oggetto menu, che contiene come campi id nome skey listItem.
dopo aver creato l'oggetto menu viene messo in un altra lista che contiene tutti i menu.
Poi vengono letti tutti i comandi e vengono emssi nella lista degli item dell'oggetto appena pushato.
Non l'ho ancora scritto cmq.
Avete qualche idea? |
| bog86 |
| Penso anch'io che sia come dici tu, ma come fai a riconoscere i tag? con lo StringTokenizer non mi sembra possibile!?! Che sbatti, x sto progetto non passerò l'esame... |
| zizzagnaman |
Tranquillo, io ho appena provato String tokenizer.
basta che fai qlc del genere:
linea è una String e in è un FileInputManager, tk è String
linea=in.readline;
while(linea!=null){
Stringtokenizer stk = new stringtokenizer(linea, "\"><\t= ");
while(stk.hasMoreToken()){
tk=stk.nextToken();
system.out.println(tk);
}
Non sò se è compilabile (i src del progetto li ho sull'altro pc).
Cmq questo ti restituisce ad esempio:
menubar
menu
name
File
skey
Alt+F
ecc.....
insomma, già una bella comodità
se becchi menu sai che inizia un menu
sai che dopo name c'è il nome del menu
se che se c'è skey dopo viene l'attributo
si può già iniziare a riempire un oggetto
menu.name=........
menu.skey=.......
ecc.........
allora ricapitolando:
stringtokenizer su tutto il file
ci vuole una lista di menu (si può chiamare menubar ed è una lista
-o coda o stack o quell oche vuoi, non importa tanto non è una struttura dinamica, non cambia nel tempo- di oggetti "menu");
Ogni oggetto menu contiene nome, skey(facoltativo) e una lista
di "comandi" (che sono gli <item>); Bisogna stare attenti, se si becca un tag <menu> dentro la lista degli item comunque bisogna salvare l'item (ad es.barra degli strumenti è un menu, ma cmq ci serve l'oggetto barra degl istrumenti come comando di "visualizza").
Una volta progettate bene le classi e le liste resta di difficile il riconoscere quando inizia e finsice un menu, diventa solo una roba pallosa.
Cmq attenzione anche ad un altra cosa
ad es "Barra degli strumenti" viene presa come 3 token "barra" "degli" "strumenti"
Dovi metterli insieme in una stringa sola (butti tutto in una stringa fin quando non becchi un tag "menu" o "skey" o "sep" o "item" ...)
E' una roba pallosa è difficile (per me).
Diamoci una mano che ci leviamo stà rottura di c**o |
| NoWhereMan |
ma se hai un item?
<item skey="ctrl+t">testo</item>
Concludi arbitrariamente che se la stringa non è né menu, né item, né skey, né name, allora tutto il testo è il nome del menu?
E poi, sì, c'è il fatto che tokenizzi anche tutto il testo spaziato...
che rottura, usare il parser XML era molto meglio... |
| bog86 |
| grazie zizzagnaman, mi hai illuminato la retta via... ora mi metto al lavoro se riesco a combinare qualcosa di utile ti faccio sapere |
| zizzagnaman |
Credo di esserci quasi.
Ho passato la mattina a fare prove con la classe Vector.
Vi consiglio di dare un occhiata a lez06.pdf, è una delel dispense che
si trovano sul sito. Credo che usare Vector sia la cosa più facile.
Ho creato un vettore (Vector eh) "globale" che contiene tutti i menu (oggetti di tipo "menu").
Ogni oggetto "menu" a sua volta contiene un Vector di oggetti "item".
Facile e pulito, sol oche non si usano le pile come consiglia il prof.
Non sò se avete notato ma c'è un piccolo errore ortografico nel file menu.xml (un "key" al posto di un "skey").
Correggetelo altrimenti l'output impazzisce.
Ohi, fatemi sapere eh |
| NoWhereMan |
ho fatto sostanzialmente come te (usando un arraylist), ho anche messo delle proprietà aggiuntive, ad esempio se i menu hanno genitori (cioè si trovano dentro altri menu). Inoltre ho reso iterabili gli oggetti di tipo menu (che che estendono xmlmenuitem e contengono xmlmenuitme oppure altri xmlmenu)
ciao |
| number15 |
| Sul forum il prof Grossi ha messo il form per la consegna; ha parte il fatto che dice che è già scaduto il termine, ma tra parentesi dice (chiusura mercoledì 1° febbraio, ore 12.00): abbiamo quindi mezza giornata in più? |
| NoWhereMan |
| sembra di sì... |
| wose82 |
| usciti i voti....insuff :-( ma farà la media col primo...o ci boccia tutti???meno i 15 che l'hanno fatto bene.... |
| bog86 |
| io manco l'ho mandato... complimenti ai 15 geni che l'hanno completato!!! (esclusa la % di furbi che se lo son fatti fare) Cmq tra una settimana ci sarà un'altro progettino |
| wose82 |
| usciti i voti....sono passati in 12.....:muhehe: |
| NoWhereMan |
| e, per dire, ho preso solo buono :'( |
| wose82 |
| almeno l'hai passato...io mi chiedo cosa serviva fare il primo...se il progettino era uguale al progetto completo....e in più non ha fatto la media col primo....va be si ridà a fine mese.... :ueee: |
| NoWhereMan |
| che palle domani c'è l'orale... |
| number15 |
| Quando è la verbalizzazione? |
| NoWhereMan |
| era giovedì scorso... puoi verbalizzare il mese prossimo, comunque |
| bog86 |
| vai è uscito il progetto nuovo!!! rispetto al vostro sembra MOOOLTO più facile... |
| wose82 |
| ho visto sembra più facile...però non si sa mai....potrebbe avere dei casini nascosti..... |
| bog86 |
| Finito!!!! ....che sia maledetta la tariffa Time... Nessuno sa x caso quando e come è da consegnare questo nuovo progetto? |
| Antoniotek |
scusate ma il numero di oggetti di tipo abbonato che dobbiamo creare è a nostro piacere all'interno del sorgente Test?
e anche le chiamate che ogni abbonato fa sono a nostro piacere?
siamo noi quindi a dover scegliere i numeri che chiama?
quindi per assurdo potremmo fare anche una classe test all'interno della quale creiamo un solo oggetto Abbonato (con una delle tre tariffe a nostra scelta) che fa un'unica chiamata (anche questa a nostro piacere)?
grazie per la risposta! |
| bog86 |
| si esatto, ovviamente cambiando la classe test il programma deve adeguarsi correttamente...... ma tu sai quando e come è da consegnare????? |
| bog86 |
| HELP!!!! non vorrei rimaner fuori xchè nn sò la data di consegna.... |
| Antoniotek |
ok grazie, credo di averci capito qualcosa in più ora...
non ti preoccupare per la consegna, Grossi mi ha detto che la scadenza sarà circa 1 settimana dopo l'appello.
ha detto che cmq verrà messa la scadenza esatta (intorno al 27 penso) quando metteranno anche i voti dell'esame online.
cmq ancora mi pare non ci sia neppure la form per la consegna (apparirà il link sul sito di Grossi), quindi è impossibile consegnarlo già... vai tranquillo!
Grazie ancora, spero di riuscire a combinare qualcosa di decente!
a presto! |
|
|
|
|