Progettazione dell'applicazione del diagramma di flusso dell'algoritmo

2

Ho bisogno di sviluppare un'applicazione GUI in C # in cui gli utenti possano aggiungere liberamente blocchi di istruzioni / condizionali sul diagramma di flusso dell'algoritmo come quello mostrato di seguito. Con libertà, voglio dire, gli utenti possono aggiungere un blocco ovunque siano le frecce.

Sto riscontrando alcuni problemi di brainstorming su come affrontare questo problema, in particolare su cosa scegliere per la mia infrastruttura di archiviazione dei blocchi. Stavo pensando a LinkedList poiché tutto segue una moda lineare e ogni nodo ha sempre una testa e una coda, ma il blocco If / Else (b > a) ha due rami (teste) da memorizzare, quindi questo complica un po 'le cose.

Come potrebbe uno intelligente affrontare problemi come questo? Le mie scuse se questa domanda non è adatta per Programmers StackExchange, ma questo è più un problema concettuale piuttosto che un problema di implementazione, quindi ho pensato che questo posto fosse appropriato per la domanda.

    
posta l46kok 25.09.2012 - 13:04
fonte

2 risposte

3

Vorrei usare una struttura dati del grafico. Spesso vengono implementati utilizzando matrici di adiacenza o elenchi di adiacenze. Il MSDN ha un tutorial abbastanza solido. L'articolo copre entrambe le strutture di cui sopra.

    
risposta data 25.09.2012 - 13:35
fonte
0

Ho fatto qualcosa di simile a questo in Java.

Ho creato la mia lista collegata. Ho avuto un elenco di attività e un elenco di connettori.

La classe Activity aveva un numero intero che fungeva da chiave per la classe. Era un contatore sequenziale a partire da 0. La classe Attività può essere estesa per disegnare le diverse forme di attività che è necessario rappresentare. Ogni forma ha un rettangolo di delimitazione, quindi puoi collegare i connettori alle posizioni appropriate.

La classe Connector aveva due interi, che rappresentavano l'attività da e l'attività. In questo modo, non importava se un'attività avesse più di un connettore.

    
risposta data 26.09.2012 - 16:41
fonte

Leggi altre domande sui tag