Programma in c

di il
16 risposte

Programma in c

Si vuole simulare la gestione automatizzata di uno scaffale di riviste musicali. Si suppone di avere
un massimo di 10 tipi di riviste con il proprio titolo, codice identificativo, prezzo, quantità in scorta, il genere specifico della rivista (jazz, rock, pop, punk, ...) e dagli strumenti trattati (batteria, chitarra, tromba … fino ad un massimo di 5).
Permettere all’utente di: Acquistare se è possibile una rivista dato il nome (controllare se la quantità è zero). Dato un genere visualizzare tutte le riviste corrispondenti. Dato un strumento musicale visualizzare le riviste, in cui è inserito, con il costo e la disponibilità.

dovrei realizzare questo programma .... ho iniziato con inserendo delle struct
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct scaffale {
        int              codice identificativo[50]
        char             titolo[50] ;
float            prezzo [50];
int              quantita_scorta[50];
struct genere    {
char             genere_rivista[50];
char             strumenti_trattati[50];

sto procedendo bene ? come potrei continuare ?

16 Risposte

  • Re: Programma in c

    Puoi iniziare leggendo il punto 4 del regolamento.
    https://www.iprogrammatori.it/forum-programmazione/announces/regolamento-del-forum-leggere-prima-scrivere-t6454.html

    Poi devi creare un vettore di strutture.
    //codice identificativo:
    int codice identificativo[50]; 
    ti basta un intero non un'array di interi.
  • Re: Programma in c

    Ok apposto mi trovavo allora
    un ultima cosa
    mi sono dimenticato di dirvi che dovrei ricercare la rivista che costa di più (quindi devo ricercare il massimo dell'array ) tramite funzione divde et impera ricorsivo
  • Re: Programma in c

    pocho22na ha scritto:


    un ultima cosa
    mi sono dimenticato di dirvi che dovrei ricercare la rivista che costa di più (quindi devo ricercare il massimo dell'array ) tramite funzione divde et impera ricorsivo
    Buono a sapersi. Non hai modificato ancora il tuo post cmq, anche dopo leggendo il punto 4 del regolamento.
  • Re: Programma in c

    Scusami cavolo e ke sono preso dal programma ho corretto scusami tanto ancora .
  • Re: Programma in c

    Per caso hai studiato le classi e l'allocazione dinamica? se si e consigliato utilizzarli entrambi, se no le struct vanno bene, non dimenticarti però di definire tutte le funzioni necessarie per la loro gestione (inizializzazione dello scaffale, creazione/modifica di una rivista, ricerca in base al genere/strumento, aggiunta ed eliminazione dalla scorta, e così via). Se hai scritto altro codice postalo così vediamo insieme il da farsi .
  • Re: Programma in c

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define QCOP        10   /* Quantità Riviste caricate */
    struct scaffale {
            int              codice_identificativo;
            char             titolo[50] ;
            float            prezzo;
            int              quantita_scorta;
            char             Genereriv[50];
            char             strumenti_tratt[50];
            } SCAFFALE[QCOP]=
            {
    
    {1001,"Music",25.00,10,"Jazz","batteria"},
    {1002,"Rollistone",30.50,20,"rock","chitarra"},
    ........varia fino a 10
    
    int main(){
         char   Nomeint[50];
         char   Nomeinte[50];
         char   Nomeinter[50];
         int    menu;
         int    i,x=1;
     /* Visualizzazione Menu a schermo */
            while (x!=0){
            system("cls");
            printf("1) Aquisto Rivista Tramite Nome\n");
            printf("2) Visualizzaare Riviste tramite Genere\n");
            printf("3) Visualizzare Riviste Con strumento Musicale Richiesto\n");
            printf("0) Esci dal programma\n");
            printf("--------------------------------------------------------------\n");
            scanf("%d",&menu);
            switch (menu)
            {
                   case 1:
                        system("cls");
                        printf("quale rivista vuoi ? /n " );
                        scanf("%s",&Nomeint);
                        for (i=0;i<QCOP;i++){
                        if (strcmp (SCAFFALE[i].titolo,Nomeint)==0)
                        {
                                   if (SCAFFALE[i].quantita_scorta==0)
                                   printf("rivista non disponibile");
                                   }
                        }
                        else{
                                   printf("la rivista e disponibile");
                                   }}
                                   break;
                   case 2:
                        system("cls");
                        printf(" Inserire genere /n " );
                        scanf("%s",&Nomeinte);
                        for (i=0;i<QCOP;i++){
                        if (strcmp (SCAFFALE[i].Genereriv,Nomeinte)==0){
                                   printf("%s", SCAFFALE[i].titolo);
                                   }
                                   break;
                   case 3:
                        system("cls");
                        printf(" Inserire strumento musicale /n ");
                        scanf("%s",&Nomeinter);
                        for (i=0;i<QCOP;i++){
                        if (strcmp (SCAFFALE[i].strumenti_tratt,Nomeinter)==0){
                                   printf("%s %f %d", SCAFFALE[i].titolo,SCAFFALE[i].prezzo,SCAFFALE[i].quantita_scorta);
                                   }}
                                   break;
                                   }
                                   system("pause");   
                                   return 0;                            
                                   
                                   }}        
    mi trova degli errori sull'else -.- xke ?
  • Re: Programma in c

    Misa' che c e' una graffa in piu
    
     if (strcmp (SCAFFALE[i].titolo,Nomeint)==0)
                            {
                                       if (SCAFFALE[i].quantita_scorta==0)
                                       printf("rivista non disponibile");
                                       }// in piu
                            }
                            else{
                                       printf("la rivista e disponibile");
                                       }}
                                       break;
    
    
  • Re: Programma in c

    Eheheheh si giusto XD ora va fino in fondo ma mi trova l'errore
    in function main
    syntax error at end of input

    ora cosa c'e che non va ?
    grazie cmq soulbw
  • Re: Programma in c

    Scanf("%s",&Nomeint); --> Nomeint e' una vettore non server "&" e' gia' di per se l'indirizzo che occorre a scanf ...stesso discorso per le altre due scanf
  • Re: Programma in c

    Mi trova sempre errore
  • Re: Programma in c

    Eehheheheh parentesi!!!
  • Re: Programma in c

    
                   case 2:
                        system("cls");
                        printf(" Inserire genere /n " );
                        scanf("%s",Nomeinte);
                        for (i=0;i<QCOP;i++)
                         {
                              if (strcmp (SCAFFALE[i].Genereriv,Nomeinte)==0)
                              printf("%s", SCAFFALE[i].titolo);
                         }
                                   break;
                       
                   case 3:
                        system("cls");
                        printf(" Inserire strumento musicale /n ");
                        scanf("%s",Nomeinter);
                        for (i=0;i<QCOP;i++)
                        {
                          if (strcmp (SCAFFALE[i].strumenti_tratt,Nomeinter)==0)
                           {
                                   printf("%s %f %d", SCAFFALE[i].titolo,SCAFFALE[i].prezzo,SCAFFALE[i].quantita_scorta);
                           }
                        }
                        break;
                                   
              }//fine switch
            
           }//while
              system("pause");   
              return 0;                           
                                   
          }//fine main
        
    
    
    
  • Re: Programma in c

    Prova un pò questo:
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    #define QCOP        10   /* Quantità Riviste caricate */
    
    struct scaffale {
        int              codice_identificativo;
        char             titolo[50] ;
        float            prezzo;
        int              quantita_scorta;
        char             Genereriv[50];
        char             strumenti_tratt[50];
    } SCAFFALE[]={
            {1001,"Music",25.00,10,"Jazz","batteria"},
            {1002,"Rollistone",30.50,20,"rock","chitarra"},
            {1003,"GuitarHero",20.00,30,"pop","tromba"},
            {1004,"R&Bmusic",19.00,5,"R&B","batteria"},
            {1005,"hipHopHit",22.00,7,"Hiphop","chitarra"},
            {1006,"Generation",33.50,11,"Pop","tromba"},
            {1007,"TalentMusic",35.00,0,"Pop","chitarra"},
            {1008,"ChannelHit",14.00,23,"Rock","batteria"},
            {1009,"MusicforLife",45.00,30,"R&B","chitarra"},
            {1010,"CrazyMusic",32.50,0,"rock","batteria"}
        };
    
    int main(){
         char   Nomeint[50];
         char   Nomeinte[50];
         char   Nomeinter[50];
         int    menu;
         int    i,x=1;
    /* Visualizzazione Menu a schermo */
        while (x!=0){
        system("cls");
        printf("GESTIONE RIVISTE MUSICALI DI ************************* \n\n");
        printf("---------------|NEGOZIO DI RIVISTE MUSICALI|-----------------\n");
        printf("1) Aquisto Rivista Tramite Nome\n");
        printf("2) Visualizzaare Riviste tramite Genere\n");
        printf("3) Visualizzare Riviste Con strumento Musicale Richiesto\n");
        printf("0) Esci dal programma\n");
        printf("--------------------------------------------------------------\n");
        scanf("%d",&menu);
        switch (menu){
            case 1:
                system("cls");
                printf("quale rivista vuoi ? " );
                scanf("%s",Nomeint);
                for (i=0;i<QCOP;i++){
                    if (strcmp (SCAFFALE[i].titolo,Nomeint)==0){
                        if (SCAFFALE[i].quantita_scorta==0)
                            printf("rivista non disponibile!\n\n");
                        else{
                            printf("la rivista e disponibile...Aquistata una copia\n\n");
                            SCAFFALE[i].quantita_scorta--;
                        }
                        break;
                    }
                }
                if (i==QCOP)
                    printf("\nNon esiste una rivista con questo nome sullo scaffale!\n\n");
                break;
            case 2:
                system("cls");
                printf(" Inserire genere: " );
                scanf("%s",Nomeinte);
                for (i=0;i<QCOP;i++){
                    if (strcmp (SCAFFALE[i].Genereriv,Nomeinte)==0)
                        printf(" - %s\n", SCAFFALE[i].titolo);
                }
                break;
            case 3:
                system("cls");
                printf(" Inserire strumento musicale: ");
                scanf("%s",Nomeinter);
                for (i=0;i<QCOP;i++){
                    if (strcmp (SCAFFALE[i].strumenti_tratt,Nomeinter)==0)
                        printf(" - %s ; %f ; %d\n", SCAFFALE[i].titolo,SCAFFALE[i].prezzo,SCAFFALE[i].quantita_scorta);
                }
                break;
                printf("\nUscita in corso...\n\n");
        }
        system("PAUSE");
        }
        return 0;
    }
    
    
  • Re: Programma in c

    Vins3xtreme sei un GRANDE XD grazieeeeeeeeeeeee di dove sei ti devo offrire un caffè
    cmq mi faresti la cortesia di modificare il programma ? c'e il nome e cognome grazie gentilissimo
Devi accedere o registrarti per scrivere nel forum
16 risposte