Добавил:
Isroil
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:23 вариант / Курсовая / main
.cpp#include <iostream> // библиотека ввода вывода
#include <Windows.h> // библиотека для корректного отображения кириллицы
#include <cstdlib> // библиотека для вызова функции очистки консоли
#include <fstream> // библиотека для чтения из файла и вывода в файл
using namespace std; // именное пространство std
int answer, sum,row, result, i, j,arr[4][7];
ofstream postIn("output_result.txt"); // создание оператора записи в файл
void firstAnswer(); // функция определения способа заполнения массива
int returnSum(int row){ // функция подсчета суммы в строке
sum = 0;
for(i=0;i<7; i++){
sum = arr[row-1][i] + sum;
}
return sum;
}
void writeTheArrayDown(); // функция записи массива в файл
void writeTheResultDown(int res, int row); // функция записи суммы в файл
int main()
{
SetConsoleCP(1251); // определение кодировки для консоли
SetConsoleOutputCP(1251);
firstAnswer();
start:
system("cls"); //очистка консоли
cout <<"Массив: " << endl; // вывод массива
for(i=0; i<4; i++){
cout << "[\t";
for(j=0; j<7; j++){
if(j==6){
cout << arr[i][j] << "\t";
}
else{
cout <<arr[i][j] << ", \t";
}
}
cout << "]" << endl;
}
cout << endl;
cout << "Добро пожаловать в программу! Пожалуйста, выберите действие: " << endl << "1 - посчитать сумму элементов в строке" << endl << "2 - выход" << endl;
cin >> answer;
switch(answer){ // перехватываем значение ответа
case 1: // если 1
askRowAgain:
cout << "Введите строку, в которой вы хотите посчитать сумму (от 1 до 4): "; cin >> row;
if((row < 1) || (row > 4)){
cout <<"Номер строки вне диапазона!" << endl;
goto askRowAgain;
}
result = returnSum(row);
cout << "Сумма " << row << "-й строки = " << result << endl;
writeTheResultDown(result, row); // функция записывает результат и строку в файл
askAgain:
cout << "1 - вернуться в меню" << endl <<
"2 - выйти из программы" << endl; cin >> answer;
switch(answer){
case 1:
goto start;
break;
case 2:
goto endProgram;
break;
default:
cout << "Ошибка! Выбранный пункт меню отсутствует!" << endl;
goto askAgain;
break;
}
break;
case 2:
goto endProgram;
break;
default:
cout << "Ошибка! Выбранный пункт меню отсутствует!" << endl;
system("pause");
goto start;
break;
break;
}
endProgram:
writeTheArrayDown();
return 0;
}
void firstAnswer(){
askAgain:
cout << "Желаете ввести массив вручную, или предпочитаете, чтобы массив считался из файла?" << endl << "1 - ввести массив самостоятельно" << endl << "2 - заполнить массив из файла" << endl;
cin >> answer;
switch(answer){
case 1:{
for(i=0;i<4;i++){
for(j=0;j<7;j++){
cout << "ARR[" << i << "][" << j << "]: ";
cin>> arr[i][j];
}
}
break;
}
case 2:{
fstream readFrom("data.txt"); //организация чтения из файла data.txt
for(i=0; i<4; i++){
for(j=0;j<7;j++){
readFrom >> arr[i][j];
}
}
readFrom.close();
break;
}
default:{
cout << "Ошибка! Выбранный пункт меню отсутствует!" << endl;
goto askAgain;
break;
}
}
}
void writeTheArrayDown(){
ofstream postIn("output_array.txt"); //запись в файл output_array.txt
for(i=0;i<4;i++){
for(j=0;j<7;j++){
postIn << arr[i][j] << "\t";
}
postIn << "\n";
}
postIn.close();
}
void writeTheResultDown(int res, int row){
postIn <<"Строка " << row << " : ";
for(i=0;i<7;i++){
postIn<<arr[row-1][i] << "\t";
}
postIn << "Сумма: " << res << "\n";
}