Здравейте имам нужда от помощ за една програма.
#include "School.h"
#include "Students.h"
CSchool::CSchool()//конструктор по подразбиране
{
cout << "Въведете името на училището: ";
cin.sync();
getline(cin, m_name);
cout << "Въведете броя на учениците в него: ";
cin >> m_br;
cout << "Данни за учениците: " << endl;
m = new CStudent[m_br];
for (int i = 0; i < m_br; i++)
m[i].OnRead();
}
CSchool::CSchool(string n, int b)//конструктор по с параметри
{
m_name = n;
m_br = b;
cout << "Данни за ученици: " << endl;
m = new CStudent[m_br];
for (int i = 0; i < m_br; i++)
m[i].OnRead();
}
void CSchool::OnAdd()//добавя нов ученик в масива
{
int i;
if (m_br)
{
m_br++;
CStudent *p = m;
m = new CStudent[m_br];
for (i = 0; i < m_br - 1; i++)
m[i] = p[i];
delete[]p;
cout << "Въведи данни за новия ученик: " << endl;
m[m_br - 1].OnRead();
}
}
int CSchool::Index(int m_number, string m_class) //търси ученик и връща неговия индекс
{
for (int i = 0; i < m_br; i++)
if (m_number == m[i].num_access() && m_class == m[i].class_access()) return i;
return -1;
}
void CSchool::OnDel()//изтрива ученик по номер в класа
{
int m_number;
string m_class;
int i, j;
cout << "Въведи класа на ученика: ";
cin.sync();
getline(cin, m_class);
cout << "Въведи номер в класа за изтриване: ";
cin >> m_number;
for (i = 0; i < m_br; i++)
if (Index(m_number, m_class) != -1)
{
m_br--;
CStudent *p = m;
m = new CStudent[m_br];
for (j = 0, i = 0; i <= m_br; i++)
if (p[i].class_access()!= m_class || p[i].num_access() != m_number)
m[j++] = p[i];
delete[]p;
cout << "Ученикът е изтрит!\n"; }
else
cout << "Няма такъв ученик!!!\n";
}
void CSchool::OnPrint()//отпечатва данните на всички
{
cout << "Училище: " << m_name << endl;
for (int i = 0; i < m_br; i++)
{
m[i].OnPrint();
cout << endl;
}
cout << "Броя на всички ученици в училището е :" << m_br<<endl<<endl;
}
void CSchool::IsInSchool() ///актуализира оценките на учениците
{
int m_number;
string m_class;
cout << "Въведи класа на ученика: ";
cin.sync();
getline(cin, m_class);
cout << "Въведи номер на ученика: ";
cin >> m_number;
for (int i = 0; i < m_br; i++)