Для студентов МГТУ им. Н.Э.Баумана по предмету Программирование на основе классов и шаблоновЛабораторная работа 3 ИУ5Лабораторная работа 3 ИУ5
5,00514
2022-08-112022-08-11СтудИзба
Лабораторная работа 3: Лабораторная работа 3 ИУ5 вариант 11
Бестселлер
Описание
Лабораторная работа №3 по курсу "Программирование на основе классов и шаблонов" для ИУ5 2 семестр.
Постановка задачи:
1. Создать класс для работы с обыкновенными дробями. Все операции, которые должны выполняться с дробями, включены в программу в приложении 1.
Числитель и знаменатель дроби имеют тип int.
Дроби вводятся как строка, имеющая вид:
- для дробей с целой частью: знак, целая часть, пробел, числитель, слэш (‘/’), знаменатель,. например: -2 6/18, 5 9/3, 2 4/1.
- для дробей без целой части: знак, числитель, слэш (‘/’), знаменатель,
например: 3/4, -9/3, -8/6 (знаменатель всегда положительный).
Значения представленных выше дробей на экране при выводе должны иметь вид:
-2 1/3, 8, 6.
3/4, -3, -1 1/3.
- При выводе и после выполнения арифметических операций дроби сокращаются, то есть числитель и знаменатель не должны иметь общих множителей.
Перегрузить операции '+', '+=' для сложения дробей и дроби и целого в любых сочетаниях (дробь+целое, целое+дробь, дробь+дробь).
- Перегрузить операции '+', '+=' для сложения дроби и double в любых сочетаниях (дробь+double, double+дробь). Преобразование double-дробь должно выполняться с точностью до N_DEC десятичных знаков после запятой, где N_DEC – целочисленная константа, задаваемая пользователем. Задайте значение по умолчанию N_DEC=4.
- Для инициализации объектов разрабатываемого класса обыкновенных дробей предусмотреть соответствующие конструкторы (с одним аргументом типа char*, с одним аргументом типа double и с двумя аргументами типа int, которые имеют значения по умолчанию).
- При перегрузке операций использовать функции - члены класса, а где это невозможно, то функции - друзья класса.
- Для обеспечения более удобного контроля результатов выполнения программы вставьте в конструкторы и перегруженные операции операторы вывода, идентифицирующие выполняемую функцию.
Выполните следующий эксперимент: закомментируйте операции дроби с int и повторно выполните программу. Объясните результаты сложения дробей с целыми числами.
2.
2.1. Создать класс «Дроби » для выполнения арифметических операций над обыкновенными дробями. Внутреннее представление дробей (состав полей класса) должно обеспечивать эффективное выполнение операций над дробями и может отличаться от представления дробей на экране монитора, которое должно быть удобным для пользователя. Например, внутри объекта класса «Дроби » может храниться неправильная дробь.
Разработать конструктор по умолчанию и конструктор, который преобразует строку, содержащую внешнее представление дроби, в объект класса «Дроби » .
Перегрузить операции потокового ввода дроби с клавиатуры и вывода ее на экран монитора. При вводе выполнять сокращение дроби.
Создать много-файловый проект и отладить программу, которая создает один объект класса «Дроби » и выводит значения его полей на экран (эта программа состоит из 5 первых операторов программы, приведённой в Приложении 1).
2.2. Дополнить класс функциями - членами класса и функциями - друзьями класса, которые необходимы для выполнения программы из Приложения 1.
Выполнить программу из Приложения 1 и сравнить результаты с тестовым примером.
Содержимое файла:
![]()
Постановка задачи:
1. Создать класс для работы с обыкновенными дробями. Все операции, которые должны выполняться с дробями, включены в программу в приложении 1.
Числитель и знаменатель дроби имеют тип int.
Дроби вводятся как строка, имеющая вид:
- для дробей с целой частью: знак, целая часть, пробел, числитель, слэш (‘/’), знаменатель,. например: -2 6/18, 5 9/3, 2 4/1.
- для дробей без целой части: знак, числитель, слэш (‘/’), знаменатель,
например: 3/4, -9/3, -8/6 (знаменатель всегда положительный).
Значения представленных выше дробей на экране при выводе должны иметь вид:
-2 1/3, 8, 6.
3/4, -3, -1 1/3.
- При выводе и после выполнения арифметических операций дроби сокращаются, то есть числитель и знаменатель не должны иметь общих множителей.
Перегрузить операции '+', '+=' для сложения дробей и дроби и целого в любых сочетаниях (дробь+целое, целое+дробь, дробь+дробь).
- Перегрузить операции '+', '+=' для сложения дроби и double в любых сочетаниях (дробь+double, double+дробь). Преобразование double-дробь должно выполняться с точностью до N_DEC десятичных знаков после запятой, где N_DEC – целочисленная константа, задаваемая пользователем. Задайте значение по умолчанию N_DEC=4.
- Для инициализации объектов разрабатываемого класса обыкновенных дробей предусмотреть соответствующие конструкторы (с одним аргументом типа char*, с одним аргументом типа double и с двумя аргументами типа int, которые имеют значения по умолчанию).
- При перегрузке операций использовать функции - члены класса, а где это невозможно, то функции - друзья класса.
- Для обеспечения более удобного контроля результатов выполнения программы вставьте в конструкторы и перегруженные операции операторы вывода, идентифицирующие выполняемую функцию.
Выполните следующий эксперимент: закомментируйте операции дроби с int и повторно выполните программу. Объясните результаты сложения дробей с целыми числами.
2.
2.1. Создать класс «Дроби » для выполнения арифметических операций над обыкновенными дробями. Внутреннее представление дробей (состав полей класса) должно обеспечивать эффективное выполнение операций над дробями и может отличаться от представления дробей на экране монитора, которое должно быть удобным для пользователя. Например, внутри объекта класса «Дроби » может храниться неправильная дробь.
Разработать конструктор по умолчанию и конструктор, который преобразует строку, содержащую внешнее представление дроби, в объект класса «Дроби » .
Перегрузить операции потокового ввода дроби с клавиатуры и вывода ее на экран монитора. При вводе выполнять сокращение дроби.
Создать много-файловый проект и отладить программу, которая создает один объект класса «Дроби » и выводит значения его полей на экран (эта программа состоит из 5 первых операторов программы, приведённой в Приложении 1).
2.2. Дополнить класс функциями - членами класса и функциями - друзьями класса, которые необходимы для выполнения программы из Приложения 1.
Выполнить программу из Приложения 1 и сравнить результаты с тестовым примером.
Содержимое файла:

Характеристики лабораторной работы
Учебное заведение
Семестр
Номер задания
Вариант
Просмотров
122
Качество
Идеальное компьютерное
Размер
407,19 Kb
Список файлов
lab-3
fraction
x64
Debug
fraction
CL.command.1.tlog
CL.read.1.tlog
CL.write.1.tlog
fraction.lastbuildstate
link.command.1.tlog
link.read.1.tlog
link.write.1.tlog
Header.obj
Source.obj
fraction.Build.CppClean.log
fraction.exe.recipe
fraction.ilk
fraction.log
fraction.obj
fraction.vcxproj.FileListAbsolute.txt
vc143.idb
vc143.pdb
Header.cpp
Header.h
Source.cpp
fraction.cpp
fraction.vcxproj
fraction.vcxproj.filters
fraction.vcxproj.user
README.md
МГТУ им. Н.Э.Баумана
mightyK1ngRichard

















