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

Знаю ли я основы ООП? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ввод данных с клавиатуры http://www.cyberforum.ru/cpp-beginners/thread621586.html
Помогите, пожалуйста... Если я напишу так:cin >> a; То у меня введутся символы с клавиатуры, а потом каретка автоматически переходит на следующую строку, а мне надо, чтобы каретка осталась на этой строке. Я потом на этой же строке только через 2 табуляции снова буду вводить данные, только другие. Как это сделать?
C++ Цикл: Найти самую длинную неубывающую цепочку чисел В цикле с клавиатуры вводится 15 целых чисел. Необходимо найти самую длинную неубывающую цепочку чисел. На экран вывести найденную максимальную длину цепочки и порядковый номер того числа, с которого цепочка началась. Цикл for а не if, сорри ) http://www.cyberforum.ru/cpp-beginners/thread621585.html
C++ Упорядочить массив в с++
Создать целоисчисленный массив. упорядочить элементы массива в порядке возрастания частоты встречаемости. Если в массиве есть несколько элементов, то группы упорядочить по убыванию абсолютных значений элементов. Помогите пожалуйста, не знаю как упорядочить массив. Вот код, который написала #include <conio.h> #include <stdio.h> #include <stdlib.h> #include <math.h> #include <time.h> #include...
C++ Узнать размер файла
Дорогие форумчане! Есть у меня есть файл xxxxx.clk(все данные в нем строчные), он весит n-ое количество мегабайт. Нужно задать массив структур из этих строк. Почитал в интернете, нужно использовать библиотеки sys.h\types.h\stat.h . Но их нету в стандартном наборе ни CodeBlock'а, ни Builder'а, ни DEV'а... Покажите на примере, как это сделать?
C++ C++ Интерфейс пользователя http://www.cyberforum.ru/cpp-beginners/thread621579.html
Есть у меня форма, сделал я ее на с++ atl через ресурс. Теперь надо по нажатии кнопки которая находиться на этой же форме записать всю инфу в файл. НО! Я не знаю как присвойть переменной например char значение которое располагаться в компоненте (textbox - текстовое поле). Подскажите?
C++ Массив: сортировка элементов массива по убыванию Привет всем с Казахстана) Хотелось бы от вас пару уроков взять про массивов. Сначала, пожалуй, начну с этого: Массив, состоящий из 15и символов. Сортировать эти массивы по убыванию. Сделайте, как можно проще. Просто, когда училка спросит, чтоб я мог смело отвечать) Удачи) На таком примере: #include<iostream.h> #include<math.h> #include<conio.h> int main(){ подробнее

Показать сообщение отдельно
Ksan
27 / 27 / 0
Регистрация: 02.11.2010
Сообщений: 370
10.07.2012, 21:37     Знаю ли я основы ООП?
Вот мое решение


main
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
 
 
int main()
{
        CLSCommand Command;
        while(1)
        {
                Command.Enter();
        }
        return 0;   
}



CLSCommand
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
class CLSCommand
{
        #define COM_ERROR { cout << "Error\n"; return ; }
        #define VARIANT12 { Variant12(command); return ; }
        #define VARIANT2 { Variant2(filename); return ; }
        #define VARIANT3 { Variant3(command);   return ; }
        public:
                CLSCommand(){   }
                void Enter()
                {
                        char chbuff[64];
                        cout << "me: ";
                        gets(chbuff);
                        Analyse(chbuff);
                }
        private:
                void Analyse(string command) // ïåðâè÷Г*ûé Г*Г*Г*ëèç
                {
                        string strbuff;
                        
                        if(Str2Str(command, 5, strbuff)) COM_ERROR
                        if(strbuff != "test ") COM_ERROR
                        
                        if(Str2Str(command, 2, strbuff)) COM_ERROR
                        if(strbuff == "-f") VARIANT12
                        if(strbuff == "-h") VARIANT3
                        
                        COM_ERROR
                }
                void Variant12(string& command) // Г*Г*Г*ëèç ГўГ*ðèГ*Г*ГІГ* 1, 2
                {
                        string strbuff;
                        if(Str2Str(command, 1, strbuff)) COM_ERROR
                        
                        if(! Validate(command[0], false)) COM_ERROR
                        
                        string filename;
                        for(short i=0; i<command.length(); ++i)
                        {
                                if(! Validate(command[0])) break;
                                filename += command[0];
                                command.erase(0, 1);
                        }
                        
                        if(Str2Str(command, 4, strbuff)) COM_ERROR
                        if(strbuff != " -m ") COM_ERROR
                        
                        strbuff.clear();
                        for(short i=0; i<command.length(); ++i)
                        {
                                if(! Validate(command[0], false)) break;
                                strbuff += command[0];
                                command.erase(0, 1);
                        }
                        
                        if(strbuff == "words")
                        {
                                if(Str2Str(command, 4, strbuff)) COM_ERROR
                                if(strbuff != " -v ") COM_ERROR
                                
                                for(short i=0; i<command.length(); ++i)
                                {
                                        if(! Validate(command[i], false)) COM_ERROR
                                }
                                
                                Variant1(filename, command);
                                
                                return ;
                        }
                        if(strbuff == "checksum") VARIANT2
                        
                        COM_ERROR
                }
                void Variant1(string& path, string& word) // Г*Г*Г*ëèç ГўГ*ðèГ*Г*ГІГ* 1
                {
                        ifstream ifile(path.c_str());
                        int sum = 0;
                        string strbuff;
                        
                        if(! ifile.good()) COM_ERROR
                        
                        while(! ifile.eof())
                        {
                                strbuff.clear();
                                ifile >> strbuff;
                                if(strbuff == word) ++sum;
                        }
                        
                        ifile.close();
                        
                        cout << "sum = " << sum << endl;
                }
                void Variant2(string& path) // Г*Г*Г*ëèç ГўГ*ðèГ*Г*ГІГ* 2
                {
                        ifstream ifile(path.c_str());
                        int sum = 0;
                        char chbuff[5] = "qwer";
                        
                        if(! ifile.good()) COM_ERROR
                        
                        while(! ifile.eof())
                        {
                                ifile.get(chbuff, 4);
                                sum += *(int*)chbuff;
                        }
                        
                        ifile.close();
                        
                        cout << "checksum = " << sum << endl;
                }
                void Variant3(string& command) // Г*Г*Г*ëèç ГўГ*ðèГ*Г*ГІГ* 3
                {
                        if(! command.empty()) COM_ERROR
                        
                        cout << "1) test -f <filename> -m words -v <word>\nprint how many <word> in <filename>\n"
                                 << "2) test -f <filename> -m checksum\nprint 32bit checksum from <filename>\n"
                                 << "3) test -h\nprint help\n";
                }
                
                
                bool Str2Str(string& src, short n, string& dst) // return true if error, else - false
                {
                        dst.clear();
                        if(src.length() < n) return true;
                        
                        for(short i=0; i<n; ++i)
                        {
                                dst += src[i];
                        }
                        src.erase(0, n);
                }
                bool Validate(char ch, bool dota = true)
                {
                        return  (
                                            (ch >= 'a' && ch <= 'z')  ||  
                                            (ch >= 'A' && ch <= 'Z')  ||
                                            (ch >= '0' && ch <= '9')  ||
                                            (ch == '.' && dota)
                                      );
                                
                }
                
        #undef COM_ERROR
        #undef VARIANT12
        #undef VARIANT2
        #undef VARIANT3
};


Добавлено через 23 секунды
Зы: это все было одним файлом. Я разделил для читабельности
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru