Разработка и анализ консольной программы на языке C# для работы с двухмерными массивами

Анализ программы с использованием принципов объектно-ориентированного программирования на языке высокого уровня С#. Реализация основного класса программы. Суть произвольного заполнения массива числами. Сохранение в текстовый файл результатов сортировки.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 25.11.2015
Размер файла 301,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Межрегиональный открытый социальный институт

Кафедра экономики и информационной безопасности

Направление подготовки - 090900.62

Профиль «Комплексная защита объектов информатизации»

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

по дисциплине «Технологии и методы программирования»

на тему: «Разработка и анализ консольной программы на языке «C#» для работы с двухмерными массивами»

Выполнил:

Е.Б. Калинкин

Научный руководитель:

А.Н.Савинов

Йошкар-Ола 2015

Содержание

Введение

1. Теоретический анализ

1.1 Постановка задачи

1.2 Описание алгоритма

2. Реализация основного класса программы

2.1 Задаем размерность массива

2.2 Произвольное заполнение массива числами от 0 до 10

2.3 Сохраняем в текстовый файл результаты сортировки

2.4 Инструкция по использованию программы

Заключение

Список литературы

Введение

Объектно-ориентированное, или объектное, программирование (ООП) -- парадигма программирования, в которой основными концепциями являются понятия объектов и классов. Данная концепция в настоящее время является ведущей в области программирования. Количество прикладных языков программирования, реализующих объектно-ориентированную парадигму, является наибольшим по отношению к другим парадигмам. Данный подход реализован в таких языках программирования как С, C++, Object Pascal, Java, С# и другие.

C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Язык имеет статическую типизацию, поддерживает полиморфизм, перегрузку операторов (в том числе операторов явного и неявного приведения типа), делегаты, атрибуты, события, свойства, обобщённые типы и методы, итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения, комментарии в формате XML. В настоящее время, С# является одним из наиболее динамично развивающихся языков программирования.

Целью данной курсовой работы является разработка программы с использованием принципов объектно-ориентированного программирования на языке высокого уровня С# средствами Microsoft Visual Studio 2010.

Задачами данной курсовой работы являются:

- выделение классов, необходимых для решения задачи;

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

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

- программная реализация задачи средствами Visual C#.

Язык С# как средство обучения программированию обладает рядом несомненных достоинств. Он хорошо организован, строг, большинство его конструкций логичны и удобны. Развитые средства диагностики и редактирования кода делают процесс программирования приятным и эффективным.

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

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

Объектами исследования настоящей курсовой работы являются методы и технологии разработки программных продуктов.

Предметами исследования настоящей курсовой работы являются методы, алгоритмы и приёмы разработки программ обработки двумерных массивов. программирование массив текстовый файл

Информационной базой исследования является учебная литература по информатике и программированию, техническая документация по языку С# инструментальной среды MS Visual Studio 2010.

1. Теоретический анализ

1.1 Постановка задачи

Необходимо разработать консольную или графическую программу на языке C# или C++ в среде Visual Studio согласно варианту и описать её жизненный цикл. Основная задача программы для всех вариантов - работа с двумерными массивами данных (заполнение массива случайными значениями, поиск или обработка массива, сохранение массива в файл). В качестве данных для заполнения массива используйте числа от 0 до 10. Размер массива: 50 строк на 50 столбцов. Желательно обеспечить работу программы с массивами любого размера. Результаты работы программы выводить на экран и в отдельные файлы.

Требования: использование методов функционального или объектно-ориентированного программирования.

Вариант 13. Сортировать массив методом выбора.

1.2 Описание алгоритма

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

Пример программы сортировки выбором.

Программа:

int[] a = new int[10];

Random r = new Random();

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

{

a[i] = r.Next(10);

}

int b;

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

{

for (int j = i + 1; j < 10; j++)

{

if (a[j] > a[i])

{

b = a[i];

a[i] = a[j];

a[j] = b;

}

}

}

//вывод массива

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

{

Console.WriteLine("a[{0}]={1}", i, a[i]);

}

Console.ReadKey();

2. Реализация основного класса программы

Основной класс программы обеспечивает её визуальное представление (на рисунке 2.1 показана основная форма с указанием компонентов, используемых далее в листингах), а также описывает все операции, выполняемые в ходе функционирования программы.

Рис. 2.1

При загрузке формы производится создание области отображения, установка доступности выполнения операций, а также настройка некоторых свойств, стандартных диалоговых окон:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.IO;

namespace SortVyb

{

public partial class Form1 : Form

{

//объявляем переменные

int i, j, n, min;

int[,] mas;

//создаем правило заполнение датагридов (тип).

void Setsize(DataGridView dgw)

{

n = Convert.ToInt32(textBox1.Text); //считываем количество строк и столбцов из текстбокса

int columnCount = dgw.ColumnCount;

if (columnCount != 0)

dgw.Columns.Clear();

DataGridViewColumn col;

for (j = 0; j < n; j++)

{

col = new DataGridViewTextBoxColumn();

col.Width = 24;

dgw.Columns.Add(col);

}

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

dgw.Rows.Add();

mas = new int[n, n];

}

public Form1()

{

InitializeComponent();

}

Рис.2.2 //кнопка создания ячеек в датагриде

2.1 Задаем размерность массива

private void button1_Click(object sender, EventArgs e)

{

try

{

Setsize(dataGridView2); //вызываем тип для 2 датагрида

Setsize(dataGridView1); //вызываем тип для 1 датагрида

}

catch

{

MessageBox.Show("Вы не ввели количество элементов");

}

}

Рис. 2.3 //кнопка рэндомного заполнения от 0 до 10

2.2 Произвольное заполнение массива числами от 0 до 10

private void button2_Click(object sender, EventArgs e)

{

{

Random r = new Random();

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

{

for (int j = 0; j < n; j++)

{

dataGridView1.Rows[i].Cells[j].Value = r.Next(0, 10);

}

}

}

}

private void button6_Click(object sender, EventArgs e)

{

Application.Exit();

}

2.3 Сортировка массива методом выбора

Рис. 2.4 //обработка сортировки

private void button3_Click(object sender, EventArgs e)

{

try

{

//получаем значения из датагрид 1

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

for (int j = 0; j < n; j++)

mas[i, j] = Convert.ToInt32(dataGridView1.Rows[i].Cells[j].Value);

//собственно, сортируем =)

//находим меньшее значение и перекидываем его в начало столбца.

for (int j = 0; j < n; j++)

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

{

int imin = i;

for (int i1 = i + 1; i1 < n; i1++)

{

if (mas[i1, j] < mas[imin, j])

{

imin = i1;

}

}

min = mas[i, j];

mas[i, j] = mas[imin, j];

mas[imin, j] = min;

}

//выводим результат в датагрид 2 (сортировка по столбцам. по строкам: i и j местами поменять надо)

for (int i = 0; i < dataGridView1.ColumnCount; i++)

for (int j = 0; j < dataGridView1.RowCount; j++)

dataGridView2[j, i].Value = mas[i,j];

}

catch

{

MessageBox.Show("Вы не ввели данные для вычислений!");

}

}

//открываем файл

private void button4_Click(object sender, EventArgs e)

{

Stream myStream = null;

openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";

openFileDialog1.FilterIndex = 2;

openFileDialog1.RestoreDirectory = true;

if (openFileDialog1.ShowDialog() == DialogResult.OK)

{

if ((myStream = openFileDialog1.OpenFile()) != null)

{

StreamReader myReader = new StreamReader(myStream);

string[] str;

int num = 0;

try

{

string[] str1 = myReader.ReadToEnd().Split('\n');

num = str1.Count();

dataGridView1.RowCount = num;

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

{

str = str1[i].Split(' ');

for (int j = 0; j < dataGridView1.ColumnCount; j++)

{

dataGridView1.Rows[i].Cells[j].Value = str[j];

}

}

}

catch (Exception ex)

{

MessageBox.Show(ex.Message);

}

finally

{

myReader.Close();

}

}

}

}

2.4 Сохраняем в текстовый файл результаты сортировки

Рис. 2.5 //сохраняем файл

private void button5_Click(object sender, EventArgs e)

{

Stream myStream;

saveFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";

saveFileDialog1.FilterIndex = 2;

saveFileDialog1.RestoreDirectory = true;

if (saveFileDialog1.ShowDialog() == DialogResult.OK)

{

if ((myStream = saveFileDialog1.OpenFile()) != null)

{

StreamWriter myWritet = new StreamWriter(myStream);

try

{

for (int i = 0; i < dataGridView1.RowCount ; i++)

{

for (int j = 0; j < dataGridView1.ColumnCount; j++)

{

myWritet.Write(dataGridView1.Rows[i].Cells[j].Value.ToString() + " ");

}

myWritet.WriteLine();

}

}

catch (Exception ex)

{

MessageBox.Show(ex.Message);

}

finally

{

myWritet.Close();

}

myStream.Close();

}

}

}

private void Form1_Load(object sender, EventArgs e)

{

}

}

}

2.5 Инструкция по использованию программы

В начальном состоянии (после запуска программы) необходимо ввести в поле значение размерности массива, в нашем случае это 50 .

Далее нажатием на кнопку «Автозаполнение 0-10» и произвольно заполняем все ячейки исходного массива числами от 0 до 10.

После автозаполнение необходимо нажать кнопку «Сортировка», в результатах сортировки отобразятся уже отсортированные числа от 0 до 10 методом выбора.

Далее нажатием на кнопку « Сохранить файл» выбираем или создаем новый текстовый файл для сохранения результатов нашей сортировки.

Также в данной программе предусмотрена возможность вывод массива из ранее сохраненных файлов ,путем нажатия на кнопку « Открыть файл» и выбором необходимого нам массива.

После выполнение всех необходимых нам операций закрываем программу нажатием кнопки «Выход»

Далее приведен пример сохраненной информации из текстого файла после сортировки массива.

Заключение

В данной курсовой работе удалось разработать программу с использованием компонентов среды визуального проектирования Visual C#.

Выполнение курсовой работы было разделено на два этапа:

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

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

Итогом курсовой работы можно считать закрепление знаний в области создания алгоритмов, навыков программирования на языке C# и создании приложений для операционных системы компании Microsoft, полученных в ходе курса «объектно-ориентированное программирование».

Список литературы

1. Курсовая работа по программированию на Visual C# - учебное издание - Кожемяченко В.И. - Новокузнецк - 2013г - 28 с.

2. Программирование в среде Visual C# часть 2: метод. указ. - /СибГИУ - сост. В.И. Кожемяченко, С.Ю. Красноперов - Новокузнецк - 2012г - 54 с.

Размещено на Allbest.ru

...

Подобные документы

  • Разработка программы с использованием принципов объектно-ориентированного программирования на языке высокого уровня С средствами Microsoft Visual Studio 2010. Построение алгоритма реализации. Класс программы, инструкция по использованию программы.

    курсовая работа [1,0 M], добавлен 26.12.2013

  • Создание программы с использованием принципов объектно-ориентированного программирования на языке высокого уровня С# средствами Microsoft Visual Studio 2010. Построение алгоритма реализации. Определение математического аппарата, применение его в задаче.

    курсовая работа [500,4 K], добавлен 13.01.2015

  • Исследование принципов объектно-ориентированного программирования на базе языка программирования С++. Разработка программного комплекса для ведения учёта памятников города. Описание процессов сортировки, поиска, формирования статистики по памятникам.

    курсовая работа [782,4 K], добавлен 26.05.2014

  • Общая характеристика объектно-ориентированного подхода в программировании, его основные свойства и принципы. Разработка программы для автоматизация деятельности кафе на основе объектно-ориентированного подхода, проектирования и реализации схемы данных.

    курсовая работа [1,2 M], добавлен 22.01.2012

  • Модификация и сравнения двух текстовых файлов. Программа, написанная на языке программирования Cи и работоспособна на IBM совместимых компьютерах. Псевдографический и графический интерфейсы. Анализ программы методом сортировки одномерного массива.

    курсовая работа [116,2 K], добавлен 21.02.2008

  • Разработка программы логической игры в "крестики-нолики" пять в ряд на поле размера 15х15 клеток с применением графики на языке Pascal с использованием объектно-ориентированного программирования. Структура алгоритма программы и описание ее работы.

    курсовая работа [821,5 K], добавлен 13.02.2012

  • Анализ эффективности методов сортировки данных в языке Turbo Pascal. Разработка эскизного и технического проекта программы. Сортировка без и с использованием дополнительной памяти, за исключением небольшого стека (массива). Сортировка связанных списков.

    курсовая работа [359,0 K], добавлен 23.05.2012

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

    курсовая работа [2,1 M], добавлен 21.04.2012

  • Характеристика основных принципов объектно-ориентированного программирования. Этапы разработки программы на языке C++, реализующей игру "Морской бой". Выбор языка программирования. Характеристика необходимых классов, наследований, виртуальных методов.

    курсовая работа [657,6 K], добавлен 17.06.2012

  • Ввод и вывод чисел при помощи подключаемого модуля IO. Особенности работы с одномерными и двухмерными массивами. Тестирование состояние флагов. Рринципы и навыки работы с компилятором и отладчиком. Разработка схемы алгоритма программы на языке ассемблер.

    курсовая работа [1,3 M], добавлен 02.12.2009

  • Использование класса статических массивов структур и базы данных "ODER" при создании программы на языке С++. Основные формы выдачи результатов. Технические и программные средства. Тесты для проверки работоспособности алгоритма создания программы.

    курсовая работа [1,1 M], добавлен 17.03.2015

  • Особенности вывода на экран содержимого файла BAZA.txt. Анализ функций вывода информации о количестве каждой марки машин. Рассмотрение способов проектирования тестов программы методами черного ящика. Проблемы программирования на языке высокого уровня.

    контрольная работа [1,6 M], добавлен 04.01.2015

  • Создание программы, реализующей игру "Линии". Среда разработки программы, описание ее общего вида. Основные алгоритмы программы. Реализация программы в среде разработки Microsoft Visual Studio 2008 на языке объектно-ориентированного программирования С++.

    курсовая работа [639,0 K], добавлен 16.03.2012

  • Разработка программы для рисования различных правильных многоугольников с помощью объектно-ориентированного языка программирования. Использование для разработки среды C++ Builder 6 и библиотеки VCL. Разработка интерфейса приложения и алгоритма его работы.

    курсовая работа [616,4 K], добавлен 18.10.2010

  • Особенности разработки приложений для операционной системы с помощью императивного, структурированного, объектно-ориентированного языка программирования Delphi. Формальное начало программы. Выделение конца программного блока. Листинг и описание программы.

    курсовая работа [1,2 M], добавлен 04.08.2014

  • Сравнительный анализ языков программирования высокого уровня Си и Паскаль. Реализация алгоритма обработки данных. Тестирование и отладка программы или пакета программ. Структура программы на языке Турбо Паскаль. Указатели и векторные типы данных.

    курсовая работа [233,5 K], добавлен 14.12.2012

  • Ознакомление с возможностями языка Си как средой программирования высокого уровня. Циклы программирования параметрического оператора for и функции форматированного ввода. Разработка программы средствами Си: блок-схема, текст и тестирование программы.

    контрольная работа [204,4 K], добавлен 26.01.2013

  • Разработка программы-интерпретатора, способной получать на входе текстовый файл (в формате ASCII или ANSI) с текстом программы и на выходе выводить на экран результаты вычислений, определяемых программистом. Выбор лексем, интерфейс и листинг программы.

    курсовая работа [132,0 K], добавлен 12.03.2013

  • Разработка обучающей программы на языке программирования Borland C++ Bilder 6.0 с использованием объектно-ориентированного подхода. Особенности алгоритмической и логической реализации выполняемых системой операций. Основные формы программы и ее функции.

    курсовая работа [3,5 M], добавлен 12.03.2013

  • Разработка комплекса алгоритмов. Кодирование и компиляция. Тестирование, отладка, испытание и сдача программы. Минимальные системные требования для использования Delphi 7. Написание программы с использованием инструментального языка высокого уровня.

    курсовая работа [2,7 M], добавлен 21.02.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.