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

Как написать тест программ для след класса - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Разработать программу, которая вводит целочисленную матрицу http://www.cyberforum.ru/cpp-beginners/thread676202.html
Разработать программу, которая вводит целочисленную матрицу из n строк и m столбцов (1<n<=100, 1<m<=50) и упорядочивает элементы матрицы.Упорядочить все элементы матрицы таким образом, чтобы при чтении матрицы по строкам ее элементы образовывали отсортированный по возрастанию массив. с объяснением если не сложно)
C++ Вывод текста в поток консоли Помогите найти функцию для вывода текста в поток консоли помню что она принимает stdout и char* работает вроде как в printf (давно находил но сейчас забыл как называется ) http://www.cyberforum.ru/cpp-beginners/thread676199.html
Вычислить и вывести на экран в виде таблицы значения функции C++
Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора, от xнач до xкон с шагом dx с точностью ε. Таблицу снабдить загаловком и шапкой. Каждая строка таблицы должна содержать значение аргумента, значение функции и количество просуммированных членов ряда.
C++ Наименьшее общее кратное для массива(с использованием вложенных циклов)
помогите пожалуйста написать программу. Задан целочисленный массив A. Определить наименьшее общее кратное.
C++ объединение множеств http://www.cyberforum.ru/cpp-beginners/thread676182.html
template<class ValType, class FwdIt> FwdIt copy ( FwdIt first, FwdIt last, FwdIt result ) { while (first!=last) *result++ = *first++; return result; } template <class ValType, class FwdIt> FwdIt set_union(FwdIt first1, FwdIt last1, FwdIt first2, FwdIt last2, FwdIt result)
C++ Драйвер виртуального монитора | Скринкаст из (бэк|график|фрейм)буфера Собственно, пишу я... Свой велосипед - быстрый VNC-подобный (концептуально) сервер/клиент, который... позволит нормально гамать в Скайрим/СтарКрафт/ВоВ на нэтбуке с ББ. Проблема одна - не хочет ловить кадры. Есть (примерно - плюс/минус) три варианта: + CUDA - нужно узнать функцию, возвращающую указатель на фреймбуфер или копирующие его в выделенный кусок памяти. + DirectDraw - вроде нашли,... подробнее

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

Как написать тест программ для след класса - C++

21.10.2012, 04:13. Просмотров 772. Ответов 0
Метки (Все метки)

Задача написать тест программу кот выполняет проверку Student class:

The three-argument Student class constructor
The enroll member function.

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
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
47
48
#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;
}
// This is the code that helps decide when to throw an exception.  You are welcome to look at it,
// but its only here to help generate unexpected exceptions.  It will vary in different versions of Student
// as I play around with it. 
int Student::sneakyCount = 0;
 
bool Student::timeToThrow()
{
    if (sneakyCount == 4)
        return true;
    else
        return false;
}

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
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <string>
#include "StudentException.h"
using namespace std;
 
StudentException::StudentException(string whatWentWrong)
{
    // Set the stored message within the object
    // Any text will be accepted as the error message
    message = whatWentWrong;
}
// Return the error message stored inside the object
string StudentException::errorMessage()
{
    return message;
}

Дословно задача звучит так:
Problem 1: Catching Exceptions of an Externally Provided Class

This problem simulates having to handle the exceptions of an externally provided class. (It also gives us one more opportunity to practice using classes in separately compilable files.) The problem is to write a test program that exercises a class that supports exceptions. The links above provide header and implementation files for two classes:

A Student class that simulates a class we might write to support the processing of students at FRCC.
A StudentException class that is used by the Student class to throw useful exceptions.
Your task is to download these class files and write a simple test program that exercises the following Student class features:

The three-argument Student class constructor
The enroll member function
Your program should correctly handle any exceptions that get thrown by the use of those functions and should display a useful error message. You can determinate how to use the Student class and StudentException class member functions from the comments in their header files. Please don't do any prompting for values in your program, simply call the member functions with fixed values, something like:

Student thisStudent("S12345678");
thisStudent.enroll("CSC-160-500");

Create at least three Student objects and "enroll" each of those students in a course. The provided class file will generate an exception on at least one of those calls. Your code should be written to handle exceptions as follows:

You should Catch any exceptions of type StudentException and use the member functions of the StudentException class to display a useful message to the user.
You should also Catch all other exceptions that might be thrown (we have a way of catching all) and print out a generic error message for those.
Here's a minimal example of the code your test program will execute:

// 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");
Your test program will need to run code much like this and catch any exceptions that get thrown by calls to Student class member functions.

I will create multiple versions of the Student class, other than the one provided, that generate exceptions in different ways, including some exceptions that aren't of type StudentException. Your test program should run correctly with any of them and should Catch exceptions no matter which Student member functions throw them. I might grade your homework using any or all of these alternate Student class implementations.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru