Современные технологии программирования (часть 2)
|
|
engineerklub | Дата: Четверг, 07.03.2019, 07:04 | Сообщение # 1 |
Генералиссимус
Группа: Администраторы
Сообщений: 29399
Статус: Offline
| Современные технологии программирования (часть 2). Вариант общий. 2019 год
Тип работы: Работа Лабораторная Сдано в учебном заведении: ДО СИБГУТИ
Описание: Лабораторная работа №1 Конвертор чисел из десятичной системы счисления в систему счисления с заданным основанием Цель: Сформировать практические навыки реализации классов на языке C#. Задание 1 1. Реализовать преобразователь действительных чисел со знаком из десятичной системы счисления в систему счисления с заданным основанием p, в соответствии с приведенной ниже спецификацией, используя класс. Основание системы счисления p принадлежит диапазону значений от 2 до 16. 2. Протестировать каждый метод класса. Спецификация класса «Преобразователь чисел из десятичной системы счисления в систему счисления с заданным основанием p». ADT Conver_10_p Данные Преобразователь действительных чисел из десятичной системы счисления в систему счисления с заданным основанием (тип Conver_10_p). Основание системы счисления p - это целое число, со значением, принадлежащим диапазону от 2 до 16 и целое число c, определяющее точность представления результата, выраженную в количестве разрядов. Операции. Операции представлены в таблице 1. Таблица 1 -Операции Do(double n, int p, int c) Выполнитьпреобразование Вход: Десятичное действительное число n. Основание системы счисления p. Точность преобразования дроби, заданная числом разрядов дробной части результата c. Например: Do(-17.875,16,3) = “-А1.Е” . Процесс: Выполняет преобразование десятичного действительного числа n, в систему счисления с основанием р и точностью c. Например:Do (”-17.875”,16,3) = “-А1.Е”. Выход: Строка результата. Например: Do(”-17.875”) = “-А1.Е”. int_to_Char(int d) Преобразовать целое значение в цифру системы счисления с основанием р. Вход: d – значение типа int – целое, соответствующее цифре в системе счисления с основанием р. Предусловия: Нет. Процесс: Преобразует целое d в соответствующую ему цифру в системе счисления с основанием р, значение типа Char. Например: int_to_Char (14) = “E”. Выход: Значениетипа char. Постусловия: Нет. int_to_P(int n, int p) Преобразоватьцелое в строку. Вход: n – целое число в системе счисления с основанием 10. p – основание системы счисления результата. Предусловия: Нет. Процесс: Преобразует целое n в строку, содержащую целое число в системе счисления с основанием p. Например: int_to_P(161, 16) = “A1” Выход: Строка. Постусловия: Нет. flt_to_P(double n, int p, int c) Преобразоватьдробь в строку. Вход: n – дробь в системе счисления с основанием 10, p – основание системы счисления, c – точность представления дроби. Предусловия: Нет. Процесс: Преобразует дробь n в строку, содержащую дробь в системе счисления с основанием p с точностью с. Например: flt_to_P(0.9375, 2, 4) «1111» Выход: Строка. Постусловия: Нет. end Conver_10_p Рекомендации к выполнению. 1. Тип данных реализовать, используя статический класс. 2. Тип данных сохраните в отдельном файле Conver_10_p. Ниже представлена заготовка описания класса Conver_10_p. Вам необходимо написать код методов и протестировать методы. namespace Конвертор { class Conver_10_P { //Преобразоватьцелоевсимвол. public static char int_to_Char(int n) { } //Преобразовать десятичное целое в с.сч. с основанием р. public static string int_to_P(int n, int p) { } //Преобразовать десятичную дробь в с.сч. с основанием р. public static string flt_to_P(double n, int p, int c) { } //Преобразовать десятичное //действительное число в с.сч. с осн. р. public static string Do(double n, int p, int c) { } } }
Класс «Конвертер р_10» - преобразователь чисел из системы счисления с основанием р в десятичную систему счисления Цель: Сформировать практические навыки реализации классов на языке C#.
СКАЧАТЬ МОЖНО ЗДЕСЬ
|
|
| |
engineerklub | Дата: Четверг, 07.03.2019, 07:04 | Сообщение # 2 |
Генералиссимус
Группа: Администраторы
Сообщений: 29399
Статус: Offline
| Задание 2 1. Реализовать преобразователь действительных (конвертер р_10) чисел из системы счисления с основанием р в десятичную систему счисления в соответствии с приведенной ниже спецификацией, используя класс. Основание системы счисления р принадлежит диапазону значений от 2 до 16. 2. Протестировать каждый метод класса. Спецификация класса «Конвертер р_10» - преобразователь действительных чисел со знаком из системы счисления с основанием р в десятичную систему счисления. ADT Conver_p_10 Данные Преобразователь действительных чисел из заданной системы счисления с основанием p в десятичную систему счисления (тип Conver_p_10). Основание системы счисления со значением, принадлежащим диапазону от 2 до 16. Операции Операции приведены в таблице 2. Таблица 2 -Операции dval(string P_num, int P) Выполнитьпреобразование Вход: P_num - строковое представление действительного числа в системе счисления с основанием р. Например: dval(“A5.E”, 16) Процесс: Выполняет преобразование действительного числа, представленного строкой в числовое представление. Например: dval(“A5.E”, 16) = -165.875. Выход: Вещественноечисло. Постусловия: Нет. char_To_num(char ch) Преобразоватьсимвол в целое Вход: ch – значение типа char – символ, изображающий цифру системы счисления с основанием p. Предусловия: Нет. Процесс: Преобразует символ ch в значение целого типа. Например: PCharToInt(‘A’) = 10. Выход: Вещественноечисло. Постусловия: Нет. convert(string P_num, int P, double weight) Преобразовать строку в вещественное число. Вход: P_num – строка, изображающая цифры целой и дробной частей вещественного числа в системе счисления с основанием p без разделителя. weight – вес единицы старшего разряда целой части числа. Предусловия: Нет. Процесс: Преобразует строку P_num, содержащую цифры целой и дробной частей вещественного числа в системе счисления с основанием p без разделителя в вещественное число. Например: convert (“A5E1”, 16, 16) Выход: Вещественноечисло. Постусловия: Нет. endConver_p_10 Рекомендации к выполнению. Описание класса может выглядеть следующим образом: namespace Конвертор { public class Conver_P_10 { //Преобразоватьцифрувчисло. static double char_To_num(char ch) { } //Преобразоватьстрокувчисло private static double convert(string P_num, int P, double weight) { } //Преобразовать из с.сч. с основанием р //в с.сч. с основанием 10. public static double dval(string P_num, int P) { } } } 3. Тип данных реализовать, используя статический класс. 4. Сохраните класс в отдельном файле Conver_p_10.
СКАЧАТЬ МОЖНО ЗДЕСЬ
|
|
| |
engineerklub | Дата: Четверг, 07.03.2019, 07:05 | Сообщение # 3 |
Генералиссимус
Группа: Администраторы
Сообщений: 29399
Статус: Offline
| Лабораторная работа №2. Редактор чисел в системе счисления с основанием р. Цель: Сформировать практические навыки реализации классов средствами объектно-ориентированного языка программирования C#. Задание 1 1. Разработать и реализовать класс Editor «Редактор действительных чисел представленных в системе счисления с основанием р», используя класс языка высокого уровня. Основание системы счисления р принимает значение из диапазона 2..16. Все команды редактора удобно пронумеровать, начиная с команды добавить 0 целыми числами от 0. При реализации интерфейса номера команд удобно хранить в свойстве Tag, которое имеется у визуальных компонентов. Атрибуты и операции класс представлены на рисунке 10.
Рисунок 10 - Атрибуты и операции класса 2. Ответственность класса Editor (редактор) – хранение, ввод и редактирование строкового представления числа, представленного в системе счисления с основанием p. Класс должен обеспечивать: добавление символов (AddDigit), соответствующих р-ичным цифрам (р от 2 до 16); добавления нуля (AddZero()); добавление разделителя целой и дробной частей (AddDelim()); забой символа - удаление символа, стоящего справа (BS); очистку - установку нулевого значения числа (Clear); чтение строкового представления р-ичного числа (Number). 3. Протестировать каждый метод класса. Рекомендации к выполнению Описание класса может выглядеть следующим образом: namespace Конвертор { classEditor { //Поле для хранения редактируемого числа. stringnumber = ""; //Разделитель целой и дробной частей. conststringdelim = "."; //Ноль. conststringzero = "0"; //Свойствое для чтения редактируемого числа. public string Number { get { } } //Добавитьцифру. public string AddDigit(int n) { } //Точность представления результата. publicintAcc(){ } //Добавитьноль. publicstringAddZero(){ } //Добавитьразделитель. publicstringAddDelim(){ } //Удалить символ справа. publicstringBs() { } //Очистить редактируемое число. publicstringClear() { } //Выполнить команду редактирования. public string DoEdit(int j) { } } } Класс сохраните в файле Editor. В разделе описания констант опишите следующие константы: «разделитель целой и дробной частей» строкового типа; «строковое представление нуля» строкового типа. Класс История. Цель: Сформировать практические навыки реализации классов средствами объектно-ориентированного программирования языка C#;использования библиотечного класса обобщённой коллекции List<> для обработки данных. Задание 2 1. Разработать и реализовать класс History «История», используя класс языка C#. Класс отвечает за документирование выполнения пользователем переводов чисел. Объекты класса хранят исходные числа, результаты преобразования и основания систем счисления исходного числа и результата. Атрибуты и операции класса представлены таблице 3. Таблица 3 - Атрибуты и операции класса «История» История Запись(i: integer): String; ДобавитьЗапись(a: String); Записей(): integer ОчиститьИсторию(); Обязанность: ввод, вывод, хранение данных введённых пользователем и полученных результатов. 2. Класс должен отвечать за ввод, вывод, хранение данных введённых пользователем и полученных результатов. Класс должен обеспечивать: • добавление записи (ДобавитьЗапись) - строки, содержащей введённое пользователем число, результат его преобразования и основания систем счисления исходной и той, в которую число преобразовано; • извлечение записи по её номеру в списке (Запись); • очистка списка (ОчиститьИсторию); • конструктор (Запись); • текущий размер списка в числе записей (Записей); 3. Протестировать каждый метод класса.
СКАЧАТЬ МОЖНО ЗДЕСЬ
|
|
| |
engineerklub | Дата: Четверг, 07.03.2019, 07:05 | Сообщение # 4 |
Генералиссимус
Группа: Администраторы
Сообщений: 29399
Статус: Offline
| Рекомендации к выполнению 1. Создайте консольное приложение, в которое добавьте класс History и сохраните его в файле History. 2. В этот же файл добавьте структуру (struct) Record с четырьмя полями для хранения исходного числа, результата и оснований их систем счисления. В структуру добавьте конструктор и метод ToString() для преобразования значения в формат строки. 3. Класс History, постройте на основе библиотечного класса коллекции List<Record> из пространства имён System.Collections.Generic. 4. В классе History опишите поле List<Record> L – список значений типа Record. Для поля опишите уровень доступа private. 5. Следующие операции класса опишите с уровнем доступа public: • добавить запись (AddRecord) - строку, содержащую введённое пользователем число, результат его преобразования и основания их систем счисления; • извлечь запись по её номеру из списка L; • очистить историю (Clear); • конструктор (History); • текущий размер списка в числе записей (Count); Описание структуры Record и класса History могут иметь следующий вид: public struct Record { int p1; int p2; string number1; string number2; public Record(int p1, int p2, string n1, string n2) { } public override string ToString(){ } } public class History { List<Record> L; public Record this [inti]{ } public void AddRecord(int p1, int p2, string n1, string n2) { } public void Clear() { } public intCount() { } public History(){ } } СКАЧАТЬ МОЖНО ЗДЕСЬ
|
|
| |
engineerklub | Дата: Четверг, 07.03.2019, 07:06 | Сообщение # 5 |
Генералиссимус
Группа: Администраторы
Сообщений: 29399
Статус: Offline
| Лабораторная работа №3 Класс Управление для «Конвертора p1_р2». Цель: Сформировать практические навыки реализации классов на языке C#. Задание 1 1. Реализовать Управление для «Конвертера p1_р2». 2. Протестировать каждый метод класса. Спецификация класса Управление для «Конвертера p1_р2». ADT Control_ Данные Объект класса Control_ (Управление) отвечают за координацию действий между классом «Интерфейс» и классами «Редактор», «Конвертер p1_10», «Конвертер 10_p2», «История». Объект класса Control_ содержат поля: ed типа Editor, his типа История, и свойства: Pin типа int (основание системы счисления исходного числа), Pout типа int (основание системы счисления результата), St типа State (состояние конвертера). Он может находиться в одном из двух состояний: «Редактирование», «Преобразовано». Объекты этого типа изменяемы. Операции Операции представлены в таблице 4. Таблица 4 - Операции Control_ Конструктор Вход: Нет. Процесс: Создаёт объект Управление типа (тип Control_) и инициирует поля объекта начальными значениями. DoCommand Выполнить команду. Вход: n - целое значение, номер выполняемой команды. Предусловия: Нет. Процесс: В зависимости от значения n и состояния (St) передаёт сообщение объекту Редактор или Преобразователь и изменяет состояние. Возвращает строку результата: либо отредактированное число, либо результат преобразования. Выход: Строка. Постусловия: Нет. end Control_ Рекомендации к выполнению 1. Тип данных реализовать, используя класс. 2. Для записи и считывания полей «преобразователя» используйте свойства. 3. Тип данных реализуйте в отдельном файле Control_. Пример описания класса Управление приведён ниже. namespace Конвертор { class Control_ { //Основание системы сч. исходного числа. const int pin = 10; //Основание системы сч. результата. const int pout = 16; //Число разрядов в дробной части результата. const int accuracy = 10; public История his = new История(); public enum State {Редактирование, Преобразовано} //Свойство для чтения и записи состояние Конвертера. public State St { get; set; } //Конструктор. public Control_() { St = State.Редактирование; Pin = pin; Pout = pout; } //объектредактор public Editor ed = new Editor(); //Свойство для чтения и записи основание системы сч. р1. public int Pin { get; set; } //Свойство для чтения и записи основание системы сч. р2. public int Pout { get; set; } //Выполнить команду конвертера. publicstringDoCmnd(intj) { if (j == 19) { double r = Conver_P_10.dval(ed.Number, (Int16)Pin); string res = Conver_10_P.Do(r, (Int32)Pout,acc()); St = State.Преобразовано; his.ДобавитьЗапись(Pin, Pout, ed.Number, res); return res; } else { St = State.Редактирование; return ed.DoEdit(j); }
} //Точность представления результата. privateintacc() { return (int)Math.Round(ed.Acc() * Math.Log(Pin) / Math.Log(Pout) + 0.5); } } }
Интерфейс приложения «Конвертор р1_р2». Цель: Сформировать практические навыки реализации графических интерфейсов пользователя (GUI) на основе библиотеки визуальных компонентов.
СКАЧАТЬ МОЖНО ЗДЕСЬ
|
|
| |