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

С помощью перегрузки операторов складывать, вычитать натуральные дроби - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Задaчa-курсач про клетки и их стороны http://www.cyberforum.ru/cpp-beginners/thread317063.html
Вася нарисовал на клетчатой бумаге многоугольник,все стороны которого проходят по линиям сетки.После этого в каждой клетке он написал число равное количеству сторон данной клетки которые принадлежатсторона многоугольника.Затем он стер многоугольник так что листок бумаги в каждой клетке которого написано число.Восстановите нарисованый Васей многоугольник. Это полный текст, не могу понять, как...
C++ Ошибка С2664 error C2664: MessageBoxW: невозможно преобразовать параметр 2 из 'const char ' в 'LPCWSTR' 1> Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции Уже не первый раз ее встречаю. Появляется после запуска примеров из книг/с сайтов. Данные коды компилились на MVS2005 и MVS2006 (по крайней мере... http://www.cyberforum.ru/cpp-beginners/thread317049.html
Новая строка C++
Очень глупый вопрос) Куда влепить "\n", чтобы всегда вводить новые символы с новой строки? И чтобы результат был в виде одной строки, а не символ на строку. #include <iostream> using namespace std; main () { unsigned char ascii; int change = 0;
Переделать программу из С# в С++ C++
Нашел на форуме такой код using System; using System.Collections.Generic; using System.Text.RegularExpressions; namespace ConsoleApplication2 { class Program {
C++ Запись массива в файл. http://www.cyberforum.ru/cpp-beginners/thread317024.html
Ребят, помогите. Завтра курсач сдавать. Есть массив структур. Как его в файл записать? Кидаю весь файл, не ругайтесь. // Sorevevnovaniya.cpp : Defines the entry point for the application. #include "stdafx.h" #include <cstdlib> #include <iostream> #include <math.h> #include <conio.h> #include <windows.h> #include <stdio.h>
C++ Шаблоны классов. Бинарное дерево. Помогите пожалуйста написать программу. Название класса "Узел бинарного дерева". Поля: указатель на корень, информационное поле узла, ссылки на левого и правого потомков. Методы: распечатать дерево,определить среднее арифметическое элементов, найти и удалить заданный элемент. Перегружаемые операции: <<(обход дерева сверху вниз), +=(добавить элемент в дерево) подробнее

Показать сообщение отдельно
Alex1205
 Аватар для Alex1205
6 / 6 / 1
Регистрация: 14.01.2011
Сообщений: 81
10.06.2011, 00:27     С помощью перегрузки операторов складывать, вычитать натуральные дроби
Господа, делали лабу, задачка на дроби. С помощью дружественного класса нужно было складывать, вычитать натуральные дроби. Вроде что-то наваял(сам,честно), но у меня вопрос: можно ли сделать подобное с помощью перегрузки операторов?

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
#include<iostream>
#include<string.h>
using namespace std;
 
class Fract
{
private:
    int top,bottom;
public:
    Fract(int t = 0,int b = 1)
    {
        top = t;
        bottom = b;
    }
    friend class FractFriend;
};
 
 
class FractFriend
{
public:
Fract F;
public:
    void Set(int top,int bottom);
    char* GetN();
    float GetF();
    Fract Add(Fract F2);
    Fract Sub(Fract F2);
};
 
void FractFriend::Set(int top,int bottom)
{
    F.top = top;
    F.bottom = bottom;
}
float FractFriend::GetF()
{
    return (float)F.top/F.bottom;
}
Fract FractFriend::Add(Fract F2)
{
    Fract tmp;
    tmp.top=F.top*F2.bottom + F2.top*F.bottom;
    tmp.bottom = F.bottom*F2.bottom;
    return tmp;
}
Fract FractFriend::Sub(Fract F2)
{
    Fract res;
    res.top=F.top*F2.bottom - F2.top*F.bottom;
    res.bottom = F.bottom*F2.bottom;
    return res;
}
char* FractFriend::GetN()
{
    char* tmp = new char[100];
    char a[50];
    itoa(F.top,a,10);
    strcpy(tmp,a);
    strcat(tmp,"/");
    itoa(F.bottom,a,10);
    strcat(tmp,a);
    return tmp;
}
void main()
{
FractFriend F1;
F1.Set(3,4);
cout<<F1.GetN()<<" "<<"\t";
cout<<F1.GetF()<<" "<<"\t";
 
FractFriend S2;
S2.Set(1,2);
cout<<S2.GetN()<<" "<<"\t";
cout<<S2.GetF()<<" "<<"\t";
FractFriend res;
res.F = F1.Add(S2.F);
cout<<"\n\n";
cout<<" Addition result of two fractions is: "<<res.GetN()<<"\n";
res.F = F1.Sub(S2.F);
cout<<" Substruction result of two fractions is: "<<res.GetN()<<"\n";
cout<<"\n\n";
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 17:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru