Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.11.2021, 02:06   #1
SimonDark
Новичок
Джуниор
 
Регистрация: 10.11.2021
Сообщений: 1
По умолчанию C++ Агрегация и использование классов с методами

Что и было сказано в заголовке, организовать агрегацию и классы методов в коде


Код:
#include <iostream>
#include <limits.h>
#include <iomanip>
#include <fstream>

using namespace std;


struct MARSH
{
char NameStart [16];
char NameEnd [16];
int Number;
};

int Count = 0;
const int MaxEl = 8;
MARSH El[MaxEl];


char ShowMenu (void)
{
cout<<
"-----------------------"<<endl<<
"		 MENU		 "<<endl<<
"-----------------------"<<endl<<
"<1> - Input Marshrut"<<endl<<
"<2> - Print All Marshrut"<<endl<<
"<3> - Print Marshrut of Number"<<endl<<
"<4> - Quit"<<endl<<endl<<
"<5> - Save To File"<<endl<<
"<6> - Load From File"<<endl;

cout<<": ";

return getchar();
};


bool Add()
{
MARSH Temp;
cin.sync();

cout<<endl<<
"----------------------------------------"<<endl<<
"		  Input new Marshrut"<<endl<<
"----------------------------------------"<<endl;
cout<<"Enter Start Marshrut: ";
cin.getline(Temp.NameStart,16);

cout<<"Enter End Marshrut: ";
cin.getline(Temp.NameEnd,16);

cout<<"Enter Number (#) Marshrut: ";
cin>>Temp.Number;
cout<<endl;

if (Count < MaxEl)
{
El[Count] = Temp;
Count ++;
} else {
cout<<endl<<"False :Massive is FULL"<<endl;
cin.sync();
return false;
}

cin.sync();
return true;
}


void Sort (void)
{
for (int i = 0; i< Count; i++)
{
int Min = INT_MAX;
int minPos = -1;
for (int j=i; j<Count;j++)
{
if (El[j].Number<Min)
{
Min = El[j].Number;
minPos = j;
}
MARSH Temp;
Temp = El[i];
El[i] = El[minPos];
El[minPos] = Temp;
}
}
}


void Print(void)
{

cout<<setw(3)<<"  "<<setw(6)<<"#	 "<<setw(17)<<"Start Marshrut  "<<setw(17)<<"End Marshrut  "<<endl<<
"------------------------------------------"<<endl;
cout.setf(ios::left);

for (int i=0; i < Count; i++)
{
cout<<setw(3)<<i+1<<setw(6)<<El[i].Number<<setw(17)<<El[i].NameStart<<setw(17)<<El[i].NameEnd<<endl;
}
cout.unsetf(ios::left);
cout<<"------------------------------------------"<<endl<<endl;

cin.sync();
cin.get();
}


void PrintOfNumMars(void)
{
int NumMarsh;
cin.sync();
cout<<endl<<"Input No Marshruta : ";
cin>>NumMarsh;
cout<<endl;

for (int i=0; i < Count; i++)
{

if (El[i].Number == NumMarsh)
{
cout<<setw(3)<<"  "<<setw(6)<<"#	 "<<setw(17)<<"Start Marshrut  "<<setw(17)<<"End Marshrut  "<<endl<<
"------------------------------------------"<<endl;
cout<<setw(3)<<i+1<<setw(6)<<El[i].Number<<setw(17)<<El[i].NameStart<<setw(17)<<El[i].NameEnd<<endl;

cin.sync();
cin.get();
return;
}
}

cout<<"Marshrut "<<NumMarsh<<" NOT FOUND"<<endl;

cin.sync();
cin.get();
}


void SaveToFile(void)
{
char filename[256];
cout<<endl<<"Input Filename to Save Date : ";
cin.sync();
cin.get(filename,256);

ofstream OutFile(filename,ios::binary);
for (int i=0; i < Count; i++)
{
OutFile.write(reinterpret_cast<char*>(&El[i]),sizeof(El[i]));
}
OutFile.close();


void LoadFromFile(void)
{
char filename[256];
cout<<endl<<"Input Filename to Load Date : ";
cin.sync();
cin.get(filename,256);

ifstream InFile(filename,ios::binary);
Count = 0;
InFile.read(reinterpret_cast<char*>(&El[Count]),sizeof(El[Count]));
while (!InFile.eof())
{
InFile.read(reinterpret_cast<char*>(&El[Count]),sizeof(El[Count]));
Count++;
}

InFile.close();
}


int main (void)
{
char ch=0;
while (ch !='4')
{
cin.sync();
ch = ShowMenu();
switch (ch)
{
case '1': Add();Sort();break;
case '2': Print();break;
case '3': PrintOfNumMars();break;
case '5': SaveToFile();break;
case '6': LoadFromFile();break;
}
}
return 0;
}
SimonDark вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с методами классов, перегрузкой, дружественными ф-циями alex1998109 Общие вопросы C/C++ 0 10.03.2017 22:09
Использование классов С++ Anderkor Помощь студентам 0 19.12.2012 00:13
Использование классов SoftKoc Свободное общение 5 11.02.2011 20:05
Проблема с методами классов в C#. Булкин Помощь студентам 2 19.07.2010 12:54
Создание классов и использование объектов классов при написании программ в среде C++. Frozen inside Помощь студентам 0 16.04.2009 23:18