Горналов Н.Г.2И-у Контр.работа. сибирский государственный университет геосистем и технологий
Скачать 135.47 Kb.
|
Министерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования «СИБИРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ГЕОСИСТЕМ И ТЕХНОЛОГИЙ» (ФГБОУ ВО «СГУГиТ») Институт геодезии и менеджмента Контрольная работа Преподаватель: к. т. н., доцент каф. Бугаков Петр Юрьевич Выполнил: обучающийся гр. 2 И-у Горналов Н.Г. Новосибирск 2022 Задание 1. Напишите программу с классом, у которого есть два символьных поля и метод. Он не возвращает результат, и у него нет аргументов. При вызове метод выводит в консольное окно все символы из кодовой таблицы, которые находятся «между» символами, являющимися значениями полей объекта (из которого вызывается метод). Например, если полям объекта присвоены значения ' А' и ' D', то при вызове метода в окно программы должны выводиться все символы от ’А’ до ’D’ включительно. Код программы: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Zadanie1 { class class1 // создаем класс { private char s1; // по условию задания создаем 2 закрытых поля private char s2; public class1(char s1, char s2) // создаем конструктор { this.s1 = s1; this.s2 = s2; } public void ShowSymbols() // создаем метод вывода символов { for (char s = s1; s <= s2; s++) Console.Write(s); } } class Program { static void Main(string[] args) { class1 z = new class1('s', 'z'); // создаем новый объект класса class1, в параметрах указываем диапазон символов z.ShowSymbols(); // вызываем метод вывода символов Console.ReadLine(); } } } Результат: Задание 2. Напишите программу с классом, у которого есть два целочисленных поля. В классе должны быть описаны конструкторы, позволяющие создавать объекты без передачи аргументов, с передачей одного аргумента и с передачей двух аргументов. Код программы: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Zadanie2 { class class1 // создаем класс { int x; // по условию задания создаем 2 целочисленных поля int y; public class1(int x, int y) // создаем конструктор с 2 передаваемыми аргументами { this.x = x; this.y = y; } public class1(int x) // создаем конструктор с 1 передаваемым аргументом { this.x = x; } public class1() // создаем конструктор без передаваемых аргументов { } } class Program { static void Main(string[] args) { class1 object1 = new class1(1, 2); // создаем новый объект с 2 параметрами class1 object1 = new class1(3); // создаем новый объект с 1 параметром class1 object1 = new class1(); // создаем новый объект без параметров } } } Задание 3. Напишите программу с классом, у которого есть символьное и целочисленное поле. В классе должны быть описаны версии конструктора с двумя аргументами (целое число и символ — определяют значения полей), а также с одним аргументом типа double. В последнем случае действительная часть аргумента определяет код символа (значение символьного поля), а дробная часть (с учетом десятых и сотых) определяет значение целочисленного поля. Например, если аргументом передается число 65.1267, то значением символьного поля будет символ ' А ’ с кодом 65, а целочисленное поле получит значение 12 (в дробной части учитываются только десятые и сотые). Код программы: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Zadanie3 { class class1 // создаем класс { int x; // по условию задания создаем одно целочисленное поле char y; // и одно символьное поле public void ShowResult() // метод вывода результата на экран { Console.WriteLine(x); Console.WriteLine(y); } public class1(int x, char y) // создаем конструктор с 2 передаваемыми аргументами { this.x = x; this.y = y; } public class1 (double z) // создаем конструктор с 1 передаваемы аргументом типа double { y = (char)z; // переменной y присваиваем символьное значение z int z2 = (int)z; // вводим переменную z2 и присваиваем ей целочисленное значение переменной z x = (int)((z - z2) * 100); // здесь в результате вычисления переменной х присваивается значение } // дробной части переменной z } class Program { static void Main(string[] args) { class1 Test = new class1(67.1728); // создаем новый объект, в параметрах указываем дробное число Test.ShowResult(); Console.ReadLine(); } } } Результат: Задание 4. Напишите программу с классом, у которого есть закрытое целочисленное поле. Значение полю присваивается с помощью открытого метода. Методу аргументом может передаваться целое число, а также метод может вызываться без аргументов. Если метод вызывается без аргументов, то поле получает нулевое значение. Если метод вызывается с целочисленным аргументом, то это значение присваивается полю. Однако если переданное аргументом методу значение превышает 100, то полю присваивается значение 100. Предусмотрите в классе конструктор, который работает по тому же принципу, что и метод для присваивания значения полю. Также в классе должен быть метод, позволяющий проверить значение поля. Код программы: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Zadanie4 { class class1 // создаем класс { private int x; // создаем закрытое целочисленное поле public void Method(int x) // создаем открытый метод, который присваивает значение полю { // также здесь проверяется значение х this.x = x; if (x >= 100) { this.x = 100; } if (x < 0) { this.x = 0; } } public void Method() // создаем открытый метод, который выводит на экран сообщение // если не задан параметр метода { Console.Write("Не задано число, "); } public class1(int x) // создаем конструктор, который работает по тому же // принципу, что и метод { this.x = x; if (x >= 100) { this.x = 100; } if (x < 0) { this.x = 0; } } public class1() // создаем конструктор, для обработки пустого значения { Console.Write("Не задано число, "); } public void ReturnX() // создаем метод, который выводит значениt на экран { Console.WriteLine($"X = {x}"); Console.WriteLine(); } } class Program { static void Main(string[] args) { class1 InputNumber = new class1(25); // значение 25 присваивается через конструктор InputNumber.ReturnX(); class1 InputNumber2 = new class1(); // пустое значение присваивается через конструктор InputNumber2.ReturnX(); InputNumber.Method(31); // значение 31 присваивается через метод InputNumber.ReturnX(); InputNumber.Method(131); // значение 131 присваивается через метод InputNumber.ReturnX(); InputNumber.Method(-121); // значение -121 присваивается через метод InputNumber.ReturnX(); InputNumber.Method(); // пустое значение присваивается через метод InputNumber.ReturnX(); } } } Результат:__Задание_5.'>Результат: Задание 5. Напишите программу с классом, в котором есть два закрытых целочисленных поля (назовем их mах и min). Значение поля max не может быть меньше значения поля min. Значения полям присваиваются с помощью открытого метода. Метод может вызываться с одним или двумя целочисленными аргументами. При вызове метода значения полям присваиваются так: сравниваются текущие значения полей и значения аргумента или аргументов, переданных методу. Самое большое из значений присваивается полю max, а самое маленькое из значений присваивается полю min. Предусмотрите конструктор, который работает по тому же принципу, что и метод для присваивания значений полям. В классе также должен быть метод, отображающий в консольном окне значения полей объекта. Код программы: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Zadanie4 { class class1 // создаем класс { private int max; // создаем закрытые целочисленные поля private int min; public class1(int max, int min) // создаем конструктор, который проверяет // 2 вводных параметра при создании объекта класса { if (max > min) { this.max = max; this.min = min; } else { this.max = min; this.min = max; } } public class1(int max) // создаем конструктор, который проверяет // 1 вводный параметр при создании объекта класса { this.max = max; this.min = 0; } public void Method(int max, int min) // создаем метод, который проверяет вводные параметры // при вызове метода. Этод метод обрабатывает два вводных параметра { if (max>min) { this.max = max; this.min = min; } else { this.max = min; this.min = max; } } public void Method(int max) // создаем метод, который проверяет вводные параметры // при вызове метода. Этот метод обрабатывает 1 вводный параметр { this.max = max; this.min = 0; } public void ReturnValues() // создаем метод, который выводит значения на экран { Console.WriteLine($"Max = {max}"); Console.WriteLine($"Min = {min}"); Console.WriteLine(); } } class Program { static void Main(string[] args) { class1 InputNumber = new class1(17, 5); // два значения присваиваются через конструктор InputNumber.ReturnValues(); class1 InputNumber2 = new class1(4, 12); InputNumber2.ReturnValues(); class1 InputNumber3 = new class1(7); // одно значение присваивается через конструктор InputNumber3.ReturnValues(); InputNumber.Method(31, 15); // два значения присваиваются через метод InputNumber.ReturnValues(); InputNumber.Method(1, 15); InputNumber.ReturnValues(); InputNumber.Method(67); // одно значение присваивается через метод InputNumber.ReturnValues(); } } } Результат: Задание 6. Напишите программу с классом, в котором есть два поля: символьное и текстовое. В классе должен быть перегруженный метод для присваивания значений полям. Если метод вызывается с символьным аргументом, то соответствующее значение присваивается символьному нолю. Если метод вызывается с текстовым аргументом, то он определяет значение текстового поля. Методу аргументом также может передаваться символьный массив. Если массив состоит из одного элемента, то он определяет значение символьного поля. В противном случае (если в массиве больше одного элемента) из символов массива формируется текстовая строка и присваивается значением текстовому полю. Код программы: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Zadanie6 { class class1 // создаем класс { private char Char1; // создаем закрытые поля private string String1; public void InputMethod(char Char1) // создаем перегруженный метод ввода данных // здесь вводится один символьный параметр { this.Char1 = Char1; } public void InputMethod(char Char1, string String1) // здесь вводится один символьный параметр // и один строковый параметр { this.Char1 = Char1; this.String1 = String1; } public void InputMethod(string String1) // здесь вводится один строковый параметр { this.String1 = String1; } public void InputMethod(char [] c) // здесь вводится параметр в ввиде символьного массива { if (c.Length == 1) { Char1 = c[0]; } else { for (int i = 0; i < c.Length; i++) { String1 += c[i]; } } } public char ReturnChar() // здесь возвращаются полученные символьные данные { return Char1; } public string ReturnString() // здесь возвращаются полученные строковые данные { return String1; } } class Program { static void Main(string[] args) { char[] TestArray1 = {'S', 'G', 'U', 'G', 'I', 'T'}; // создаем символьный массив из нескольких элементов char[] TestArray2 = {'H'}; // создаем символьный массив из одного элемента class1 Data1 = new class1(); Data1.InputMethod('C'); // одно символьное значение вводится через метод Console.WriteLine(Data1.ReturnChar()); Data1.InputMethod("Hello"); // одно строковое значение вводится через метод Console.WriteLine(Data1.ReturnString()); class1 Data2 = new class1(); Data2.InputMethod(TestArray1); // данные из символьного массива (несколько элементов) вводятся через метод Console.WriteLine(Data2.ReturnString()); Data2.InputMethod(TestArray2); // данные из символьного массива (один элемент) вводятся через метод Console.WriteLine(Data2.ReturnChar()); } } } Результат: Задание 7.1 Напишите программу с классом, в котором есть закрытое статическое целочисленное поле с начальным нулевым значением. В классе должен быть описан статический метод, при вызове которого отображается текущее значение статического поля, после чего значение поля увеличивается на единицу. Код программы: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Zadanie7 { class class1 // создаем класс { private static int n = 0; // создаем статическое целочисленное поле public static void NumberPlusOne() // метод, который увеличивает n на единицу // и выводит на экран результат { Console.WriteLine(n++); } } class Program { static void Main(string[] args) { class1.NumberPlusOne(); // вызов метода class1.NumberPlusOne(); } } } Результат: Задание 7.2 Напишите программу с классом, в котором есть статические методы, которым можно передавать произвольное количество целочисленных аргументов (или целочисленный массив). Методы, на основании переданных аргументов или массива, позволяют вычислить: наибольшее значение, наименьшее значение, а также среднее значение из набора чисел. Код программы: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Zadanie7 { class class1 // создаем класс { static public void Method1(out int Min, out int Max, out double Average, // создаем статический метод params int[] Array) // здесь вводится массив с данными { int sum = 0; Max = Array[0]; Min = Array[0]; for (int i = 0; i < Array.Length; i++) { sum += Array[i]; if (Array[i] > Max) Max = Array[i]; if (Array[i] < Min) Min = Array[i]; } Average = (double)sum / Array.Length; } } class Program { static void Main(string[] args) { int[] InputArray = { -21, 6 , 8 , 13, 567, 2}; // массив вводных данных int Max, Min; double Average; class1.Method1(out Max, out Min, out Average, InputArray); Console.WriteLine($"Max = : {Max}"); Console.WriteLine($"Min = : {Min}"); // вывод полученных данных Console.WriteLine($"Average = : {Average}"); } } } Результат: |