Здравствуйте, помогите пожалуйста с заданием! Программу сделал, а как выполнить перегрузку не пойму...
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include <windows.h>
#include <string>
using namespace std;
class Student {
public:
char Last_Name[20];
int Course;
int Note[4];
float Stip;
void Input_Date(int n);
void Print_Date();
void Perevod() {
if (Course < 5){
Course++;
cout<<"Перевод успешно произведен!\n";
}
else
cout<<"Перевод невозможен!\n";
};
void Sum_St();
};
float Base_St;
float Koef;
void Student::Input_Date(int n){
cout<<"Введите фамилию "<<n<<"-го студента\n";
cin>>Last_Name;
cout<<"Введите курс\n";
cin>>Course;
for (int i = 0; i < 4; i++) {
cout<<"Введите оценку за "<<i+1<<"-й предмет\n";
cin>>Note[i];
}
};
void Student::Print_Date(){
cout<<"Курс: "<<Course<<"\n";
cout<<"Оценки: ";
for (int j = 0; j < 4; j++)
cout<<Note[j]<<" ";
cout<<"\n";
};
void Student::Sum_St(){
bool Note3 = false, Note4 = false;
for (int i = 0; i < 4; i++)
if (Note[i] <= 3) {
Note3 = true;
break;
}
else if (Note[i] == 4)
Note4 = true;
if (Note3)
Stip = 0;
else if (Note4)
Stip = Base_St;
else
Stip = Base_St * Koef;
cout<<"Стипендия = "<<Stip<<"\n";
}
void _tmain()
{
setlocale( LC_ALL,"Russian" );
char Last_Name[20];
int Count_St = 0;
Student Students[100];
int N;
do {
system("cls");
cout<<"Выберите пункт меню\n";
cout<<"1)Инициализация\n";
cout<<"2)Вывод данных о студенте\n";
cout<<"3)Перевод студента на следующий курс\n";
cout<<"4)Расчет стипендии студента\n";
cout<<"0 - выход из программы\n";
cin>>N;
if (N == 1) {
cout<<"Введите размер базовой стипендии: ";
cin>>Base_St;
cout<<"Введите коэффициент: ";
cin>>Koef;
cout<<"Введите количество студентов: ";
cin>>Count_St;
if (Students == NULL)
exit(1);
for (int i = 0; i < Count_St; i++)
Students[i].Input_Date(i+1);
cout<<"Инициализация прошла успешно!\n";
system("pause");
}
if (N == 2) {
cout<<"Введите фамилию студента: ";
cin>>Last_Name;
for (int i = 0; i < Count_St; i++)
if (!strcmp(Students[i].Last_Name, Last_Name)){
cout<<"Студент найден!\n";
Students[i].Print_Date();
break;
}
system("pause");
}
if (N == 3) {
cout<<"Введите фамилию студента: ";
cin>>Last_Name;
for (int i = 0; i < Count_St; i++)
if (!strcmp(Students[i].Last_Name, Last_Name)){
cout<<"Студент найден!\n";
Students[i].Perevod();
break;
}
system("pause");
}
if (N == 4) {
cout<<"Введите фамилию студента: ";
cin>>Last_Name;
for (int i = 0; i < Count_St; i++)
if (!strcmp(Students[i].Last_Name, Last_Name)){
cout<<"Студент найден!\n";
Students[i].Sum_St();
break;
}
system("pause");
}
} while (N != 0);
cout<<"Произведен выход из программы\n";
system("pause");
}
Вернуться к обсуждению:
Выполнить перегрузку конструктора и операции вывода результатов на экран C++