Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
AIP, KURSOVAY.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
104 Кб
Скачать
☆
  1. Формализация задачи

В первой части задания требуется считать одномерный массив. Одномерный массив - набор однотипных элементов, доступ к которым осуществляется по индексу. В данной программе массив будет целочисленным и с фиксированной длиной.

Во второй части задания необходимо вычислить сумму элементов массива и сохранить значение в файл, а также изменить выбранный пользователем элемент. Суммирование можно реализовать с помощью арифметического цикла. Файл с результатом сохраняется в C:\Users\Иван\Documents\sumfile.txt

В третьей части задания массив сохраняется в файл C:\Users\Иван\Documents\outfile.txt в виде матрицы размерностью [3 х 5] элементов.

  1. Схема алгоритма

Чтение массива с клавиатуры

Да

Нет

Чтение массива из файла

Да

Нет

Расчет суммы элементов массива

Да

Нет

Изменение элемента массива

Да

Нет

Сохранение в файл и выход

Да

Нет

  1. Текст программы

#include <iostream>

#include <fstream>

#include <conio.h>

using namespace std;

int numbers[15]; //Объявляется массив numbers

ofstream sumfile; //объект sumfile для записи //результатов суммирования в файл

int checkInt(int input); //Функция, которая проверяет, являются //ли вводимые данные целым числом,

// и возвращает их значения

void readArray(); // Функция, предлагающая ввести 15 //чисел в массив numbers

void readFromFile(); // Функция, считывающая массив из //файла infile.txt

void sum(); // Функция, которая суммирует все //значения массива numbers,

// а также записывает результаты //суммирования в файл sumfile.txt

void changeItem(); // Функция изменяет выбранный элемент //массива

void saveArray(); // Функция, которая сохраняет массив в //виде матрицы в файл matrix.txt

void menu(); // Функция, которая выводит на экран меню

void showArray(); // Функция, которая выводит текущий //массив на экран

int main()

{

setlocale(LC_ALL, "Russian");

int choice=0;

cout << "Выберите пункт меню и нажмите Enter" << endl;

while (choice != 5)

{

menu();

showArray();

choice=checkInt(choice);

switch (choice)

{

case 1:

{

readArray();

break;

}

case 2:

{

readFromFile();

break;

}

case 3:

{

sum();

break;

}

case 4:

{

changeItem();

break;

}

case 5:

{

saveArray();

sumfile.close();

break;

}

default:

cout << "Неверный пункт";

_getch();

break;

}

system("cls");

}

return 0;

}

int checkInt(int input)

{

while (!(cin >> input))

{

cin.clear();

while (cin.get() != '\n');

cout << "Ошибка! Введите целое число!" << endl;

}

return input;

}

void readArray()

{

cout << "Введите 15 чисел, разделяя их нажатием клавиши Enter" << endl;

for (int i = 0; i < 15; i++)

{

numbers[i] = checkInt(numbers[i]);

}

}

void readFromFile()

{

ifstream infile("C:\\Users\\Иван\\Documents\\infile.txt");

if (!infile)

{

cout << "Ошибка открытия файла!";

}

else{

for (int i = 0; i < 15; i++)

{

infile >> numbers[i];

}

}

infile.close();

}

void sum()

{

int sum = 0;

for (int i = 0; i < 15; i++)

{

sum += numbers[i];

}

cout << "Сумма элементов массива: " << sum << endl;

if (!sumfile.is_open())

{

sumfile.open("C:\\Users\\Иван\\Documents\\sumfile.txt");

}

if (!sumfile)

{

cout << "Ошибка открытия файла!";

}

else{

sumfile << sum << endl;

}

_getch();

}

//

void changeItem()

{

int index = 0;

cout << "Введите индекс изменяемого элемента (0-14)" << endl;

index = checkInt(index);

cout << "Введите новое значение элемента" << endl;

numbers[index] = checkInt(numbers[index]);

}

void saveArray()

{

ofstream outfile("C:\\Users\\Иван\\Documents\\matrix.txt");

if (!outfile)

{

cout << "Ошибка открытия файла!";

}

else{

for (int j = 0; j < 5; j++)

{

for (int i = 0; i < 3; i++)

{

outfile << numbers[j * 3 + i] << " ";

}

outfile << endl;

}

}

outfile.close();

}

void menu()

{

cout << "Меню:" << endl

<< "1) Считать массив с клавиатуры" << endl

<< "2) Считать массив из файла" << endl

<< "3) Рассчитать сумму элементов массива" << endl

<< "4) Изменить значение элемента" << endl

<< "5) Сохранить и выйти" << endl;

}

void showArray()

{

cout << "Ваш массив: { ";

for (int i = 0; i < 14; i++)

{

cout << numbers[i] << ", ";

}

cout << numbers[14];

cout << " }" << endl;

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]