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

Определить класс для рациональных чисел - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ не проходит инцилизация вектора http://www.cyberforum.ru/cpp-beginners/thread664480.html
#include <iostream> #include <vector> #include <ctime> // function RandomInitializationVector void PrintElementVector(std::vector <int> vector); void RandomInitializationVector(std::vector <int> vector, int size); int main() { std::cout << "Test Vector" << std::endl << std::endl;
C++ Программа, которая помогает найти число х между 0 и 1000 Программа, которая помогает найти число х между 0 и 1000. Это число х выбирается программой. Использовать функцию rand. Когда вводишь число, программа должна сказать "слишком большое" или "слишком маленькое", либо "угадал"! И еше она должна подсчитивать число попыток. помогите написать! Ниче не получается http://www.cyberforum.ru/cpp-beginners/thread664468.html
Вектор C++
Заполните вектор случайными числами. Напишите вывод на экран. Отсортируйте вектор. Напишите функцию, которая удалит из вектора все простые числа. Напишите функцию, которая копирует все простые числа из одного вектора в другой. как это можно реализовать?
Вычислить значение функции C++
Ребят помогите написать код двух задач. Задача 1 Роздилите абитуриентов, что выдержали конкурс, между двумя группами с ближайшим количественным составом. Задача 2 Заданно значение функции sin(a). Вычислить главное значение аргумента этой функции в градусах. Добавлено через 15 часов 42 минуты Ну что ребят ктонибудь знает как написать код к этим задачам???
C++ Как правильно обьявить геометрические точки? http://www.cyberforum.ru/cpp-beginners/thread664418.html
Здраствуйте! Задача стоит такая : Добавить геометрическую точку с указанными координатами. (х у) Отсортировать геометрические точки в сторону увеличения расстояния от начала координат. Теперь основной вопрос : как правильно обьявить точку, для последующей сортировки ( по гипотенузе ), а также обращения к етой точке. Дополнительный, необязательный вопрос : для дальнейшего удаления етой точки...
C++ Усечение числа с плавающей точкой Доброго времени суток! Собсно сабж. floor(v*1000)/1000 не помогает, обнуляется только несколько знаков после запятой, а остальные остаются. А как обнулить все, кроме первых пяти знаков? подробнее

Показать сообщение отдельно
QWERY_2012
5 / 5 / 2
Регистрация: 09.09.2012
Сообщений: 227

Определить класс для рациональных чисел - C++

06.10.2012, 10:10. Просмотров 3498. Ответов 2
Метки (Все метки)

Начало изучения понятия класса и объекта в С++, для меня много не ясного.
Помогите, пожалуйста.

Задача: необходимо Определить класс (Rational) для рациональных чисел. Рациональное число - число кот может быть представлено как отношение двух целых чисел: 1/2, 3/4, 64/2 и т.д. Включить конструктор с 2 аргументами, кот может быть использован для установления member переменных объекта с любыми легальными значениями. Так же включить конструктор, кот имеет только 1 параметр типа int, вызывает единственный параметр whole_number и определяет конструктор так что объект инициализуется как рациональное число - whole_number/1. Так же включить default конструктор кот инициализует объект как 0 (0/1).

Overload - Перегрузить input and output операторы << и >>. Числа в input and output должны быть в форме 1/2, 15/32, 300/401 и т.д. и могут содержать отрицательные значения -1/2, -300/401. Overload - Перегрузить все следующие операторы: корректно применяемые к типу Rational: ==, <, <=, >, >=, +,-, * и /.
Так же написать тест-программы для тестирования данного класса:
Rational test1, test2(10), test3(1, 2);

test1 - the default (no argument) constructor,
test2 calls a constructor with one argument,
test3 calls the constructor with two arguments. test3 is equal to 0.5, with 1 on the top and 2 on the bottom.

