Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.03.2013, 01:21   #1
felicita_091
Пользователь
 
Регистрация: 26.10.2012
Сообщений: 34
По умолчанию Разработайте класс MONEY

Задание 1: Разработка класса.
Разработайте класс MONEY.
Элемент класса:
 рубли;
 копейки.
Методы:
 конструктор без параметров (по умолчанию);
 конструктор с параметрами;
 конструктор копирования;
 деструктор;
 метод, осуществляющий ввод значений полей класса с клавиатуры;
 метод, осуществляющий вывод значений полей класса на экран в виде: 34 руб 20 коп.
Задание 2: Перегрузка операций.
Добавьте в разработанный класс MONEY перегрузку следующих операций:
 присваивание (=);
 сложение (+);
 вычитание (-);
 сравнение.

Помогите пожалуйста, у меня не получается((

MONEY.h
Код:
#pragma once

class MONEY
{
	int rub;
	int kop;
public:
	void getdata();    // функция для ввода данных
	void putdata () const;  

	MONEY(void);
	~MONEY(void);
	MONEY(int,int);
	MONEY(MONEY&); 
};
MONEY.cpp
Код:
#include "MONEY.h"
#include <iostream>
using namespace std;

MONEY::MONEY(void):rub(1),kop(0)
{
}

MONEY::~MONEY(int a, int b):rub(a),kop(b)
{
}

MONEY::MONEY(MONEY& f):rub(f.kop),kop(f.rub)
{
}


void MONEY:: putdata () const{
	cout << "\n Rubli : " << rub << 
		"\n Kopeiki: " << kop << endl;
}

void MONEY::getdata(){
	cout << "\n Rubli : ";  cin >> rub;
   cout << " Kopeiki: ";   cin >> kop;
}
1.cpp
Код:
#include "MONEY.h"
#include <iostream>
#include <conio.h>
using namespace std;

int main() {

	MONEY t;
	t.getdata();
	t.putdata();
	MONEY t(t1);
	t1.putdata();
	getch();
	return 0;
}

Последний раз редактировалось Stilet; 24.03.2013 в 13:55.
felicita_091 вне форума Ответить с цитированием
Старый 29.03.2013, 17:23   #2
DAVID973
Пользователь
 
Регистрация: 10.03.2012
Сообщений: 16
По умолчанию

Код:

    #include <iostream>
    #include <stdlib.h>
    #include <stdio.h>
    #include <conio.h>
   
    using namespace std;


class MONEY
{
public:
long rub;
long kop;

MONEY(): // конструктор без параметров (по умолчанию)
rub(0),
kop(0) {}

MONEY(long RUB, long KOP): // конструктор с параметрами (НЕ по умолчанию)
rub(RUB),
kop(KOP) {}

MONEY(const MONEY& money) // конструктор копирования
{
	rub = money.rub;
	kop = money.kop;
}

~MONEY() {} // деструктор

void INPUT() // метод, осуществляющий ввод значений полей класса с клавиатуры
{
	cout << endl << "ВВЕДИТЕ КОЛИЧЕСТВО РУБЛЕЙ: ";
	cin  >> rub;
	cout << endl << "ВВЕДИТЕ КОЛИЧЕСТВО КОПЕЕК: ";
	cin  >> kop;
}

void OUTPUT() // метод, осуществляющий вывод значений полей класса на экран в виде: 34 руб 20 коп.
{
	cout << endl << " === === ВАШ БАЛАНС: " << rub <<" руб " << kop << " коп. === ===" << endl;
}

// перегрузка операций:

friend MONEY operator+(MONEY &ob1, MONEY &ob2);
friend MONEY operator-(MONEY &ob1, MONEY &ob2);

friend bool operator==(MONEY &ob1, MONEY &ob2);
friend bool operator<(MONEY &ob1, MONEY &ob2);
friend bool operator>(MONEY &ob1, MONEY &ob2);

MONEY operator=(long ob) // присваивание
{
	rub += ob;
	return *this;
}

};


// СЛОЖЕНИЕ
MONEY operator+(MONEY &ob1, MONEY &ob2)
{
	MONEY ob(ob1.rub + ob2.rub, ob1.kop + ob2.kop);
	return ob;
}

MONEY operator+(MONEY &ob1, long ob2)
{
	MONEY ob(ob1.rub + ob2, ob1.kop);
	return ob;
}

MONEY operator+(long ob1, MONEY &ob2)
{
	MONEY ob(ob2.rub + ob1, ob2.kop);
	return ob;
}

// ВЫЧИТАНИЕ
MONEY operator-(MONEY &ob1, MONEY &ob2)
{
	MONEY ob(ob1.rub - ob2.rub, ob1.kop - ob2.kop);
	return ob;
}

MONEY operator-(MONEY &ob1, long ob2)
{
	MONEY ob(ob1.rub - ob2, ob1.kop);
	return ob;
}

MONEY operator-(long ob1, MONEY &ob2)
{
	MONEY ob(ob2.rub - ob1, ob2.kop);
	return ob;
}

// СРАВНЕНИЕ
bool operator==(MONEY &ob1, MONEY &ob2)
{
	return ((ob1.rub == ob2.rub) && (ob1.kop == ob2.kop));
}

// БОЛЬШЕ
bool operator>(MONEY &ob1, MONEY &ob2)
{
	if (ob1.rub == ob2.rub) return (ob1.kop > ob2.kop);
	else return (ob1.rub > ob2.rub);
}

// МЕНЬШЕ
bool operator<(MONEY &ob1, MONEY &ob2)
{
	if (ob1.rub == ob2.rub) return (ob1.kop < ob2.kop);
	else return (ob1.rub < ob2.rub);
}


int main()
{
	setlocale(0,"Russian");

	MONEY ob_1(14,22);  ob_1.OUTPUT();
	MONEY ob_2(16,22);  ob_2.OUTPUT();

	MONEY ob_3 = ob_1 + ob_2;   ob_3.OUTPUT();

	if (ob_2 == ob_1)    cout << endl << " ob_2 == ob_1 " << endl;
	else
	{
	    if (ob_2 > ob_1) cout << endl << " ob_2 > ob_1 " << endl;
	    else             cout << endl << " ob_2 < ob_1 " << endl;
	}

	ob_1 = ob_2 + 4; ob_1.OUTPUT();

	MONEY ob_4;  ob_4.INPUT();  ob_4.OUTPUT();

	MONEY ob_5 = ob_4;   ob_5.OUTPUT();

	_getch();
	return 0;
}
DAVID973 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Класс запускает поток, который заполняет этот класс. Обмен класс <=> поток. Человек_Борща Общие вопросы Delphi 8 27.02.2012 23:24
Создать класс Money, разработав для него поля, конструктор, методы, свойства vip.a.o.93 Общие вопросы .NET 0 09.02.2012 21:42
Разработайте класс, реализующий линейный двусвязный список Аким Ба Паскаль, Turbo Pascal, PascalABC.NET 11 24.08.2011 23:08
sb-money.ru VintProg Свободное общение 9 07.06.2010 07:52
Сборщики money Sanek777 Софт 8 04.11.2008 10:57