View Full Version : Progetto in C
Ciao a tutti
Sto seguendo per la prima volta un corso universitario di programmazione in C.
Il corso mi ha permesso di avere una visione completa del linguaggio.
L'esame consiste nella presentazione di un progetto avente un codice con qualche migliaio di righe e in allegato tutta la documentazione.
Purtroppo essendo un novellino nel settore e dato che il professore ci ha libertà totale mi trovo in una situazione di stallo, non ho idea di che pesci pigliare :doh:
Mi appello a qualcuno più esperto di me: riuscite a consigliarmi qualche applicazione o qualche idea che potrebbe fare al caso mio?
Grazie mille a tutti in anticipo :)
pabloski
13-05-2016, 10:05
Magari e' meglio partire da cosa voi avete studiato. Ad esempio, se non avete studiato i socket, logicamente non puoi presentarti con un programma client/server.
Ciao a tutti
Sto seguendo per la prima volta un corso universitario di programmazione in C.
Il corso mi ha permesso di avere una visione completa del linguaggio.
L'esame consiste nella presentazione di un progetto avente un codice con qualche migliaio di righe e in allegato tutta la documentazione.
Purtroppo essendo un novellino nel settore e dato che il professore ci ha libertà totale mi trovo in una situazione di stallo, non ho idea di che pesci pigliare :doh:
Mi appello a qualcuno più esperto di me: riuscite a consigliarmi qualche applicazione o qualche idea che potrebbe fare al caso mio?
Grazie mille a tutti in anticipo :)
Ma non è possibile che il professore assegni un progetto così, ma stiamo scherzando? Dovrebbe valutare in base a come padroneggiate la programmazione in C, mica a quale progetto vi viene in mente.
Intanto vi ringrazio per le risposte e mi scuso per il ritardo.
Per quanto riguarda il progetto la consegna è questa, tra l'altro il lavoro è individuale, quindi mi porterà via una marea di tempo :muro:
Ovviamente nel migliaio di righe sono inclusi i commenti.
Ci ha dato la piena libertà confidando nel fatto che noi fossimo navigati nel settore, essendo la facoltà di ingegneria, però purtroppo questo è il mio secondo corso di programmazione dopo java quindi personalmente mi sento ancora inesperto.
Sicuramente in questo forum c'è qualcuno più esperto di me quindi speravo di trovare qualche buono spunto. :D
tomminno
19-05-2016, 08:28
Boh io sul tema libero proverei a tirare giù qualche idea di mio interesse.
Prova a dirci qualche software che ti piacerebbe realizzare e vediamo se è fattibile.
Certo non tirare in ballo un'app per Android che in C te la scordi :D
Intanto vi ringrazio per le risposte e mi scuso per il ritardo.
Per quanto riguarda il progetto la consegna è questa, tra l'altro il lavoro è individuale, quindi mi porterà via una marea di tempo :muro:
Ovviamente nel migliaio di righe sono inclusi i commenti.
Ci ha dato la piena libertà confidando nel fatto che noi fossimo navigati nel settore, essendo la facoltà di ingegneria, però purtroppo questo è il mio secondo corso di programmazione dopo java quindi personalmente mi sento ancora inesperto.
Sicuramente in questo forum c'è qualcuno più esperto di me quindi speravo di trovare qualche buono spunto. :D
Pure io studio ingegneria, ma non mi è mai stato assegnato un progetto del genere, senza alcuna specifica :mbe:
Comunque, tu hai preferenze di qualche tipo? Considera che il C ti limita un po', a meno che tu non voglia proprio farti del male.
Scrivi un programma di scacchi :)
Non devi realizzare la GUI ma solo l'engine che comunicherà con un'interfaccia grafica tramite un protocollo (UCI o Winboard). Trovi molte risorse su Internet, anche in italiano.
Allora fin'ora del C abbiamo studiato gli argomenti base (cicli, gestione delle stringhe, funzioni), i puntatori, la gestione dinamica della memoria, strutture, enumerazioni, unioni, gestione delle librerie e macroistruzioni.
Avevo pensato ad un keylogger, che potrebbe essere una buona applicazione del C. Qualcuno ha esperienze in merito?
pabloski
21-05-2016, 09:00
Allora fin'ora del C abbiamo studiato gli argomenti base (cicli, gestione delle stringhe, funzioni), i puntatori, la gestione dinamica della memoria, strutture, enumerazioni, unioni, gestione delle librerie e macroistruzioni.
Quindi tutto a parte gli aspetti OS-dependent. Il networking, ad esempio, non lo vedo in quella lista. Questo significa che non puoi creare chissa' quali applicazione, ma devi limitarti alle solite sciocchezzuole tipo il simulatore di partite di tennis e altre amenita' del genere.
Avevo pensato ad un keylogger, che potrebbe essere una buona applicazione del C. Qualcuno ha esperienze in merito?
Perche' no. Il problema e' che e' molto dipendente dal sistema operativo e talvolta dalla specifica versione di un determinato sistema operativo.
tomminno
23-05-2016, 10:58
Allora fin'ora del C abbiamo studiato gli argomenti base (cicli, gestione delle stringhe, funzioni), i puntatori, la gestione dinamica della memoria, strutture, enumerazioni, unioni, gestione delle librerie e macroistruzioni.
Avevo pensato ad un keylogger, che potrebbe essere una buona applicazione del C. Qualcuno ha esperienze in merito?
Un keylogger deve obbligatoriamente appoggiarsi alle funzioni di sistema.
Se poi vuoi fare un keylogger globale, direi che l'operazione è decisamente ardua senza l'utilizzo di librerie già preconfezionate che ridurrebbero il tuo codice ad una manciata di righe. Ben meno delle 1000 richieste.
Gli scacchi sono parecchio complessi, un Forza4 è molto più semplice da realizzare, anche come "IA" che per forza di cose sarà molto semplificata.
Vabbè dai penso che sul migliao di righe possa chiudere un occhio, se gli porto un programma funzionale e commentato bene...l'idea del keylogger me l'ha approvata il prof quando gliela ho proposta, quindi penso che mi butterò su quello aggiungendo magari qualche funzione interessante ad esempio l'invio del log via mail.
Molti gli hanno proposto di fare dei giochi ma il professore giustamente ha storto il naso, dicendo che il C non è funzionale per quel tipo di cose, sarebbe una martellata nei maroni.
Il keylogger invece è una buona applicazione...qualcuno ha qualche idea di funzioni interessanti che potrei integrare?
Vabbè dai penso che sul migliao di righe possa chiudere un occhio, se gli porto un programma funzionale e commentato bene...l'idea del keylogger me l'ha approvata il prof quando gliela ho proposta, quindi penso che mi butterò su quello aggiungendo magari qualche funzione interessante ad esempio l'invio del log via mail.
Molti gli hanno proposto di fare dei giochi ma il professore giustamente ha storto il naso, dicendo che il C non è funzionale per quel tipo di cose, sarebbe una martellata nei maroni.
Il keylogger invece è una buona applicazione...qualcuno ha qualche idea di funzioni interessanti che potrei integrare?
Addirittura l'invio del log via mail? Senza conoscere le relative A.P.I.? Boh, sempre più strano 'sto prof...
tomminno
24-05-2016, 16:08
Vabbè dai penso che sul migliao di righe possa chiudere un occhio, se gli porto un programma funzionale e commentato bene...l'idea del keylogger me l'ha approvata il prof quando gliela ho proposta, quindi penso che mi butterò su quello aggiungendo magari qualche funzione interessante ad esempio l'invio del log via mail.
Molti gli hanno proposto di fare dei giochi ma il professore giustamente ha storto il naso, dicendo che il C non è funzionale per quel tipo di cose, sarebbe una martellata nei maroni.
Il keylogger invece è una buona applicazione...qualcuno ha qualche idea di funzioni interessanti che potrei integrare?
Io prima di pensare ad infarcire il progetto di funzioni, penserei di capire se il progetto del keylogger che hai proposto è fattibile con le tue conoscenze.
Keylogger per Windows o Linux? Se Linux: solo shell o con interfaccia grafica? Se con interfaccia grafica con X o Wayland?
L'invio log via mail lo fai tramite protocollo pop3 o imap? :D
Forse ti conveniva proporre un client di posta elettronica...
sottovento
24-05-2016, 16:46
Altra proposta: al primo esame di programmazione ci diedero un progettino molto divertente, si trattava di fare un motore (semplificato) per il calcolo dei predicati, una specie di linguaggio tipo prolog.
Era ovviamente semplificato; lo scopo era quello di esaminare se i concetti di strutture dati, ricorsione, etc. erano stati assimilati.
Ne era uscito qualcosa di carino. Te lo propongo. Ovviamente non c'e' bisogno di scrivere il parser, solo la parte di calcolo dei predicati.
Per esempio, potresti scrivere una serie di predicati del tipo:
madre(laura,andrea) /* laura è madre di andrea */
madre(laura,mario) /*laura è madre di mario */
...
fratello(X,Y) := madre(Z,X) AND madre(Z,Y); /* due persone sono fratelli se hanno la stessa madre */
fratello(X,Y) := padre(Z,X) AND padre(Z,Y); /* due persone sono fratelli se hanno lo stesso padre */
(non ho usato appositamente la sintassi prolog);
Una volta introdotti i predicati, potresti provare ad interrogare il tuo motore, per esempio
?fratello(andrea,mario)
ed il tuo motore, dopo averci pensato, potrebbe rispondere
true
Il calcolo dei predicati avviene su un albero. occorre anche implementare il backtracking.
Non e' semplicissimo, ma si tratta di circa 1000 linee di codice, anche meno
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.