Advertisement
Mihnea03

Proiect Admitere Liceu

Mar 1st, 2021
851
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.82 KB | None | 0 0
  1. /**
  2. Grupa:
  3. Mihnea Ciocioiu
  4. Ioana Mihailescu
  5. Maria Enescu
  6. **/
  7. #include <iostream>
  8. #include <fstream>
  9. #include <cstring>
  10. #include <algorithm>
  11. using namespace std;
  12.  
  13. struct data {
  14.     int zi,luna,an;
  15. };
  16.  
  17. class persoana {
  18. protected:
  19.     char nume[30];
  20.     char prenume[30];
  21.     data dataNasterii;
  22.     char adresa[50];
  23.     char localitate[50];
  24. public:
  25.     persoana();
  26.     persoana(char *,char *,data ,char *, char *);
  27.     void setNume(char*);
  28.     void setPrenume(char*);
  29.     void setAdresa(char*);
  30.     void setLocaliate(char*);
  31.     void setData(data);
  32.     char* getNume();
  33.     char* getPrenume();
  34.     char* getAdresa();
  35.     char* getLocaliate();
  36.     data getDataNasterii();
  37. };
  38.  
  39. persoana::persoana() {
  40.     strcpy(nume,"");
  41.     strcpy(prenume,"");
  42.     strcpy(adresa,"");
  43.     strcpy(localitate,"");
  44.     dataNasterii={0,0,0};
  45. }
  46.  
  47. persoana::persoana(char *num,char *pren,data dataN,char *adres, char *localitat) {
  48.     strcpy(nume,num);
  49.     strcpy(prenume,pren);
  50.     strcpy(adresa,adres);
  51.     strcpy(localitate,localitat);
  52.     dataNasterii=dataN;
  53. }
  54.  
  55. void persoana::setNume(char *num) {
  56.     strcpy(nume,num);
  57. }
  58.  
  59. void persoana::setPrenume(char*pren) {
  60.     strcpy(prenume,pren);
  61. }
  62.  
  63. void persoana::setAdresa(char *s)
  64. {
  65.     strcpy(adresa,s);
  66. }
  67.  
  68. void persoana::setLocaliate(char *s)
  69. {
  70.     strcpy(localitate,s);
  71. }
  72.  
  73. void persoana::setData(data d)
  74. {
  75.     dataNasterii=d;
  76. }
  77.  
  78. char* persoana::getPrenume() {
  79.     return prenume;
  80. }
  81.  
  82. char* persoana::getNume() {
  83.     return nume;
  84. }
  85.  
  86. char* persoana::getAdresa() {
  87.     return adresa;
  88. }
  89.  
  90. char* persoana::getLocaliate() {
  91.     return localitate;
  92. }
  93.  
  94. data persoana::getDataNasterii() {
  95.     return dataNasterii;
  96. }
  97.  
  98. class absolvent : public persoana {
  99. protected:
  100.     char Scoala[50];
  101.     char AnulAbsolvirii[20];
  102.     double mediacls5;
  103.     double mediacls6;
  104.     double mediacls7;
  105.     double mediacls8;
  106.     double medieAbsolvire;
  107. public:
  108.     void calculMediaAnilorDeStudiu() {
  109.         medieAbsolvire=(mediacls5+mediacls6+mediacls7+mediacls8)/4.0;
  110.     }
  111.     void setMediaCls5(double media) {
  112.         mediacls5=media;
  113.     }
  114.     void setMediaCls6(double media) {
  115.         mediacls6=media;
  116.     }
  117.     void setMediaCls7(double media) {
  118.         mediacls7=media;
  119.     }
  120.     void setMediaCls8(double media) {
  121.         mediacls8=media;
  122.     }
  123.     double getMediaCls5() {
  124.         return mediacls5;
  125.     }
  126.     double getMediaCls6() {
  127.         return mediacls6;
  128.     }
  129.     double getMediaCls7() {
  130.         return mediacls7;
  131.     }
  132.     double getMediaCls8() {
  133.         return mediacls8;
  134.     }
  135.     double getMediaAbsolvire() {
  136.         return medieAbsolvire;
  137.     }
  138.     void setScoala(char *sc) {
  139.         strcpy(Scoala,sc);
  140.     }
  141.     char* getScoala() {
  142.         return Scoala;
  143.     }
  144. };
  145.  
  146. class candidat:public absolvent {
  147. private:
  148.     double Nota_romana;
  149.     double Nota_matematica;
  150.     double Medie_examen;
  151.     double Medie_admitere;
  152. public:
  153.     void setNotaRomana (double medie) {
  154.         Nota_romana=medie;
  155.     }
  156.     void setNotaMate (double medie) {
  157.         Nota_matematica=medie;
  158.     }
  159.     void medieCapacitate() {
  160.         Medie_examen=(Nota_romana+Nota_matematica)/2.0;
  161.     }
  162.     void medieAdmitere() {
  163.         Medie_admitere=0.2*getMediaAbsolvire()+0.8*Medie_examen;
  164.     }
  165.     double getMedieAdmitere() {
  166.         return Medie_admitere;
  167.     }
  168.     double getMedieExamen() {
  169.         return Medie_examen;
  170.     }
  171. };
  172.  
  173. int cmp (candidat a, candidat b) {
  174.     return a.getMedieAdmitere()>b.getMedieAdmitere();
  175. }
  176.  
  177. int main() {
  178.     ifstream fin("Date_elevi.txt");
  179.     ofstream fout("Rezultate.txt");
  180.     candidat a[200];
  181.     int n;
  182.     fin>>n;
  183.     for (int i=1;i<=n;i++) {
  184.         char x[500];
  185.         fin>>x;
  186.         a[i].setNume(x);
  187.         fin>>x;
  188.         a[i].setPrenume(x);
  189.         int zi, luna, an;
  190.         fin>>zi>>luna>>an;
  191.         a[i].setData({zi,luna,an});
  192.         fin>>x;
  193.         a[i].setLocaliate(x);
  194.         fin>>x;
  195.         a[i].setScoala(x);
  196.         double m5,m6,m7,m8;
  197.         fin>>m5>>m6>>m7>>m8;
  198.         a[i].setMediaCls5(m5);
  199.         a[i].setMediaCls6(m6);
  200.         a[i].setMediaCls7(m7);
  201.         a[i].setMediaCls8(m8);
  202.         a[i].calculMediaAnilorDeStudiu();
  203.         double mr,mm;
  204.         fin>>mr>>mm;
  205.         a[i].setNotaRomana(mr);
  206.         a[i].setNotaMate(mm);
  207.         a[i].medieCapacitate();
  208.         a[i].medieAdmitere();
  209.     }
  210.     sort (a+1,a+n+1,cmp);
  211.     for (int i=1;i<=n;i++) {
  212.         fout<<a[i].getNume()<<" "<<a[i].getPrenume()<<"\n";
  213.         fout<<a[i].getDataNasterii().zi<<" "<<a[i].getDataNasterii().luna<<" "<<a[i].getDataNasterii().an<<"\n";
  214.         fout<<a[i].getLocaliate()<<"\n";
  215.         fout<<a[i].getScoala()<<"\n";
  216.         fout<<a[i].getMediaAbsolvire()<<"\n";
  217.         fout<<a[i].getMedieExamen()<<"\n";
  218.         fout<<a[i].getMedieAdmitere()<<"\n";
  219.         fout<<"\n";
  220.     }
  221.     return 0;
  222. }
  223.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement