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

This app requiested Runtime to terminate - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Тестовое задание на Junior C++ dev http://www.cyberforum.ru/cpp-beginners/thread929251.html
Доброго времени суток. Неделю назад ради интереса отправил свое резюме в одну компанию, куда требуются с++ юниоры. Получил от них тестовое задание. Я ожидал, что они мне откажут (опыта то у меня действительно мизер), но хотелось бы узнать у более опытных людей, какое решение задач "ожидает" компания от соискателя для продолжения с ним отношений. Далее идет 4 задачи и мой вариант решения каждой...
C++ Дальнейший путь Всем доброго времени суток. На данный момент прочитал 2 книги по С++ (Шилдт - руководство для начинающих и Лафоре - ооп в С++. Хотелось бы спросить совета в каком направлении двигаться дальше. С одной стороны хочется взглянуть на С#, с другой, возможно, имеет смысл углубить знания в С++. Что по вашему было бы правильнее для студента 2ого курса? http://www.cyberforum.ru/cpp-beginners/thread929241.html
C++ Перевод из строки в число
Подскажите в чем ошибка. Метод должен принимать строку в виде $456 654 456.36 и выдавать число типа double. double bMoney::getmoney() { unsigned int i; char Mass, Mass2; cout << "Введите сумму: "; cin.get(Mass, MAX); for(i = 0; i < strlen(Mass); i++) { switch (Mass)
Задача "Натуральный ряд чисел" C++
(Время: 1 сек. Память: 16 Мб) Натуральные числа записаны в строку без каких-либо разделителей. Начало этой строки имеет вид 123456789101112131415161718192021… . Требуется написать программу, которая определит первое вхождение десятичной записи заданного числа N в этой строке. Входные данные Входной файл INPUT.TXT содержит заданное число N (1 <= N <= 104). Выходные данные
C++ Шаблоны http://www.cyberforum.ru/cpp-beginners/thread929196.html
Есть два класса: #include <iostream> #include <string> #include <valarray> using namespace std; template <class T1, class T2> class Pair { private: T1 a;
C++ Вывод строки в обратном порядке Тупень возвращается. Имеем функцию для чтения массива в обратном порядке. Смысл ясен, но требуются пояснения в деталях. void print_reverse(char *s) { size_t len = strlen(s); char *t=s + len - 1; // почему мы в правой части выражения к массиву s добавляем уменьшенную на единицу длину //// массива s ? почему мы складываем массив с числом ? while (t >= s) { printf("%c", *t); подробнее

Показать сообщение отдельно
anubis1768
4 / 4 / 0
Регистрация: 23.02.2013
Сообщений: 151
26.07.2013, 19:33  [ТС]     This app requiested Runtime to terminate
Вот сорцы, если надо...
Кликните здесь для просмотра всего текста
main.cpp
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
/*#define INCLUDE_CAPP
#include "globals.h"*/
#include "d:\Programing\LIBRARIES\SDL\Projects\card_game2\card\Card.h"
#include "d:\Programing\LIBRARIES\SDL\Projects\card_game2\deck\Deck.h"
 
const int width = 800;
const int height = 600;
const int fps = 20;
const int bpp = 32;
const int screen_flag = SDL_HWSURFACE | SDL_DOUBLEBUF;
 
const char * const caption = "Example";
 
int main( int argc, char **argv ) {
    /*CApp app( width, height, bpp, fps, screen_flag, caption );
    return app.main_loop();*/
    
    SDL_Init( SDL_INIT_EVERYTHING );
    
    Deck o;
    //o.shuffle_deck();
    
    SDL_Quit();
    
    return SUCCES;
}
Deck.h
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 "d:\Programing\LIBRARIES\SDL\Projects\Example\globals.h"
#include "d:\Programing\LIBRARIES\SDL\Projects\card_game2\card\Card.h"
#include <SDL/SDL.h>
#include <vector>
 
#ifndef DECK_H
#define DECK_H
 
//----------------CARD_TYPES----------------------------------
enum {
    Two = 1, Three, Four, Five, Six, Seven, Eight, Nine, Ten,
    Jack, Queen, King, Ace, Face
};
//------------------------------------------------------------
        
        
//----------------CARD_SUIT-----------------------------------
enum {
    Hearts = 1, Diamonds, Spades, Clubs
};
//------------------------------------------------------------
 
class Deck
{
    public:
        Deck( Cint = 53 );
        
        void shuffle_deck();
        void deal( Deck*, Cint );
        
        static bool load_cards();
        static void clean_image();
        
        std::vector< Card > cards;
        
    private:
    public: 
        int deck_size;
        //static std::vector< SDL_Surface* > card_image;
        
        void put_card_on_top( const Card& );
        const Card& get_top_card() const;
        void remove_card();
};
 
#endif
Deck.cpp
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
#include "Deck.h"
 
//==========================STATIC=====================================
//std::vector< SDL_Surface* > Deck::card_image( 14 );
 
 
//========================CONSTRUCTOR==================================
Deck::Deck( Cint size ) : deck_size( size ), cards( deck_size ) {
}
//====================================================================
 
 
 
//=====================STATIC_FUNC_TO_FREE_MEMORY====================
void Deck::clean_image() {
    /*for( int i = 0; i < card_image.size(); i++ )
        SDL_FreeSurface( card_image[i] );*/
}
//====================================================================
 
 
 
 
//====================================================================
void Deck::shuffle_deck() {
    
    /*//-------SHUFFLE_CARD_SUIT-----------------------------------------
    int count = 0;
    for( int i = 0; i < deck_size; i++ ) {
        cards[i].set_suit( ( count == 0 ? Hearts :
                          ( count == 1 ? Clubs  :
                          ( count == 2 ? Spades :
                          ( count == 3 ? Diamonds : count = count )))));
        count = ( count == 3 ? 0 : count + 1 );
    }
    //----------------------------------------------------------------
    
    //-------SHUFFLE_CARD_TYPES---------------------------------------
    count = 2;
    for( int i = 0; i < deck_size; i++ ) {
        cards[i].set_face( ( count == 2 ? Two :
                          ( count == 3 ? Three :
                          ( count == 4 ? Four :
                          ( count == 5 ? Five :
                          ( count == 6 ? Six :
                          ( count == 7 ? Seven :
                          ( count == 8 ? Eight :
                          ( count == 9 ? Nine :
                          ( count == 10 ? Ten :
                          ( count == 11 ? Jack :
                          ( count == 12 ? Queen :
                          ( count == 13 ? King :
                          ( count == 14 ? Ace : 
                            count = count ))))))))))))));
        count = ( count == 14 ? 2 : count + 1 ); 
    }
    //----------------------------------------------------------------
    
    
    for( int i = 0; i < deck_size * 100; i++ ) {
        std::swap( cards[0 + rand() % deck_size], cards[0 + rand() %
                                                deck_size] );
    }
    
    int j;
        
    for( int i = 0; i < deck_size; i++ ) {
        LOG( "\ni = " );
        LOG( i );
        LOG( "\t" );
        
        j = cards[i].get_face();
        std::string tmp;
        
        switch( j ) {
            case Two:
                tmp = "Two";
                break;
            
            case Three:
                tmp = "Three";
                break;
                
            case Four:
                tmp = "Four";
                break;
            
            case Five:
                tmp = "Five";
                break;
                
            case Six:
                tmp = "Six";
                break;
                
            case Seven:
                tmp = "Seven";
                break;
                
            case Eight:
                tmp = "Eight";
                break;
                
            case Nine:
                tmp = "Nine";
                break;
                
            case Ten:
                tmp = "Ten";
                break;
                
            case Jack:
                tmp = "Jack";
                break;
                
            case Queen:
                tmp = "Queen";
                break;
                
            case King:
                tmp = "King";
                break;
                
            case Ace:
                tmp = "Ace";
                break;
        }
        
        LOG( tmp );
        LOG( " of " );
        
        j = cards[i].get_suit();
        LOG( ( j == Hearts ? "Hearts" : 
             ( j == Diamonds ? "Diamonds" :
             ( j == Spades ? "Spades" :
             ( j == Clubs ? "Clubs" : "NULL" ) ) ) ) );     
    }*/
}
//====================================================================
 
 
 
 
//=================STATIC_FUNC_TO_LOAD_CARD_IMAGES====================
bool Deck::load_cards() {
    
    /*for( int i = 0; i < card_image.size(); i++ )
        card_image[i] = NULL;
        
    card_image[0] = CSurface::Load_image( "gfx/Two.png" );
    card_image[1] = CSurface::Load_image( "gfx/Three.png" );
    card_image[2] = CSurface::Load_image( "gfx/Four.png" );
    card_image[3] = CSurface::Load_image( "gfx/Five.png" );
    card_image[4] = CSurface::Load_image( "gfx/Six.png" );
    card_image[5] = CSurface::Load_image( "gfx/Seven.png" );
    card_image[6] = CSurface::Load_image( "gfx/Eight.png" );
    card_image[7] = CSurface::Load_image( "gfx/Nine.png" );
    card_image[8] = CSurface::Load_image( "gfx/Ten.png" );
    card_image[9] = CSurface::Load_image( "gfx/Jack.png" );
    card_image[10] = CSurface::Load_image( "gfx/Queen.png" );
    card_image[11] = CSurface::Load_image( "gfx/King.png" );
    card_image[12] = CSurface::Load_image( "gfx/Ace.png" );
    card_image[13] = CSurface::Load_image( "gfx/Face.bmp" );
    
    
    for( int i = 0; i < card_image.size(); i++ ) {
        if( card_image[i] == NULL ) {
            LOG( "\nLoad error, image ID = " );
            LOG( i );
            return ERROR;
        }
    }*/
    
    return SUCCES;
}
//====================================================================
 
 
 
 
//====================================================================
void Deck::deal( Deck *dealer, Cint n_cards ) {
    
    if( n_cards > cards.size() )
        return;
        
    for( int i = 0; i < n_cards; i++ ) {
        dealer->put_card_on_top( get_top_card() );
        remove_card();
    }
    
}
//====================================================================
 
 
 
 
//====================================================================
void Deck::put_card_on_top( const Card &card ) {    
    cards[deck_size++] = card;
}
//====================================================================
 
 
 
 
//====================================================================
const Card& Deck::get_top_card() const {
    return cards[deck_size];    
}
//====================================================================
 
 
 
//====================================================================
void Deck::remove_card() {
    deck_size--;
}
//====================================================================
Card.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "d:\Programing\LIBRARIES\SDL\Projects\Example\typedefs.h"
 
#ifndef CARD_H
#define CARD_H
 
class Card
{
    public:
        Card();
        
        void set_suit( Cint );
        void set_face( Cint );
        
        int get_suit() const;
        int get_face() const;
        
    private:
        int suit;
        int face;
};
 
#endif
Card.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "Card.h"
 
Card::Card() : suit( 0 ), face( 0 ) {}
 
void Card::set_suit( Cint s ) {
    suit = s;
}
 
void Card::set_face( Cint f ) {
    face = f;
}
 
int Card::get_suit() const {
    return suit;
}
 
int Card::get_face() const {
    return face;
}


Добавлено через 24 секунды
Цитата Сообщение от Catstail Посмотреть сообщение
- а простой "Hello World" работает?
Да...

Добавлено через 3 минуты
Я заметил, если в мейн закомментировать 20 строку, все запускается... Но блин, вроде бы в Deck все нормально
ЗЫ Исходники вырвал из проекта, извините если коряво
 
Текущее время: 11:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru