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

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

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

Разбитие кода на отдельные части - C++

02.11.2013, 10:14. Просмотров 293. Ответов 6
Метки нет (Все метки)

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
#include <iostream>
#include <conio.h>
#include <ctime>
 
    int sec(0);
    int minu(0);
    int chas(0);
    int B = 1;
    int sok;
 
void how2timer(int ms) {
    int CLOCKS_PER_MSEC = CLOCKS_PER_SEC / 1000;   // новая константа
    clock_t end_time = clock() + ms * CLOCKS_PER_MSEC ;  // время завершения
    while (clock() < end_time) {}  // цикл ожидания времени
}
 
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    
    cout << "\n\t\t\t***Таймер выключения компьютера***\n\n\t\t\t\t\t\t\t\tversion 0.2";
    cout << "\n\n\n\n\t\tПомощь:\n1 час   = 60 минут.\n2 часа  = 120 минут.\n3 часа  = 180 минут.\n4 часа  = 240 минут.\n5 часов = 300 минут.\n6 часов = 360 минут.\n7 часов = 420 минут.\n8 часов = 480 минут.";
    cout << "\n\n\tТаймер на сколько минут? : ";
    cin >> minu;
    system("cls");
    cout << "\n\n\tПробный режим? Или обычный? (1 or 2): ";
    while (!(cin >> sok) || sok >= 3 || sok <= 0)
    {
        cin.clear();
        while(cin.get() != '\n');
        system("color c0");
        cout << "\t\nЭто таймер, а не зрелище на смерть консоли. Введите заноdо Ваш выбор. ";
        how2timer(2000);
        system("color 7");
        cout << "\n\n\tПробный режим? Или обычный? (1 or 2): ";
    }
    getch();
    return 0;
}
int vibor1()
{
    main();
    if (sok == 2)
    {
    for(unsigned long long i = 0; i < 1000000000000; i++)
    {
      if (sec == 0)
      {
          minu -= 1;
          sec = 60;
      }
      how2timer(1000);
      system("cls");
      sec -=1;
         if(minu >= 60)
         {
             chas += 1;
             minu -= 60;
         }
         if(minu >= 120)
         {
             chas += 2;
             minu -=120;
         }
         if(minu >= 180)
         {
             chas += 3;
             minu -= 180;
         }
         if(minu >= 240)
         {
             chas += 4;
             minu -= 240;
         }
         if(minu >= 300)
         {
             chas += 5;
             minu -= 300;
         }
         if(minu >= 360)
         {
             chas += 6;
             minu -= 360;
         }
         if(minu >= 420)
         {
             chas += 7;
             minu -= 420;
         }
         if(minu >= 480)
         {
             chas += 8;
             minu -= 480;
         }
 
      
      cout << "\n\n\n\n\n\n\n\n\t\t\t\t" << chas << ":" << min << ":" << sec;
      if (sec == 0)
    {
        if(minu == 0)
        {
            if (chas == 0)
            {
        system("color c");
        system("shutdown -s -t 10");
        cout << "\n\n\n\t\tВНИМАНИЕ!\n\n\t\tКомпьютер выключится через 10 секунд.";
        cout << "\n\n\n\t\tЕсли хотите предотвратить это, нажмите 1 : ";
        int bok;
        cin >> bok;
        if (bok == 1)
        {
            system("color f");
            system("shutdown -a");
            cout << "\n\n\n\n\tВыключение компьютера отменено.";
            break;
        }
        how2timer(11000);
      }}}
    }
    }
    return chas, minu, sec;
}
int vibor2()
{
    main();
    if(sok == 1)
    {
    for(unsigned long long i = 0; i < 10000000000; i++)
    {
      if (sec == 0)
      {
          minu -= 1;
          sec = 60;
      }
      how2timer(50);
      system("cls");
      sec -=1;
    
         if(minu >= 60)
         {
             chas += 1;
             minu -= 60;
         }
         if(minu >= 120)
         {
             chas += 2;
             minu -=120;
         }
         if(minu >= 180)
         {
             chas += 3;
             minu -= 180;
         }
         if(minu >= 240)
         {
             chas += 4;
             minu -= 240;
         }
         if(minu >= 300)
         {
             chas += 5;
             minu -= 300;
         }
         if(minu >= 360)
         {
             chas += 6;
             minu -= 360;
         }
         if(minu >= 420)
         {
             chas += 7;
             minu-= 420;
         }
         if(minu >= 480)
         {
             chas += 8;
             minu -= 480;
         }
       if (sec == 0)
    {
        if (minu == 0)
        {
            if (chas == 0)
            {
                {
        system("color a"); 
        cout << "\n\n\n\t\tСейчас выключился бы компьютер. )))00)";
        cout << "\n\n\t\tНо увы, это проба.\n\n\n  В обычном режиме, ты бы мог отменить выключение. На это там дается 10 секунд.";
        break;
                }
    }
    }}
      cout << "\n\n\n\n\n\n\n\n\t\t\t\t" << chas << ":" << min << ":" << sec;
    }
      }
    return chas, minu, sec;
}
Пройдя новый урок, я решил попробовать разбить этот весомый код на 3 части, чтобы было удобно редактировать, но увы, когда я разбил, и указал в main на эти две страницы vibor1() и vibor2(), то он (компилятор) мне выдал ошибку на 12 страниц.(http://screenshot.su/show.php?img=32...2532c6c43b.jpg) Тогда я сделал наоборот, в выбор1() и выбор2() засунул майн, но тоже не прокатило. Добавил return, и тоже не помогло.
Помогите разобраться, в чем ошибки?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.11.2013, 10:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Разбитие кода на отдельные части (C++):

Как вынести отдельные части кода в header-файл? - C++
Вообщем у меня есть .cpp файл с программой. Вопрос в том, как вынести отдельные части кода в .h файл Вот основной код. ...

Выделить логически связанные части кода в отдельные функции - C++
#include &lt;iostream&gt; using namespace std; int main() { setlocale( LC_ALL, &quot;Russian&quot; ); int Sum, i, j; bool Flag;...

Ввод числа и разбитие его на отдельные цифры - C++
Доброе время суток. Решил сделать себе задачку и попробовать решить ее, но увы, не осилил. Задача заключается в том, чтоб пользователь...

Объяснение части кода - C++
ребят, помогите пожалуйста) не могу разобраться в коде typedef struct derevo { int data; derevo *left; derevo *right; }...

Найти ошибку в части кода - C++
Доброго времени суток. В этой части кода не распознает If и then, выдает : If: идентификатор не найден; then: необъявленный идентификатор....

Вычислить время работы части кода - C++
#include &lt;string.h&gt; #include &lt;stdio.h&gt; #include &lt;fstream&gt; #include &lt;Windows.h&gt; #include &lt;stack&gt; #include &lt;iostream&gt; #include...

6
Croessmah
Эксперт CЭксперт С++
13408 / 7558 / 853
Регистрация: 27.09.2012
Сообщений: 18,590
Записей в блоге: 3
Завершенные тесты: 1
02.11.2013, 10:19 #2
а кто учил вызывать main?
C++
1
2
3
int vibor1()
{
    main();
0
Surges
1 / 1 / 0
Регистрация: 04.06.2013
Сообщений: 44
02.11.2013, 10:21  [ТС] #3
Цитата Сообщение от Croessmah Посмотреть сообщение
а кто учил вызывать main?
C++
1
2
3
int vibor1()
{
    main();
Так никто не учил, поэтому я перебирал все возможные варианты
0
Croessmah
Эксперт CЭксперт С++
13408 / 7558 / 853
Регистрация: 27.09.2012
Сообщений: 18,590
Записей в блоге: 3
Завершенные тесты: 1
02.11.2013, 10:22 #4
А смысл этой строчки Вы понимаете?
C++
1
    return chas, minu, sec;
Добавлено через 1 минуту
переменной min нет
C++
1
cout << "\n\n\n\n\n\n\n\n\t\t\t\t" << chas << ":" << min << ":" << sec;
1
ValeryS
Модератор
6651 / 5060 / 470
Регистрация: 14.02.2011
Сообщений: 16,918
02.11.2013, 10:35 #5
Цитата Сообщение от Surges Посмотреть сообщение
Так никто не учил, поэтому я перебирал все возможные варианты
а если бы было 100 функций ты бы тоже все варианты пробовал?
int main() это главная функция она всегда одна в программе
и никто вызывать её не должен, её вызывает система для начала работы программы( об экзотике, типа рекурсивного вызова, я не говорю)
1
Surges
1 / 1 / 0
Регистрация: 04.06.2013
Сообщений: 44
02.11.2013, 10:43  [ТС] #6
Цитата Сообщение от Croessmah Посмотреть сообщение
А смысл этой строчки Вы понимаете?
C++
1
    return chas, minu, sec;
Добавлено через 1 минуту
переменной min нет
C++
1
cout << "\n\n\n\n\n\n\n\n\t\t\t\t" << chas << ":" << min << ":" << sec;
Переменную исправил. (12 страниц ошибок сдулись как ветер)
Разве return chas, minu, sec это не "завершать работу vibor2() сохраняя эти переменные" ?
0
ValeryS
Модератор
6651 / 5060 / 470
Регистрация: 14.02.2011
Сообщений: 16,918
02.11.2013, 10:49 #7
Цитата Сообщение от Surges Посмотреть сообщение
Разве return chas, minu, sec это не "завершать работу vibor2() сохраняя эти переменные" ?
нет
сам подумай кто где их сохранять будет
return возврат из функции
return chas функция завершается и возвращает значение chas главной программе, вернуть она может только одно значение

для того чтобы функция вернула значение нужно явно это указать в описании перед именем функции
например
C++
1
int MyFunc();
функция MyFunc после завершения вернет вызывающей программе значения int
А все что происходит внутри функции, расчеты, переменные, это её внутреннее дело, никто не знает что там происходит
и при завершении работы функции все эти внутренние переменные забываются
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.11.2013, 10:49
Привет! Вот еще темы с ответами:

как сделать блок-схему к этой части кода ? - C++
int InitArray(int i) { std::cin&gt;&gt;arr; if(arr==0) return count; count++; InitArray(i+1); }

Как проверить работоспособность участка кода без остальной части программы? - C++
Подскажите пожалуйста, есть ли в visual studios 2010 возможность проверки работоспособности определенной части кода, без наличия готовой...

Объясните принцип работы части кода для вывода элементов контейнера - C++
Вот, собственно говоря, сам код для вывода элементов контейнера: struct print { char sep; print(char s) : sep(s) { } inline void...

Формирование двоичного кода для целой и дробной части + вывод в файл - C++
Упростила программу, но суть ясна. Выводит число, потом его целую и дробную часть, после чего переводит обе части в двоичную систему...


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

Или воспользуйтесь поиском по форуму:
7
Yandex
Объявления
02.11.2013, 10:49
Ответ Создать тему
Опции темы

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