Salve a tutti! sono un neofita della programmazione orientata agli oggetti e devo fare un progetto per un esame del poli.
Il progetto consiste nel creare un simulatore di porte logiche, o meglio un circuito composto di porte logiche.
Le specifiche sono:
- mi vengono forniti due file di testo al cui interno vi sono scritti:
1)"Circuit Description": nome del circuito, numero di inputs e outputs, numero di collegamenti interni e la lista delle porte che compongono il circuito(esempio qui sotto)
NAME adder_1bit
INPUTS 3
OUTPUTS 2
NETS 3
// this is a comment
GATES
XOR2 U0 I0, I1, N0
XOR2 U1 N0, I2, O0
AND2 U2 N0, I2, N1
AND2 U3 I0, I1, N2
OR2 U4 N1, N2, 01
dove il numero dopo il nome della porta è il numero di ingressi della porta, Ux è l'identificatore della porta e dopo di esso sono "elencati" in ordine inputs ed infine l'output della porta. Ix sta per ingresso principale, Nx sta per collegamenti interni.
2)"Input Patterns" : stringhe di 1 e 0 che, per ogni riga, rappresentano gli input da dare in pasto al circuito(esempio qui sotto)
0 1 1
1 1 1
0 1 0
1 0 0
0 0 1
- devo considerare dei possibili errori di formattazione dei file di testo quindi la gestione degli errore in fase di acquisizione dati
- devo generare un file di testo("Circuit Outputs") al cui interno vi siano i vaori delle uscite per ogni riga del file "Input Patterns".
La mia idea di partenza era generare una matrice mettendo sulle righe le uscite di ogni porta e sulle colonne gli ingressi di ogni porta più una colonna che indichi il tipo di relazione esistente tra ingresso e uscita. Dopodichè, mediante un apposito algoritmo, elaborare tale matrice e ricavare le uscite del circuito.
Il mio problema è che essendo un neofita, e non avendo avuto un corso di programmazione, sono un po nella m.... e non ho molto tempo per completarlo.
Ho letto un libro di fondamenti di programmazione di c++(Deitel) e mi è servito per capire i concetti di polimorfismo, ereditarierà, gestione dei puntatori ecc.... però finchè non ci sbatto il muso non posso capire i meccanismi di questo tipo di programmazione.
Chiedo gentilmente a voi, comunità di programmatori, se avreste un po del vostro tempo da dedicare a questo progetto e darmi qualche dritta o indirizzarmi verso fonti da cui attingere per poter completare questo progetto!