#include <iostream>
#include <stack>
#include <fstream>
using namespace std;
int main()
{
stack<int> st;
int choice, value;
do
{
cout << "\n===== МЕНЮ =====\n";
cout << "1. Добавить элемент\n";
cout << "2. Удалить элемент\n";
cout << "3. Показать стек\n";
cout << "4. Сохранить в файл\n";
cout << "5. Прочитать из файла\n";
cout << "6. Сумма элементов в файле\n";
cout << "0. Выход\n";
cout << "Ваш выбор: ";
cin >> choice;
switch(choice)
{
case 1:
{
cout << "Введите число: ";
cin >> value;
st.push(value);
cout << "Элемент добавлен.\n";
break;
}
case 2:
{
if(st.empty())
{
cout << "Стек пуст.\n";
}
else
{
cout << "Удален элемент: " << st.top() << endl;
st.pop();
}
break;
}
case 3:
{
if(st.empty())
{
cout << "Стек пуст.\n";
}
else
{
stack<int> temp = st;
cout << "Элементы стека:\n";
while(!temp.empty())
{
cout << temp.top() << endl;
temp.pop();
}
}
break;
}
case 4:
{
ofstream file("data.txt");
if(!file)
{
cout << "Ошибка открытия файла.\n";
break;
}
stack<int> temp = st;
while(!temp.empty())
{
file << temp.top() << endl;
temp.pop();
}
file.close();
cout << "Данные сохранены в data.txt\n";
break;
}
case 5:
{
ifstream file("data.txt");
if(!file)
{
cout << "Не удалось открыть файл.\n";
break;
}
int x;
cout << "Содержимое файла:\n";
while(file >> x)
{
cout << x << endl;
}
file.close();
break;
}
case 6:
{
ifstream file("data.txt");
if(!file)
{
cout << "Не удалось открыть файл.\n";
break;
}
int x, sum = 0;
while(file >> x)
{
sum += x;
}
file.close();
cout << "Сумма элементов = " << sum << endl;
break;
}
case 0:
{
cout << "Программа завершена.\n";
break;
}
default:
{
cout << "Неверный выбор.\n";
}
}
} while(choice != 0);
return 0;
}