Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

4 курс / Програмная инженерия / Средн.ариф.тесты.прецеден.класы

.docx
Скачиваний:
41
Добавлен:
10.07.2016
Размер:
202.4 Кб
Скачать

/*

Ввести одномерный массив и посчитать среднее арифметическое элементов

после последнего нуля, построить диаграмму прецедентов, классов, таблицу тестов.

Автор: Русаков Д.

Дата: 09.12.15

*/

#include<iostream>

using namespace std;

class Array

{

int size; // Размерность массива

float *array; // Рабочий динамический массив

int count = 0; //

float sum = 0; // Сумма

public:

Array(int Size) // Конструктор

{

array = new float[Size];

size = Size;

}

void InputArray() // Ввод массива

{

cout << "Введите значения в массив" << endl;

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

{

cout << "Введите " << i+1 << " элемент" << endl;

cin >> array[i];

}

}

void Show() // Вывод

{

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

{

cout << endl << i + 1 << " элемент: " << array[i];

}

}

float average() // Нахождение среднего арифметического

{

if (array[size] == 0) // Если ноль на последней позиции

{

cout << endl << "Ноль на последней позиции!";

return -1;

}

for (int i = size - 1; i >= 0; i--)

{

if (array[i] == 0) return sum/count;

sum += array[i];

count++;

}

if (count == size) cout << endl << "Нет нулей!";

return sum/count;

}

};

void main()

{

setlocale(0, "");

int size; // Размерность массива

do // Проверка корректной размерности

{

cout << "Введите размерность массива (от 1 до 50):" << endl;

cin >> size;

if ((size < 0) || (size > 50)) cout << "Некорректный ввод, повторите!" << endl;

} while ((size < 0) || (size > 50));

Array myArray(size); // Инициализация массива

myArray.InputArray(); // Ввод массива

myArray.Show(); // Вывод массива

float Average = myArray.average(); // Среднее арифметическое

cout << endl << "Среднее арифметическое: " << Average << endl;;

system("pause");

}

Протокол:

Тестирование

Size

Elements

Average

Тип теста

1

5

1, 2, 0, 3, 4

3.5

Нормальный тест

2

-1

-

-

Исключительный/ Обработка нового ввода

3

5

1, 2, 3, 5, 5

-1

Нормальный тест/ Отсутствует 0

4

3

1, 2, 0

-

Граничный/ Нет элементов после 0

5

текст

-

-

Исключительный

6

1

текст

-

Исключительный

7

1

2

-

Граничный

8

1

0

-

Граничный