Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
philbrooks
0 / 0 / 0
Регистрация: 14.05.2015
Сообщений: 18
#1

Найти причины и способы исправления ошибок в коде

10.12.2015, 23:21. Просмотров 795. Ответов 5
Метки нет (Все метки)

Приложил фото ошибки, не считает часовые пояса. Объясните, что не так.
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
# include <iostream.h>
# include <conio.h>
# include <string.h>
# include <math.h>
 
class user_time
 {
  protected:  
    int hr, min;  // Поля класу «Час»
  public:
    user_time ()  // Конструктор за замрвчуванням
     {
      hr=min=0;
     }
    user_time (int h, int m) // Конструктор довільних значень
     {
      hr=h;
      min=m;
      cout<<"\nTime is set to specified value.\n";
     }
    void display() // Функція виводу і форматування часу
     {
      while (min>59)
       {
         min-=59;
         hr++;
       }
 
      while (hr>23)
       {
        hr-=24;
       }
      if (hr<0) hr+=24;
      cout<<"\nTime set is: "<<(hr<10?"0":"")<<hr<<(min<10?":0":":")<<min;
      char p[2];
      int h=hr;
       if ((h>=0)&&(h<=12)) strcpy(p,"am");
       else {h-=12; strcpy(p,"pm");}
      cout<<"\nTime set is: "<<(h<10?"0":"")<<h<<(min<10?":0":":")<<min<<" "<<p;
     }
    int mincount ()  //Функція підрахунку хвилин у заданому часі
     {int m;
      m=min+60*hr;
      return m;
     }
    user_time operator ++()  // Перевантажений оператор ++ для переводу на годину вперед
     {
       hr++;
       return *this;
     }
    user_time operator --(int) //Перевантажений оператор для переводу на годину  назад
     {
       hr--;
       return *this;
     }
     ~user_time()  // Деструктор
     {cout<<"\nRobota clasy time zakinchena.";
     }
 };
 
class local_time : public user_time  // Клас «Місцевий час»
 {
  protected:
    int t_zone;
    char city[30];
  public:
    local_time():user_time()  //Кокструктор за замовчуванням
     {
      t_zone=2;
      strcpy(city,"Kiev");
     }
    local_time(int h, int m, int zone, char c[30]): user_time (h,m) //Конструктор довільних
     {                                  // значень
      t_zone=zone;
      strcpy(city,c);
     }
 
    int operator - (local_time&t) //Перевантаження оператору для знаходження
     {              // різниці у часі між часовими поясами
      int tmp;
      tmp = this->t_zone-t.t_zone;
      return abs(tmp);
     }
    void display() //Функція виводу
     {
      user_time :: display();
      cout<<"\n zone is GMT"<<(t_zone>0?"+":"")<<t_zone;
      cout<<"\nCity set is "<<city;
     }
    ~local_time() //деструктор 
    {cout<<"\nRobota clasy miscevuy chas zakinchena.";
    }
 };
 
  void chosecity (int t) // Функція виводить міста, які знаходяться у введеному
      {cout<<"Mojluvi mista:   ";           //часовому поясі
       switch (t)
      {case 0: {cout<<"London, Lisbon"; break;}
       case 1: {cout<<"Paris, Berlin, Rome, Warsaw, Budapest, Praha"; break;}
       case 2: {cout<<"Kyiv, Helsinki, Istambul, Athens";break;}
       case 3: {cout<<"Moscow, Jeddah, Nairobi";break;}
       case 4: {cout<<"Abu Dabi";break;
       case 5: {cout<<"Islamabad, Tashkent"; break;}
       case 6: {cout<<"Dhaka";break;}
       case 7: {cout<<"Bangkok, Jakarta, Hanoi"; break;}
       case 8: {cout<<"Hong Kong, Beijing"; break;}
       case 9: {cout<<"Tokyo, Seul"; break;}
       case 10: {cout<<"Sydney, Guam";  break;}
       case 11: {cout<<"Magadan"; break;}
       case 12: {cout<<"Wellington, Auckland";break;}
       case -11: {cout<<"Midway, Samoa"; break;}
       case -10: {cout<<"Hawaii, Honolulu";break;}
       case -9: {cout<<"Alaska"; break;}
       case -8: {cout<<"LA, San Francisco"; break;}
       case -7: {cout<<"Denver, Phoenix";break;}
       case -6: {cout<<"Chicago, Dallas"; break;}
       case -5: {cout<<"New York, Washigton DC";break;}
       case -4: {cout<<"Caracas, La Paz"; break;}
       case -3: {cout<<"Brasilia, Buenos Aires";break;}
       case -2: {cout<<"Mid-Atlantic"; break;}
       case -1: cout<<"Azores";
      } }
 
      }
void main ()  //головна функція програми
 {
  int g, mi;
  cout<<"Vvedit hodynu\n";
  cin>>g;
  cout<<"Vvedit hvylynu\n";
  cin>>mi;
  user_time a(g,mi);
  user_time b;
  cout<<"\nVuvedennia konstruktora dovilnoho pokaznuka chasy\n";
  a.display();
  getch();
  cout<<"\nVuvedennia konstruktora za zamovchyvanniam\n";
  b.display();
  getch();
  ++a;
  cout<<"\nPerevid godunnuka na 1 goduny vpered\n";
  a.display();
  getch();
  cout<<"\nPerevid godunnuka na 1 goduny nazad\n";
  b--;
  b.display();
  getch();
  cout<<"\nKilkist xvulun y  ";
  a.display();
  cout<<"\n="<<a.mincount();
  cout<<"\nVuvedennia dunamichnux danux\n";
  user_time *d =new user_time(12,3);
  d->display();
    int z;
    char misto[30];
  local_time c2;
  cout<<"\nVukorustannia klasy-nashadka:\n";
  cout<<"\nVvedit hodynu\n";
  cin>>g;
  cout<<"Vvedit hvylynu\n";
  cin>>mi;
  cout<<"\nVvedit nomer chasovoho poasu\n";
  cin>>z;
  chosecity(z);
  cout<<"\nVvedit nazvu mista \n";
  cin.get();
  cin.getline(misto,30);
 local_time c1(g,mi,z,misto);
 cout<<"\nVukluk konstruktora dovilnoho pokaznuka chasy\n";
  c1.display();
  getch();
  cout<<"\nVuvedennia konstruktora za zamovchyvanniam\n";
  c2.display();
  int r=c1-c2;
  cout<<"\nRiznuca y chasovux poiasax "<<r<<" hodun";
  if (r==1) cout<<"a";
  if ((r==2)||(r==3)||(r==4)) cout<<"u";
  delete d;
  getch();
 }
0
Миниатюры
Найти причины и способы исправления ошибок в коде  
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2015, 23:21
Ответы с готовыми решениями:

Найти причины и способы исправления ошибок в коде
Помогите найти ошибку, вылетает где то в for. #include &lt;iostream&gt; #include...

Найти причины и способы исправления ошибок в коде
Почему она не компилируется? #include &lt;iostream.h&gt; #include &lt;algorithm&gt;...

Найти причины и способы исправления ошибок в коде
Ансамбль песни и пляски «Четверочка» проводит очередной кастинг, в котором...

Найти причины и способы исправления ошибок в коде
Программа завершается при деление с плохим кодом -0блаблабла, что делать? 2...

Найти причины и способы исправления ошибок в коде
Только начал самообучение #include &lt;iostream&gt; #include &lt;cstdlib&gt; using...

5
nonedark2008
1035 / 773 / 215
Регистрация: 28.07.2012
Сообщений: 2,153
10.12.2015, 23:31 #2
Лучший ответ Сообщение было отмечено philbrooks как решение

Решение

Первое что попалось на глаза:
Цитата Сообщение от philbrooks Посмотреть сообщение
C++
1
2
3
char p[2];
...
strcpy(p,"am");
Под строки "am"/"pm" необходимо минимум три символа, два непосредственно на буквы и один на символ конца строки.
1
philbrooks
0 / 0 / 0
Регистрация: 14.05.2015
Сообщений: 18
10.12.2015, 23:36  [ТС] #3
и как выйти из этой ситуации?
0
nonedark2008
1035 / 773 / 215
Регистрация: 28.07.2012
Сообщений: 2,153
10.12.2015, 23:40 #4
Цитата Сообщение от philbrooks Посмотреть сообщение
и как выйти из этой ситуации?
Увеличить исходный размер массива "p" на токое колличество элементов,
чтобы в него помещалось три символа.
0
philbrooks
0 / 0 / 0
Регистрация: 14.05.2015
Сообщений: 18
11.12.2015, 00:02  [ТС] #5
большое спасибо

Добавлено через 14 минут
а я еще не подскажешь почему оно правильно не считает разницу в часовых поясах?
0
nonedark2008
1035 / 773 / 215
Регистрация: 28.07.2012
Сообщений: 2,153
11.12.2015, 00:12 #6
Цитата Сообщение от philbrooks Посмотреть сообщение
почему оно правильно не считает разницу в часовых поясах?
Дай пример того, как неправильно считает у тебя и как должно быть на самом деле.
0
11.12.2015, 00:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2015, 00:12

Найти причины и способы исправления ошибок в коде
#include &lt;stdio.h&gt; #include &lt;time.h&gt; #include &lt;stdlib.h&gt; int main () ...

Найти причины и способы исправления ошибок в коде
ввожу: 2 + тут он мне пишет &quot;???&quot; #include &lt;stdio.h&gt; #include &lt;iostream&gt;...

Найти причины и способы исправления ошибок в коде
почему не работает??? #include &lt;iostream&gt; #include &lt;conio.h&gt; #include...


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

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

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