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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
QWERY_2012
5 / 5 / 2
Регистрация: 09.09.2012
Сообщений: 227
#1

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

18.10.2012, 20:46. Просмотров 331. Ответов 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/
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2012, 20:46     Как написать test program, которая использует класс с поддержкой exceptions (исключений)
Посмотрите здесь:

C++ Класс длинная арифметика с поддержкой арифметических операций
C++ Как правильно создать шаблон на функцию, которая использует вектор?
Написать класс С++, который использует функции из библиотеки с C++
Программа, которая использует три определяемых пользователем функции C++
C++ класс исключений
Написать программу, которая по введенному году обучение в школе, выводит соответствующий класс. (11,10,9) C++
Нужно написать генерацию исключений для методов, как это делается? C++
Как отлавливать exceptions от stl? C++
C++ Написать программу, которая использует класс string
C++ Класс для работы со строками (с поддержкой китайских символов)
Нюансы синтаксиса: как запустить программу, которая находится в каталоге Program Files? C++
C++ Программа, которая использует три определяемых пользователем функции

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 22:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru