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

Автоматические тесты - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти: средний результат; всех воспитанников заданного тренера http://www.cyberforum.ru/cpp-beginners/thread782774.html
помогите написать задание. Представить данную в варианте информацию в виде структуры. Реализовать функции считывания из файла/консоли и записи в файл/консоль полученной структуры. Сформировать набор данных (массив), где каждый элемент является разработанной структурой. Этот набор тоже может быть оформлен как структура. Участник спортивного соревнования: фамилия, фамилия тренера и результат....
C++ из Си С++ Привет всем, народ хелпание с переделыванием кода из си в с++, вроде все правильно переделал, а программа перестает работать как надо... // kursa4.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include "iostream.h" #include "stdio.h" #include "conio.h" int main() http://www.cyberforum.ru/cpp-beginners/thread782757.html
При передаче ссылки на указатель программа зависает C++
Почему это не работает (точнее работает но зависает т.к. в set_val_to23() ссылка на указатель val передаётся со значением 0: main(): void set_val_to23(int* &val) { *val=23; } int main() { try {
Ошибка в коде C++
Здравствуйте. В книге "ООП" Р. Лафоре, в главе 6 есть программка. Которая не хочет запускаться. Сперва набирал сам, после "долгих мучений" решил запустить оригинальный код посмотреть или запуститься - увы. Запускал в CB и в VS. msoftcon.h и msoftcon.cpp файлы закинул в папку с проектом. Топ получился очень длинный, если модератор как-то сможет уменшить - буду благодарен : ( Вот сам код:...
C++ Бинарные файлы http://www.cyberforum.ru/cpp-beginners/thread782745.html
2) Даны упорядоченные бинарные файлы "f.bin" и "g.bin", содержащие целые числа типа int. Например, f = <1,1,2,4,4,4,5> g = <1,1,3,4,6,6,7,7,7> 2A) создать упорядоченный бинарный файл "A.bin" с НЕ пересекающимися компонентами из f и g, то есть <2,3,6,6,7,7,7> 2B) создать упорядоченный бинарный файл "B.bin" c пересекающимися компонентами из f и g, то есть <1,4> 2С) создать упорядоченный...
C++ Бинарные файлы ( Вывести на экран содержимое каждого файла) Пользователь вводит 5 целых чисел. Положительные числа записать в файл "plus.bin", отрицательные - в "minus.bin". Закрыть эти файлы и снова открыть, но уже для чтения. Вывести на экран содержимое каждого файла. Помогите пж. написать код:)) подробнее

Показать сообщение отдельно
Rivory
146 / 112 / 2
Регистрация: 15.01.2013
Сообщений: 266
10.02.2013, 00:25     Автоматические тесты
Добрый вечер.

Пишу для курсового проекта автоматические тесты для одной формы довольно обширного проекта. Есть функция, проверяющая текущий трек(проект связан с радиолокацией).

