7 / 7 / 2
Регистрация: 26.11.2010
Сообщений: 96
1

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

05.12.2011, 14:26. Показов 547. Ответов 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 минут
Обратите плиз внимание на мою скоромную просьбу!!!)))
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.12.2011, 14:26
Ответы с готовыми решениями:

Закончить программу
есть кусок программы: class Combinations { public: Combinations (int n, int m); ...

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

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

Помогите закончить программу!
Не получается написать программу. Нужно подсчитать количество иногородних пациентов. #include...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.12.2011, 14:26

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

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

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

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

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

Не могу закончить программу, требуется совет, как вывести среднее значение
#include&lt;iostream&gt; using namespace std; double SrZnachenie(int **mas, int n, int m) { double...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru