Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere?
Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere?
HONOR Magic V6 è arrivato in Italia a 2.299,90 euro con una promessa precisa: unire 4 mm di spessore da aperto (8,75 mm chiuso nel modello White, 9 mm negli altri colori) a una batteria da 6.660 mAh, la più capiente mai vista su un pieghevole. Lo abbiamo usato per oltre una settimana in versione Red 16/512 GB per capire se lo Snapdragon 8 Elite Gen 5 tiene testa alla concorrenza anche fuori dai benchmark ufficiali
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7 punta su un display ampio e fluido, una batteria capace di accompagnare l'uso quotidiano senza ansie da ricarica e un prezzo accessibile, a partire da 179,90 euro per la versione con 64 GB di storage. Lo Snapdragon 6s 4G Gen 2 e i 4 GB di RAM della configurazione più diffusa frenano però chi cerca reattività e multitasking spinto: ecco il bilancio dopo due settimane di prova diretta
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Polygon è la concept car di Peugeot che mostra il futuro delle soluzioni del segmento B: tra design compatti e innovativi affiancati da dimensioni compatte uno scherzo dalla manovrabilità incredibile per le manovre a bassa velocità
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 04-02-2013, 10:04   #1
.phoenix
Junior Member
 
Iscritto dal: Dec 2012
Messaggi: 15
[C] Gestione Magazzino

Salve, devo sviluppare un progetto in C
Devo simulare la gestione di un magazzino...quindi visualizzare i prodotti, acquistarli, aggiornare la scorta.
In pratica dovrei eseguire questo:
1. Visualizzare i prodotti (con Codice, Nome, Utilizzo, Quantità, Prezzo)
2. Chiedere al cliente se vuole acquistare un prodotto
3. Dopo l'eventuale acquisto mostrare la scorta aggiornata
4. Visualizzare i prodotti in base all'utilizzo

Bene...io mi sono fermato al punto 1 e non so continuare
Se volete vi posto quello che ho fatto...

Codice:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

struct prodotto {int codice;
char nome [20];
char utilizzo [15];
int quantita;
float prezzo;
};
typedef struct prodotto Prodotto;
void main ()
{
    Prodotto scorta[7]={{1288, "Tubo", "Idraulica", 4, 10.00},
                          {1154,"Fil di ferro", "Muratura", 4, 2.50},
                          {2828,"Chiave inglese","Idraulica", 2, 5.49},
                          {6549, "Pittura", "Pitturazione",2, 5.99},
                          {1112, "Pennello", "Pitturazione", 4, 3.99},
                          {5155, "Chiavi", "Manutenzione", 3, 3.99},
                          {4856, "Sega", "Falegnameria", 1, 3.99}};


int j; /*Inventario*/

printf("Benvenuti nella ferramenta\n\n");
printf("Quali prodotti vuole acquistare?\n\n");
for (j=0;j<7;j++)
        {
            printf("Cod.: %d, Nome: %s, Utilizzo: %s, Qta': %d, Prezzo: %.2f\n",scorta[j].codice, scorta[j].nome, scorta[j].utilizzo, scorta[j].quantita, scorta[j].prezzo);
            printf("............................................\n");
        }
return 0;
}
Grazie in anticipo a chi mi vorrà aiutare

Ultima modifica di .phoenix : 04-02-2013 alle 10:05. Motivo: .
.phoenix è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2013, 10:28   #2
airon
Senior Member
 
Iscritto dal: Feb 2004
Città: milano
Messaggi: 2148
Se ancora non avete studiato file e liste e allocazione dinamica della memoria il tuo approccio è corretto. Un piccolo appunto: la main se ritorni 0 deve essere int non void.

Prima cosa farei delle funzioni per gestire i 4 punti.
Poi dopo la prima printf farei un ciclo while (con condizione per usicre) dove chiedo all'utente (scanf) che procedura vuole fare. 0 esco dal programma, 1 visualizzo i prodotti, 2 acquisto ecc.

Sistemato questo, la visualizzazione è ok.

Per quanto riguarda il punto 2-3. Devi fare una scanf e chiedere all'utente quale prodotto vuole acquistare (a parteire dal codice per esempio). Fai un ciclo sulla variabile scorta e veririchi se il codice è presente. Se presente vai a vedere la disponibilità. Se >0 è acquistabile e decrementi il valore = acquisto. Se disponibilità == 0 non è disponibile all'acquisto.

Il punto 4 non ho ben capito. Se intendi visualizzare in ordine alfabetico i prodotti in base allla stringa presente campo utilizzo o altro. Se è così devi ciclare la lista e fare un ordinamento.

Ultima modifica di airon : 04-02-2013 alle 10:50. Motivo: Correzione
airon è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2013, 10:30   #3
darksax
Member
 
Iscritto dal: Jan 2008
Città: Roma
Messaggi: 126
Intanto dai un'occhiata che ti puo' risultare utile...

http://www.cplusplus.com/reference/cstdio/scanf/
__________________
La forza dei forti sta nel traversare le traversie con occhio sereno! (PK) ...
I computer sono esattamente come gli esseri umani: fanno qualsiasi cosa tranne che pensare. (John Van Neumann)
Siamo brevi, il mondo è sovraffollato di parole. (Stanisław Jerzy Lec)
darksax è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2013, 11:36   #4
.phoenix
Junior Member
 
Iscritto dal: Dec 2012
Messaggi: 15
Ciao e grazie per le risposte
Rispondo @airon
Non abbiamo ancora studiato le allocazioni dinamiche
Per quanto riguarda le funzioni...per il primo punto penso che non serva
Il secondo punto è sbagliato non devo chiedere ma far acquistare direttamente un prodotto
Per il 4 punto...si...praticamente devo far visualizzare in ordine alfabetico i prodotti in base al loro utilizzo (che deve essere scelto dall'utente...)

Ho apportato un paio di modifiche...però il programma smette di funzionare (spero che sia un problema di pc e non di codice ho windows 8)

Codice:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

struct prodotto {int codice;
char nome [20];
char utilizzo [15];
int quantita;
float prezzo;
};
typedef struct prodotto Prodotto;
int main (void)
{
    Prodotto scorta[7]={{1288, "Tubo", "Idraulica", 4, 10.00},
                          {1154,"Fil di ferro", "Muratura", 4, 2.50},
                          {2828,"Chiave inglese","Idraulica", 2, 5.49},
                          {6549, "Pittura", "Pitturazione",2, 5.99},
                          {1112, "Pennello", "Pitturazione", 4, 3.99},
                          {5155, "Chiavi", "Manutenzione", 3, 3.99},
                          {4856, "Sega", "Falegnameria", 1, 3.99}};


int j; /*Inventario*/
int pr;

printf("Benvenuti nella ferramenta\n\nEcco i prodotti disponibili in negozio:\n\n");
for(j=0;j<7;j++)
        {
            printf("Cod.: %d, Nome: %s, Utilizzo: %s, Qta': %d, Prezzo: %.2f\n",scorta[j].codice, scorta[j].nome, scorta[j].utilizzo, scorta[j].quantita, scorta[j].prezzo);
            }

printf("\n\n");
printf("Inserisca il codice del prodotto che vuole acquistare: ",scorta[0].nome,scorta[1].nome,scorta[2].nome,scorta[3].nome,scorta[4].nome,scorta[5].nome,scorta[6].nome);
scanf("%d",&pr);
            if(pr==1288 && scorta[pr-1].quantita>0)
            {
                printf("\nHai acquistato %s.\n\n",scorta[pr-1].nome);
                scorta[pr-1].quantita--;
            }
            if(pr==1288 && scorta[pr-1].quantita==0)
            {
                printf("Prodotto non disponibile. Guarda bene l'inventario prima di selezionare un prodotto\n\n");
            }



}

Ultima modifica di .phoenix : 04-02-2013 alle 11:48.
.phoenix è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2013, 14:31   #5
airon
Senior Member
 
Iscritto dal: Feb 2004
Città: milano
Messaggi: 2148
Il problema è nel codice.

Tu chiedi il codice all'utente. L'utente scrive 1288. Oppure potrebbe benisismo scrivere 0 o 10, o 100. Mettiamo che scrive 1288.

IF Codice è 1288 AND scorta[1288-1].quantità > 0

scorta[1288-1] mica esiste...

Dovresti fare un ciclo, verificare che il codice inserito è effettivamente presente nel vettore scorta (che è lungo 7 con possibile indice da 0 a 6) e poi verificare la disponibilità..sempre in un ciclo, nello stesso!

Ti consiglio di scrivere il tuo algoritmo di risoluzione in pseudo codice e magari fai pure dei diagrammi di flusso e poi, solo poi lo trasformi in C.
Ovviamente ti consiglio di studiare meglio i costrutti del codice e i vettori perchè si evince che lo conosci poco.

Ciao

Ultima modifica di airon : 04-02-2013 alle 14:34.
airon è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere? Recensione HONOR Magic V6: spessore record e sup...
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni Redmi Pad 2 9.7: ampio display, economico e peso...
Peugeot Polygon Concept: ecco il futuro delle utilitarie Peugeot Polygon Concept: ecco il futuro delle ut...
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione Reno16 Pro: il compatto di OPPO punta su fotocam...
 Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco Hisense 55U7SE: tuttofare e accessibile, il Min...
Il presidente di Sony ha venduto il 56,5...
Nuova vulnerabilità per il kernel...
Fallout Stagione 2: 10 le nomination agl...
IQM porterà il quantum computer L...
2 MB di memoria RAM sono sufficienti per...
Incendio a Bovisa: cosa succede quando u...
AMD lancia 11 nuovi processori tra Ryzen...
IBM tra IA, sovranità digitale e ...
Blocco dei social sotto i 14 anni. A chi...
Nothing Ear (3a): la recensione delle cu...
DENZA BAO 5, il primo SUV del marchio BY...
Addio cavi in auto: Ottocast a IFA con C...
HONOR "Summer Essentials": l'e...
IBM fa la cura dimagrante ai mainframe z...
DENZA Z, la supercar con 3 motori elettr...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 02:11.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v