Функция:
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
49
50
51
52
53
void TFormWaves::CheckTrack(AnsiString TrackNum)
{
    if (TrackNum == "")
    {
        //ShowMessage("Введите номер трассы!");
        return;
    }
 
    int num = StrToInt(TrackNum);
    E_TRACK_OGP ogp = OGP_UNKNOWN;
    bool enable = true;
    if(num > FormMain->DisplayManager->GetCountOfTracks()+1)
    {
        num = FormMain->DisplayManager->GetCountOfTracks()+1;
        edTrackNumber->Text = num;
    }
 
    //если такой трек уже есть
    if (((TPresentationTrack*)FormMain->DisplayManager->getObjectById(E_PRESENTATION_TRACK,num)) != NULL)
    {
        TPresentationTrack* trck = ((TPresentationTrack*)FormMain->DisplayManager->getObjectById(E_PRESENTATION_TRACK,num));
        float course = RADTOGRAD(trck->GetPsi());
        Update(4,course);
        ogp = trck->GetOGP();
        enable = false;
        edH->Text = FloatToStr(trck->GetBaseTrack()->h);
        edSpeed->Text = FloatToStr(trck->GetTrack().fSpeed);
        dotT = trck->GetCoord();
 
    }
    UpdateCoord();
    // меняем интерфейс
    switch(ogp)
    {
        case OGP_UNKNOWN:
        case OGP_UNDEF:
            Update(5,0);
            break;
        case OGP_ENEMY:
            Update(5,1);
            break;
        case OGP_OWN:
        case OGP_OWN_COMMON:
            Update(5,2);
            break;
    }
    edCourse->Enabled = enable;
    tbCourse->Enabled = enable;
    cbOgp->Enabled = enable;
    edH->Enabled = enable;
    edSpeed->Enabled = enable;
    DrawWaves();
}
Как её протестировать? Пока все, до чего я додумался, это:
C++
1
2
3
4
5
6
7
8
bool AutoTestWaves::TestCheckTrack()
{
    int num = frmMain->DisplayManager->GetCountOfTracks();
    frmWaves->CheckTrack(num+2);
    if(frmWaves->edTrackNumber->Text == IntToStr(num+1))
        return true;
    return false;
}
Добавлено через 2 часа 59 минут
Вроде написал. Можно закрыть тему. Но функция получилась, по-моему, просто эталоном быдлокода
Кликните здесь для просмотра всего текста
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
bool AutoTestWaves::TestCheckTrack()
{
    int num = frmMain->DisplayManager->GetCountOfTracks();
    bool result1 = false;
    bool result2 = false;
    bool result3 = false;
 
    //Проверка на возможность задания номера трека выше, чем возможно
    frmWaves->CheckTrack(num+2);
    if(frmWaves->edTrackNumber->Text == IntToStr(num+1))
        result1 = true;
    else result1 = false;
 
    //Создадим трек с известными нам параметрами
    frmWaves->edTrackNumber->Text = frmMain->DisplayManager->GetCountOfTracks()+1;
    frmWaves->labelWNum->Caption = "1";
    frmWaves->labelTrInW->Caption = "1";
    frmWaves->labelDistPlanes->Caption = "0";
    frmWaves->labelDistWaves->Caption = "0";
    frmWaves->labelCourse->Caption = "15";
    frmWaves->cbOgp->ItemIndex = 1;
    AnsiString ogp = AnsiString(frmWaves->cbOgp->Items->operator [](frmWaves->cbOgp->ItemIndex));
    frmWaves->edH->Text = "10000";
    frmWaves->edSpeed->Text = "250";
    frmWaves->edSigma->Text = "3";
    T2d dotT;
    dotT.x = 10;
    dotT.y = 15;
 
    FormMain->DisplayManager->AddWaves(frmWaves->edTrackNumber->Text,frmWaves->labelWNum->Caption,
    frmWaves->labelTrInW->Caption, frmWaves->labelDistPlanes->Caption, frmWaves->labelDistWaves->Caption,
    frmWaves->labelCourse->Caption, ogp, frmWaves->edH->Text, frmWaves->edSpeed->Text, frmWaves->edSigma->Text, dotT);
 
    //Cменим номер трека на предыдущий и на заново созданный, чтобы можно было проверить значения на форме
    frmWaves->CheckTrack(num);
    frmWaves->CheckTrack(num+1);
 
    //Проверим, равны ли значения на форме тем, которые мы задавали ранее
    if  (frmWaves->edTrackNumber->Text == IntToStr(num+1)   &&
        frmWaves->labelWNum->Caption == "1"                 &&
        frmWaves->labelTrInW->Caption == "1"                &&
        frmWaves->labelDistPlanes->Caption == "0"           &&
        frmWaves->labelDistWaves->Caption == "0"            &&
        frmWaves->labelCourse->Caption == "15"              &&
        frmWaves->cbOgp->ItemIndex == 1                     &&
        frmWaves->edH->Text == "10000"                      &&
        frmWaves->edSpeed->Text == "250"                    &&
        frmWaves->edSigma->Text == "3")
    {
        result2 = true;
    }
    else result2 = false;
 
    //Для уже созданного трека должны быть заблокированы след. поля
    if  (frmWaves->edCourse->Enabled == false   &&
        frmWaves->tbCourse->Enabled == false    &&
        frmWaves->cbOgp->Enabled == false       &&
        frmWaves->edH->Enabled == false         &&
        frmWaves->edSpeed->Enabled == false)
    {
        result3 = true;
    }
    else result3 = false;
 
    //Удаляем тестовый, более не нужный нам трек
    TPresentation* MovingObj = frmMain->DisplayManager->getObjectById(E_PRESENTATION_TRACK, num+1);
    frmMain->DisplayManager->DeletePresentation(MovingObj);
    frmMain->DisplayManager->updateDisplayPresentations();
 
    return result1 && result2 && result3;
}


P.S. Не понимаю, почему код из RAD Studio таким красным выделяется тут на форуме.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru