Программа выполняющая считывание массива и выполняющая простейшие операции с членами массива
Санкт-Петербургский государственный университет телекоммуникаций им.проф. М.А.Бонч-Бруевича
Факультет информационных систем и технологий
________________________________________________________________________
Курсовая работа
по дисциплине «Алгоритмизация и программирование»
Выполнил
студ.1 курса, гр.ИСТ342
направление подготовки 230400
____________Гайнетдинова Ю. И.
«___»________ 2014
Принял
ст.пр.каф.БИС
_____________
оценка
_____________ Евстигнеев В.А.
«___»________ 2014
Содержание
Аннотация ………………………………………………………3
Задача ……………………………………………………….......4
Последовательность действий
для выполнения курсовой работы…………………………….5
Решение ………………………………………………………..5
Формализация задачи ..……………………………………….6
Разработка алгоритма...……………………………………….8
Код программы ……………………………………………….12
Руководство пользователя …………………………………...15
Заключение ……………………………………………………16
Список литературы …………………………………………...17
Аннотация
Данная курсовая работа содержит решение задач по работе с числовыми массивами с помощью программы, реализованной на персональном компьютере. Практическая значимость данной программы готовый электронный продукт файл, позволяющий выполнить:
а) считывание массива;
б) выполнение простейших операций с членами массива;
в) сохранение массива.
Задача
Разработать блок-схему алгоритма программы и программу, которая:
а) вводит с клавиатуры или читает из файла одномерный массив целых чисел размерностью [15] элементов и выводит его на экран. Элементы массива в файле расположены в виде одного столбца;
б) производит поиск max или min элемента массива по запросу и результат выдает на экран. Предусмотреть возможность повторного поиска по запросу пользователя;
в) по окончании работы сохраняет массив в файле с именем. Данные этого массива сохраняются в виде матрицы, размерностью [3 5] элементов с двумя пробелами между ними.
Последовательность действий для выполнения курсовой работы
- формализация задачи и разработка алгоритма;
- составление программы;
- ввод и отладка программы.
Решение
Для создания функционирующей программы был составлен ее алгоритм и написан код на языке программирования С++ в интегрированной среде разработки Code::Blocks 13.12.
Формализация задачи
Для написания программы использован язык C++.
В программе организовано, в соответствии с заданием, два способа ввода массива: из заранее подготовленного файла и с клавиатуры.
- Для ввода названия файлов ввода и вывода данных программы используются специальный класс строковых переменных string. Для того чтобы использовать объекты класса string, необходимо включить соответствующий заголовочный файл: #include <string>;
- Для работы с файлами используются специальные типы данных, определяющие потоки. Для работы с файлами в режиме записи и чтения служит поток fstream.
Чтобы считать информацию из текстового файла, необходимо описать переменную типа ifstream. Для завершения считывания данных из файла нужно закрыть его, для этого используется процедура закрытия f.close().
- В случае ввода массива с клавиатуры используется вложенная циклическая конструкция for, и элементы считываются с помощью оператора вывода библиотеки iostream;
Для вывода считанного массива на экран используется оператор вывода iostream.
- Нахождение минимума и максимума осуществляется при помощи булевой переменной .В цикле типа do происходит сравнение элементов массива друг с другом для выяснения максимального и минимального значения . Операция повторяется многократно, по требованию пользователя . while закрывает цикл. Результат выводится на экран с помощью оператора вывода.
- Для записи информации в файл необходимо описать переменную типа ofstream. После этого нужно открыть файл для записи с помощью оператора open. Для записи в поток массива используется вложенная циклическая конструкция. Для завершения записи данных в файл нужно закрыть его, для этого используется процедура закрытия f.close().
Разработка алгоритма
По поставленной задаче была составлена общая блок-схема алгоритма программы(рис. 1) . Структура программы составлена из 3 основных функций соответствующих пунктам задания (а, б, в).
Блок-схемы эти под номерами 2, 3, 4 .
Ввод массива (рис. 2)
Поиск min и max(рис. 3)
Сохранение массива .в
файл(рис. 4)
1)начало блока;
2)ввод пользователя
3)выбор дальнейшего действия после
выбора пользователя;
4) ввод полного пути нужного
файла;
5)открываем выбранный
файл;
6) цикл i, i=0, i++(шаг);
7)считываем массив (mas[i]);
8) конец цикла i=15;
9) цикл i, i=0, i++(шаг);
10) считывание массива (mas[i])
с клавиатуры;
11) конец цикла i=15;
12) цикл i, i=0, i++(шаг);
13) выводим на экран массив;
14) конец цикла;
15) конец.
1) Min>mas[i]
2) Max<mas[i]
Код программы
#include <fstream>
#include <iostream>
#include <string>
#include <locale>
using namespace std;
int mas[15];
void vvod_massiva()
{
int vybor;
cout << "Для ввода массива с клавиатуры - нажмите 1 " << endl;
cout << "Для ввода массива из файла - нажмите 2 " << endl;
cout << "Ваш выбор : ";
cin >> vybor;
if(vybor == 1) // ветвление в зависимости от источника
{
cout << "Введите 15 целочисленных элементов : " << endl;
for (int i = 0; i < 15; i++)
{
cin >> mas[i];
}
}
else
{
string putb; //
ifstream file;
cout << "Введите путь к файлу : ";
cin >> putb;
file.open(putb.c_str());
for (int i = 0; i < 15; i++)
{
file >> mas[i]; }
file.close();}
for (int i = 0; i < 15; i++)
{
cout << mas[i] << " ";}
}
void min_max()
{
bool repeat;
do//цикл с неизвестным числом повторений зависит от пользователя
{
int min = mas[0];
int max = mas[0];
for (int i = 0; i < 15; i++)
{
if (min>mas[i]) min = mas[i];
if (max<mas[i]) max = mas[i];
}
cout << endl << "Min = " << min << " Max = " << max;
cout << endl << "Повторить? - 1.Да, 0.Нет : "; cin >> repeat;
} while (repeat);}
void coxp_massiv()
{
ofstream file; //переменная потока вывода
string putb; // переменная пути к файлу
int schet = 0;//вспомогательная переменная для переноса строки
cout << endl << "Введите путь к файлу, в который нужно вывести массив : "; cin >> putb;
file.open(putb.c_str());
for (int i = 0; i < 15; i++)
{
file << mas[i] << " ";
schet++;
if (!(schet % 5)) file << endl; }
file.close();}
int main()
{
setlocale(LC_ALL, "Russian");
vvod_massiva();
min_max();
coxp_massiv();
return 0;
}
Руководство пользователя
Последовательность действий при работе с программой приведена ниже.
- Запустите программу из файла source.exe.
- В появившемся окне выберете один из подходящих вам вариантов ввода массива.
- Ввод с клавиатуры:
Необходимо поэлементно ввести каждый компонент массива. Ввод осуществляется построчно, для отделения элементов используется клавиша Enter.
б. Чтение из файла:
Необходимо ввести полный путь файла, содержащего данные для обработки. Формат файла должен быть .txt. Элементы, содержащиеся в файле, должны быть целочисленные. После указания нужного документа, выполните его открытие при помощи клавиши Enter.
- На экран выводится максимальное и минимальное значение указанного массива, для повторения процедуры выберите соответствующий вариант.
- При завершении программы, предлагается сохранить массив в выбранный вами документ. Для этого следует прописать полный путь файла, в который произведется сохранение. Он должен быть формата .txt.
- Программа завершает свою работу автоматически.
При возникновении ошибок работы программы следует:
закрыть программу, нажав крестик в верхнем правом углу окна;
запустить программу и вновь произвести всю работу.
Для работы программы требуется ПК с ОС семейства Windows.
Заключение
Мною была написана программа, выполняющая все заданные требования по работе с числовыми массивами. Разработанные блок-схемы в полной мере отражают алгоритм работы программы. Написанное руководство пользователя, а также дружественный интерфейс помогают освоить все аспекты работы с программой, делая ее простой и понятной. Объем программы 86 строк.
Список использованной литературы
- Павловская Т.А. C/C++, Программирование на языке высокого уровня.- СПб.: Питер, 2005.
- Стефан Р. Дэвис - С++ Для чайников СПб.: Диалектика, Вильямс, 2003.
- ГОСТ 19.70190 (ИСО 580785). Единая система программной документации. Схемы алгоритмов, программ данных и систем. Условные обозначения и правила выполнения.
- Конспект лекций по курсу «Алгоритмизация и Программирование».
- ГОСТ 19.70190 (ИСО 580785). Единая система программной документации. Схемы алгоритмов, программ данных и систем. Условные обозначения и правила выполнения.
- Стефан Р. Дэвис - С++ Для чайников СПб.: Диалектика, Вильямс, 2003.
начало
Ввод массива
Рис. 1
конец
Сохранение массива в файл
Поиск min и max
Начало(1)
Ввод с клавиатуры(12)
Ввод пользователя
(vbor)(2)
Vibor(3)
Заканчиваем цикл(11)
Ввод пути к файлу(4)
Открытие файла(5)
Считывание массива (10)
Цикл считывание из файла(6)
Считывание массива(7)
Заканчиваем цикл(8)
Заканчиваем цикл(14)
Выводим на экран массив (13)
Ввод с клавиатуры(9)
Рис. 2
Конец (15)
Начало
Рис. 3
да
Min=mas[i]
Ввод пользователем ответа
Выводим min и max
Заканчиваем цикл
Цикл сравнения и присваивания
Сравнение min(1)
да
Сравнение max(2)
нет
нет
Начало цикла
Max=mas[i]
Присваиваем min и max
Конец
Заканчиваем цикл (repeat)
Рис. 4
Ввод пути к файлу
Цикл
Открытие файла
начало
конец
Закрытие файла
Конец цикла
Выводим массив