Все операторы требуется should be provided for the Rational class as overloaded, Friend functions. In general, you should be able to execute code such as following:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
// Display the three values to test cout
cout << "\nTest1 equals " << test1;
cout << "\nTest2 equals " << test2;
cout << "\nTest3 equals " << test3;
// Test our operators
cout << "\nTest1 * Test2 equals " << test1*test2;
cout << "\nTest1 / Test3 equals " << test1/test3;
cout << "\nTest2 + Test3 equals " << test2+test3;
cout << "\nTest3 - Test1 equals " << test3-test1;
if (test1 == test2)
cout << "\nTest1 is equal to Test2";
if (test1 < test2)
cout << "\nTest1 is less than Test2";


Пример раб. программы:
Please enter two non-zero integers: 14 6
Please enter Rational number: (22, 4)

Test1 equals (7, 3)
Test2 equals (14, 1)
Test3 equals (11, 2)
Test1 * Test2 equals (98, 3)
Test1 / Test3 equals (14, 33)
Test2 + Test3 equals (39, 2)
Test3 - Test1 equals (19, 6)
Test1 is less than Test2
Test2 is greater than Test3
Test3 is greater than or equal to Test1

Another test case?

Добавлено через 3 минуты
Примерный код (но явно не то)

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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
class Rational
{
public:
    friend Rational operator +(const Rational& num1, const Rational& num2);
 
    friend Rational operator -(const Rational& num1, const Rational& num2);
    
    friend Rational operator -(const Rational& num2);
    
    friend Rational operator < (const Rational& num1, const Rational& num2);
    
    friend Rational operator <= (const Rational& num1, const Rational& num2);
    
    friend Rational operator > (const Rational& num1, const Rational& num2);
    
    friend Rational operator >= (const Rational& num1, const Rational& num2);
      
    friend Rational operator *(const Rational& num1, const Rational& num2);
 
    friend bool operator == (const Rational& num1, const Rational& num2);
    
    
    Rational test3(int num 1, num 2);
    Rational test2(int num);
    Rational test1();
 
 
    friend ostrem& operator <<(ostream& outs, const Rational&);
    friend istream& operator >>(istream& ins, Rational&  );
    
    
    Rational(int top_num, int bottom_num);
    Rational( );
 
    double get_value( ) const;
 
    void input(istream& ins);
    void output(ostream& outs) const;
       
    
private:
    int top_num;
    int bottom_num;
};
 
  
  
int main
{
 
// Display the three values to test cout
    cout << "\nTest1 equals " << test1;
    cout << "\nTest2 equals " << test2;
    cout << "\nTest3 equals " << test3;
    
    
// Test our operators
    cout << "\nTest1 * Test2 equals " << test1*test2;
    cout << "\nTest1 / Test3 equals " << test1/test3;
    cout << "\nTest2 + Test3 equals " << test2+test3;
    cout << "\nTest3 - Test1 equals " << test3-test1;
    
    
    if (test1 == test2)
        cout << "\nTest1 is equal to Test2";
    if (test1 < test2)
        cout << "\nTest1 is less than Test2";
 
 
 
 
 
 
 
 
 
  system("Pause");
  return 0;
 
} 
       
      Rational operator +(const Rational& num1, const Rational& num2)
      {
       Rational.temp;
       temp.sum = num1.sum + num2.sum;
       return temp;        
      } 
       
       Rational operator -(const Rational& num1, const Rational& num2)
      {
       Rational.temp;
       temp.difer = num1.difer + num2.difer;
       return temp;        
      } 
      
      
      
      bool operator ==(const Rational& num1, const Rational& num2)
      {
        return (num1.equal == num2.equal);     
      }
      
       
       
       ostrem& operator <<(ostream& outs, const  )
       {
               return outs;
               }
       istream& operator >>(istream& ins, const  )
       {
                return ins;
                }
Добавлено через 50 минут
Кто нибудь - хотя бы направление в кот мне двигаться. Если что-то не ясно в постановке задачи - пишите.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru