Курсовая работа (т): Язык программирования C#

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Программист создает экземпляр класса с помощью операции new, например:

Demo a = new Demo(); // создание экземпляра класса Demob = new Demo(); // создание другого экземпляра класса Demo.

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

Функциональные элементы класса не тиражируются, то есть всегда хранятся в единственном экземпляре. Для работы с данными класса используются методы класса (статические методы), для работы с данными экземпляра - методы экземпляра, или просто методы.

Ниже приведено краткое описание всех элементов класса:

-        Константы класса хранят неизменяемые значения, связанные с классом.

-              Поля содержат данные класса.

-              Методы реализуют вычисления или другие действия, выполняемые классом или экземпляром.

-              Свойства определяют характеристики класса в совокупности со способами их задания и получения, то есть методами записи и чтения.

-              Конструкторы реализуют действия по инициализации экземпляров или класса в целом.

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

-              Индексаторы обеспечивают возможность доступа к элементам класса по их порядковому номеру.

-              Операции задают действия с объектами с помощью знаков операций.

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

1.4 Структура программного модуля на С#

Программа на C# состоит из классов, внутри которых описывают методы и данные. Переменные, описанные непосредственно внутри класса, называются полями класса. Им автоматически присваивается так называемое «значение по умолчанию» - как правило, это 0 соответствующего типа. Переменные, описанные внутри метода класса, называются локальными переменными. Их инициализация возлагается на программиста.

Так называемая область действия переменной, то есть область программы, где можно использовать переменную, начинается в точке ее описания и длится до конца блока, внутри которого она описана. Блок - это код, заключенный в фигурные скобки. Основное назначение блока - группировка операторов. В C# любая переменная описана внутри какого-либо блока: класса, метода или блока внутри метода. Имя переменной должно быть уникальным в области ее действия. Область действия распространяется на вложенные в метод блоки.

2. ПРАКТИЧЕСКАЯ ЧАСТЬ

2.1 Выполнение задания № 1 курсовой работы

Вариант 23.

Дана вещественная матрица размером 4x6 (ее элементы нужно ввести с клавиатуры). Упорядочить ее строки по возрастанию их наибольших элементов. Вывести вектор наибольших элементов строк, первоначальную и полученную матрицу на экран. Для данной матрицы получить , где хi - наибольшее значение i - го столбца данной матрицы.

Пояснение работы программы сделаем с помощью словесного описания алгоритма.

Алгоритм решения задания

1)      Алгоритм реализуется с помощью двух процедур void button1_Click(object sender, EventArgs e) и void button1_Click(object sender, EventArgs e).

2)      Определяется массив целых чисел с именем im, состоящий из 4 строк и 6 столбцов - double[,] im = new double [4, 6].

)        Далее организуется цикл перебора строк с параметром i, от начального значения 0 до конечного значения 3 с шагом изменения 1 - for (int i = 0; i < 4; j++).

)        Затем следует описание двумерного массива, который формируется по закону, обозначенному в задании.

)        Внутрь этого цикла вложен цикл перебора столбцов с параметром j, от начального значения 0 до конечного значения 5 с шагом изменения 1 - for (int j = 0; i < 6; j++).

)        Внутри этих вложенных циклов перебора реализован оператор Random который произвольными значениями заполняет массив im[i, j] = r.Next(1, 20).

)        Далее необходимо вывести заполненную матрицу на экран компьютера.

)        Далее организуется цикл перебора строк с параметром i, от начального значения 0 до конечного значения 3 с шагом изменения 1 - for (int i = 0; i < 4; i++).

)        Внутрь этого цикла вложен цикл перебора столбцов с параметром j, от начального значения 0 до конечного значения 5 с шагом изменения 1 - for (int j = 0; j < 6; j++).

)        Далее следует вывод на экран матрицы размером 4 на 6 внутрь контейнера richTextBox1 .

)        Далее организуется цикл перебора строк с параметром i, от начального значения 0 до конечного значения 3 с шагом изменения 1 - for (int i = 0; i < 4; i++).

)        Внутрь этого цикла вложен цикл перебора столбцов с параметром ii, от начального значения 0 до конечного значения 6-1 с шагом изменения 1 - for (int ii = 0; ii < 6-1; ii++).

)        Внутрь этого цикла вложен цикл перебора столбцов с параметром j, от начального значения 0 до конечного значения 6-1-ii с шагом изменения 1 - for (int j = 0; j < 6-1-ii; j++).

)        Внутри этих вложенных циклов перебора реализованы три проверки условия, которые в зависимости if (im[i, j] > im[i, j + 1]) p = im[i, j]; im[i, j] = im[i, j + 1]; im[i, j + 1] = p;

)        Таким образом, осуществляется заполнение массива по заданному заданием правилу и вывод на экран матрицы размером внутрь контейнера richTextBox2.

)        Далее по заданию выводим на экран вектор наибольших элементов строк for (int i = 0; i < 4; i++) s = s + im[i, 5] + "\t"; richTextBox2.AppendText("\n Вектор наибольших элементов строк " + s);

)        нахождение номера строки с наибольшим значением

