Скачиваний:
53
Добавлен:
16.11.2018
Размер:
4.44 Кб
Скачать
#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";
}






Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

Оставленные комментарии видны всем.

Соседние файлы в папке Курсовая