BG Development


  Reply to this topicStart new topicStart Poll

> C++ задачка
DeathHourbg
Публикувано на: 25-05-2022, 07:56
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 4
Регистриран на: 10.11.21



Как да намеря ученика с най-много точки в case 4. Пробвах но не ги намира.

CODE
#include <iostream>
#include <stdlib.h>
#include <conio.h>
#include <string>
using namespace std;


class Student {
private:
      string name;
      string EGN;
      string university;
      string facNum;
      string specialnost;
      float tochki;
public:
      void display();
      void getData();
      string getName();
      string getUniversity();
      string getfacNum();
      string getSpecialnost();
      string getEGN();
      float getTochki();
      bool getPol();
};

bool Student::getPol() {
      char pol = EGN[8];
      int gpol = pol - '0';
      return gpol % 2 != 0;
}

string Student::getEGN() {
      return EGN;
}

string Student::getName() {
      return name;
}
string Student::getUniversity() {
      return university;
}
string Student::getfacNum() {
      return facNum;
}
string Student::getSpecialnost() {
      return specialnost;
}
float Student::getTochki() {
      return tochki;
}

void Student::getData() {
      cin.ignore();
      cout << "Въведи име: "; getline(cin, name);
      cout << "Въведи ЕГН: "; getline(cin, EGN);
      cout << "Въведи университет: "; getline(cin, university);
      cout << "Въведи факултетен номер: "; getline(cin, facNum);
      cout << "Въведи специалност: "; getline(cin, specialnost);
      cout << "Въведи точки: "; cin >> tochki;
}
void Student::display() {
      cout << "---Студент---" << endl;
      cout << "Име: " << name << endl;
      cout << "ЕГН: " << EGN << endl;
      cout << "Университет: " << university << endl;
      cout << "Факултет: " << facNum << endl;
      cout << "Специалност: " << specialnost << endl;
      cout << "Брой събрани точки от студента: " << tochki << endl;
      cout << endl;

}

class CStudent {
private:
      string name;
      string EGN;
      string school;
      string klas;
      int ctochki;
public:
      void display();
      void getData();
      string getName();
      string getSchool();
      string getKlas();
      int getCTochki();
};

string CStudent::getName() {
      return name;
}
string CStudent::getSchool() {
      return school;
}
string CStudent::getKlas() {
      return klas;
}
int CStudent::getCTochki() {
      return ctochki;
}
void CStudent::getData() {
      cin.ignore();
      cout << "Въведете име: "; getline(cin, name);
      cout << "Въведете ЕГН: "; getline(cin, EGN);
      cout << "Въведете училище: "; getline(cin, school);
      cout << "Въведете клас: "; getline(cin, klas);
      cout << "Въведете броя събрани точки от ученика: "; cin >> ctochki;
      
}

void CStudent::display() {
      cout << "---Ученик---" << endl;
      cout << "Име: " << name << endl;
      cout << "ЕГН: " << EGN << endl;
      cout << "Училище: " << school << endl;
      cout << "Клас: " << klas << endl;
      cout << "Брой събрани точки от ученика: " << ctochki << endl;
      cout << endl;
}

int main() {
      system("chcp 1251");
      int countStudent = 0;
      int countCStudent = 0;
      int highpoints = 0;
      Student students[20];
      CStudent cstudents[20];
      char codeOp;
      do {
            cout << "1 - добавя данни за студент " << endl;
            cout << "2 - добавя данни за ученик " << endl;
            cout << "3 - извежда всички въведени данни " << endl;
            cout << "4 - извежда името на ученика с най-много точки; " << endl;
            cout << "5 - създава масив с данните на всички студентки. " << endl;
            cout << "Посочете операция или 0 за край: " << endl;
            cin >> codeOp;
            switch (codeOp) {
            case'0':
                  break;
            case'1':
                  cout << "Въведете данните на студента: " << endl;
                  students[countStudent++].getData();
                  break;
            case'2':
                  cout << "Въведете данните на ученика: " << endl;
                  cstudents[countCStudent++].getData();
                  break;
            case '3':
                  cout << "Всички студенти и ученици: " << endl;
                  for (int i = 0; i < countStudent; i++) {
                        students[i].display();
                  }
                  for (int i = 0; i < countCStudent; i++) {
                        cstudents[i].display();
                  }
                  break;
            case '4':
                  cout << "Ученика с най-много точки: " << endl;
                  for (int i = 0; i < countCStudent; i++)
                  {
                        if (cstudents[i].getCTochki() > highpoints)
                        {
                              highpoints = cstudents[i].getCTochki();
                              cout << "Име: " << cstudents[i].getName() << endl;
                        }
                  }
                  break;
            case '5':
                  cin.ignore();
                  cout << "Данните на всички студентки: " << endl;
                  for (int i = 0; i < countStudent; i++) {
                        if (students[i].getPol()) {
                              cout << "Име: " << students[i].getName() << endl;
                              cout << "ЕГН: " << students[i].getEGN() << endl;
                              cout << "Университет: " << students[i].getUniversity() << endl;
                              cout << "Факултетен номер: " << students[i].getfacNum() << endl;
                              cout << "Специалност: " << students[i].getSpecialnost() << endl;
                              cout << "Събрани точки: " << students[i].getTochki() << endl;
                        }
                  }
                  break;
            default: cout << "Error! " << endl;
                  break;
            }
      } while (codeOp != 0);
}

PMEmail Poster
Top
toncata164
Публикувано на: 25-05-2022, 10:18
Quote Post



Име: Антон
Група: Потребител
Ранг: Новопостъпил

Мнения: 7
Регистриран на: 14.10.13



Докато циклиш запазвай индекса на елемента, който е с най-много точки, после, след цикъла, му извеждай името.
PMEmail Poster
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2019 | BG Development | All Rights Reserved
RSS 2.0