Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.85
Master05
1 / 0 / 0
Регистрация: 20.07.2010
Сообщений: 124
#1

Калькулятор дробей с помощью классов - C++

31.03.2012, 15:19. Просмотров 1663. Ответов 1
Метки нет (Все метки)

Добрый день, мне кажется я тут уже видел программку калькулятор дробей, где нужно создать class fraction для подсчета суммы, разности, деления и умножения без operator+
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2012, 15:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Калькулятор дробей с помощью классов (C++):

Калькулятор для дробей - C++
Создать калькулятор, который выполняет 4 арифметичуские действия над дробями. Пользователь должен сначало ввести первый операнд, знак...

Калькулятор для дробей - C++
Написать программу калькулятор для дробей,с помощью цикла for.Пользователь выбирает одной из действий: сумма,вычитание,умножение,деление. ...

Калькулятор рациональных дробей - C++
Первая программа принимает от пользователя три строки, (первая и третья строки – это правильные рациональные или десятичные дроби вида ...

Калькулятор для обыкновенных дробей - C++
Не компилируется( #include <iostream> #include <math.h> using namespace std; class Calc

Олимпиадное задание "Калькулятор рациональных дробей" - C++
Калькулятор рациональных дробей (выполнение операций сложения, вычитания, умножения, деления).

Реализовать калькулятор, при помощи пользовательских классов - C++
Мне нужно сделать калькулятор, при помощи классов. Учитывая скобки( например: 3-2*(3+5)) Классы начали изучать буквально недавно. Поэтому...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
lemegeton
2924 / 1353 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
31.03.2012, 18:24 #2
Ну так поищи, раз видел.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include <iostream>
#include <string>
#include <sstream>
#include <cmath>
 
// immutable
class Fraction {
 public:
  Fraction() : numerator_(0), denominator_(1) {}
  Fraction(int numerator, int denominator) : numerator_(numerator),
    denominator_(denominator) {
    simplify();
  }
  operator float() {
    return static_cast<float>(numerator_) / denominator_;
  }
  int getNumerator() const { return numerator_; }
  int getDenominator() const { return denominator_; }
  // Euclid
  static int getGreatestCommonDivisor(int a, int b) {
    a = std::abs(a);
    b = std::abs(b);
    if (a == b) return a;
    if (a > b) return getGreatestCommonDivisor(a - b, b);
    return getGreatestCommonDivisor(a, b - a);
  }
  std::string toString() {
    std::stringstream result;
    result << getNumerator() << "/" << getDenominator();
    return result.str();
  }
  Fraction add(const Fraction &other) {
    return Fraction(getNumerator() * other.getDenominator() +
      other.getNumerator() * getDenominator(),
      getDenominator() * other.getDenominator());
  }
  Fraction subtract(const Fraction &other) {
    return Fraction(getNumerator() * other.getDenominator() -
      other.getNumerator() * getDenominator(),
      getDenominator() * other.getDenominator());
  }
  Fraction multiply(const Fraction &other) {
    return Fraction(getNumerator() * other.getNumerator(),
      getDenominator() * other.getDenominator());
  }
  Fraction divide(const Fraction &other) {
    return Fraction(getNumerator() * other.getDenominator(),
      getDenominator() * other.getNumerator());
  }
  // +N -- more than other
  //  0 -- equal to other
  // -N -- less than other
  int compare(const Fraction &other) {
    return getNumerator() * other.getDenominator() -
      getDenominator() * other.getNumerator();
  }
 private:
  void simplify() {
    if (denominator_ < 0) {
      numerator_ = -numerator_;
      denominator_ = -denominator_;
    }
    if (int greatestCommonDivisor = getGreatestCommonDivisor(numerator_, denominator_)) {
      numerator_ /= greatestCommonDivisor;
      denominator_ /= greatestCommonDivisor;
    }
  }
  int numerator_;
  int denominator_;
};
 
int main(int argc, char *argv[]) {
  std::cout << Fraction(2, 4).add(Fraction(1, 6)).toString() << std::endl;
  std::cout << Fraction(2, 4).subtract(Fraction(1, 6)).toString() << std::endl;
  std::cout << Fraction(2, 4).multiply(Fraction(1, 6)).toString() << std::endl;
  std::cout << Fraction(2, 4).divide(Fraction(1, 6)).toString() << std::endl;
  std::cout << Fraction(1, 6).compare(Fraction(1, 6)) << std::endl;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2012, 18:24
Привет! Вот еще темы с ответами:

Реализация программы с помощью классов - C++
Здравствуйте, коллеги-программеры! Обращаюсь к Вам с таким вопросом. У меня есть написанная мной неплохая демка, с использованием...

Реализовать задачу с помощью классов. - C++
Есть задача: создать таблицу № | Фамилия | Имя | Адрес | Телефон 1. По заданной фамилией определить номер телефона. 2. По адресу...

Как с помощью классов нарисовать очки? - C++
Как с помощью классов нарисовать очки? Помогите пожалуйста

Создать меню с 6-ю элементами с помощью классов и списков - C++
Нужно создать меню с 6-ю элементами с помощью классов и списков. 1.&lt;что-то&gt; 2.&lt;что-то&gt; 3.&lt;что-то&gt; 4.&lt;что-то&gt; 5.&lt;что-то&gt; 6....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru