Консультация № 142271
26.08.2008, 08:56
0.00 руб.
0 1 1
Здравсвуйте эксперты, помогите пожалуйста, самостоятельно пока не получается сделать следующее:
надо создать список студентов
Каждый студент:
1)ФИО
2)Группа 1 или 2
3)Обучение по контаркту или нет
4)Изучаемый язык(английский или немецкий)
5)Место проживания(дома или в общежитии)
6)дата рождения
Далее рейтинги
7)графика
8)иностранный язык
9)информатика
10)история
11)математика
12)физика
13)физкультура
14)общий рейтинг
надо вручную иметь доступ к какждому полю, и из этого буду делать массив
то как я вижу решение этой задачи на Паскале я написал в вопросе 142244, но в Си в этом мало что понимаю

Обсуждение

давно
Старший Модератор
17042
808
26.08.2008, 15:10
общий
это ответ
Здравствуйте, Tribak!
Для решения Вашей задачи необходимо создать пользовательский тип (класс) - TStudent. Поскольку Вы хотите иметь "доступ к каждому полю вручную", то все члены класса - открытые. Класс имеет единственный метод, вычисляющий общий рейтинг студента. Сам класс и пример его использования - в приложении.
NB! Пример написан с использованием STL, поэтому компилятор должен поддерживать Standard C++ (Turbo C версий 1-3 не подойдут).

Приложение:
#include <iostream>
#include <string>
using namespace std;
//--------------------------------------------------------------
enum TLanguage {None, English, Deutch};
enum TMonth {Unknown = 0, Yanuary = 1, February = 2, March = 3, Aprile = 4,
May = 5, June = 6, July = 7, August = 8, September = 9,
October = 10, November = 11, December = 12};
//--------------------------------------------------------------
class TStudent
{
public:
TStudent(); // Конструктор

string sName; // Имя
short nGroupNumber; // Номер группы
bool bIsFree; // Обучается бесплатно
TLanguage Language; // Изучаемый язык
bool bIsHomeGuy; // Проживает дома
short nBirthDay; // День рождения...
TMonth nBirthMonth; // Месяц...
short nBirthYear; // И год.
short // Целочисленные переменные для хранения рейтингов
nGraphics,
nForeignLanguage,
nInformatics,
nHistory,
nMathematics,
nPhysics,
nTraining,
nGeneralRating;

short ShowRating(); // Вычислить и показать общий рейтинг
};
//--------------------------------------------------------------
TStudent::TStudent()
{
sName = "Неизвестный";
nGroupNumber = 0;
bIsFree = true;
Language = None;
bIsHomeGuy = true;
nBirthDay = 0;
nBirthMonth = Unknown;
nBirthYear = 0;
nGraphics = 0;
nForeignLanguage = 0;
nInformatics = 0;
nHistory = 0;
nMathematics = 0;
nPhysics = 0;
nTraining = 0;
nGeneralRating = 0;
}
//--------------------------------------------------------------
short TStudent::ShowRating()
{
nGeneralRating = nGraphics + nForeignLanguage + nInformatics + nHistory + nMathematics + nPhysics + nTraining;
return nGeneralRating;
}
//--------------------------------------------------------------
int main()
{
TStudent Student[3];
for(int i = 0; i < 3; i++)
{
cout << "Введите имя студента: ";
cin >> Student[i].sName;
cout << "Введите рейтинг студента по информатике: ";
cin >> Student[i].nInformatics;
cout << "Введите рейтинг студента по математике: ";
cin >> Student[i].nMathematics;
cout << "Введите рейтинг студента по физике: ";
cin >> Student[i].nPhysics;
cout << "Общий рейтинг студента " << Student[i].sName << " равен " << Student[i].ShowRating() << endl;
}
return 0;
}
Об авторе:
We have but faith: we cannot know;
For knowledge is of things we see;
And yet we trust it comes from thee,
A beam in darkness: let it grow.
-----
https://www.linkedin.com/in/andreynkuznetsov
https://www.researchgate.net/profile/Andrey_Kuznetsov11
http://www.researcherid.com/rid/K-8824-2014
Форма ответа