Advertisement
Guest User

Untitled

a guest
Mar 18th, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.60 KB | None | 0 0
  1. // ---------------------------------------------------------------------------
  2.  
  3. #ifndef WrapperH
  4. #define WrapperH
  5. #include "Student.h"
  6.  
  7. // ---------------------------------------------------------------------------
  8. class Wrapper {
  9.  
  10. public:
  11.  
  12.     Student *student;
  13.  
  14.     Wrapper(int n) {
  15.         student = new Student[n];
  16.     }
  17.  
  18.     void SetData(TMemo *Memo1, int n) {
  19.         Student *tmp = new Student[n];
  20.  
  21.         for (int j = 0, k = 0; j < Memo1->Lines->Count; k++) {
  22.             tmp[k].fio = Memo1->Lines->Strings[j];
  23.             tmp[k].specialty = Memo1->Lines->Strings[j + 1];
  24.             tmp[k].eduform = Memo1->Lines->Strings[j + 2];
  25.             tmp[k].gpa = 0;
  26.             for (int i = 0; i < 3; i++) {
  27.                 tmp[k].marks[i] = StrToInt(Memo1->Lines->Strings[j + 3 + i]);
  28.                 tmp[k].gpa += tmp[k].marks[i];
  29.  
  30.             }
  31.             tmp[k].gpa /= 3;
  32.             j = 6 * (k + 1);
  33.  
  34.         }
  35.         student = tmp;
  36.  
  37.  
  38.     }
  39.  
  40.     void AddData(TEdit *E1, TEdit *E2, TEdit *E3, TEdit *E4, TEdit *E5,
  41.         TCheckBox *CB1, TCheckBox *CB2, int n) {
  42.         Student *tmp = new Student[n + 1];
  43.         for (int i = 0; i < n; i++) {
  44.             tmp[i] = student[i];
  45.  
  46.         }
  47.         delete[]student;
  48.         student = tmp;
  49.  
  50.         student[n].fio = E4->Text;
  51.         student[n].specialty = E5->Text;
  52.         if (CB1->Checked)
  53.             student[n].eduform = "платная";
  54.         if (CB2->Checked)
  55.             student[n].eduform = "бюджетная";
  56.  
  57.         student[n].marks[0] = StrToInt(E1->Text);
  58.         student[n].marks[1] = StrToInt(E2->Text);
  59.         student[n].marks[2] = StrToInt(E3->Text);
  60.         student[n].gpa = 0;
  61.         for (int i = 0; i < 3; i++) {
  62.             student[n].gpa += student[n].marks[i];
  63.         }
  64.         student[n].gpa /= 3;
  65.     }
  66.  
  67.     void DelData(TEdit *E7, int n) {
  68.         Student *tmp = new Student[n - 1];
  69.         bool del = false;
  70.         for (int i = 0; i < n; i++) {
  71.  
  72.             if (i == StrToInt(E7->Text) - 1) {
  73.                 del = true;
  74.                 continue;
  75.             }
  76.  
  77.             if (del)
  78.                 tmp[i - 1] = student[i];
  79.             else
  80.                 tmp[i] = student[i];
  81.         }
  82.         delete[]student;
  83.         student = tmp;
  84.  
  85.     }
  86.  
  87.     void DataRetrieval(String Fio, String Spec, int n, TMemo *Memo1, TEdit* Gpa)
  88.     {
  89.         if (Fio == "")
  90.             Fio = "нул";
  91.         if (Spec == "")
  92.             Spec = "нул";
  93.         if (Gpa->Text == "")
  94.             Gpa->Text = "0";
  95.  
  96.         Memo1->Clear();
  97.         for (int i = 0; i < n; i++) {
  98.             if (student[i].specialty == Spec) {
  99.                 Memo1->Lines->Add("--- " + IntToStr(i + 1) + " Запись ---");
  100.                 Memo1->Lines->Add(student[i].fio);
  101.                 Memo1->Lines->Add(student[i].specialty);
  102.                 Memo1->Lines->Add(student[i].eduform);
  103.                 Memo1->Lines->Add(student[i].gpa);
  104.                 Memo1->Lines->Add("\n");
  105.             }
  106.             if (student[i].fio == Fio) {
  107.                 Memo1->Lines->Add("--- " + IntToStr(i + 1) + " Запись ---");
  108.                 Memo1->Lines->Add(student[i].fio);
  109.                 Memo1->Lines->Add(student[i].specialty);
  110.                 Memo1->Lines->Add(student[i].eduform);
  111.                 Memo1->Lines->Add(student[i].gpa);
  112.                 Memo1->Lines->Add("\n");
  113.             }
  114.             if (student[i].gpa == StrToInt(Gpa->Text)) {
  115.                 Memo1->Lines->Add("--- " + IntToStr(i + 1) + " Запись ---");
  116.                 Memo1->Lines->Add(student[i].fio);
  117.                 Memo1->Lines->Add(student[i].specialty);
  118.                 Memo1->Lines->Add(student[i].eduform);
  119.                 Memo1->Lines->Add(student[i].gpa);
  120.                 Memo1->Lines->Add("\n");
  121.             }
  122.  
  123.         }
  124.     }
  125.  
  126.     void SortData(TCheckBox* Ch1, TCheckBox* Ch2, int n, TMemo *Memo1) {
  127.         Student tmp;
  128.         if (Ch1->Checked) {
  129.             for (int i = 0; i < n - 1; i++)
  130.                 for (int j = 0; j < n - i - 1; j++) {
  131.                     if ((student[j].gpa < student[j + 1].gpa) &&
  132.                         (student[j].eduform == "платная" && student[j +
  133.                         1].eduform == "платная")) {
  134.                         tmp = student[j];
  135.                         student[j] = student[j + 1];
  136.                         student[j + 1] = tmp;
  137.                     }
  138.  
  139.                 }
  140.             Memo1->Clear();
  141.  
  142.             for (int i = 0; i < n; i++) {
  143.                 if (student[i].eduform == "платная") {
  144.                     Memo1->Lines->Add("--- " + IntToStr(i + 1) + " Запись ---");
  145.                     Memo1->Lines->Add(student[i].fio);
  146.                     Memo1->Lines->Add(student[i].specialty);
  147.                     Memo1->Lines->Add(student[i].eduform);
  148.                     Memo1->Lines->Add(student[i].gpa);
  149.                     Memo1->Lines->Add("\n");
  150.                 }
  151.             }
  152.  
  153.         }
  154.         if (Ch2->Checked) {
  155.             for (int i = 0; i < n - 1; i++)
  156.                 for (int j = 0; j < n - i - 1; j++) {
  157.                     if ((student[j].gpa < student[j + 1].gpa) &&
  158.                         (student[j].eduform == "бюджетная" && student[j +
  159.                         1].eduform == "бюджетная")) {
  160.                         tmp = student[j];
  161.                         student[j] = student[j + 1];
  162.                         student[j + 1] = tmp;
  163.                     }
  164.  
  165.                 }
  166.             Memo1->Clear();
  167.  
  168.             for (int i = 0; i < n; i++) {
  169.                 if (student[i].eduform == "бюджетная") {
  170.                     Memo1->Lines->Add("--- " + IntToStr(i + 1) + " Запись ---");
  171.                     Memo1->Lines->Add(student[i].fio);
  172.                     Memo1->Lines->Add(student[i].specialty);
  173.                     Memo1->Lines->Add(student[i].eduform);
  174.                     Memo1->Lines->Add(student[i].gpa);
  175.                     Memo1->Lines->Add("\n");
  176.                 }
  177.             }
  178.  
  179.         }
  180.  
  181.     }
  182.  
  183.     void ShowData(int n, TMemo *Memo1) {
  184.         Memo1->Clear();
  185.         for (int i = 0; i < n; i++) {
  186.             Memo1->Lines->Add("--- " + IntToStr(i + 1) + " Запись ---");
  187.             Memo1->Lines->Add(student[i].fio);
  188.             Memo1->Lines->Add(student[i].specialty);
  189.             Memo1->Lines->Add(student[i].eduform);
  190.             Memo1->Lines->Add(student[i].gpa);
  191.             Memo1->Lines->Add("\n");
  192.         }
  193.  
  194.     }
  195.  
  196.     void ShowStud(TMemo *Memo1, int n) {
  197.         Memo1->Clear();
  198.         Memo1->Lines->Add("Студенты отличники(форма обучения - платная): ");
  199.         for (int i = 0; i < n; i++) {
  200.             if (student[i].gpa >= 9.0 && student[i].eduform == "платная") {
  201.                 Memo1->Lines->Add("--- " + IntToStr(i + 1) + " Запись ---");
  202.                 Memo1->Lines->Add(student[i].fio);
  203.                 Memo1->Lines->Add(student[i].specialty);
  204.                 Memo1->Lines->Add(student[i].eduform);
  205.                 Memo1->Lines->Add(student[i].gpa);
  206.                 Memo1->Lines->Add("\n");
  207.             }
  208.         }
  209.     }
  210.  
  211. };
  212.  
  213. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement