Логику прогрвммы менять.   
void vvod(gr&d)
  {
       int i=0,n,j;
  cout<<"     vvedite kolichestvo sctudentov"<<endl;
  cin>>n;
  cout<<"vvedite fio,kolichestvo propuskov, kolichestvo progulov ,ocenki";
  for (;i<n;i++)
  {
     
      cin >>d.fio>>d.kpr>>d.kgod;
   
       for(j=0;j<5;j++)
      {
           cout<<"ocenki"<<endl;
         cin>>d.oc[j];
      }
  }
}
Например тут. Сколько ты заносиш студентов в 1 запись? Тогда зачем тут вопрос 
cout<<"     vvedite kolichestvo sctudentov"<<endl;
  cin>>n;
Посчитай, количество элементов, которое ты запрашиваеш у пользователя
  cout<<"vvedite fio,kolichestvo propuskov, kolichestvo progulov ,ocenki";
Я насчитал 4
А программа запрашивает?
cin >>d.fio>>d.kpr>>d.kgod;
Вроде как 3 всего. 
Не стал шерстить дальнейшую логику.