Student.gomel.by
На главную ... Контакты ... Университеты ... Частые вопросы ...
Заказать курсовую в Гомеле ...
Репетитор по информатике ...
Условия ...
Так сколько же стоит?


Заказать лабораторную работу на С++ (Гомель)


ЛАБОРАТОРНАЯ РАБОТА №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