Главная страница

КП_ПЯВУ_1курс. Курсовой проект по дисциплине Программирование на языках высокого уровня Тема Проектирование и тестирование программы. Задание 32.


Скачать 258.5 Kb.
НазваниеКурсовой проект по дисциплине Программирование на языках высокого уровня Тема Проектирование и тестирование программы. Задание 32.
Дата23.01.2022
Размер258.5 Kb.
Формат файлаdoc
Имя файлаКП_ПЯВУ_1курс.doc
ТипКурсовой проект
#339989

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ОБРАЗОВАНИЯ

«ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

(ФГБОУ ВО «ВГТУ», ВГТУ)
Факультет заочного образования

Кафедра «Автоматизированные и вычислительные системы»
Направление «Информатика и вычислительная техника»

Профиль «Вычислительные машины, комплексы,

системы и сети»

КУРСОВОЙ ПРОЕКТ
по дисциплине: «Программирование на языках высокого уровня»

Тема: «Проектирование и тестирование программы. Задание №32.»


Расчетно–пояснительная записка



Разработал студент

гр. зВМ –11


Е.В. Голованов

подпись, дата

инициалы, фамилия

Руководитель

Н.И. Гребенникова

подпись, дата

инициалы, фамилия

Нормоконтролер

Н.И. Гребенникова

подпись, дата

инициалы, фамилия

Защищен




Оценка




дата





Воронеж 2018

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ОБРАЗОВАНИЯ

«ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

(ФГБОУ ВО «ВГТУ», ВГТУ)
Кафедра «Автоматизированные и вычислительные системы»
Задание на курсового проекта

по дисциплине " Программирование на языках высокого уровня"

Тема: «Проектирование и тестирование программы». Задание №32»
Студент группы зВМ–11 Голованов Евгений Владимирович

Фамилия, имя, отчество
Номер варианта 32 .
Технические условия: освоить работу в среде программирования Visual Studio; реализовать проектирование и тестирование программы по варианту; оформить расчетно–пояснительную записку.
Содержание и объем работы (графические работы, расчеты и прочее): расчетно – пояснительная записка – 15 страниц формата А4. Изучение теоретического материала по языку высокого уровня С++. Выполнение практического задания, где подробно рассматривается процесс проектирования программы и тестирования программы.
Сроки выполнения этапов: изучение теоретического материала по С++ «Основы языка С++» – до 15.11.2018 г., реализация практического задания – до 05.12.2018 г., оформление расчетно–пояснительной записки – до 20.12.2018 г.
Срок защиты курсового проекта: декабрь2018-январь2019 .


Руководитель

Н.И. Гребенникова

подпись, дата

инициалы, фамилия

Задание принял студент

Е.В. Голованов

подпись, дата

инициалы, фамилия


Студент группы ___________________________________________________

фамилия, имя, отчество
Замечания руководителя

РЕФЕРАТ
Пояснительная записка 15 с., таблица 1, рисунков 4.

Ключевые слова: прямоугольная матрица, обработка элементов матрицы, характеристики матрицы.

Объект исследования или разработки – целочисленная матрица.

Цель работы – проектирование программы для обработки элементов целочисленной матрицы и получения определенных характеристик целочисленной матрицы.

Полученные результаты – получена программа с использованием инструментария программирования среды программирования Visual Studio

СОДЕРЖАНИЕ


Задание на курсовой проект………………………………………………...

2

ВВЕДЕНИЕ 6

1 ФОРМУЛИРОВКА ЗАДАЧИ 7

2 СПЕЦИФИКАЦИИ ЗАДАЧИ 7

3 МАТЕМАТИЧЕСКАЯ ПОСТАНОВКА ЗАДАЧИ 7

4 ОПИСАНИЕ ВЫЧИСЛИТЕЛЬНЫХ МЕТОДОВ 8

5 СХЕМА АЛГОРИТМА 8

6 ТЕКСТ ПРОГРАММЫ 11

7 РУЧНОЙ ПРОСЧЕТ ОТЛАДОЧНОГО ВАРИАНТА 12

8 РЕЗУЛЬТАТЫ МАШИННОГО ТЕСТИРОВАНИЯ ПРОГРАММЫ 13

ЗАКЛЮЧЕНИЕ 15

БИБЛИОГРАФИЧЕСКИЙ СПИСОК 16



ВВЕДЕНИЕ




Разработка сложных современных программных систем, характеризующихся высокой надежностью работы требует знаний теоретических и практических методов и средств разработки программных систем.

Для успешного написания эффективных программ невозможно без знания основных понятий и определений в области программирования и алгоритмизации, особенностей программирования на алгоритмическом языке, основ программирования в среде программирования.

Курсовая работа посвящена разработке программы на языке высокого уровня С++ в среде программирования Visual Studio.


