PDA

View Full Version : Progetto didattico [C++]


nuovoUtente86
26-06-2007, 21:49
Qualcuno mi da un' idea per l' argomento di un progetto didattico in C++ che non porti via tantissimo tempo e permetta di sviluppare un po le basi del C++
dal covraccarico degli operatori,all' utilizzo della classiche strutture dati alle librerie standard.Ovviamente deve essere qualcosa di piu articolato della solitaz rubrica-agendina che pur sviluperebbe i temi trattati.
Non è richiesta l' utilizzo della grafica ma solo una formattazione pulita della shell.

AngeL)
27-06-2007, 09:26
Qualcuno mi da un' idea per l' argomento di un progetto didattico in C++ che non porti via tantissimo tempo e permetta di sviluppare un po le basi del C++
dal covraccarico degli operatori,all' utilizzo della classiche strutture dati alle librerie standard.Ovviamente deve essere qualcosa di piu articolato della solitaz rubrica-agendina che pur sviluperebbe i temi trattati.
Non è richiesta l' utilizzo della grafica ma solo una formattazione pulita della shell.

uhm.. un SO? :stordita:

.. a parte gli scherzi, che so.. una calcolatrice? ovviamente non a linea di comando :P

ndakota
27-06-2007, 12:52
ma la calcolatrice è ancora più banale dell'agenda/rubrica :D

mattia.pascal
27-06-2007, 14:59
Puoi anche provare a fare qualcosa attinente a qualche altra materia. Chiedi ai colleghi degli anni precedenti, o fatti consigliare dal prof. E comunque se il progetto serve a prendere dimistichezza con i concetti fondamentali del c++( overloading degli operatori, ereditarietà, polimorfismo etc...) non ha nessuna importanza che cosa fai, ma come lo fai. Anche la rubrica o la calcolatrice andrebbero bene, l'importante è mettere in pratica correttamente quello che hai imparato in teoria.

nuovoUtente86
27-06-2007, 19:27
Per chi suggeriva di sviluppare il progetto nel bound di altre materie,era un po la mia idea per cui ero orientato allo sviluppo di qualcosina inerenti proprio i sistemi operativi oppure qualcosa inerenti le rete....o qualcosa che penso sia irrealizzabile..ovvero qualcosa che generi codice C++ da programma java o viceversa...
L' agendina e la calcolatrice nn sono tra gli argomenti presentabili.
Non ho grosse difficolta teoriche con il c++ ma solo poca dimestichezza vendendo dal java che conosco e utilizzo piu che discretamente.

Perry_Rhodan
27-06-2007, 20:06
Per chi suggeriva di sviluppare il progetto nel bound di altre materie,era un po la mia idea per cui ero orientato allo sviluppo di qualcosina inerenti proprio i sistemi operativi oppure qualcosa inerenti le rete....o qualcosa che penso sia irrealizzabile..ovvero qualcosa che generi codice C++ da programma java o viceversa...
L' agendina e la calcolatrice nn sono tra gli argomenti presentabili.
Non ho grosse difficolta teoriche con il c++ ma solo poca dimestichezza vendendo dal java che conosco e utilizzo piu che discretamente.

Un convertitore di codice da C++ a Java e viceversa sarebbe una cosa FANTASTICA :D ma temo un tantino difficile da realizzare.
Anche un convertitore parziale, che genera uno stub di codice convertito, sarebbe comunque utile.

PS: Se lo fai fammelo avere, mi servirebbe proprio :cool:

mattia.pascal
27-06-2007, 20:10
Il simulatore di una rete non sarebbe male e puoi scegliere tu il livello di difficoltà con cui affrontare il problema.

nuovoUtente86
27-06-2007, 22:40
Un convertitore di codice da C++ a Java e viceversa sarebbe una cosa FANTASTICA :D ma temo un tantino difficile da realizzare.
Anche un convertitore parziale, che genera uno stub di codice convertito, sarebbe comunque utile.

PS: Se lo fai fammelo avere, mi servirebbe proprio :cool:

Potrei provarlo a fare,magari in modo parziale dimostrativo ma nn ho proprio idea da dove cominciare.

nuovoUtente86
27-06-2007, 22:41
Il simulatore di una rete non sarebbe male e puoi scegliere tu il livello di difficoltà con cui affrontare il problema.

dove posso trovare documentazione per partire?

mattia.pascal
28-06-2007, 07:57
La prima cosa che devi fare è scegliere il protocollo che vuoi simulare. La scelta sarà tra uno dei protocolli che hai già studiato e che conosci. Una volta scelto il protocollo, incominci ad impostare il simulatore. Se però non hai propio idea di come realizzarlo forse conviene che ti orienti su un qualcosa che padroneggi meglio. Io ti posso solo dire che è un progetto alla portata di tutti; in 2 settimane di lavoro si può fare qualcosa di simpatico. Per quanto riguarda documentazione non so che dirti, prova a cercare su Internet ma considerà che c'è il rischio di imbattersi in cose troppo "ben fatte".

