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

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

Войти
Регистрация
Восстановить пароль
 
Весна
7 / 7 / 3
Регистрация: 26.11.2010
Сообщений: 96
#1

Неоходимо закончить программу - C++

05.12.2011, 14:26. Просмотров 447. Ответов 0
Метки нет (Все метки)

Всем здравствуйте!!!

Помогите мне закончить программу. Задание такое:

1. Определить пользовательский тип данных TFraction (дробь), представляющий собой класс, и сожержащий:
1.1 Защищёные поля: числитель (long m) и знаменатель (unsigned long n).
1.2 Открытое статическое поле bool AutoReduce, равное по умолчанию false.
1.3 Конструктор умолчания, задающий значение дроби равное 0 (m=0, n=1).
1.4 Параметрический конструктор, позволяющий задать значение дроби парой целых значений числителя и знаменателя.
1.5 Параметрический конструктор, позволяющий задать значение дроби целым числом (знаменатель при этом равен 1).
1.6 Константную встроенную функцию long getNumerator(), возвращающую значение числителя дроби.
1.7 Константную встроенную функцию unsigned long getDenominator(), возвращающую значение знаменателя дроби.
1.8 При спользовании Borland C++Builder функции п.1.6 и п.1.7 сделать закрытыми, а доступ к полям обеспечить с помощью свойств (property) N (числитель) и M (знаменатель).
1.9 Открытый метод void reduce(), производящий сокращение дроби. Функция должна вызываться автоматически при задании значения дроби, если поле AutoReduce содержит значение true. Если поле AutoReduce содержит значение false, для сокращения дроби необходимо вызывать функцию явно. Функцию вычисления НОД, используемую в reduce(), сделать статическим членом класса.

2. По возможности минимизировать количество необходимых конструкторов.

3. Создать перегруженный оператор +, возвращающий сокращённую сумму двух дробей:
TFraction operator + (const TFraction&, const TFraction&);
являющийся другом класса.

4. Выполнить приведённый ниже код при различных значениях поля AutoReduce.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
...
void main()
{
  TFraction::AutoReduce=true;
   TFraction f1,f2(2),f3(-3,9),f5;
   const TFraction f4(2,6);
   f5=f1+f2+f3+f4;
 
   cout << f1.M << '/' <<f1.N << endl;
   cout << f2.M << '/' <<f2.N << endl;
   cout << f3.M << '/' <<f3.N << endl;
   cout << f4.M << '/' <<f4.N << endl;
   cout << f5.M << '/' <<f5.N << endl;
}
5. Сравнить полученные результаты с прведёнными значениями при AutoReduce=false

0/1
2/1
-3/9
2/6
108/54

при AutoReduce=true
0/1
2/1
-1/3
1/3
2/1.

Вот чего я наработала:

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
//---------------------------------------------------------------------------
#include <iostream.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
 
 
class TFraction
{
private:
  long m;
  unsigned long n;
 
  long getNumerator()const ;
  unsigned long getDenominator() const;
 
public:
  static bool AutoReduce;
 
  __property long N = {read = getNumerator};
  __property unsigned long M = {read = getDenominator};
 
  TFraction ()
  {
    m=0;
    n=1;
  }
  TFraction (long m, unsigned long n)
  {
    this->m=m;
    this->n=n;
  }
  TFraction (long m)
  {
    this->m=m;
    n=1;
  }
 
static long nod (long a,long b)
{
a = abs(a); b = abs(b);
long n = a > b ? a : b;
if (a&&b)
{
while (a != b)
if (a > b)
a -= b;
else
b -= a;
n = a;
}
return n;
}
 
void reduce();
 
};
 
 
 
#pragma argsused
void main()
{
   TFraction::AutoReduce=true;
   TFraction f1,f2(2),f3(-3,9),f5;
   const TFraction f4(2,6);
   f5=f1+f2+f3+f4;
 
   cout << f1.M << '/' <<f1.N << endl;
   cout << f2.M << '/' <<f2.N << endl;
   cout << f3.M << '/' <<f3.N << endl;
   cout << f4.M << '/' <<f4.N << endl;
   cout << f5.M << '/' <<f5.N << endl;
 
    getch();
 
        return 0;
}
//---------------------------------------------------------------------------
Добавлено через 18 часов 55 минут
Обратите плиз внимание на мою скоромную просьбу!!!)))
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2011, 14:26     Неоходимо закончить программу
Посмотрите здесь:

Закончить программу - C++
есть кусок программы: class Combinations { public: Combinations (int n, int m); vector &lt;int&gt; operator *(); ...

Помогите закончить программу! - C++
Не получается написать программу. Нужно подсчитать количество иногородних пациентов. #include &lt;fstream.h&gt; // для файловых потоков ...

Надо закончить программу - C++
Задача такая: Дана строка, содержащая произвольный текст. Сколько слов в тексте? Сколько цифр в тексте? Решил не сдирать из...

Не могу закончить программу - C++
Сделал часть программы,но не получается никак сделать 2 часть: Выведите список студентов, которым будет предоставляться места в...

Закончить программу, вывод на экран - C++
Записать выходной файл, добавить к каждому числу среднее арифметическое наименьшего по абсолютной величине и наибольшего из чисел файла. ...

как через оператор else закончить программу?? - C++
я пишу тест - курсовую и не знаю как предотвратить лишние нажатия enter'a помогите плиз)))

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

Работа с текстовыми строками (нужно закончить программу) - C++
часть программы написал, а другую не могу ... помогите закончить ее. С клавиатуры вводится строка. Разработать программу, которая...

Посчитать сумму чисел. Нужно закончить программу. - C++
Доброго времени суток. Задача - посчитать сумму по такой формуле: (1+0.1)(2+0.2)...(N+N/10) #include &lt;stdio.h&gt; #include...

не могу закончить программу. основу (как я считаю) я написала. доработать не получается - C++
уменьшить элементы столбца на величину их индекса. вывести на экран сумму нечетных элементов в столбце. промежуточная функция: выполнить...

Создать и вывести массив, значения которого вычесляются по формуле. Нужно закончить программу. - C++
Добрый вечер. Задача такая: создать и вывести массив, состоящий из 10 действительных чисел, значения вычесляются по формуле . Вывести...

Есть ли способ закончить "cin" и продолжить программу без ввода? - C++
Я пишу встроеный в консоль таймер, и хочу чтобы во время ожидания (таймер работает) можно было ввести string который закончит отсчет с...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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