int imax = 0;max = im[0, 5];(int i = 1; i < 4; i++)

{(im[i, 5] > max)= im[i, 5];= i;.AppendText("\n\nНомер строки с наибольшим значением " + (1 + imax).ToString() + ". Наибольшее значение " + max.ToString());

18)    Далее выводим на экран суммы в строке с наибольшим значением по формуле x1x6+x2x5+...+x6x1.

double SP=0;(int j = 0; j < 3; j++)

{= SP + im[imax, j] * im[imax, 5 - j];

}.AppendText("\n\nСумма произведений " + (SP*2).ToString());

Описания используемых переменных были приведены в процессе описания алгоритма.

Контрольный пример выполнения задания представлен на рис. 2.1.

Рис 2.1. контрольный пример.

2.2 Выполнение задания № 2 курсовой работы

Вариант 23. Найти наименьший номер члена последовательности, для которого выполняется условие an- an-1 < е. Вывести на экран этот номер и все элементы ai, где i = 1, 2,..., n.


Контрольный пример нахождения наименьший номер члена последовательности, для которого выполняется условие an- an-1 <е приведен на Рис. 2.2.


Пояснение работы программы сделаем с помощью блок-схемы алгоритма Рис. 2.3.

Рис. 2.3. Блок-схема нахождения наименьший номер члена последовательности, для которого выполняется условие an- an-1 <е.

2.3 Выполнение задания № 3 курсовой работы

Вариант 3. Дана строка. Подсчитать, сколько различных символов встречается в ней. Вывести их на экран.

Контрольный пример решения поставленной задачи приведен на Рис. 2.4.

Рис. 2.4. Контрольный пример решения поставленной задачи.

Алгоритм выполнения задания

Пояснение работы программы сделаем с помощью словесного описания.

)        Алгоритм реализуется с помощью одной процедуры void button1_Click(object sender, EventArgs e).

)        Инициализируем переменные int kol = 0, bool bulevo = true, int n = 0.

)        Создаем массив string[] mas = new String[str.Length]

4)      Вводим текст внутрь контейнера richTextBox1.

)        Далее организуется цикл перебора строк с параметром i, от начального значения 0 до конечного значения i < str.Length с шагом изменения 1. for (int i = 0; i < str.Length; i++).

)        Внутрь этого цикла вложен цикл перебора проверки одинаковых символов с параметром j, от начального значения 0 до конечного значения j < mas.Length с шагом изменения 1 for (int j = 0; j < mas.Length; j++).

)        Внутри этих вложенных циклов перебора вложены две проверки условия которые в зависимости от значения подсчитывают количество различных символов в строке if (str[i].ToString() == mas[j]) , if (bulevo).

)        Далее организован цикл перебора с параметром j, от начального значения 0 до конечного значения j<n, где n количество различных символов for (int j = 0; j < n; j++).

)        Далее следует вывод на экран обработанной информации.

2.4 Выполнение задания № 4 курсовой работы

Вариант 23.

Вычислить значения функции и вывести на экран в виде таблицы её значение с заданной точностью, используя ряд Маклорена. Значения переменной х выбирать из интервала от xнач до xкон с шагом dx с точность . Сформированной таблице сделать соответствующий заголовок. Каждая строка таблицы должна содержать значение аргумента, значение функции и количество просуммированных членов ряда.


Контрольный пример решения поставленной задачи приведен на Рис. 2.5.

Рис. 2.5. Контрольный пример решения поставленной задачи.

Алгоритм выполнения задания

Пояснение работы программы сделаем с помощью словесного описания.

)        Алгоритм реализуется с помощью одной процедуры void button1_Click(object sender, EventArgs e). И метода static string Exp_(double x, double ee).

)        Инициализируем переменные double f = 1, int z = -1, double c = x, double zn = 1, double i = 1, double a=z * c / zn.

3)      Далее организуется цикл с предусловием, выполняется пока истинно условие Math.Abs(a) > ee.

)        В теле цикла вызывается метод static string Exp_(double x, double ee)

5)      Далее инициализируем переменные double f = 1, int z = -1, double c = x, double zn = 1, double i = 1, double a=z * c / zn. ;

6)      В нутри цикла с предусловиями организуем вложенный цикл с предусловием который выполняется пока истинно значение Math.Abs(a) > ee. ;

)        Внутри вложенного цикла организуем математические вычисления и увеличиваем шаг на 1 f = f + a; i++; z = -z; c = c * x; zn = zn * i; a = z * c / zn;

)        Далее идет конвертация вещественного типа в строковую и запись в переменную f - return f.ToString() + " n=" + i.ToString();

)        Открываем метод исключения try catch.

)        В теле метода try catch организуем очистку контейнера richTextBox1 и с преобразованием типов присваиваем переменные из textbox.

double xn = Convert.ToDouble(textBox1.Text);xk = Convert.ToDouble(textBox2.Text);dx = Convert.ToDouble(textBox3.Text);ee = Convert.ToDouble(textBox4.Text);

)        Далее организуется цикл перебора строк с параметром x, от начального значения xn до конечного значения x < xk с шагом изменения x = x + dx- for (double x = xn; x < xk; x = x + dx).

)        В теле цикла выводим текст внутрь контейнера richTextBox1.

)        Далее следует вывод на экран обработанной информации.

2.5 Выполнение задания № 5 курсовой работы

Вариант № 23.

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

Контрольный пример решения поставленной задачи приведен на Рис. 2.6.

Рис. 2.6. Контрольный пример решения поставленной задачи.

Алгоритм выполнения задания

Пояснение работы программы сделаем с помощью словесного описания.

)        Алгоритм реализуется с помощью одной процедуры void button1_Click(object sender, EventArgs e).

)        Подсоединяем файл StreamReader str = new StreamReader("file.txt",Encoding.Default);

3)      Инициализируем переменную var n = 0;

4)      Считывание из файла string txt = str.ReadToEnd

)        Далее организуется цикл перебора строк с параметром i, от начального значения 0 до конечного значения i < txt.Length-1с шагом изменения 1. for (int i = 0; i < txt.Length-1; i++)

)        В теле цикла выполняется условие (((i == 0) && (txt[i] == ' ')) || (((txt[i] == '.') || (txt[i] == '!') || (txt[i] == '?') || (txt[i] == '-')) && (txt[i + 1] == ' '))) n++;, где подсчитывается количество предложений в данном текстовом файле

)        После завершения чтения файла закрываем его str.Close();

)        Далее следует вывод на экран обработанной информации.

ЗАКЛЮЧЕНИЕ

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

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

Иинструментальной средой разработки программ стала MS Visual Studio 2010.

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

Условием второго задания курсовой работы было ннайти наименьший номер члена последовательности, для которого выполняется условие an- an-1 <е. При решении поставленной задачи использовался цикл с предусловием.

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

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

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

По окончанию курсовой работы можно сказать, что нами были изучены и закреплены следующие задачи:

ставить задачу и разрабатывать алгоритм её решения;

использовать прикладные системы программирования;

работать с современными системами программирования, включая объектно-ориентированные;

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

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

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

1. Павловская Т. А. C#. Программирование на языке высокого уровня: Учебник для вузов. - СПб.: БХВ-Петербург. 2007.

2. Попов И. И., Партыка Т. Л. Языки программирования: Учебное пособие. - М.: ФОРУМ: ИНФРА-М, 2008.

3. Голицина О. Л., Попов И. И. Основы алгоритмизации и программирования: Учебное пособие. - М.: ФОРУМ: ИНФРА-М, 2005.

4. Фаронов В. В., Создание приложений с помощью C#: Руководство программиста. - М.: Эксмо, 2008.

5. Свердлов С. З. Языки программирования и методы трансляции. Учебное пособие. - СПб.: Питер, 2007.

6. Павловская Т. А. С/С++ Программирование на языке высокого уровня. - СПб.: Питер, 2005.

7. Нортроп Тони, Уилдермьюс Шон, Райан Билл. Основы разработки приложений на платформе Microsoft .Net Framework. Учебный курс Microsoft / Пер. с англ. - М.: «Русская редакция», СПб.: «Питер», 2007.

Источник: https://www.bibliofond.ru/detail.aspx?id=725502