Informatică, întrebare adresată de bogdan106, 8 ani în urmă

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.


lucaciucandrei: pai bun, dar cum determin daca o carte e best seller sau nu? asta nu ai specificat deci prima actiune nu poate fi efectuata
bogdan106: Nu stiu exact,asa este enuntul problemei
bogdan106: Chiar daca prima actiune nu se poate efectua,ma poti ajuta la celelate?
lucaciucandrei: desigur! coroana after pls! ms

Răspunsuri la întrebare

Răspuns de lucaciucandrei
1

#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();

}


bogdan106: Multumesc mult!
lucaciucandrei: np
Alte întrebări interesante