Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

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

Написать обработчик исключений ситуации при преобразовании указателя на класс B до указателя на абстрактный класс А ... - C++
Написать обработчик исключений ситуации при преобразовании указателя на класс B до указателя на абстрактный класс А ... как сделать...

Как сделать функцию, которая тип данных использует как параметр? - C++
Хочу сделать функцию function(&quot;переменные&quot;, &quot;тип данных&quot;). Можно ли это реализовать? А именно, более подробно что-то в этом роде: ...

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

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

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.10.2012, 20:46
Привет! Вот еще темы с ответами:

Класс Стек Stack. не работает класс исключений - C++
Здравствуйте! Решил проверить код на пригодность, но почему то класс исключений выскакивает на ошибке. Я никак не могу понять такие вещи...

Реализовать класс исключения. Написать функцию, которая может генирировать три типа исключений - Java SE
Нужно реализовать класс исключения. Написать функцию, которая может генирировать три типа исключений: NullPointerException, IOException и...

Java Exceptions. Что делать с большим количеством исключений? - Java SE
Приветствую! Допустим, у меня есть приложение с консольным вводом/выводом. Пользователь может вводить команды, а программа, в случае...

Написать программу, которая использует функцию в функции - Turbo Pascal
нужно написать программу, которая используют функцию в функции, помогите пожалуйста! вот пытаюсь сделать, не получается((( program zas; ...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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