Заказать лабораторную работу на С++ (Гомель)
 
 
 
ЛАБОРАТОРНАЯ РАБОТА №7. ОБРАБОТКА ИСКЛЮЧЕНИЙ
  
 1)	Создайте иерархию классов для представления исключений математических операций. Например:
 
 
 //математические исключения
 class MathException
 {
 	char op_name[20]; //имя операции
 	long val1; //значение левого операнда операции
 	long val2; //значение правого операнда операции
 public:
 	MathException(char * name_op, long v1, long v2);
 	virtual char * Message() = 0;
 };
 //переполнение сверху
 class OverflowException : public MathException {/*...*/};
 //переполнение сверху
 class UnderflowException : public MathException {/*...*/};
 //деление на 0
 class ZdivideException : public MathException {/*...*/};
 
        В производных классах необходимо определить конструкторы и переопределить функцию Message(), которая должна возвращать информацию о произошедшей ошибке.
 
        Разработайте класс
 
 
 class Math
 {
 public:
 	long Add(long a, long b); //сложение (a + b)
 	long Sub(long a, long b); //вычитание (a - b)
 	long Mul(long a, long b); //умножение (a * b)
 	long Div(long a, long b); //деление (a / b)
 	long Mod(long a, long b); //остаток от деления (a % b)
 };
 
        Каждая функция должна отслеживать исключительные ситуации при выполнении операций и генерировать исключение соответствующего типа.
 
        В функции main поместите в блоки try...catch() вызовы функций с различными операндами.
 
        2)	Создайте иерархию классов для представления исключений файловых операций. Например:
 
 
 //файловые исключения
 class FileException
 {
 	HANDLE hfile[30];	//дескриптор файла
 	char filename[256];	//имя файла
 public:
 	FileException(char * fname);
 	FileException(HANDLE hf);
 	virtual char * Message() = 0;
 };
 //ошибка при создании файла
 class CreateException : public FileException {/*...*/};
 //ошибка открытия файла
 class OpenException : public FileException {/*...*/};
 //ошибка чтения
 class ReadException : public FileException {/*...*/};
 //ошибка записи
 class WriteException : public FileException {/*...*/};
 
        В производных классах необходимо определить конструкторы и переопределить функцию Message(), которая должна возвращать информацию о произошедшей ошибке.
 
        Разработайте класс
 
 
 #include 
 class File
 {
 	HANDLE CreateFile(char *);//создание нового файла (R/W)
 	HANDLE OpenFile(char *);  //открытие существующего файла (R/W)
 //чтение данных из файла
 	void ReadFile(HANDLE hf, void * buf, int count);
 //запись данных в файл
 	void WriteFile(HANDLE hf, void * buf, int count);
 };
 
        Каждая функция должна отслеживать исключительные ситуации при выполнении операций и генерировать исключение соответствующего типа.
 
        В функции main поместите в блоки try...catch() вызовы функций класса File.
 
        3)	Создайте иерархию классов для представления исключений трансцендентных операций. Например:
 
 
 //трансцендентные исключения (см задание 1)
 class TranscException
 {
 	double value;
 	char opname[20];
 public:
 	TranscException(char * nameop, double val);
 	virtual char * Message() = 0;
 };
 //исключения логарифмических функций
 class LogException : public TranscException;
 //исключения тригонометрических функций
 class TrigException : public TranscException;
 Разработайте класс
 class Trans
 {
 public:
 	double Sin(double angle); //синус
 	double Cos(double angle); //косинус
 	double Tan(double angle); //тангенс
 	double Asin(double sn);   //арксинус
 	double Acos(double cs);   //арккосинус
 	double Atan(double tg);   //арктангенс
 	double Ln(double value);  //натуральный логарифм
 	double Lg(double value);  //десятичный логарифм
 };
 
        Каждая функция должна отслеживать исключительные ситуации при выполнении операций и генерировать исключение соответствующего типа.
 
        В функции main поместите в блоки try...catch() вызовы функций с различными операндами.
 
 
 
 
 |   
 | 
 
 
 
ЛАБОРАТОРНАЯ РАБОТА №1. ПЕРЕХОД ОТ ЯЗЫКА С К ЯЗЫКУ С++
  
ЛАБОРАТОРНАЯ РАБОТА №2. КЛАССЫ
  
ЛАБОРАТОРНАЯ РАБОТА №3. ОБЪЕКТЫ КЛАССОВ
  
ЛАБОРАТОРНАЯ РАБОТА №4. ПЕРЕОПРЕДЕЛЕНИЕ ОПЕРАТОРОВ
  
ЛАБОРАТОРНАЯ РАБОТА №5. ПРОИЗВОДНЫЕ КЛАССЫ И ИЕРАРХИИ КЛАССОВ
  
ЛАБОРАТОРНАЯ РАБОТА №6. ШАБЛОНЫ
  
ЛАБОРАТОРНАЯ РАБОТА №7. ОБРАБОТКА ИСКЛЮЧЕНИЙ
  
ЛАБОРАТОРНАЯ РАБОТА №8. ДИНАМИЧЕСКАЯ ИДЕНТИФИКАЦИЯ И ПРИВЕДЕНИЕ ТИПА
  
 
 
 
Вы на сайте: 
 
 
Student.Gomel.by
 |