cionci
28-06-2007, 08:37
Deve essere ad ogni costo qualcosa di utile o può essere anche qualcosa di meno utile, ma didatticamente valido ?
Attento perché appena parli di rete e di sistemi operativi entri in argomenti che riguardano tutte funzioni di libreria non standard...

nuovoUtente86
28-06-2007, 15:23
La prima cosa che devi fare è scegliere il protocollo che vuoi simulare. La scelta sarà tra uno dei protocolli che hai già studiato e che conosci. Una volta scelto il protocollo, incominci ad impostare il simulatore. Se però non hai propio idea di come realizzarlo forse conviene che ti orienti su un qualcosa che padroneggi meglio. Io ti posso solo dire che è un progetto alla portata di tutti; in 2 settimane di lavoro si può fare qualcosa di simpatico. Per quanto riguarda documentazione non so che dirti, prova a cercare su Internet ma considerà che c'è il rischio di imbattersi in cose troppo "ben fatte".
Conosco molto bene il TCp ad esempio e me la cavicchio con il routing.

cionci
28-06-2007, 18:20
Ripeto che se vuoi fare qualcosa che ha a che fare con la rete non puoi usare solo funzioni della libreria standard...

Se ti va bene allora ti propongo questa cosa:
- fai prima di tutto un semplice framework a oggetti per la creazione/gestione di connessioni UDP client e server.
- crea un'astrazione del canale trasmissivo reale
- crea un'astrazione del canale trasmissivo, ma questa volta virtuale, modella il canale tramite banda, latenza, error rate...gestisci il tempo in maniera virtuale (cioè se vuoi fare una simulazione che dura un secondo, non deve durare un secondo reale, ma solo il tempo necessario a fare i calcoli della simulazione)
- A questo punto crea su UDP un semplice protocollo con controllo di errore e ritrasmissioni. Il canale virtuale ti permetterà di simulare il comportamento del protocollo al variare delle caratteristiche del canale virtuale

In pratica è un framework per le trasmissioni UDP, ma che permette di fare il testing in locale, modellando il canale di trasmissione, in modo da permettere di testare nelle situazioni più critiche un protocollo di rete basato su UDP...

nuovoUtente86
28-06-2007, 23:10
Ripeto che se vuoi fare qualcosa che ha a che fare con la rete non puoi usare solo funzioni della libreria standard...

Se ti va bene allora ti propongo questa cosa:
- fai prima di tutto un semplice framework a oggetti per la creazione/gestione di connessioni UDP client e server.
- crea un'astrazione del canale trasmissivo reale
- crea un'astrazione del canale trasmissivo, ma questa volta virtuale, modella il canale tramite banda, latenza, error rate...gestisci il tempo in maniera virtuale (cioè se vuoi fare una simulazione che dura un secondo, non deve durare un secondo reale, ma solo il tempo necessario a fare i calcoli della simulazione)
- A questo punto crea su UDP un semplice protocollo con controllo di errore e ritrasmissioni. Il canale virtuale ti permetterà di simulare il comportamento del protocollo al variare delle caratteristiche del canale virtuale

In pratica è un framework per le trasmissioni UDP, ma che permette di fare il testing in locale, modellando il canale di trasmissione, in modo da permettere di testare nelle situazioni più critiche un protocollo di rete basato su UDP...
UDp di suo non si occupa nei livelli piu bassi non si occupa del controllo degli errori,ma demanda al livello applicazioni.Tu dici di aggiungere funzionalità di controllo?

wingman87
28-06-2007, 23:21
L'UDP è un protocollo di trasporto, quindi allo stesso livello del TCP. E' praticamente equivalente al TCP ma è privo di controllo degli errori, infatti è usato per applicazioni tipo videoconferenze o chiamate VOIP.
Secondo me non è il caso che ti complichi la vita, stai sull'UDP e basta...

cionci
29-06-2007, 07:51
UDp di suo non si occupa nei livelli piu bassi non si occupa del controllo degli errori,ma demanda al livello applicazioni.Tu dici di aggiungere funzionalità di controllo?
Sì...limitate. Ma lo scopo non è tanto l'aggiungere le funzionalità al UDP, ma creare un framework che permetta di testare protocolli basati su UDP. La creazione di un protocollo basilare è solo un'applicazione del framework per far vedere come funziona.

Il framework UDP dovrebbe essere una cosa:

server socket client socket
v v
v v
v v
astrazione del canale trasmissivo

Dopo il semplice protocollo da testare userà le funzioni messe a disposizione dal framwork UDP...
Quando usi l'astrazione del canale trasmissivo sarà una classe astratta che verrà implementata dal canale reale e dal canale virtuale.
Ovviamente ti servirà un'astrazione anche per il timer, nel caso tu stia usando il canale reale dvorai implementare la lettura del tempo di macchina, nel caso tu stia usando il canale virtuale dovrai implementare la lettura del tempo virtuale, che verrà appunto gestito dal canale trasmissivo.