👤

Vă rog ajutați-mă să creez un program în C++,după condițiile din mai în jos


Vă Rog Ajutațimă Să Creez Un Program În Cdupă Condițiile Din Mai În Jos class=

Răspuns :

#include <iostream>

#include <fstream>

using namespace std;

ifstream in("bursa.in");

ofstream out("bursa.out");

usigned int n; // n este numar natural

// Declarare structura student cu variabilele aferente

struct student{

   int nr_matricol, ex1, ex2, ex3;

   float nme; // media notelor

   int b; // bursa

} a[100];

void rezolvare()

{

   // citim numarul de studenti

   in>>n;

   

   // in timpul citirii rezolvam si cerinta.

   // pentru fiecare rand din fisierul bursa.in executam

   for(int i=1;i<=n;i++)

   {

       /* citire date student*/

       in>>a[i].nr_matricol;

       in>>a[i].ex1;

       in>>a[i].ex2;

       in>>a[i].ex3;

       

       /*

       Pentru fiecare student in parte vom calcula media si bursa aferenta, in functie de formula data in cerinta

       */

       a[i].nme=(a[i].ex1+a[i].ex2+a[i].ex3)/3; // calculam media notelor. Media aritmetica inseamna suma numerelor date impartite la cate sunt

       

       /*

       Vom folosi formula din cerinta pentru a determina bursa fiecarui student.

       Daca media calculata mai sus este mai mica decat 6, atunci bursa va fi 0;

       Altfel

       Daca media este intre 6 si 7 atunci bursa va fi 150 pentru studentii care au media intre notele 6 si 7;

       Altfel

       Daca media este mai mare decat 7 atunci bursa va fi egala cu 40 * media obtinuta

       */

       

       if(a[i].nme<6)

           a[i].b=0;

       else

           if(a[i].nme>=6 && a[i].nme <7)

               a[i].b=150;

           else

               if(a[i].nme>=7)

                   a[i].b=40*a[i].nme;

   }

   

   /*

   Ordonam descrescator toata structura in functie de media fiecarui student ( de la cel mai mare la cel mai mic )

   Dar ca sa facem aceasta ordonare corect trebuie ca si celelalte date ale studentilor sa fie ordonate pentru a afisa datele fiecarui student corect.

   */

   

   for(int i=1;i<n;i++)

       for(int j=i+1;j<=n;j++)

       {

           if(a[i].nme<a[j].nme)

           {

               int aux=a[i].nr_matricol;

               a[i].nr_matricol=a[j].nr_matricol;

               a[j].nr_matricol=aux;

               

               int aux1=a[i].ex1;

               a[i].ex1=a[j].ex1;

               a[j].ex1=aux1;

               

               int aux2=a[i].ex2;

               a[i].ex2=a[j].ex2;

               a[j].ex2=aux2;

               

               int aux3=a[i].ex3;

               a[i].ex3=a[j].ex3;

               a[j].ex3=aux3;

               

               int aux4=a[i].nme;

               a[i].nme=a[j].nme;

               a[j].nme=aux4;

               

               int aux5=a[i].b;

               a[i].b=a[j].b;

               a[j].b=aux5;

           }

       }

   

   // afisare

   for(int i=1;i<=n;i++)

       out<<"[ "<<a[i].nr_matricol<<" ] [ "<<a[i].ex1<<" "<<a[i].ex2<<" "<<a[i].ex3<<" ] [ "<<a[i].nme<<" ] [ "<<a[i].b<<" ]"<<endl;

}

int main()

{

   rezolvare(); // apelul subprogramului.

}