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

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

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

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

18.10.2012, 20:46. Просмотров 342. Ответов 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 (исключений)
Посмотрите здесь:

Написать программу, которая использует класс string - C++
Вечер добрый господа, суть задачи такова. Написать программу, которая использует класс string для анализа строки, содержащей...

Написать класс С++, который использует функции из библиотеки с - C++
Есть С длл как написать класс С++, который использует функции из библиотеки с? Добавлено через 37 минут это нужно писать обертку?

Как правильно создать шаблон на функцию, которая использует вектор? - C++
есть вот такая шаблонная функция, template &lt;typename T&gt; void rev(const std::vector &lt;T&gt; &amp;v){ ...

Нюансы синтаксиса: как запустить программу, которая находится в каталоге Program Files? - C++
что делать когда нужно запустить программу, которая, например, находится в Program Files? а это значит, что нужны кавычки, а так...

Нужно написать генерацию исключений для методов, как это делается? - C++
вот все задание , но нужно лишь последний абзац Задание: Разработать абстрактный класс TList, отвечающий за хранение целочисленных...

класс исключений - C++
class exception { public: exception() throw(); exception(const bad_exception &amp;ob) throw(); virtual -exception() throw(); ...

Написать программу, которая по введенному году обучение в школе, выводит соответствующий класс. (11,10,9) - C++
Хотя бы примерное решение этой задачки

Как отлавливать exceptions от stl? - C++
Использую вектор, в описнии написано Return value f a reallocation happens, the storage is allocated using the container's...

Класс длинная арифметика с поддержкой арифметических операций - C++
Кто-нибудь уже писал класс для работы с очень большими числами, с поддержкой операторов +-/*, если да, то дайте, пожалуйста, ссылку на код....

Класс для работы со строками (с поддержкой китайских символов) - C++
Всем привет! Необходима помощь по созданию класса на C++ для работы со строками, строки должны поддерживать китайские символы. Заранее...


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

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

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