Progetto in C

di il
69 risposte

Progetto in C

Ciao a tutti, ho da consegnare un progetto in c sul funzionamento di un garage (entrata persone, calcolo tariffa e ora, pagamento), mi date un'idea sugli algoritmi da fare...?? thanks

69 Risposte

  • Re: Progetto in C

    To' chi si risente? Sei di nuovo all'attacco?

    A parte che il mio garage si potrebbe esprimere in:

    void main();

    in quanto non ho la macchina, immagino però che serve qualche idea in più...

    Due sportelli, uno in entrata e uno in uscita, in fila indiana, oppure in parallelo a più tracce. Gente che viene e va, quando ha voglia, e qualche d'uno che vuole intrufolarsi senza pagare...

    Diversi posti a disposizione, sempre qualcuno che parcheggia in mezzo, qualche fidanzato che non vede l'ora...

    Sarebbe il caso di un ring-buffer? Credo di sì. E' vincente e convincente per ogni concorso. Le macchine entrano, finché c'è spazio, e solitamente entrano più velocemente di quelle che escono. Fino alla saturazione. Un ring buffer è una memoria circolare, con la caratteristica FIFO, First-In-First-Out, il primo che entra esce per primo. Con lo svantaggio che non si possono fare eccezioni.

    A parte degli scherzi, ci vuole una struttura che rappesenta una macchina, con data di ingresso e data di uscita, e pagamento, e un flag che indica il posto libero o occupato. Poi una struttura con gli scaglioni dei prezzi, poi una procedura che calcola l'ammontare al momento che la macchina esce... +++

    Peccato che ho pochissimo tempo questi giorni, avrai notato lo stile telegrafico stop - scappo - stop.

    Giovanni
    ---
    http://www.y2ksw.com/vbulletin
  • Re: Progetto in C

    Si ho un altro esame. Ho dato una scorsa a quello che hai scritto.. ma per me è un mezzo arabo. ci pensero' su poi ti faro' sapere. thanks

    Maldengo
  • Re: Progetto in C

    <font color=violet>E' uscito il progetto , ti mando un link con i dati...se riesci dacci un'occhiata così quando avro' qualche dubbio sai già di cosa di parlo.,

    Grazie "!!!!


    Un bacio, Maldengo</font id=violet>
  • Re: Progetto in C

    ANCHE IO HO QLC DOMANDA SU TALE PROGETTO!!!AD ESEMPIO NEL FILE.TXT DEVO METTERE ANCHE IL TIPO DI VEICOLO.. SECONDO ME SI ANCHE SE NN LO HA SCRITTO PERCHè ALTRIM NN HA SENSO SCRIVERE LA PROBABILITà... PERò CATEGORIA SI RIFERISCE AD UN'ALTRA COSA!!
    altra cosa come faccio a stampare il numero totale dei veiColi che sono entrati e di persone, e di persone nn salite a bordo(IN PERCENTUALE) pEr ogni giorno (tot.10)? E LE PROBABILITà DI OGNI TIPO DI VEICOLO?

    GRAZIE MILLE E SCUSATE SE ROMPO!!!!!!!PS: IO E ZANZAN ABBIAMO GLI STESSI PROBL PENSO.. DA QNT MI HA DETTO!!!

    Eleonora
  • Re: Progetto in C

    Un'altra cosa cm faccio dal dos a scrivere gli argoemnti della liena di comando perchè se scrivo

    traghetto traghetto.txt 10

    mi da errore!!!

    ho capito... forse nel 2050 riuscirò a fare il prog


    Eleonora
  • Re: Progetto in C

    Premessa.
    Si ricorda che il progetto deve:

    essere un lavoro individuale e NON di gruppo
    essere svolto dallo studente che lo presenta e NON da terzi.



    E io cosa faccio in questo caso? Ah, giusto, guardo come ve lo cavate da soli

    Ora leggo il progetto e poi guardo un po' ...

    Giovanni
    ---
    http://www.y2ksw.com/vbulletin
  • Re: Progetto in C

    Ora gli ho dato uno sguardo e ho visto che bel compitino vi ha preparato per le feste!

    Onestamente trovo che la durata è strettissima e mi sa che il capo d'anno lo vedrete dal finestrino oltre lo schermo mentre fate la ruffia al PC

    Per primo passo consiglierei un'accurata analisi del problema, infatti il file e i campi indicati non sono sufficienti per gestire tutti i dati necessari. Se avete Access o Excel, usatelo per stendere la struttura dei dati, altrimenti ci vuole un quaderno A4 per largo.

    Ad occhio e croce farei qualcosa tipo (prendendo spunto da traghetti grossi):

    Categoria: tipi di veicoli/persone
    MaxPersone: numero massimo di persone x veicolo (1-52)
    NumeroPersone: numero effettivo di persone x veicolo (1-52)
    PrezzoVeicolo: Costo per metro quadrato e/o peso in tonnellate, 80 posti x macchine normali, 4 posti per pulman, 20 posti per moto e bicilette
    PrezzoCabina1: prima classe x persona, 50 posti x 1-2 persone
    PrezzoCabina2: seconda classe x persona, 100 posti x 3-6 persone
    PrezzoPoltrona: terza classe x persona, 300 posti x 1 persona

    Come separatore dei campi consiglierei la tabulazione (ASCII 9) o il cancelletto (#).


    Giovanni
    ---
    http://www.y2ksw.com/vbulletin
  • Re: Progetto in C

    <BLOCKQUOTE id=quote><!--<font size= face="" id=quote>-->quote:<hr height=1 noshade id=quote>
    un'altra cosa cm faccio dal dos a scrivere gli argoemnti della liena di comando perchè se scrivo

    traghetto traghetto.txt 10

    mi da errore!!!
    <hr height=1 noshade id=quote></BLOCKQUOTE id=quote><!--</font id=quote><font face="" size= id=quote>-->

    A questo pensaci dopo. Ora hai ben altre cose da fare, no?

    <BLOCKQUOTE id=quote><!--<font size= face="" id=quote>-->quote:<hr height=1 noshade id=quote>
    ho capito... forse nel 2050 riuscirò a fare il prog
    <hr height=1 noshade id=quote></BLOCKQUOTE id=quote><!--</font id=quote><font face="" size= id=quote>-->

    Hai invertito la 5 e lo 0

    ---

    Non disperare, questo è la prima regola. Una delle possibili soluzioni potrebbe essere, che ti prendi una decina di grossi programmi da Internet, li incolli uno sotto l'altro e chiami il tutto 'traghetto'. Bada però che deve avere almeno 300 pagine, meglio 1000, e così mandi i docenti in quel paese , prima che riescono a leggere tutto e capire di propria iniziativa (sì, devono mettersi un attimo nei panni di qualcuno che vuole festeggiare durante le feste), che è un progetto da almeno un mese, perfino per un prof.

    La soluzione sta nella pianificazione, e poi nella stesura del codice. Raccomando di fare lo sbaglio che facciamo noi ogni giorno: non cominciare a scrivere del codice subito. Prima il programma == diagramma di flusso, poi scorre tutto liscio.

    Se scrivete il codice e programmate nello stesso tempo (come facciamo noi spesso e malvolentieri) bisogna avere 1) una memoria di ferro, 2) autocontrollo totale == disciplina, 3) un cliente che paga a peso d'oro, 4) tanta fantasia, 5) essere in grado di programmare a memoria in modo corretto, 6) sognare di notte come risolvere i problemi di giorno.

    Il punto 6) è assolutamente indispensabile, in quanto vi da l'aria strana che circonda tutti i programmatori top-gun, e che vi rende abbastanza matti per accettare un qualsiasi progetto a costo zero. Sebbene scherzo, sognare le soluzioni è una realtà pratica ed applicata da tutti i prof che conosco, senza eccezione.

    Diventa però un peso, con il tempo, perché si programma il cervello, e se si sbaglia, si crea un worm (non virus) che può portare alla pazzia, anche se siete consapevoli dei rischi.

    In altre parole, e un pensiero complesso che sfugge al controllo, e riappare occasionalmente. Distruggerlo è molto difficile, ma i sintomi più comuni sono: impossibilità di prendere sonno, vertigini, alzheimer. E questo non è uno scherzo. Purtroppo.

    E questo può succedere quando si sta lavorando a un progetto davvero interessante e coinvolgente, perché si vuole trovare una soluzione, e non si fa altro che pensare a come risolverlo, finché il pensiero non si distacca, per riprodursi ed ampliarsi non so dove. E molte volte non produce alcun risultato, ma consuma tutte le energie.

    Vabbeh, voi che siete giovani, non avete queste preoccupazioni. Ma ricordatevi che è meglio smettere dopo due anni, fare una lunga pausa (4-6 mesi) e poi ricominciare. Questo mi ha comunicato mio prof, 27 anni fa. Non ho mai smesso, ma so di cosa stava parlando...

    Giovanni
    ---
    http://www.y2ksw.com/vbulletin
  • Re: Progetto in C

    Do una letta ai tuoi consigli e penso a domande mirate da farti.


    un forte abbraccio


    Maldengo
  • Re: Progetto in C

    Mq ieri sera mi sono venute in mente alcune idee e le ho buttate giù.. solo che non some cm scrivere in breve traghet[i].costo * traghetto[i].npersone+traghetto[i+1].costo*tragehtto [i+1].npersone... fino a traghetto[n].costo*traghetto[n].npersone]
    per ricavare l'incasso totale di una giornata... c'è un modo oppure no?

    grazie mille e auguri se nn ci sentiamo prima di Natale!!!!!!!

    Eleonora
  • Re: Progetto in C

    Ancora una question sul file.txt
    ctaegoria... metto staccate persona e tipo di veicolo cioè

    auto|poltrona|5|2|prezzoveicolo|prezzocabina, poltrona|n.poostiveicoli|npostipers|prob?

    però i campi sono più di qll indicati dal prof!inoltre posti desip devo scalare di uno ogni volta che scrivo che è entrata una macchina.. cioè se i posti per la macchina sono 10 se entra un'altra macchibna saranno 9 e così anche x le pers

    auto|poltrona|5|2|prezzoveicolo|prezzocabina, poltrona|10?|npostipers|prob?
    auto|poltrona|5|2|prezzoveicolo|prezzocabina, poltrona|9?|npostipers|prob?
    grazie ancora

    Eleonora
  • Re: Progetto in C

    <BLOCKQUOTE id=quote><!--<font size= face="" id=quote>-->quote:<hr height=1 noshade id=quote>
    ... traghet[i].costo * traghetto[i].npersone+traghetto[i+1].costo*tragehtto [i+1].npersone... fino a traghetto[n].costo*traghetto[n].npersone]
    <hr height=1 noshade id=quote></BLOCKQUOTE id=quote><!--</font id=quote><font face="" size= id=quote>-->

    Ho l'idea netta che stai per scrivere un programma per più traghetti che portano ciascuno una sola persona.

    La struttura dovrebbe essere qualcosa come:

    Traghetto.Cabina[].nPersone
    Traghetto.Vano[].nMacchine

    dove Tragetto è la struttura superiore a tutte le sotto-strutture. Secondo me, il traghetto dovrebbe contenere, per poter calcolare agevolmente:

    struct TRAGHETTO
    {
    int nCabine;
    CABINA Cabina[];
    int nMacchine;
    MACCHINA Macchina[];
    int nPersone;
    PERSONA Persona[];
    int nPrezzi;
    PREZZO Prezzo[];
    int nCategorie;
    CATEGORIA Categoria[];
    // e così via ...
    };

    In questo modo puoi accedere a tutti gli elementi partendo da un'unica struttura:

    Traghetto.Cabina[n].nPersone
    Traghetto.Cabina[n].Classe
    Traghetto.Cabina[n].Prezzo
    Traghetto.Cabina[n].MaxPersone

    Seppoi hai diversi traghetti nella giornata:

    Traghetto[n].Cabina[n].Persone
    Traghetto[n].Cabina[n].Classe
    ...

    e, volendo:

    Traghetto.Cabina[n].Persone[n].Prezzo
    Traghetto.Cabina[n].Persone[n].Soddisfatto
    Traghetto.Cabina[n].Persone[n].Pranzo[n].Pagato
    Traghetto.Cabina[n].Persone[n].Pranzo[n].Primo[n].Prezzo
    Traghetto.Cabina[n].Persone[n].Pranzo[n].Secondo[n].Prezzo
    Traghetto.Cabina[n].Persone[n].Pranzo[n].Dolce[n].Prezzo
    Traghetto.Cabina[n].Persone[n].Pranzo[n].Caffè[n].Prezzo
    Traghetto.Cabina[n].Persone[n].Pranzo[n].Grappa[n].Prezzo
    Traghetto.Cabina[n].Persone[n].Pranzo[n].Vino[n].Prezzo

    Tutto sommato credo che l'esame è mirato agli array e il corretto impiego. Come vedi sopra, si può esagerare, ed implementare tante di quelle caratteristiche che poi non servono a nulla, e che rendono il programma troppo complesso.

    Comunque con un array a due livelli si fanno molte cose utili.

    Giovanni
    ---
    http://www.y2ksw.com/vbulletin
  • Re: Progetto in C

    Per il file, credo, è come se venissero delle persone, che vorrebbero prendere il traghetto. Il termine 'probabilità' è una scelta particolarmente infelice in quanto dovresti prevedere l'uso in anticipo, e questo è praticamente impossibile, se non hai una statistica molto nutrita. Io credo che dovrebbe chiamarsi 'percentuale' di utilizzo, che dovrai ricalcolare per tutti gli elementi già inseriti nel traghetto, ogni volta che giunge qualcuno (nuova riga).

    Altrimenti, la probabilità del tipo veicolo verrebbe calcolato in base al numero delle persone che giungono in una sola volta: 1(-2) = moto, (1-)2-4 = macchina, 5-10 = pulmino, 11-52 = pulman, > 52 = treno (o combinazioni moto, macchina, pulmino).

    Giovanni
    ---
    http://www.y2ksw.com/vbulletin
  • Re: Progetto in C

    La cosa è così devo creare un file txt con probabilità lo ha scritto il prof e ha spuiegato anche cos'è!questo file txt ha n rughe e io volevo fare un ciclo da i=0 a i<n per calcolare l'incasso giornaliero del traghetto, poichè il file è solo per una giornata da quanto ho capito, poichè dice il prof che il n° di gg bisogna inserirlo come argomento della riga di comando.
    ma puoi dire una cosa la funzione random, se io voglio numeri casuali da 0 a 51 devio far0la )random()%52)+1 ma perchè mi da errore?

    il file. txt è composto così:
    macchina|cabina|2|52|23.00|43.00|100|5|

    dove 2 è il numero delle persone, 53 il nmax, 23.oo euro sono il prezzo della macchina e l'altro il prezzo della cabina, 100 è il numero di posti amccchina disp e 5 le probabilità che su 10 vecioli 5 siano macchine!

    da qui bisogna creare la struct che deve contenere cioò che è contenuto nel fuile.txt(perchè già fatto all'uni), quindi

    typedef struct{

    char *tipoveciolo;
    char *categoria;
    int npersone;
    int nmaxpersone;
    float costocategoria(cabina, poltrona);
    float costoveicolo;
    int postidisp;
    int prob;
    }client_t;

    ho un piccolo problema con il compilatore in quanto dovevo fare delle modifiche a borlan che nn ho fatto.... uffa!!

    Eleonora
Devi accedere o registrarti per scrivere nel forum
69 risposte