哪位好心人帮我看看这个,我不会了

#include<iostream>
#include<fstream>
using namespace std;
class mypoint
{
public:
    double x[100];
    double y[100];
};
int main()
{
    mypoint points[100];
    int i = 1;
    for (i = 0; i < 100; i++)
    {
        points[100].x[i] = rand() % 100;
        points[100].y[i] = rand() % 100;
        cout << "(" << points[100].x[i] << "," << points[100].y[i] << ")" << endl;
    }
    fstream fs("points.dat", ios::out | ios::binary);
    fs.write(reinterpret_cast<char*>(&points), sizeof(mypoint));
    fs.close();
    fstream fsin;
    fsin.open("points.dat", ios::in | ios::binary);
    int j = 0;
    while (!fsin.eof())
    {
        fsin.read(reinterpret_cast<char*>(&points[j]), sizeof(points));
        j++;
        if (fsin.eof())
            break;
    }
    fsin.close();
    for (i = 0; i < 100; i++)
    {
        cout << "(" << points[100].x[i] << "," << points[100].y[i] << ")" << endl;
    }
    return 0;

具体你不会的在哪里? 请说明。