Concetti Chiave
- Il programma definisce una struttura 'dispositivo' per memorizzare informazioni sui dispositivi elettronici, come marca, dimensione del display, sistema operativo e costo.
- Gli utenti possono interagire con il programma tramite un'interfaccia a menu per inserire nuovi dispositivi, ordinarli, visualizzare la lista e calcolare il costo medio in base al sistema operativo.
- La funzionalità di ordinamento è incompleta a causa di cicli nidificati e logica di confronto commentati, impedendo l'ordinamento dei dispositivi per dimensione del display.
- Nel codice ci sono dichiarazioni 'cout' mancanti per la visualizzazione delle opzioni di menu e dei dettagli dei dispositivi.
- Il programma utilizza un ciclo 'do-while' per mantenere l'interazione dell'utente finché non viene selezionata l'opzione di uscita.
#include
#include
#define MAX 50
#include
#include
using namespace std;
struct dispositivo{
char marca[21];
float display;
char s_o[21];
float costo;
};
void input(int &n,dispositivo dispositivi[]);
void ordinamento(int n,dispositivo dispositivi[]);
void visualizza(int n,dispositivo dispositivi[]);
void media (int n,dispositivo dispositivi[]);
//void stampa (int n,dispositivo dispositivi[]);
int main(){
dispositivo dispositivi [MAX] ={{"Zamzung",4.5,"Airdroid",200.99},
{"Fokia",5,"Windows",299.99},
{"Applo",10,"ISO",899.99},
{"Zamzung",4.5,"Airdroid",200.99},
{"Fokia",5,"Windows",299.99},
{"Applo",10,"ISO",899.99},
{"Zamzung",4.5,"Airdroid",200.99},
{"Fokia",5,"Windows",299.99},
{"Applo",10,"ISO",899.99},
{"Zamzung",4.5,"Airdroid",200.99}};
int n=3,scelta;
do{
system ("cls");
cout
cout
cout
cout
cout
cout
cout
cout
cin>>scelta;
switch(scelta){
case 1:
input (n, dispositivi);
break;
case 2:
ordinamento(n,dispositivi);
break;
case 3:
visualizza(n,dispositivi);
break;
case 4:
media (n,dispositivi);
}
}while(scelta!= 5);
return 0;
}
void input(int &n,dispositivo dispositivi[]){
system ("cls");
cout
cout
cin>>n;
for(int i=0; i
cout
cin>>dispositivi.display;
cout
cin>>dispositivi.s_o;
cout
cin>>dispositivi.costo;
}
system("PAUSE");
}
void ordinamento(int n,dispositivo dispositivi[]){
system ("cls");
cout
/* for(int i = 0 ; i
for(int j = i+1; j
if(dispositivi.display>dispositivi[j].display){
tmp=dispositivi;
dispositivi=dispositivi[j];
dispositivi[j]=tmp;
}*/
for(int i = 0 ; i
cout.marca
cout.display
cout.s_o
cout.costo
}
cout
cout
system("PAUSE");
}
void visualizza(int n,dispositivo dispositivi[]){
system ("cls");
cout
for(int i=0; i
system("PAUSE");
}
void media(int n,dispositivo dispositivi[]){
system ("cls");
char vett[21];
int tmp=0, j=0;
cout
cout
cin.getline(vett, 21);
for( int i=0; i
if(strcmp(vett, dispositivi.s_o) == 0){
tmp = tmp+dispositivi.costo;
j++;
}
}
cout
system("PAUSE");
}
Domande da interrogazione
- What is the purpose of the 'dispositivo' structure in the code?
- How does the program allow users to interact with the list of devices?
- What functionality is missing or commented out in the code that affects its operation?
The 'dispositivo' structure is used to define a template for storing information about electronic devices, including their brand, display size, operating system, and cost.
The program provides a menu-driven interface where users can input new devices, sort them, view the list, and calculate the average cost of devices based on their operating system.
The sorting functionality is incomplete, as the nested loops and comparison logic are commented out, preventing the program from sorting devices by display size. Additionally, there are missing 'cout' statements for displaying menu options and device details.