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

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

Войти
Регистрация
Восстановить пароль
 
bubik
0 / 0 / 0
Регистрация: 18.12.2012
Сообщений: 21
#1

Вылетает программа, укажите ошибку - C++

01.10.2013, 21:20. Просмотров 281. Ответов 1
Метки нет (Все метки)

Программа вылетает. Помогите пожалуйста.

Условие программы:
В программе используется класс good_time и перегрузка оператора сложения. Время задается как строка символов вида ЧЧ@ММ@СС, где @ - любой из разделителей: запятая, точка, двоеточие или пробел. Если не заданы секунды (СО, минуты (ММ) или часы (ЧЧ), для них принимается нулевое значение.

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
#include "stdafx.h"
#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
 
char * delimiters = ",: .";
 
class good_time {
  int hours, minutes, secs;
public:
   good_time()              // конструктор без параметров
      { hours = minutes = secs = 0; }
   good_time(char *);           // конструктор c передачей параметра
   good_time operator +(good_time); // определение
 
                    // перегрузки оператора сложения
   void output(void);
 
};
 
good_time::good_time(char * given_time)
 
{
  hours   = atoi(strtok(given_time, delimiters));
  minutes = atoi(strtok(NULL, delimiters));
  secs    = atoi(strtok(NULL, delimiters));
 
}
 
good_time good_time::operator+(good_time add_object)
 
{
  good_time temp_object;
  temp_object.secs    = (secs + add_object.secs) % 60;
  temp_object.minutes = ((secs + add_object.secs) / 60 +
             minutes + add_object.minutes) % 60;
  temp_object.hours   = ((secs + add_object.secs) /60 +
             minutes + add_object.minutes) / 60 +
             hours + add_object.hours;
  return temp_object;
 
}
 
void good_time::output(void)
 
{
 
  char target[12];
  printf("%4s час ",   itoa(hours,   target, 10));
  printf("%4s мин ",   itoa(minutes, target, 10));
  printf("%4s ceк\n",  itoa(secs,    target, 10));
 
}
 
void main(void)
 
{
  good_time first_time("0:0:600");
  cout << "Если      ";
  first_time.output();
  cout << "сложить с ";
  good_time second_time("300 600 0");
  second_time.output();
  cout << "получится ";
  good_time result_time;
  result_time = first_time + second_time;
  result_time.output();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.10.2013, 21:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вылетает программа, укажите ошибку (C++):

Укажите ошибку! - C++
В строке удвоить все символы ‘&amp;’. Под вставкой символа n в строку после к-го элемента понимается смещение всех элементов, начиная с...

Укажите на ошибку - C++
Привет, есть проект, в нем был только один файл core.cpp в нем было и объявления функций и их описания, короче говоря все было в одном...

Укажите на ошибку - C++
Проблема с enum. Пишет что, нужно что-то перед enum. Поясните пожалуйста #include &lt;iostream&gt; using namespace std; int main() ...

Укажите на ошибку - C++
Подскажите ошибку пожалуйста #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; void main() ...

Укажите пожалуйста ошибку(и) - C++
#include &lt;iostream&gt; using namespace std; struct box { char maker; float height; float width; float length; float...

Укажите ошибку пожалуйста - C++
№ 3 вариант 8 #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int main() { const float Eps=1E-4; int...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.10.2013, 21:37 #2
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
#include "stdafx.h"
#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
 
char * delimiters = ",: .";
 
class good_time 
{
  int hours, minutes, secs;
public:
   good_time()              // конструктор без параметров
      { hours = minutes = secs = 0; }
   good_time(char *);           // конструктор c передачей параметра
   good_time operator +(good_time); // определение
 
                    // перегрузки оператора сложения
   void output(void);
 
};
 
good_time::good_time(char * given_time)
 
{
  char *pstr = new char[strlen(given_time) + 1];
  strcpy(pstr, given_time);
  hours   = atoi(strtok(pstr, delimiters));
  minutes = atoi(strtok(NULL, delimiters));
  secs    = atoi(strtok(NULL, delimiters));
  delete [] pstr;
}
 
good_time good_time::operator+(good_time add_object)
 
{
  good_time temp_object;
  temp_object.secs    = (secs + add_object.secs) % 60;
  temp_object.minutes = ((secs + add_object.secs) / 60 +
             minutes + add_object.minutes) % 60;
  temp_object.hours   = ((secs + add_object.secs) /60 +
             minutes + add_object.minutes) / 60 +
             hours + add_object.hours;
  return temp_object;
 
}
 
void good_time::output(void)
 
{
 
  char target[12];
  printf("%4s час ",   itoa(hours,   target, 10));
  printf("%4s мин ",   itoa(minutes, target, 10));
  printf("%4s ceк\n",  itoa(secs,    target, 10));
 
}
 
void main(void)
 
{
  setlocale(0, "");
    
  good_time first_time("0:0:600");
  cout << "Если      ";
  first_time.output();
  cout << "сложить с ";
  good_time second_time("300 600 0");
  second_time.output();
  cout << "получится ";
  good_time result_time;
  result_time = first_time + second_time;
  result_time.output();
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.10.2013, 21:37
Привет! Вот еще темы с ответами:

укажите на ошибку в листинге - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;iomanip&gt; using namespace System; void main( ) { cout &lt;&lt; &quot;I love&quot;; ...

Укажите на ошибку или исправте!!! - C++
Здраствуйте!! написал консольную программу которая захватывает написанную строку, потом проверяет её на наличие Больших и маленьких букв!!!...

Задачка по C++! Укажите пожалуйста на ошибку! - C++
Набросал упрощенный вариантик программы. Пытаюсь в конструкторе zveri присвоить значение переменной home из функии другого класс. Где...

Калькулятор Z-1. Укажите на ошибку в программе к задаче - C++
Уважаемые форумчане, укажите пожалуйста на ошибку в программе. Пишу программу к задаче, валится на 10 тесте (Wrong Answer)....


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

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

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