1 ФОРМУЛИРОВКА ЗАДАЧИ



Вариант №ХХ. Написать программу, которая для целочисленной матрицы 10х10 определяет среднее арифметическое ее элементов и количество положительных элементов в каждой строке.

Проектируемая программа предназначена для обработки элементов числовой последовательности и получения определенных характеристик числовой последовательности.

Программа должна:

      • осуществлять ввод с клавиатуры значений элементов целочисленной матрицы;

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

      • определять количество положительных элементов в каждой строке целочисленной матрицы;

  • выводить результаты вычислений.



2 СПЕЦИФИКАЦИИ ЗАДАЧИ





  • Входные данные: исходная числовая последовательность –целочисленная матрица.

  • Выходные данные — характеристики целочисленной матрицы: среднее арифметическое элементов, количество положительных элементов.



3 МАТЕМАТИЧЕСКАЯ ПОСТАНОВКА ЗАДАЧИ



Для решения задачи необходимо определить первоначальный ряд переменных, сведения о которых показаны в табл. 1. Эта исходная таблица может быть дополнена на стадии разработки алгоритма.
Таблица 1. Переменные программы

Имя переменной


Смысл переменной

Назначение переменной


Ограничения


a[i][j]

Элемент прямоугольной матрицы

Исходная

Любые целые числа

nrow

Наибольшее значение количества строк в матрице

Исходная

Константа,

целое число

ncol

Наибольшее значение количества строк в матрице

Исходная

Константа,

целое число

i

Текущий номер строки матрицы

Промежуточная

Целое число

j

Текущий номер столбца матрицы

Промежуточная

Целое число

s

Среднее арифметическое элементов матрицы

Результат

Вещественное число

n_posl_el

Количество положительных элементов в каждой строке, вычисляются последовательно

Результат

Целое число


Примем, что а обозначает исходную целочисленную матрицу, при обработке которой получаем требуемые характеристики.

Переменные n_posl_el, s используются для хранения показателей.

Причем таким образом:

  • s — для хранения среднего арифметического;

  • n_posl_el — для количества положительных чисел строки.



4 ОПИСАНИЕ ВЫЧИСЛИТЕЛЬНЫХ МЕТОДОВ



Определение среднего арифметического прямоугольной матрицы воспользуемся формулой:

(1)

где a[i][j] —элемент i-й строки (i= 1, 2,..., nrow), j-го столбца (j=1, 2,..., ncol).

Вычисление количества положительных элементов строки прямоугольной матрицы производится по формуле:

(2)

где a[i][j] —элемент i-й строки, j-го столбца (j=1, 2,..., ncol).

При вычислении количества положительных элементов для каждой строки вы­полняются однотипные действия: обнуление счетчика N, просмотр каждого элемен­та строки и сравнение его с нулем, при необходимости увеличение счетчика на единицу, а после окончания вычислений — вывод результирующего значения счетчика.

5 СХЕМА АЛГОРИТМА



Для решения поставленной задачи был выбран вариант построения программы со следующей последовательностью действий:

  • инициализация переменных;

  • ввод значений матрицы;

  • контрольный вывод на экран;

  • обработка элементов матрицы построчно для определения количества положительных элементов и вывода на экран полученной характеристики;

  • подсчет среднего арифметического элементов матрицы.




Рисунок 1 - Схема алгоритма основной программы

Программа работает со следующими типами и константами:
const int nrow=3, ncol = 3;

int a[nrow][ncol];

int i, j;
int n_posl_el;

float s = 0;
Схема алгоритма основной программы содержит следующие типовые структурные элементы: цикл, ветвление, выбор.

Перед выполнением циклической части в программе производится инициализация переменных.

При выполнении тела цикла осуществляется согласно алгоритму последовательное выполнение некоторых действий.

Рассмотрим их:

      • считывание данных с клавиатуры

cin >> a[i][j] ;

      • вывод на экран считанных данных

cout << setw(4) << a[i][j] << " ";

      • вычисление значений показателей для считанной последовательности:

s += a[i][j];

if (a[i][j]>0) n_posl_el++;

      • вывод на экран значений полученных показателей

cout << "Строка:" << i << "количество: "<< n_posl_el << endl;

      • вычисление значения среднего арифметического и вывод его на экран

s /= nrow*ncol;

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

После вывода на экран значения среднего арифметического происходит задержка экрана

system ("pause");

При нажатии любой клавиши программа завершает свою работу.


6 ТЕКСТ ПРОГРАММЫ



Программа, соответствующая представленному на рисунке алгоритму, приведена в листинге. Тексты содержат достаточно подробные комментарии и выводимые на экран монитора приглашения для ввода определенных значений исходных данных.

Листинг.
#include "stdafx.h"

#include

