Предметная область: «Рациональная дробь».
Данные класса: числитель и знаменатель дроби.
Функции класса: сложение, вычитание, умножение, деление, сравнение двух дробей на равенство, умножение и сложение с дробью целого числа.
https://pastebin.com/iMr1T1fh - вот код
Другие языки программирования и технологии
Посмотрите код и посоветуйте может какие-то правки или другие варианты решения задания по ООП с++
ну так как это ООП, можно сразу делать не функции, а добавлять действия операторам
посмотри, что такое перегрузка операторов/операций и дружественные классы
то есть, вместо d1.Addition(d1, d2);
будет лучше использовать d1 += d2;
или еще лучше d1 += new d2();
и по остальным функциям так же
посмотри, что такое перегрузка операторов/операций и дружественные классы
то есть, вместо d1.Addition(d1, d2);
будет лучше использовать d1 += d2;
или еще лучше d1 += new d2();
и по остальным функциям так же
Роман ********
Как перегрузить оператор + допустим чтобы возвращалось значение не 0.75, а "3 / 4" допустим. Мне нужны числа в форме дробей чтоб выводились
Что сразу бросилось в глаза:
В конструкторе при знаменателе = 0 по идее должны выкидывать исключение.
Используйте const и ссылки при передачах параметров Drob в методы.
Зачем у методов сложения, вычитания и т. д. два аргумента, когда одна дробь - уже сам экземпляр, с которым по логике вещей должна происходить операция.
Не используйте вывод в cout внутри методов. Нужен вывод в поток - перегрузите оператор << для работы с ostream.
Числитель и знаменатель в private и нет способов их получить вне класса. Вы уверены, что так надо? Ведь это норм. получить числитель и знаменатель дроби.
Наверное стоило сделать перегрузку операторов. Она напрашивается.
Чуть по-"мелочам":
Имя Drob...
метод Subtraction - Substruction
метод Devision - Division или Divide.
setlocale(LC_ALL, ""); - поставит локаль по умолчанию. В англ. виндах будут проблемы, даже если установлены шрифты с поддержкой кириллицы.
conio...,system("cls"), _getch... ну не очень хорошо...
for (zn; - zn; не обязателен. можно просто for(; условие;....)
Хорошо бы код отдельно, .h заголовок отдельно, но тут понятно кода мало - лениво.
В конструкторе при знаменателе = 0 по идее должны выкидывать исключение.
Используйте const и ссылки при передачах параметров Drob в методы.
Зачем у методов сложения, вычитания и т. д. два аргумента, когда одна дробь - уже сам экземпляр, с которым по логике вещей должна происходить операция.
Не используйте вывод в cout внутри методов. Нужен вывод в поток - перегрузите оператор << для работы с ostream.
Числитель и знаменатель в private и нет способов их получить вне класса. Вы уверены, что так надо? Ведь это норм. получить числитель и знаменатель дроби.
Наверное стоило сделать перегрузку операторов. Она напрашивается.
Чуть по-"мелочам":
Имя Drob...
метод Subtraction - Substruction
метод Devision - Division или Divide.
setlocale(LC_ALL, ""); - поставит локаль по умолчанию. В англ. виндах будут проблемы, даже если установлены шрифты с поддержкой кириллицы.
conio...,system("cls"), _getch... ну не очень хорошо...
for (zn; - zn; не обязателен. можно просто for(; условие;....)
Хорошо бы код отдельно, .h заголовок отдельно, но тут понятно кода мало - лениво.
Просто перегрузи стандартные математические операторы да и всё.
Роман ********
Их разве можно перегрузить чтобы они возвращали значение в стиле "5 / 7" P.S. мне нужно чтобы выглядело как дробь
Пример:
r:=q+w;
t:=q*w;
if r<t then
p:='меньше';
end
else
p:='больше';
end;
r:=q+w;
t:=q*w;
if r<t then
p:='меньше';
end
else
p:='больше';
end;
Похожие вопросы
- Помогите пожалуйста с решением задания на с++
- Не могу писать большой код. Что посоветуете?
- ООП это когда данные управляют кодом а функциональное когда код данными?
- Изучнние ООП - стоит ли сейчас?
- ООП. Стоит ли браться за ООП новичку в программировании?:
- кто разбирается в html? дали легкое задание, но я вообще 0. Помогите с кодом
- Выручайте. Составьте пожалуйста код на С++. Задание по практике.
- Всем привет! Помогите, пожалуйста, создать блок - схему к следующему коду и заданию. Заранее большое спасибо!
- ООП - зло. Ваше мнение.
- Объектно ориентированное программирование. (ООП)