Se cunosc date despre vânzările a n cărţii ale editurii Donaris: titlul cărţii,
preţul, cantitatea intrată în depozit (numărul de exemplare tipărite) şi cantitatea
vândută. Realizaţi un program care care să permită prin intermediul unui meniu
următoarele acţiuni :
- numărul titlurilor care s-au vândut cel mai bine;
-valoarea totală a vânzărilor ( suma încasată pe un titlu fiind preţul * numărul de
exemplare);
-topul celor mai bine vândute p cărţi unde valoarea lui p se citeşte de la
tastatură .Programul trebuie facut cu instructiunea SWITCH.
Răspunsuri la întrebare
#include<iostream>
#include<fstream>
#include<cstring>
#include<cstdlib>
using namespace std;
int n, p, a, optiune;
ifstream f("carti.txt");
struct Donaris{
char titlu[251];
float pret;
int nrcarti, vandute;
}carti[101];
void descrSort(){
for(int i=1;i<=n-1;i++)
for(int j=i+1;j<=n;j++)
if(carti[i].vandute<carti[j].vandute) swap(carti[i], carti[j]);
}
void citireFisier(){
f>>n;
for(int i=1;i<=n;i++){
f.getline(carti[i].titlu, 251);
f>>carti[i].pret>>carti[i].nrcarti>>carti[i].vandute;
}
}
void displayActiuni();
void read_execute_Actiune(){
cin>>a;
system("cls");
switch(a){
case 1:{
int k=0;
for(int i=1;i<=n;i++) if(carti[i].vandute>=10000) k++;
cout<<k;
break;
}
case 2:{
int s=0;
for(int i=1;i<=n;i++) s+=(carti[i].pret*carti[i].nrcarti);
cout<<s;
break;
}
case 3:{
cout<<"numarul de carti, p, este: ", cin>>p, cout<<endl;
descrSort();
for(int i=1;i<=p;i++) cout<<carti[i].titlu<<endl;
break;
}
default:{
cout<<"ai ales o optiune neimplementata, doresti sa inchizi(4) sau sa revi la meniu(5)?"<<endl, cin>>optiune;
if(optiune==4) return;
else {system("cls"); displayActiuni();}
break;
}
}
}
void displayActiuni(){
cout<<"1. numarul titlurilor care s-au vandut cel mai bine"<<endl;
cout<<"2. valoarea totala a vanzarilor"<<endl;
cout<<"3. topul celor mai bine vandute p carti"<<endl;
cout<<"Alege numarul actiunii de efecutat: ";
read_execute_Actiune();
}
int main(){
citireFisier();
displayActiuni();
}