#include // для использования манипулятора
using namespace std;
void main( ) {
// инициализация переменных
const int nrow=10, ncol = 20;

int a[nrow][ncol];

int i, j;
setlocale (LC_ALL, "rus"); // возможность вывода информации на экран на русском языке
// ввод элементов массива с клавиатуры

cout << "Введите элементы массива:" << endl;

for (i = 0; i < nrow; i++)

for (j = 0; j < ncol; j++) cin >> a[i][j];
// вывод элементов массива на экран

// ширина поля для вывода устанавливается в четыре символа

//с помощью манипулятора setw()
for (i = 0; i < nrow; i++){

for (j = 0; j < ncol; j++) cout << setw(4) << a[i][j] << " ";

cout << endl;

}
// инициализация переменных

int n_posl_el;

float s = 0;
// обработка элементов матрицы для определения ее характеристик
for (i = 0; i < nrow; i++){

n_posl_el =0;

for (j = 0; j < ncol; j++) {

s += a[i][j]; // сумма всех элементов матрицы

if (a[i][j]>0) n_posl_el++;// подсчет положительных элементов строки
}

cout << "Строка:" << i << "количество: "<< n_posl_el << endl;

}

s /= nrow*ncol; // расчет среднего арифметического

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

system ("pause"); // осуществляет задержку экрана

}


7 РУЧНОЙ ПРОСЧЕТ ОТЛАДОЧНОГО ВАРИАНТА



Размерность массива задана именованными константами (const int nrow=3, ncol = 3;), что позволяет легко ее изменять. Для упрощения отладки заданы небольшие значения этих величин (3,3) , можно приготовить тестовый массив в текстовом файле и изменить програм­му так, чтобы она читала значения из файла.

Тестовые примеры составлены таким образом, чтобы строки массива содержали разное количество отрицательных элементов (ни одного элемента, один и более элементов, все элементы).
1 вариант отладки

Пусть исходная информация содержит следующую числовую последовательность а: -1,-2,-3,-4,5,6,7,8,9

Ручной проверочный расчет для этой последовательности дает следующие результаты:

1 строка - 0 положительных элементов

2 строка - 2 положительных элемента

3 строка - 3 положительных элемента

Среднее арифметическое – 2,78

2 вариант отладки

Пусть исходная информация содержит следующую числовую последовательность а: 1,2,3,4,5,6,7,8,9

Ручной проверочный расчет для этой последовательности дает следующие результаты:

1 строка - 3 положительных элемента

2 строка - 3 положительных элемента

3 строка - 3 положительных элемента

Среднее арифметическое – 4,78

3 вариант отладки

Пусть исходная информация содержит следующую числовую последовательность а: 1,2,-3,-4,-5,6,7,8,9

Ручной проверочный расчет для этой последовательности дает следующие результаты:

1 строка - 2 положительных элемента

2 строка - 1 положительных элемента

3 строка - 3 положительных элемента

Среднее арифметическое – 2,33

8 РЕЗУЛЬТАТЫ МАШИННОГО ТЕСТИРОВАНИЯ ПРОГРАММЫ



На рисунках 2-4 приведены результаты машинного тестирования программы.

Вывести все три отладочных варианта


Рисунок 2 - Первый вариант отладки


Рисунок 3 - Второй вариант отладки


Рисунок 4 - Третий вариант отладки
Выводы: результаты ручного и машинного тестирований совпадают по всем параметрам, погрешность вычисления среднего арифметического образуется за счет округления при выводе результата.

ЗАКЛЮЧЕНИЕ



В результате выполнения курсового проекта были решены следующие задачи:

- изучение основ языка программирования С++;

- освоение работы в среде программирования Visual Studio 12;

- формирование технического задания на выполнение курсового проекта;

- выбор математических методов реализации практической части курсового проекта;

- разработка алгоритма выполнения поставленной задачи;

- кодирование созданного алгоритма;

- составление пояснительной записки к курсовому проекту.

Таким образом, в ходе выполнения курсового проекта были решены все поставленные задачи.

Небольшие программы имеют размер порядка одной – нескольких сотен строк, разрабатываются, как правило, одним человеком без применения специальных методов разработки. На написание таких программ уходит несколько дней, а срок их использования очень короткий. Тем не менее, они являются неотъемлемой частью повседневной работы инженера.


БИБЛИОГРАФИЧЕСКИЙ СПИСОК





  1. Павловская, Т. А. C/C++. Структурное программирование: Практикум / Т. А. Павловская, Ю. А. Щупак. — СПб.: Питер, 2003. — 240 с.

  2. Павловская, Т. А. C/C++. Программирование на языке высокого уровня / Т. А. Павловская. — СПб.: Питер, 2003. — 461 с.


Можно указать книги и сайты, информацией которых вы пользовались


написать администратору сайта