PDA

Visualizza la versione completa : [C] Gestione negozio e visualizzazione errata valore


SpecialOne1992
10-04-2012, 18:39
//archivio di un negozio con relativa vendita del prodotto
#include <stdio.h>
#include<stdlib.h>
#include<string.h>

typedef enum{LIB_T, MAG_T}tipo;
typedef struct{
char codice[8];
double prezzo;
tipo t;
int quantita;
union{
struct{
char titolo [30];
char autore [15];
int pagine;
}libro;
struct{
char motivo [30];
char colore [10];
enum{S,M,L,XL,XXL} taglia;
}maglietta;
}prodotto;
}archivio;

archivio articolo [50];
unsigned int num_cod=0;
int n=0; //contatore
int vendita=0; //contatore delle vendite
double denaro=0; // contatore incassi
int num_lib,num_mag;
void inserire_articolo(void);
void ricerca_articolo();
void visualizza_articolo(void);
void compra_articolo (void);
void visualizza_vendite (void);
int main (void){
int scelta;
do{
printf("Menu archivio negozio\n");
printf("\t 1.Inserisci un nuovo articolo\n");
printf("\t 2.Ricerca articolo per codice\n");
printf("\t 3.Visualizza articoli in magazzino\n");
printf("\t 4.Compra online\n");
printf("\t 5.Visualizza rendiconto vendite\n");
printf("\t 6.Esci\n");
scanf("%d",&scelta);
system("cls");
fflush(stdin);
switch(scelta){
case 1:
printf("-Aggiunta prodotto\n");
printf("Inserici il tipo di articolo da aggiungere:\n");
printf("0- LIBRO\n");
printf("1- MAGLIETTA\n");
printf("\nScelta: ");
scanf("%d", &articolo[n].t);
inserire_articolo();
break;

case 2: ricerca_articolo();
break;

case 3: visualizza_articolo();
break;

case 4: compra_articolo ();
break;

case 5: visualizza_vendite();
break;

case 6:
break;

default:
printf("operazione non consentita\n");

}
}
while(scelta!=6);
system ("pause");
return 0;
}
void inserire_articolo(){
double prezzo;
if(articolo[n].t==LIB_T){
num_lib=num_lib+1;
printf("Inserisci dati libro\n");
printf("inserisci il prezzo\n");
scanf("%d",&articolo[n].prezzo);
printf("inserisci la quantita disponibile\n");
scanf("%d",&articolo[n].quantita);

printf("Inserisci il titolo del libro\n");
fflush(stdin);
gets(articolo[n].prodotto.libro.titolo);

printf("Inserisci l'autore del libro\n");
gets(articolo[n].prodotto.libro.autore);

printf("Inserisci il numero delle pagine del libro\n");
scanf("%d",&articolo[n].prodotto.libro.pagine);
itoa(10000000+n,articolo[n].codice,10);
printf("Libro inserito con successo codiceID %s",articolo[n].codice);
printf("\n");
}
else{
num_mag=num_mag+1;
printf("inserisci dati maglietta\n");
printf("inserisci il prezzo\n");
scanf("%d",&articolo[n].prezzo);
printf("inserisci la quantita disponibile\n");
scanf("%d",&articolo[n].quantita);
fflush(stdin);

printf("Inserisci motivo maglietta\n");
gets(articolo[n].prodotto.maglietta.motivo);

printf("Inserisci colore maglietta\n");
gets(articolo[n].prodotto.maglietta.colore);

printf("Inserisci taglia maglietta:S=0,M=1,L=2,XL=3,XXL=4\n");
scanf("%d",&articolo[n].prodotto.maglietta.taglia);
itoa(10000000+n,articolo[n].codice,10);
printf("\nMaglietta inserito con successo codice ID:%s",articolo[n].codice);
printf("\n");
}

n++;
}
void ricerca_articolo(){
int i;
char codice[8];
if(num_mag==0&&num_lib==0)
printf("nessun prodotto presente in magazzino.\nPremi per ritornare al menu\n");
else
printf("inserisci il codice dell'articolo da ricercare\n");
scanf("%s",codice);
for(i=0;i<n;i++){
if(strcmp(codice,articolo[i].codice)==0){
printf("prodotto presente in magazzino\n");
if(articolo[i].t==LIB_T){
printf("\tTitolo: %s\n",articolo[i].prodotto.libro.titolo);
printf("\tAutore: %s\n",articolo[i].prodotto.libro.autore);
printf("\tNumero pagine: %d\n",articolo[i].prodotto.libro.pagine);
printf("\tPrezzo: %.2d E\n",articolo[i].prezzo);
printf("\tQuantita': %d\n",articolo[i].quantita);
}
else{
printf("\tMotivo: %s\n", articolo[i].prodotto.maglietta.motivo);
printf("\tColore: %s\n", articolo[i].prodotto.maglietta.colore);
printf("\tTaglia: %d\n",articolo[i].prodotto.maglietta.taglia);
printf("\tPrezzo: %.2f E\n",articolo[i].prezzo);
printf("\tQuantita': %d\n", articolo[i].quantita);
}
}
else printf("Prodotto non presente in magazzino\n");
}
}

void visualizza_articolo(){
int i;
if(num_mag==0&&num_lib==0)
printf("nessun prodotto presente in magazzino.\nPremi per ritornare al menu\n");
else
printf("Visualizzo articoli in magazzino\n");
for(i=0;i<n;i++){
if(articolo[i].t==LIB_T){
printf("Dati libro\n");
printf("\tTitolo: %s\n",articolo[i].prodotto.libro.titolo);
printf("\tAutore: %s\n",articolo[i].prodotto.libro.autore);
printf("\tNumero pagine: %d\n",articolo[i].prodotto.libro.pagine);
printf("\tPrezzo: %.2f E\n",articolo[i].prezzo);
printf("\tQuantita': %d\n",articolo[i].quantita);
}
else{
printf("dati maglietta\n");
printf("\tMotivo: %s\n", articolo[i].prodotto.maglietta.motivo);
printf("\tColore: %s\n", articolo[i].prodotto.maglietta.colore);
printf("\tTaglia: %d\n",articolo[i].prodotto.maglietta.taglia);
printf("\tPrezzo: %.2f E\n",articolo[i].prezzo);
printf("\tQuantita': %d\n", articolo[i].quantita);
}
}
}



void compra_articolo(){
int tipo,quant, i;
char titolo[30];
printf("Cosa desideri acquistare? premi 0 per libro o 1 per maglietta\n");
scanf("%d",&tipo);
for(i=0;i<n;i++){
if(tipo==0){
if(num_lib==0) printf("Nessun libro presente in magazzino\n");
else{
printf("Quale libro vuoi acquistare?\n");
printf("inserisci il titolo\n");
fflush(stdin);
gets(titolo);
if(strcmp(titolo,articolo[i].prodotto.libro.titolo)==0){
printf("Libro presente in magazzino, inserisci la quantita desiderata per l'acquisto\n");
scanf("%d",&quant);
if(quant>articolo[i].quantita)
printf("La quantita richiesta non al momento disponibile\n");
else{
articolo[i].quantita-=quant;
vendita=quant;
denaro=quant*articolo[i].prezzo;
}
}
else printf("il libro richiesto non presente in magazzino\n");
}

}
else if(tipo==1){
if(num_mag==0) printf("Nessuna maglietta presente in magazzino\n");
else{
printf("Quante magliette vuoi acquistare\n");
scanf("%d",&quant);
if(quant>articolo[i].quantita)
printf("La quantita richiesta non al momento disponibile\n");
else{
articolo[i].quantita-=quant;
vendita=quant;
denaro=quant*articolo[i].prezzo;
}
}
}
}
}
void visualizza_vendite(){
printf("il numero degli articoli venduti %d, con un incasso totale di %.2d E\n",vendita,denaro);
}



Non capisco dove sta il problema.. il compilatore non da errore ed esegue correttamente il programma, ma quando cerco di visualizzare le info relative ad un prodotto alla voce prezzo mi stampa 0.00 sempre

rsdpzed
10-04-2012, 18:59
leggi il prezzo con %d ma un double...

SpecialOne1992
11-04-2012, 11:07
ok.. ho avuto una svista grazie per l'aiuto :) ora funziona

oregon
11-04-2012, 11:08
Hai corretto anche le printf ... ?

SpecialOne1992
11-04-2012, 11:14
Originariamente inviato da oregon
Hai corretto anche le printf ... ?

si si me ne era sfuggita una

oregon
11-04-2012, 11:15
Originariamente inviato da SpecialOne1992
si si me ne era sfuggita una

E quindi ? Adesso funziona ?

Qual il codice corretto ?

SpecialOne1992
11-04-2012, 12:47
si si scusami. riposto il codice corretto.. grazie x l'aiuto :) risolto


//archivio di un negozio con relativa vendita del prodotto
#include <stdio.h>
#include<stdlib.h>
#include<string.h>

typedef enum{LIB_T, MAG_T}tipo;
typedef struct{
char codice[8];
double prezzo;
tipo t;
int quantita;
union{
struct{
char titolo [30];
char autore [15];
int pagine;
}libro;
struct{
char motivo [30];
char colore [10];
enum{S,M,L,XL,XXL} taglia;
}maglietta;
}prodotto;
}archivio;

archivio articolo [50];
unsigned int num_cod=0;
int n=0; //contatore
int vendita=0; //contatore delle vendite
double denaro=0; // contatore incassi
int num_lib,num_mag;
void inserire_articolo(void);
void ricerca_articolo();
void visualizza_articolo(void);
void compra_articolo (void);
void visualizza_vendite (void);
int main (void){
int scelta;
do{
printf("Menu archivio negozio\n");
printf("\t 1.Inserisci un nuovo articolo\n");
printf("\t 2.Ricerca articolo per codice\n");
printf("\t 3.Visualizza articoli in magazzino\n");
printf("\t 4.Compra online\n");
printf("\t 5.Visualizza rendiconto vendite\n");
printf("\t 6.Esci\n");
scanf("%d",&scelta);
system("cls");
fflush(stdin);
switch(scelta){
case 1:
printf("-Aggiunta prodotto\n");
printf("Inserici il tipo di articolo da aggiungere:\n");
printf("0- LIBRO\n");
printf("1- MAGLIETTA\n");
printf("\nScelta: ");
scanf("%d", &articolo[n].t);
inserire_articolo();
break;

case 2: ricerca_articolo();
break;

case 3: visualizza_articolo();
break;

case 4: compra_articolo ();
break;

case 5: visualizza_vendite();
break;

case 6:
break;

default:
printf("operazione non consentita\n");

}
}
while(scelta!=6);
system ("pause");
return 0;
}
void inserire_articolo(){
if(articolo[n].t==LIB_T){
num_lib=num_lib+1;
printf("Inserisci dati libro\n");
printf("inserisci il prezzo\n");
scanf("%lf",&articolo[n].prezzo);
printf("inserisci la quantita disponibile\n");
scanf("%d",&articolo[n].quantita);

printf("Inserisci il titolo del libro\n");
fflush(stdin);
gets(articolo[n].prodotto.libro.titolo);

printf("Inserisci l'autore del libro\n");
gets(articolo[n].prodotto.libro.autore);

printf("Inserisci il numero delle pagine del libro\n");
scanf("%d",&articolo[n].prodotto.libro.pagine);
itoa(10000000+n,articolo[n].codice,10);
printf("Libro inserito con successo codiceID %s",articolo[n].codice);
printf("\n");
}
else{
num_mag=num_mag+1;
printf("inserisci dati maglietta\n");
printf("inserisci il prezzo\n");
scanf("%lf",&articolo[n].prezzo);
printf("inserisci la quantita disponibile\n");
scanf("%d",&articolo[n].quantita);
fflush(stdin);

printf("Inserisci motivo maglietta\n");
gets(articolo[n].prodotto.maglietta.motivo);

printf("Inserisci colore maglietta\n");
gets(articolo[n].prodotto.maglietta.colore);

printf("Inserisci taglia maglietta:S=0,M=1,L=2,XL=3,XXL=4\n");
scanf("%d",&articolo[n].prodotto.maglietta.taglia);
itoa(10000000+n,articolo[n].codice,10);
printf("\nMaglietta inserito con successo codice ID:%s",articolo[n].codice);
printf("\n");
}

n++;
}
void ricerca_articolo(){
int i;
char codice[8];
if(num_mag==0&&num_lib==0)
printf("nessun prodotto presente in magazzino.\nPremi per ritornare al menu\n");
else
printf("inserisci il codice dell'articolo da ricercare\n");
scanf("%s",codice);
for(i=0;i<n;i++){
if(strcmp(codice,articolo[i].codice)==0){
printf("prodotto presente in magazzino\n");
if(articolo[i].t==LIB_T){
printf("\tTitolo: %s\n",articolo[i].prodotto.libro.titolo);
printf("\tAutore: %s\n",articolo[i].prodotto.libro.autore);
printf("\tNumero pagine: %d\n",articolo[i].prodotto.libro.pagine);
printf("\tPrezzo: %.2lf E\n",articolo[i].prezzo);
printf("\tQuantita': %d\n",articolo[i].quantita);
}
else{
printf("\tMotivo: %s\n", articolo[i].prodotto.maglietta.motivo);
printf("\tColore: %s\n", articolo[i].prodotto.maglietta.colore);
printf("\tTaglia: %d\n",articolo[i].prodotto.maglietta.taglia);
printf("\tPrezzo: %.2lf E\n",articolo[i].prezzo);
printf("\tQuantita': %d\n", articolo[i].quantita);
}
}
else printf("Prodotto non presente in magazzino\n");
}
}

void visualizza_articolo(){
int i;
if(num_mag==0&&num_lib==0)
printf("nessun prodotto presente in magazzino.\nPremi per ritornare al menu\n");
else
printf("Visualizzo articoli in magazzino\n");
for(i=0;i<n;i++){
if(articolo[i].t==LIB_T){
printf("Dati libro\n");
printf("\tTitolo: %s\n",articolo[i].prodotto.libro.titolo);
printf("\tAutore: %s\n",articolo[i].prodotto.libro.autore);
printf("\tNumero pagine: %d\n",articolo[i].prodotto.libro.pagine);
printf("\tPrezzo: %.2lf E\n",articolo[i].prezzo);
printf("\tQuantita': %d\n",articolo[i].quantita);
}
else{
printf("dati maglietta\n");
printf("\tMotivo: %s\n", articolo[i].prodotto.maglietta.motivo);
printf("\tColore: %s\n", articolo[i].prodotto.maglietta.colore);
printf("\tTaglia: %d\n",articolo[i].prodotto.maglietta.taglia);
printf("\tPrezzo: %.lf E\n",articolo[i].prezzo);
printf("\tQuantita': %d\n", articolo[i].quantita);
}
}
}



void compra_articolo(){
int tipo,quant, i;
char titolo[30];
printf("Cosa desideri acquistare? premi 0 per libro o 1 per maglietta\n");
scanf("%d",&tipo);
for(i=0;i<n;i++){
if(tipo==0){
if(num_lib==0) printf("Nessun libro presente in magazzino\n");
else{
printf("Quale libro vuoi acquistare?\n");
printf("inserisci il titolo\n");
fflush(stdin);
gets(titolo);
if(strcmp(titolo,articolo[i].prodotto.libro.titolo)==0){
printf("Libro presente in magazzino, inserisci la quantita desiderata per l'acquisto\n");
scanf("%d",&quant);
if(quant>articolo[i].quantita)
printf("La quantita richiesta non al momento disponibile\n");
else{
printf("acquisto effettuato con successo!\n");
articolo[i].quantita-=quant;
vendita=quant;
denaro=quant*articolo[i].prezzo;
}
}
else printf("il libro richiesto non presente in magazzino\n");
}

}
else if(tipo==1){
if(num_mag==0) printf("Nessuna maglietta presente in magazzino\n");
else{
printf("Quante magliette vuoi acquistare\n");
scanf("%d",&quant);
if(quant>articolo[i].quantita)
printf("La quantita richiesta non al momento disponibile\n");
else{
printf("acquisto effettuato con successo!\n");
articolo[i].quantita-=quant;
vendita=quant;
denaro=quant*articolo[i].prezzo;
}
}
}
}
}
void visualizza_vendite(){
printf("il numero degli articoli venduti %d, con un incasso totale di %.2lf E\n",vendita,denaro);
}

Loading