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

Как написать test program, которая использует класс с поддержкой exceptions (исключений) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Макрос на с++ http://www.cyberforum.ru/cpp-beginners/thread674471.html
Здравствуйте, надо разработать макрос type(x,y) который объявляет x как некий тип с именем y.
C++ Реализация функций с реакцией на некорректные ситуации вычислить значение функции и обеспечить реакцию на некорректные ситуации y=sqrt(ln ( (1-a)/x) ) Вот пример кода для функции y=(sqrt(x^5-y^5))/lg(x+5) #include "StdAfx.h" #include <iostream> #include <cmath> http://www.cyberforum.ru/cpp-beginners/thread674464.html
C++ Составить структурированную программу печати текста,находящегося между словами с заданными номерами A и B.
Задана запись из букв,количество букв кратно N.Всего в записи M слов.Длинна слова N.Составить структурированную программу печати текста,находящегося между словами с заданными номерами A и B. Помогите плиз со строками?
Считывание комплексных чисел C++
скажем если в с я считываю комплексные числа так: scanf("%d+%di",&a1,&b1); как это сделать в с++? покажите на примерчике
C++ Вычислить и вывести на экран все значение математической функции F http://www.cyberforum.ru/cpp-beginners/thread674451.html
Задание: Вычислить и вывести на экран все значение математической функции F. Вычисление значения функции F необходимо выполнить с использованием функции calculate, в которую передаются четыре параметра: x, a, b, c, которые являются действительными числами и вводятся с клавиатуры. Вывод параметров и результата вычисления функции необходимо вынести в отдельную функцию print. Примечание:...
C++ Перегрузка оператора присваивания Добрый вечер ! Нужна помощь по небольшому теоретико-практическому вопросу. Опять же вопрос по примеру из книги Шилдта С++ Базовый курс. Пример: Перегружаем операторы присваивания: class str_type { char string; public: //........... str_type operator=( char *str); // Присваиваем строку с завершающим нулем объекту типа str_type str_stype operator=(str_stype str);... подробнее

Показать сообщение отдельно
QWERY_2012
5 / 5 / 2
Регистрация: 09.09.2012
Сообщений: 227

Как написать test program, которая использует класс с поддержкой exceptions (исключений) - C++

18.10.2012, 20:46. Просмотров 340. Ответов 0
Метки (Все метки)

Необходимо написать test program для 2-х классов:
1) Student класс;
2) StudentException класс, который используется Student классом для throw exceptions (в случае если Student не работает).

test program должна использовать Student класс след. образом:
- 3-аргумента Student класс конструктора;
- enroll функцию.

Код должен:
- Catch лубое exceptions of type StudentException и использовать функцию
of the StudentException class для отображения сообщения для пользователя;
- Catch все другие exceptions которые должны быть thrown и напечать error message для них.


Пример для test program:
// Declare student objects and enroll those students in sections
Student testStudent1("S0000001"),
testStudent2("S0000002"),
testStudent3("S0000003");
testStudent1.enroll("CSC-160-500");
testStudent2.enroll("CSC-161-500");
testStudent3.enroll("PHI-112-500");


Описание классов:
1) Student класс:
header file:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#ifndef STUDENT_H
#define STUDENT_H
#include <string>
using namespace std;
 
class Student
{
public:
    Student();
    Student(string thisStudentID);
    void enroll(string thisSectionID);
private:
    string studentID;
    bool timeToThrow();
    static int sneakyCount;
};
#endif
implementation file
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
#include <string>
#include <iostream>
#include "Student.h"
#include "StudentException.h"
using namespace std;
 
// The constructor for this class accepts a Student ID
Student::Student(string thisStudentID)
{
    // This first statement updates a variable used to help decide when to Throw an Exception
    sneakyCount++;
    // Any text will be accepted as the student ID in this implementation
    if (!timeToThrow())
        studentID = thisStudentID;
    else
        throw StudentException("Student " + thisStudentID + " has been expelled from this school");
}
// This default constructor shouldn't be used, so throwing an exception isn't so artificial, its
// the right thing to do.  We will also find out if this constructor gets called at time that we don't expect.
Student::Student()
{
    // This first statement updates a variable used to help decide when to Throw an Exception
    sneakyCount++;
    throw StudentException("Incorrect Call to Student Constructor - No Student ID Provided");
}
// This dummy function would enroll the student in a course
void Student::enroll(string thisSectionID)
{
    // This first statement updates a variable used to help decide when to Throw an Exception
    sneakyCount++;
    if (!timeToThrow())
        cout << endl << "Student: " << studentID << " is now enrolled in " << thisSectionID << endl;
    else
        throw StudentException("Section " + thisSectionID + " has been cancelled");
    return;
}
 
int Student::sneakyCount = 0;
 
bool Student::timeToThrow()
{
    if (sneakyCount == 4)
        return true;
    else
        return false;
}
2) StudentException класс:
header file:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#ifndef STUDENTEXCEPTION_H
#define STUDENTEXCEPTION_H
#include <string>
using namespace std;
 
class StudentException
{
public:
    StudentException(string thisErrorMessage);
    string errorMessage();
private:
    string message;
};
#endif
implementation file
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <string>
#include "StudentException.h"
using namespace std;
 
StudentException::StudentException(string whatWentWrong)
{
        message = whatWentWrong;
}
// Return the error message stored inside the object
string StudentException::errorMessage()
{   return message;
}
Надо ли мне писать main файл и запускать все файлы вместе - не могу сообразить.

Добавлено через 32 минуты
Как вообще пишется test programm?
Помогите Please/
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru