Здравствуйте!
Делал курсовую работу (делаю), уже почти всё написал, но оказалось, что ввод/вывод должен быть файловым. Как переделать то, что уже написано ума не приложу, поэтому хочу проконсультироваться на форуме насчет того, можно ли вообще использовать массивы (вектора) при файловом В/В ?
Выложу небольшой кусочек кода, где покажу, как реализованы эти массивы:
Код:
class worker // класс робітник
{
public:
deque <project> ProjectsWorker; //Проекти, в яких приймав участь робітник ( останні 5 проектів) МАССИВ, ОСТАННІ 5
position PositionOccupied; // Посада яку займає робітник Об’єкт типу «посада»
string Name; // ім"я робітника
string Surname; // прізвище робітника
int AccountNumberWage; // Номер рахунку заробітної плати
string WorkerUnit;//Підрозділ, де працює робітник;
double Seniority; // Трудовий стаж робітника
};
Код:
worker metod::InitW(worker _objW)
{
string bufString;
int bufInt;
double bufDouble;
system("cls");
cout << "Add a post working under number \n"; // Добавить должность рабочему, если её нет, то добавить её.
if(MasPosition.empty())
{
do
{
system("cls");
cout << "First, you need to add at least one post \n";
cout << "1) Add position \n";
cout << "2) Back \n";
cin >> bufInt;
switch(bufInt)
{
case 1:
{
//static metod obj;
AddPosition();
}
break;
default:
break;
}
}
while(bufInt =! 2);
}
else
{
for(int i = 0; i < MasPosition.size(); ++i)
{
cout << i+1 << ") " << MasPosition[i].TitlePosition << "\n" << endl;
}
int num;
cin >> num;
_objW.PositionOccupied = MasPosition[num-1];
cout << "Position worker added \n" << endl;
UntilKeypressed();
}
cout << "Add Projects working under the number \n"; // Добавить должность рабочему, если её нет, то добавить её.
if(MasProject.empty())
{
do
{
system("cls");
cout << "You have no projects to add a project? \n";
cout << "1) Add project \n";
cout << "2) Back \n";
cin >> bufInt;
switch(bufInt)
{
case 1:
{
//static metod obj;
AddProject();
}
break;
default:
break;
}
}
while(bufInt =! 2);
}
else
{
for(int i = 0; i < MasProject.size(); ++i)
{
cout << i+1 << ") " << MasProject[i].TitleProject << "\n" << endl;
}
int num;
cin >> num;
if(_objW.ProjectsWorker.size() < 5)
{
_objW.ProjectsWorker.push_front(MasProject[num-1]);
cout << "Position worker added \n" << endl;
UntilKeypressed();
}
else
{
_objW.ProjectsWorker.push_front(MasProject[num-1]);
_objW.ProjectsWorker.pop_back();
cout << "Position worker added \n" << endl;
UntilKeypressed();
}
}
cout<<"Add name \n";
cin >> bufString; // ім"я робітника
_objW.Name = bufString;
cout<<"Add surname \n";
cin >> bufString; // прізвище робітника
_objW.Surname = bufString;
cout<<"Add the account number \n";
cin >> bufInt; // Номер рахунку заробітної плати
_objW.AccountNumberWage = bufInt;
cout<<"Add record \n";
cin >> bufDouble; // Трудовий стаж робітника
_objW.Seniority = bufDouble;
return _objW;
};
void metod::AddWorker() //Можливість додавати робітників
{
worker _objWorkerN;
_objWorkerN = InitW(_objWorkerN);
MasWorker.push_back(_objWorkerN);
cout << "Workera dodano \n";
UntilKeypressed();
};