Разработка программы решения задачи на языке C#

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    371,09 Кб
  • Опубликовано:
    2014-10-28
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка программы решения задачи на языке C#













КУРСОВАЯ РАБОТА

на тему: Разработка программы решения задачи на языке C#

по дисциплине: “Основы конструирования программ”

ОГЛАВЛЕНИЕ

ВВЕДЕНИЕ

РАЗДЕЛ 1. ПОСТАНОВКА ЗАДАЧИ

РАЗДЕЛ 2. МАТЕМАТИЧЕСКАЯ ФОРМУЛИРОВКА ЗАДАЧИ     

РАЗДЕЛ 3. АЛГОРИТМИЗАЦИЯ ЗАДАЧИ

РАЗДЕЛ 4 ИДЕНТИФИКАТОРЫ ПРОГРАММЫ

РАЗДЕЛ 5. СХЕМЫ АЛГОРИТМОВ

Метод «Main»

Метод «numberOfColumnsWithZeroElement»

Метод «numberOfLineSameElement»

Метод «randomlyfillingmatrix»

Метод «izfail»

РАЗДЕЛ 6. ТЕКСТ ПРОГРАММЫ       

Листинг 1 метод «Main» [1]

Листинг 2 метод “numberOfColumnsWithZeroElement” [2

Листинг 3 метод “numberOfLineSameElement” [3]

Листинг 4 метод «randomlyfillingmatrix» [4]

Листинг 5 метод «izfail» [5]

РАЗДЕЛ 7. РЕЗУЛЬТАТЫ ВЫПОЛНЕНИЯ ПРОГРАММЫ

РАЗДЕЛ 8. АНАЛИЗ РЕЗУЛЬТАТОВ

РАЗДЕЛ 9. инструкция по работе с программой

ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

 приложение матрица идентификатор программа

ВВЕДЕНИЕ

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

Цель данной работы - раскрыть суть и возможности алгоритмизации и программирования, сформировать понимание - какими средствами и методами создаются программы.

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

РАЗДЕЛ 1. ПОСТАНОВКА ЗАДАЧИ

В данной программе пользователю предоставляется выбор как будет заполнятся матрица: при вводе цифры «1» матрица будет заполнятся случайными числами, а при вводе цифры «2» матрица будет выводится из файла.

В первом случае с клавиатуры вводится количество строк и столбцов. На основе этих данных в методе «Метод «randomlyfillingmatrix»» создается целочисленная прямоугольная матрица которая заполняется случайными числами, возвращается в основной метод и выводится в текстовый файл. Далее вызывается метод “Метод «numberOfColumnsWithZeroElement» ”. В методе проверяется: если в столбце есть хотя бы один нулевой элемент, то счётчик столбцов с нулевыми элементами увеличивается на единицу. Метод возвращает в основную программу, этот счетчик и выводит данные в текстовый файл.

После этого вызывается следующий метод - “Метод «numberOfLineSameElement»”, в котором осуществляется поиск строки, в которой находится самая длинная серия одинаковых элементов. А именно, если находит одинаковый элементы, то считает одну последовательность, если элементы не равны, то считаем новую последовательность, если полученная последовательность больше найденной, то сохраняем новый результат. если в строке найдена новая последовательность, и она больше последовательностей в других строках сохраняем новое значение наибольшей последовательности и запоминаем строку. После этого осуществляется возврат результата в основной метод и вывод результата в текстовый файл.

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

РАЗДЕЛ 2. МАТЕМАТИЧЕСКАЯ ФОРМУЛИРОВКА ЗАДАЧИ

Двумерный массив - это одномерный массив, элементами которого являются одномерные массивы. Другими словами, это набор однотипных данных, имеющий общее имя, доступ к элементам которого осуществляется по двум индексам. Наглядно двумерный массив удобно представлять в виде таблицы, в которой n строк и m столбцов, а под ячейкой таблицы, стоящей в i-й строке и j-м столбце понимают некоторый элемент массива a[i][j].

[6]


Матрица[22] - математический объект <#"869125.files/image002.gif">

mass [n*m]

Двумерный массив размерностью n*m.

n

количество строк

m

количество столбцов

rand

Переменная для случайных чисел

i

Индекс строки

g

Индекс столбца

maxEqual

Переменная для записи максимальной последовательности

row

Переменная для запоминания строки

a

Переменная текстового потока

b

Пустая переменная

РАЗДЕЛ 5. СХЕМЫ АЛГОРИТМОВ

Метод «Main»

Рисунок 1- Метод «Ma <file:///C:\Users\hahol_000\Downloads\MatrixHorizont.nsd>in»

Метод «numberOfColumnsWithZeroElement»

Рисунок 2 - Метод «numberOfColumnsWithZeroElement»

Метод «numberOfLineSameElement»


Метод «randomlyfillingmatrix»

Рисунок 4 - Метод  <file:///C:\Users\hahol_000\Downloads\Main.nsd> «randomlyfillingmatrix»

Метод «izfail»

Рисунок 5 - Метод  <file:///C:\Users\hahol_000\Downloads\Main.nsd> «izfail»

РАЗДЕЛ 6. ТЕКСТ ПРОГРАММЫ

Листинг 1 метод «Main» [1].WriteLine("Выберите способ заполнения матрицы: ");.WriteLine("1-случайными числами");.WriteLine("2-из файла");

int b = int.Parse(Console.ReadLine());a = new StreamWriter(@"E:\rezultat.txt");

if (b == 1)

{.WriteLine("введите кол-во строк");

int n = int.Parse(Console.ReadLine());

Console.WriteLine("введите кол-во столбцов");

int m = int.Parse(Console.ReadLine());[,] mass = randomlyfillingmatrix(n, m);.WriteLine("количество столбцов, содержащих нулевой элемент {0}", numberOfColumnsWithZeroElement(mass));maxEqual = 0;row = -1;(mass, ref row, ref maxEqual);(row > 0).WriteLine("Найдена наибольшая серия из {0} элементов в строке № {1}", maxEqual, row);

else a.WriteLine("Серий одинаковых элементов в строках не найдено");

}(b == 2)

{string doc = @"E:\matrixfile.txt";[,] mass = izfail(doc);.WriteLine("количество столбцов, содержащих нулевой элемент {0}", numberOfColumnsWithZeroElement(mass));maxEqual = 0;row = -1;(mass, ref row, ref maxEqual);(row > 0).WriteLine("Найдена наибольшая серия из {0} элементов в строке № {1}", maxEqual, row);

else a.WriteLine("Серий одинаковых элементов в строках не найдено");

}.Close();

Листинг 2 метод “numberOfColumnsWithZeroElement” [2]Count = 0;result = 0;(int i = 0; i < mass.GetLength(1); i++)

{(int j = 0; j < mass.GetLength(0); j++)

{(mass[j, i] == 0)

{++;

}

}(Count > 0)++;= 0;

}result;

Листинг 3 метод “numberOfLineSameElement” [3](int i = 0; i < mass.GetLength(0); i++)

{tmpEqual = 1, currEqual = 1;(int j = 0; j < mass.GetLength(1) - 1; j++)

{(mass[i, j] == mass[i, j + 1])++;tmpEqual = 1;(tmpEqual > currEqual)= tmpEqual;

}(currEqual > maxEqual && currEqual > 1)

{= currEqual; row = i + 1;

}

}

Листинг 4 метод «randomlyfillingmatrix» [4]a = new StreamWriter(@"E:\matrixrandom.txt");rand = new Random();[,] mass = new int[m, n];(int i = 0; i < mass.GetLength(0); i++)

{(int j = 0; j < mass.GetLength(1); j++)

{[i, j] = rand.Next(0, 10);.Write("{0} ", mass[i, j]);

}.WriteLine();

}.Close();mass;

Листинг 5 метод «izfail» [5]n;k;[] mass = File.ReadAllLines(doc);= Convert.ToInt32(mass[1]);= Convert.ToInt32(mass[2]);[,] matrix = new int[n, k];(int p = 0; p < matrix.GetLength(0); p++)

{[] m = mass[p + 3].Split(new char[] { '\t' }, StringSplitOptions.RemoveEmptyEntries).Select(s => int.Parse(s)).ToArray();(int i = 0; i < m.Length; i++)

{[p, i] = m[i];

}

}matrix;

РАЗДЕЛ 7. РЕЗУЛЬТАТЫ ВЫПОЛНЕНИЯ ПРОГРАММЫ

На рисунке (6) видно что пользователю предоставляется выбор заполнения прямоугольной матрицы и применение первого способа заполнения матрицы.

Рисунок 6 - Заполнение матрицы 1

На рисунке (7) изображено случайное заполнение матрицы в текстовый файл.

Рисунок 7 - Вывод массива 1

На рисунке (8) изображен результат выведенный в текстовый файл.

Рисунок 8 - результат 1

На рисунке (9) видно, что пользователю предоставляется выбор заполнения прямоугольной матрицы и применение второго способа заполнения матрицы.

Рисунок 9 - Заполнение матрицы 2

На рисунке (10) изображен текстовый файл с исходной матрицей

Рисунок 10 - Исходная матрица

На рисунке [11] изображен результат для второго способа введения матрицы выведенный в текстовый файл.

Рисунок 11 - Результат 2

РАЗДЕЛ 8. АНАЛИЗ РЕЗУЛЬТАТОВ

В разделе №7(результаты выполненной программы) мы наглядно видим на рисунках что все условия выполняются. Программа разработана коректно и очень проста в использовании. Был представлен выбор заполнения матрицы. Было найдено количество столбцов, содержащих хотя бы один нулевой элемент и номер строки, в которой находится самая длинная серия одинаковых элементов. Были некоторые трудности при решении поставленной задачи, но при помощи различных источников информации они были успешно решены. Программа не сложна в использовании. При помощи этой работы я рассмотрел язык программирования С# и его классификацию. Рассмотрел систему программирования, а также методы программирования.

РАЗДЕЛ 9. ИНСТРУКЦИЯ ПО РАБОТЕ С ПРОГРАММОЙ

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

При выборе [1.1] первого пункта, вам представится возможность ввести размерность матрицы, после чего можно будет увидеть результат[1.2] и исходную матрицу[1.3] в текстовых файлах.

При выборе второго [2.1] пункта, из текстового файла [2.2] считается матрица и результат выведется в текстовый файл [2.3].

ЗАКЛЮЧЕНИЕ

Готовая программа удовлетворяет всем поставленным условиям задачи, и исправно работает. Сразу же после введения последнего элемента, программа выведет результаты решения с пояснениями и саму матрицу, для того, чтобы пользователь мог наблюдать, откуда взялись такие результаты.

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

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

К. Гленн Системное администрирование в школе, вузе, офисе. - М.: СОЛОН-ПРЕСС, 2008. - (Серия «Элективный курс. Профильное обучение»).

Н. В. Максимов, И. И. Попов Компьютерные сети: учебное пособие для студентов учреждений среднего профессионального образования. - М.: Форум, 2011.

В. Олифер, Н. Олифер Основы компьютерных сетей. - СПб.: ПИТЕР, 2009. - (Серия «Учебное пособие»).

Введение в Телекоммуникационные технологии / Под ред. В.И. Журавлева. - М., 2010. - 239 с.

Похожие работы на - Разработка программы решения задачи на языке C#

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!