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

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

Восстановить пароль Регистрация
 
Весна
 Аватар для Весна
7 / 7 / 3
Регистрация: 26.11.2010
Сообщений: 96
05.12.2011, 14:26     Неоходимо закончить программу #1
Всем здравствуйте!!!

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

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++ Посчитать сумму чисел. Нужно закончить программу.
C++ Не могу закончить программу
как через оператор else закончить программу?? C++
C++ Надо закончить программу
Помогите со сканером сети, немогу закончить программу C++
Помогите закончить программу! C++
C++ не могу закончить программу. основу (как я считаю) я написала. доработать не получается
Закончить программу, вывод на экран C++

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

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

Текущее время: 19:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru