Воскресенье, 24.11.2024, 15:38
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Современные технологии программирования (часть 2) ДО СИБГУТИ
engineerklubДата: Вторник, 29.08.2023, 15:54 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 28530
Репутация: 0
Статус: Offline
Современные технологии программирования (часть 2) ДО СИБГУТИ

Тип работы: Работа Лабораторная
Сдано в учебном заведении: ДО СИБГУТИ

Описание:
Лабораторная работа №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) { }
}
}
Содержание отчета
1. Задание.
2. Текст программы.
3. Тестовые наборы данных для тестирования класса.
Контрольные вопросы
1. Что такое инкапсуляция?
2. Как синтаксически представлено поле в описании класса?
3. Как синтаксически представлен метод в описании класса?
4. Как синтаксически представлено простое свойство в описании класса?
5. Особенности описания методов класса?
6. Видимость идентификаторов в описании класса?
7. В чём особенности статических методов?
8. В чём особенности статических классов?
Класс «Конвертер р_10» - преобразователь чисел из системы счисления с основанием р в десятичную систему счисления
Цель: Сформировать практические навыки реализации классов на языке C#.

СКАЧАТЬ
 
engineerklubДата: Вторник, 29.08.2023, 15:54 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 28530
Репутация: 0
Статус: 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)
 Выход: Вещественное число.
 Постусловия: Нет.
end Conver_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.
Содержание отчета
1. Задание.
2. Текст программы.
3. Тестовые наборы данных для тестирования класса.
Контрольные вопросы
1. Что такое инкапсуляция?
2. Как синтаксически представлено поле в описании класса?
3. Как синтаксически представлен метод в описании класса?
4. Как синтаксически представлено простое свойство в описании класса?
5. Особенности описания методов класса?
6. Видимость идентификаторов в описании класса?
7. В чём особенности статических методов?
8. В чём особенности статических классов?
9. Как вызываются статические методы?


СКАЧАТЬ
 
engineerklubДата: Вторник, 29.08.2023, 15:55 | Сообщение # 3
Генералиссимус
Группа: Администраторы
Сообщений: 28530
Репутация: 0
Статус: 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 Конвертор
{
class Editor
{
//Поле для хранения редактируемого числа.
string number = "";
//Разделитель целой и дробной частей.
const string delim = ".";
//Ноль.
const string zero = "0";
//Свойствое для чтения редактируемого числа.
public string Number
{ get { } }
//Добавить цифру.
public string AddDigit(int n) { }
//Точность представления результата.
public int Acc(){ }
//Добавить ноль.
public string AddZero(){ }
//Добавить разделитель.
public string AddDelim(){ }
//Удалить символ справа.
public string Bs() { }
//Очистить редактируемое число.
public string Clear() { }
//Выполнить команду редактирования.
public string DoEdit(int j) { }
}
}
Класс сохраните в файле Editor. В разделе описания констант опишите следующие константы: «разделитель целой и дробной частей» строкового типа; «строковое представление нуля» строкового типа.
Содержание отчета
1. Задание.
2. Текст программы.
3. Тестовые наборы данных для тестирования класса.
Контрольные вопросы
1. В чём состоит особенность раздела описания класса с уровнем доступа protected?
2. В чём состоит особенность раздела описания класса с уровнем доступа private?
3. В чём состоит особенность раздела описания класса с уровнем доступа public?
4. В чём состоит особенность инициализации полей ссылочного типа и констант в конструкторе?
5. Что такое this?
6. Как описываются поля в классах?
7. Какой операцией создаются объекты классов?
8. Как вызвать нестатический метод класса?
Класс История.
Цель: Сформировать практические навыки реализации классов средствами объектно-ориентированного программирования языка C#; использования библиотечного класса обобщённой коллекции List<> для обработки данных.
Задание 2
1. Разработать и реализовать класс History «История», используя класс языка C#. Класс отвечает за документирование выполнения пользователем переводов чисел. Объекты класса хранят исходные числа, результаты преобразования и основания систем счисления исходного числа и результата.
Атрибуты и операции класса представлены таблице 3.
Таблица 3 - Атрибуты и операции класса «История»
История
Запись(i: integer): String;
ДобавитьЗапись(a: String);
Записей(): integer
ОчиститьИсторию();
Обязанность: ввод, вывод, хранение данных введённых пользователем и полученных результатов.

СКАЧАТЬ
 
engineerklubДата: Вторник, 29.08.2023, 15:55 | Сообщение # 4
Генералиссимус
Группа: Администраторы
Сообщений: 28530
Репутация: 0
Статус: Offline
2. Класс должен отвечать за ввод, вывод, хранение данных введённых пользователем и полученных результатов. Класс должен обеспечивать:
• добавление записи (ДобавитьЗапись) - строки, содержащей введённое пользователем число, результат его преобразования и основания систем счисления исходной и той, в которую число преобразовано;
• извлечение записи по её номеру в списке (Запись);
• очистка списка (ОчиститьИсторию);
• конструктор (Запись);
• текущий размер списка в числе записей (Записей);
3. Протестировать каждый метод класса.
Рекомендации к выполнению
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[int i] { }
public void AddRecord(int p1, int p2, string n1, string n2) { }
public void Clear() { }
public int Count() { }
public History() { }
}
Содержание отчета
1. Задание.
2. Текст программы.
3. Тестовые наборы данных для тестирования класса.
Контрольные вопросы
1. В чём состоит особенность обобщённой коллекции List< >?
2. В чём состоит отличие типа struct от типа class?
3. Как создаются объекты типа struct?
4. В чём состоит особенность раздела описания класса с уровнем доступа private?
5. В чём состоит особенность раздела описания класса с уровнем доступа public?
6. В чём состоит особенность инициализации полей ссылочного типа и констант в конструкторе?
7. Что такое this?

СКАЧАТЬ
 
engineerklubДата: Вторник, 29.08.2023, 15:56 | Сообщение # 5
Генералиссимус
Группа: Администраторы
Сообщений: 28530
Репутация: 0
Статус: 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; }
//Выполнить команду конвертера.
public string DoCmnd(int j)
{
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);
}

}
//Точность представления результата.
private int acc()
{
return (int)Math.Round(ed.Acc() * Math.Log(Pin) / Math.Log(Pout) + 0.5);
}
}
}
Содержание отчета
1. Задание.
2. Текст программы.
3. Тестовые наборы данных для тестирования класса.
Контрольные вопросы
1. Что такое инкапсуляция?
2. Как синтаксически представлено поле в описании класса?
3. Как синтаксически представлен метод в описании класса?
4. Как синтаксически представлено простое свойство в описании класса?
5. Особенности описания методов класса?
6. Особенности описания и назначение конструктора класса?
7. Видимость идентификаторов в описании класса?
8. Особенности вызова методов применительно к объектам класса?
Интерфейс приложения «Конвертор р1_р2».
Цель: Сформировать практические навыки реализации графических интерфейсов пользователя (GUI) на основе библиотеки визуальных компонентов.
Задание 2
1. Реализовать «Интерфейс» приложения «Конвертер р1_р2», используя библиотечный класс формы и визуальные компоненты.
2. Протестировать методы класса.
Спецификация класса «Интерфейс».
Интерфейс приложения представлен на рисунке 1.
ADT TPanel_p_p
Данные

СКАЧАТЬ
 
engineerklubДата: Вторник, 29.08.2023, 15:57 | Сообщение # 6
Генералиссимус
Группа: Администраторы
Сообщений: 28530
Репутация: 0
Статус: Offline
Интерфейс» конвертера действительных чисел из системы счисления с основанием p1 в систему счисления с основанием p2 предназначен для: выбора оснований систем счисления p1, p2 из диапазона от 2..16; ввода и редактирования действительного числа со знаком в системе счисления с выбранным основанием p1; отображения результата – представления ввёдённого числа в системе счисления с основанием p2; отображения справки о приложении; отображения истории текущего сеанса работы пользователя с приложением.
«Интерфейс» несёт на себе визуальные компоненты, реализующие выполнения команд преобразователя и объект «Управление» класса Control_.
Операции. Операции представлены в таблице 5.
Таблица 5 - Операции
Наименование Пояснение
trackBar1_Scroll Обработчик события Scroll для компонента trackBar1.
 Вход: object sender, EventArgs e.
sender – указатель на объект, который явился инициатором события Scroll. e - это объект базового класса для классов, содержащих данные о событии.
 Предусловия: Пользователь перетаскивает бегунок компонента trackBar1.
 Процесс: Обновляет свойства визуальных компонентов формы, связанных с изменением основания системы счисления р1 исходного числа. Устанавливает новое значение основания системы счисления. Обновляет состояние командных кнопок.
 Постусловия: Обновления выполнены.
 Выход: Нет.
numericUpDown1_ValueChanged Обработчик события ValueChanged для компонента numericUpDown1.
 Вход: object sender, EventArgs e. sender – указатель на объект, который явился инициатором события ValueChanged.
 Предусловия: Пользователь изменяет р1 с помощью компонента numericUpDown1.
 Процесс: Обновляет свойства визуальных компонентов формы, связанных с изменением основания системы счисления р1 исходного числа. Устанавливает новое значение основания системы счисления. Обновляет состояние командных кнопок.
 Постусловия: Обновления выполнены.
 Выход: Нет.
trackBar2_Scroll Обработчик события Scroll для компонента trackBar2.
 Вход: object sender, EventArgs e. sender – указатель на объект, который явился инициатором события Scroll.
 Предусловия: Пользователь перетаскивает бегунок компонента trackBar2.
 Процесс: Обновляет свойства визуальных компонентов формы, связанных с изменением основания системы счисления p2 исходного числа. Устанавливает новое значение основания системы счисления.
 Постусловия: Обновления выполнены.
 Выход: Нет.
numericUpDown2_ValueChanged Обработчик события ValueChanged для компонента numericUpDown2.
 Вход: object sender, EventArgs e. sender – указатель на объект, который явился инициатором события ValueChanged.
 Предусловия: Пользователь изменяет р2 с помощью компонента numericUpDown2.
 Процесс: Обновляет свойства визуальных компонентов формы, связанных с изменением основания системы счисления р2 результата. Устанавливает новое значение основания системы счисления. Обновляет состояние командных кнопок.
 Постусловия: Обновления выполнены.
 Выход: Нет.
numericUpDown1_ValueChanged Обработчик события ValueChanged для компонента numericUpDown1.
 Вход: object sender, EventArgs e. sender – указатель на объект, который явился инициатором события ValueChanged.
 Предусловия: Пользователь изменяет р1 с помощью компонента numericUpDown1.
 Процесс: Обновляет свойства визуальных компонентов формы, связанных с изменением основания системы счисления р1 результата. Устанавливает новое значение основания системы счисления. Обновляет состояние командных кнопок.
 Постусловия: Обновления выполнены.
 Выход: Нет.
TPanelp_p_Load Обработчик события Load для компонента TPanelp_p.
 Вход: (object sender, EventArgs e). sender – указатель на объект, который явился инициатором события Load.
 Предусловия: Форма загружается в память.
 Процесс: Устанавливает начальные значения свойств визуальных компонентов формы после загрузки формы.
 Выход: Нет.
 Постусловия: Установка свойств выполнена.
DoCmnd(int j) Выполнить команду.
 Вход: j значение целого типа – номер команды преобразователя.
Предусловия: Пользователь нажал командную кнопку команды с номером j.
 Процесс: Передаёт сообщение объекту Управление и отображает возвращаемый им результат. Вызывается метод объекта Управление и передаётся номер набранной пользователем команды Конвертора.
 Выход: Нет.
 Постусловия: Обновляется состояние Интерфейса.
button_Click Обработчик события Click для командных кнопок.
 Вход: object sender, EventArgs e. sender: object – указатель на объект, который явился инициатором события Click.

СКАЧАТЬ
 
  • Страница 1 из 1
  • 1
Поиск:

Рейтинг@Mail.ru