4 курс / Програмная инженерия / Средн.ариф.тесты.прецеден.класы
.docx/*
Ввести одномерный массив и посчитать среднее арифметическое элементов
после последнего нуля, построить диаграмму прецедентов, классов, таблицу тестов.
Автор: Русаков Д.
Дата: 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 |
- |
Граничный |