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

Исключительные ситуации в классах - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Шифрование символов в файле http://www.cyberforum.ru/cpp-beginners/thread604554.html
День добрый! Проблема такова: Есть файл содержащий исходный набор символов(текст, строки и т.д.). нужно составить программу для шифрования каждого символа исходного файла методом добавления определенного ключа, записать эту последовательность в другой файл, и дешифровать сообщение в третий файл. Есть исходный код на Delphi. program Crypto; {$APPTYPE CONSOLE}
C++ Класс "окружность" Написать программу работы с окружностями. Окружность является объектом класса. Память под окружность должна выделяться динамически (с помощью new). Должны быть определены деструктор и следующие конструкторы: · Конструктор по умолчанию создает нулевую окружность; · Конструктор, задающий окружность по центру и радиусу; · Копирующий конструктор. ... http://www.cyberforum.ru/cpp-beginners/thread604520.html
C++ Матрицы: сложения двух матриц (двумерных массивов)
Необходимо написать программу сложения двух матриц (двумерных массивов) на языке СИ++. Даны матрицы A и B. Надо их объявить и заполнить случайным образом через random, распечатать, получить матрицу C, которая состоит из сумм элементов массива A и массива B (C = A + B). Результат распечатать. Подсчитать сумму элементов массива C и распечатать. По поиску что-то не нашёл подобного.
C++ Множества
Дан текст на английском языке, который заканчивается точкой. В тексте удалить все гласные буквы, а согласные заменить на прописные.
C++ Текстовые файлы http://www.cyberforum.ru/cpp-beginners/thread604498.html
Дан файл, содержащий текст на русском языке. Выбрать из него те символы, которые встречаются в нем только один раз, в том порядке, в котором они встречаются в тексте.
C++ куда воткнуть файл res? есть файл res и его надо как-то подключить . куда его положить? в папку проекта? в документации написано в "стандартная библиотека (папка) С++ Visual Studio/VC98/ Projects" но у меня нет папки projects в папке vc98.. подробнее

Показать сообщение отдельно
DEMON51
0 / 0 / 0
Регистрация: 13.06.2012
Сообщений: 5
13.06.2012, 16:45  [ТС]     Исключительные ситуации в классах
Вот я делаю так: в main добавляю try
Код
int main()
{ drob <short> a(2,4);
  cout << a <<endl;
  a.sokrachenie();
  cout << "Reduction: "<< a << endl;
  drob <short> b(1,3);
  b.sokrachenie();
  cout <<"\n"<< b << endl;
  drob <int> q(3,3);
  cout << "\n"<< q << endl;
  q.sokrachenie();
  cout << "Reduction: "<< q << endl;
  drob <short> c, d, e, f;
  c=a+b;
  d=a*b;
  e=a/b;
  f=a-b;
  drob <int> t(2,0);
  //cout << t << endl;
  drob <int> h(2,10000000000000);
  //cout << h << endl;
  drob <int> u(32655896, 2);
  //cout << u << endl;
  cout << "\nArithmetic operations:" << endl;
  cout << a<< " / " << b << " = " << e << endl;
  cout << a<< " + "<< b<< " = " << c << endl;
  cout << a<< " * " << b<< " = " << d << endl;
  cout << a<< " - " << b<< " = " << f << endl;
  getchar();
  try {

	 } catch (DrobException e) { cout<<e.mes<<endl; getchar();
  }
	return 0;
}
а из класса убираю, оставляю только throw. А что в try писать не знаю.
Код
#ifndef _DROB_H
#define _DROB_H
#include <math.h>
#include <iostream.h>

class DrobException{             //Класс для исключительных ситуаций
public:
  char mes[256];
  DrobException(char* m) {strcpy(mes, m);}
};


template <class Type>
class drob //класс дробей
{   Type chesl, znam; //числитель и знаменатель
	public:

	drob (Type, Type);


	drob (drob &c)
	{
		chesl = c.chesl;
		znam = c.znam;
	}

	void sokrachenie();     //сокращение дроби

	drob operator*(drob <Type>);  //переопределение *

	drob operator/(drob <Type>);  //переопределение /

	drob operator+(drob <Type>);  //переопределение +

	drob operator-(drob <Type>);  //переопределение -

	~drob () {}

	friend ostream &operator<<(ostream &out, const drob &k) // переопределение оператора <<
	{ if (k.znam==1)
		  out << k.chesl;
	   else
	out << k.chesl << '/' << k.znam;
	return out;
  }



};
template <class Type>
drob <Type>::drob (Type ch=1, Type zn=1)
	{ chesl = ch;
	  znam = zn;

	  if (zn==0) {
	  throw DrobException("\nError: Devision by zero");	  }

	}

template <class Type>
void drob <Type>::sokrachenie()
 { int a=abs(chesl);
   int b=znam;
  while(b)
	 b^=a^=b^=a%=b;
  int n=abs(a);
  chesl/=n;
  znam/=n;
 }


 template <class Type>
 drob <Type> drob <Type>::operator*(drob <Type> a)
 {drob e;
  //double x=1.*chesl * a.chesl;
  e.chesl = chesl * a.chesl;
  e.znam = znam * a.znam;
  e.sokrachenie();
 /* if ((e.chesl>(sizeof(Type)*8))||(e.znam>(sizeof(Type)*8)))
  throw DrobException ("\nError: Overflow");  */

  return e;
 }

 template <class Type>
 drob <Type> drob <Type>::operator/(drob <Type> a)
 { drob c;
  c.chesl = chesl * a.znam;
  c.znam = znam * a.chesl;
  c.sokrachenie();
  return c;
 }

 template <class Type>
 drob <Type> drob <Type>::operator+(drob <Type> a)
 { drob t;
   t.chesl = a.chesl * znam + chesl * a.znam;
   t.znam = a.znam * znam;
   t.sokrachenie();
  /* if ((t.chesl>(sizeof(Type)*8))||(t.znam>(sizeof(Type)*8)))
  throw DrobException ("\nError: Overflow"); */

	return t;
 }

 template <class Type>
 drob <Type> drob<Type>::operator-(drob <Type> a)
 { drob f;
 f.chesl = chesl * a.znam - znam * a.chesl;
 f.znam = a.znam * znam;
 f.sokrachenie();
 return f;
 }

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