Разработка и анализ консольной программы на языке 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

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