Вообщем кое-че наваял, будут вопросы стучи в аську
Code
#include <iostream>
#include <fstream>
#include <stdlib.h>
using namespace std;
void error (char *ch)
{
cout<<ch;
exit(0);
}
void main()
{
int i;
char *mess1="Выход за допуски !\n";
char *mess2="Диаметр кордана больше постели \n";
char line[200],*word;
double neck[5]={0},bed=0,liner[5]={0},axial[3];
double size_axial,gap[2];
double temp=0, stemp=0;
ifstream play ;
cout<<"Введите максимальное осевое смещение: ";
cin>> size_axial;
cout<< "Тепловой зазор мин. и макс.(через пробел)\n";
cin>> gap[0]>>gap[1];
cout<<"Введите диаметр \"постели\": ";
cin>>bed;
for(i=0;i<5;i++)
{
cout<<"Введите диаметр "<<i+1<<" коренной шейки: ";
cin>>neck[i];
if(neck [i]>=bed)
error(mess2);
cout<<endl;
}
for(i=0;i<3;i++)
{
cout<<"Введите осевое смещение "<<i+2<<" коренной шейки: ";
cin>>axial[i];
if(axial[i]>size_axial)//проверка осевого биения
error(mess1);
neck[i+1]+=(axial[i]*2);//увеличиваем толщину вала на величину биения
if(neck [i]>=bed)//проверка влазит ли в постель
error(mess2);
cout<<endl;
}
play.open("C:\Вкладыши.txt");//открываем файл с размерам вкладышей
for(i=0;i<5;i++)
{
stemp =bed-neck[i];//сколько места осталось для вкладышей и теп зазора
while(!play.eof())//пока не конец файла
{
play.getline(line,200);//считываем строку
word=strtok (line," \t\n");//ищем слово
while (word!=NULL)//пока не конец
{
temp=atoi(word);//переводим строку в число
if(((stemp-temp*2)<gap[1])&&((stemp-temp*2)>gap[0]))//проверяем зазор
{
if(liner[i]<temp)liner[i]=temp;//если вкладыш тоньше (большой зазор) вставляем толстый
}
word=strtok (NULL,"\t\n");//считываем следующее слово
}
}
play.seekg(ios::beg);
//rewind(play);//перемещаем курсор в начало файла
}
cout<<endl;
for(i=0;i<5;i++)
cout<< liner [i]<<"\t";
play.close();
}