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

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

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

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

05.12.2011, 14:26. Просмотров 454. Ответов 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++):

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

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

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.12.2011, 14:26
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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