Задача: Написати програму, яка використовує структуру з наступними полями:
Name( Student name)
Idnum (Student ID number)
Tests (Pointer to an array of test scores)
Average (Average test score)
Grade (Course grade)
В програмі має бути динаміний масив таких структур.
Це я реалізувала так:
▼Прихований текст
#include <iostream>
#include <string>
using namespace std;
struct DataStudent
{
    string Name;
    int Idnum;
    int *Tests;
    double Average;
    char Grade; // A-F
};
DataStudent *createData(int &size_group, int &number_tests)
{
    if (size_group == 0 )
        size_group = 1;
    DataStudent *group = new DataStudent[size_group];
    for (int i = 0; i < size_group; ++i)
        group[i].Tests = new int[number_tests];
    return group;
}
bool validInput(int number)
{
    if (number < 0)
        return false;
    return true;
}
int main()
{
    int number_students, number_tests;
    do{
        cout << "How many students there are: ";
        cin >> number_students;
        cout << "How many test scores there are to be: ";
        cin >> number_tests;
        if (!validInput(number_students) || !validInput(number_tests))
            cout << "Incorrect input\n";
    } while (!validInput(number_students) && !validInput(number_tests));
    DataStudent *group_of_students = createData(number_students, number_tests);
    return 0;
}
І ще в задачі необхідно виконати перевірку на заповненість усіх полів. Так от, як це зробити для поля Name я знаю - просто перевірити чи рядок не пустий, а як зробити перевірку для числових полів - не знаю,  і взагалі, воно ж не дасть ввести "нічого", там де має бути число.
Підкажіть, будь ласка, як це зробити, або направте.