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

Нужно объяснить программу, т.е. какие процессы проходят - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Конструктор C++ и new http://www.cyberforum.ru/cpp-beginners/thread703099.html
Здравствуйте Форумчане. Вопрос следующий: Какая разница между new ClassName; и new ClassName(); Если можно ссылку на источник или страницу книги.. Спасибо.
C++ Перевести синтаксис программы с Delphi в C++, очень нужно Даны два текстовых файла f1 и f2. Файл f1 содержит произвольный текст. Слова в тексте разделены пробелами и знаками препинания. Файл f2 содержит не более 30 слов, которые разделены запятыми. Эти... http://www.cyberforum.ru/cpp-beginners/thread703073.html
Произведение элементов с чётными номерами C++
В одномерном массиве, состоящем из н целых элементов, вычислить: 1) произведение элементов с чётными номерами, 2) сумму элементов массива, расположенных между первым и последним нулевыми элементами....
C++ Программа на языке С++ в среде Visual Studio 2010
Здравствуйте Вот было задание-написать программу которая подсчитывает число ненулевых битов целого числа и использует операцию сдвига. Вот текст программы: #include "stdafx.h" #include...
C++ Сумма N целых положительных чисел http://www.cyberforum.ru/cpp-beginners/thread703054.html
Доброго времени суток. Срочно нужна помощь в написании программы на С++, а именно-Написать программу которая вычисляет сумму N целых положительных чисел. количество вводится во время работы...
C++ Определить, есть ли в заданном предложении цифры. И если есть, найти их сумму Определить, есть ли в заданном предложении цифры. И если есть, найти их сумму. подробнее

Показать сообщение отдельно
Evgeniy_Fox
5 / 5 / 0
Регистрация: 22.09.2012
Сообщений: 160

Нужно объяснить программу, т.е. какие процессы проходят - C++

20.11.2012, 13:17. Просмотров 343. Ответов 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
// Laboratornaya_3.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <windows.h>
#include <iostream>
#include <string>
#include <conio.h>
#include <stdio.h>
using namespace std;
int enterMenu();    //объявление функции
 
int menu(char *str, bool p) //главное меню
{
    int k = 0;  //номер пункта меню
    for(;;){
        cout << "1.Ввести строку." << endl;
        cout << "2.Подсчитать количество знаков." << endl;
        cout << "3.Вывести результат." << endl;
        cout << "4.Удалить строку." << endl;
        cout << "5.Выход." << endl;
        cout << "_______________________________________________________________________________" << endl;
        k = enterMenu();
        if (k>0 && k<6)
            break;
        else
            cout << "ОШИБКА! Неверный номер пункта, повторите ввод." << endl;
            cout << "_______________________________________________________________________________" << endl;
    }
    switch (k){
        case 1:
            return k;
        case 2:
            if (strlen(str)>1)
            {
                return k;
            }
            else
            {
                cout << "ОШИБКА! Строка не введена." << endl;
                cout << "_______________________________________________________________________________" << endl;
                break;
            }
        case 3:
            if (p)
                return k;
            else
                {
                    cout << "ОШИБКА! Знаки не подсчитаны." << endl;
                    cout << "_______________________________________________________________________________" << endl;
                    break;
                }
        case 4:
            if (strlen(str)>1)
            {
                return k;
            }
            else
            {
                cout << "ОШИБКА! Строка не введена." << endl;
                cout << "_______________________________________________________________________________" << endl;
                break;
            }
        case 5:
            return k;
    }
    return 0;
}
 
int enterMenu() //Выбор номера пункта меню
{
    int s = 0;
    do {
            cout << "Введите номер пункта: ";
            cin.clear();    //сброс битов ошибок входного стандартного потока
            cin.sync(); //очищение буфера стандартного ввода
            cin >> s;
        } while( cin.fail() );  //проверка на ошибку предыдущего ввода со стандартного потока
    return s;
}
 
 
char *enterStr(char *str)
{
    char ch = 0;
    while (true)
    {
        ch = _getch();
        cout << ch;
        if (ch == 13)
            break;
        int len = strlen(str);
        char *tmp = new char[len+2];
        strcpy(tmp, str);
        tmp[len] = ch;
        tmp[len+1] = '\0';
        delete [] str;
        str = tmp;
    }
    cout << endl;
    return str;
}
 
int signCh(char *str, bool &p)
{
    int count = 0;
    char c[] = {',','.','<','>','{','}','[',']','(',')','?','\"',';',':','!','@','#','$','%','^','&','*','|','/','\n'};
    for (int i = 0; i < strlen(str); i++)
    {
        int m = 0;
        while (c[m] != '\n')
        {
            if (str[i] == c[m++])
                count++;
        }
    }
    p = true;
    return count;
}
 
void showResult(char *str, int count)
{
    cout << "В строке: \"" << str << '\"' << ' ' << "Знаков пунктуации: " << count << endl;
    cout << "_______________________________________________________________________________" << endl;
}
 
char *delStr(char *str, bool &p)
{
    p = false;
    delete [] str;
    str = new char[1];
    str[0] = '\0';
    return str;
}
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    char *str = new char[1];
    str[0] = '\0';
    int count = 0;
    bool p = false;
    while (true)
    {
        int num = menu(str, p);
        if (num == 1)
        {
            str = delStr(str, p);
            str = enterStr(str);
        }
        else if (num == 2)
        {
            count = signCh(str, p);
        }
        else if (num == 3)
        {
            showResult(str, count);
        }
        else if (num == 4)
        {
            str = delStr(str, p);
        }
        else if (num == 5)
            return 0;
    }
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru